import type { DriverTarget } from "@skaile/workspaces/plugin-registry"; import type { TokenUsage } from "@skaile/workspaces/types"; import { type ModelEntry } from "../models.js"; import { type AgentConfig, AgentDriver, type AgentPromptInput, type DriverInfo } from "../types.js"; /** * Agent driver for the OpenAI Codex SDK. * * Creates or resumes a Codex thread via `@openai/codex-sdk` (lazy-imported in `start()`) * and maps Codex SDK thread events to the unified {@link AgentEvent} stream. * OpenAI models only — uses `OPENAI_API_KEY` from `apiKeys`, `env`, or the environment. * * @remarks * **Event mapping** — Codex SDK items are translated: `agent_message` → `message_start/update/end`, * `command_execution` → Bash-shaped tool events, `mcp_tool_call` → MCP tool events, * `file_change` → `ApplyPatch`-shaped events, `web_search` → `WebSearch` events. * * **Sandbox** — The Codex sandbox mode, approval policy, and reasoning effort are * controlled via `AgentConfig.driverOptions.codex`. See {@link CodexDriverOptions}. * * **Instructions file** — System prompt and pre-rendered agent identity are combined * into a single instructions file written to `/.codex/skaile-session-instructions.md` * and passed to the Codex SDK as `model_instructions_file`. * * @docLink packages/bridge/drivers#codex-driver */ export declare class CodexDriver extends AgentDriver { readonly driverInfo: DriverInfo; private readonly log; private config; private readonly managed?; private thread; private running; private abortController; private pendingToolResults; private activeAssistantItemId; private activeAssistantText; private _runtimeSessionId; /** Token usage from the most recent completed turn. */ private _lastTokens; constructor(config: AgentConfig); get runtimeSessionId(): string | undefined; get acceptsReplyAsPrompt(): boolean; dispose(): Promise; hasPendingQuestion(): boolean; answerQuestion(answer: string, question?: string, requestId?: string): boolean; promptInput(input: AgentPromptInput): Promise; start(): Promise; prompt(message: string): Promise; abort(): Promise; get isRunning(): boolean; kill(): void; listModels(): Promise; resetSession(): Promise; getTokenUsage(): TokenUsage | null; reconfigure(patch: Partial>): void; getModel(): string | undefined; /** * Write a combined instructions file for Codex CLI's `model_instructions_file` config. * Combines pre-rendered agent identity (from `skaile install`) with runtime context * (resources, environment, prompt-extensions). */ private writeInstructionsFile; private handleThreadEvent; private handleThreadItem; private handleAgentMessage; private handleCommandExecution; private handleMcpToolCall; private handleFileChange; private handleWebSearch; private flushToolResults; private buildAssistantMessage; private toObject; private classifyErrorMessage; } /** * `DriverTarget` wrapper for the codex driver. Registered into the plugin * registry by `registerBuiltinDrivers()`. The Codex SDK is lazy-imported inside * `start()` — this target export never pulls it at module top. */ export declare const codexDriverTarget: DriverTarget; //# sourceMappingURL=codex.d.ts.map