import type { IControllerMessageBundle, IControllerSession, IControllerRuntimeId, TControllerToolStatus } from '../dist_ts_interfaces/index.js'; export type TCodexTerminalTurnStatus = 'completed' | 'interrupted' | 'failed'; export declare const codexRuntimeId: (nativeIdArg: string) => IControllerRuntimeId & { harnessId: "codex"; }; export declare const codexRecord: (valueArg: unknown) => Record; export declare const codexString: (valueArg: unknown, limitArg?: number) => string; export declare const codexArray: (valueArg: unknown, limitArg: number) => unknown[]; export declare const codexThreadId: (valueArg: unknown) => string; export declare const codexSessionId: (valueArg: unknown) => string; export declare const codexTimestamp: (valueArg: unknown) => number; /** A Codex text bounded to a byte budget, together with whether the bound actually cut it. */ export interface ICodexBoundedText { /** A complete-UTF-8 prefix of the original, carrying no marker of its own. */ text: string; truncated: boolean; } /** * Bound a Codex text to a byte budget and say what happened, so no caller has to read the result * back to find out. The live tool path needs exactly that: it reports the cut out of band, through * the contract's `outputTruncated` flag, because a marker inside the value would stop the durable * tool call from ever covering the live snapshot. `codexText` renders the same cut in band, which * is what the durable transcript projection keeps doing. */ export declare const codexBoundedText: (valueArg: unknown, maxBytesArg?: number) => ICodexBoundedText; export declare const codexText: (valueArg: unknown, maxBytesArg?: number) => string; /** * Codex parses each command it runs into semantic actions — what its own TUI renders as * "Read SKILL.md". The `unknown` variant is always a lone entry standing for the whole command * line, which the card already shows verbatim, so it deliberately produces nothing. * * Note this is `commandActions` on the v2 app-server ThreadItem. The `parsed_cmd` spelling with * `cmd`/`list_files` belongs to the v1 rollout files, which AGL never reads. */ export declare const codexCommandTitle: (valueArg: unknown) => string; export declare const codexSession: (valueArg: unknown, directoryArg: string) => IControllerSession; export declare const isCodexTerminalItemStatus: (valueArg: unknown) => boolean; export declare const codexToolStatus: (valueArg: unknown, completedArg: boolean, terminalTurnStatusArg?: TCodexTerminalTurnStatus) => TControllerToolStatus; /** One native item is one bundle, preserving app-server's paginated item ordering. */ export declare const codexItemBundle: (itemArg: Record, turnIdArg: string, completedArg?: boolean, terminalTurnStatusArg?: TCodexTerminalTurnStatus) => IControllerMessageBundle;