import { CLIRuntimeBase } from "../cli-runtime-base.js"; import type { AgentEvent, AgentExecuteParams, McpServerConfig } from "../types.js"; /** * Codex CLI runtime — invokes `codex exec --json` * and maps the streaming NDJSON output to {@link AgentEvent} instances. * * The Codex CLI uses a two-level event model: * - Top-level events: thread.started, turn.started, item.started, item.updated, * item.completed, turn.completed, turn.failed, error * - Item types: agent_message, command_execution, mcp_tool_call, file_change, * reasoning, web_search, error, todo_list */ export declare class CodexCliRuntime extends CLIRuntimeBase { readonly mediaCapabilities: { readonly acceptsInbound: readonly ["image/"]; readonly emitsOutbound: false; }; private currentSessionId; private accumulatedText; private lastEmittedTextLength; private lastUsage; private currentToolId; private itemCounter; constructor(); protected get supportsStdinPrompt(): boolean; protected get shouldSampleRss(): boolean; execute(params: AgentExecuteParams): AsyncIterable; protected buildArgs(params: AgentExecuteParams): string[]; protected extractEvent(line: string): AgentEvent | null; protected buildEnv(_params: AgentExecuteParams): Record; private handleThreadStarted; private handleItemStarted; private handleItemUpdated; private handleItemCompleted; private handleTurnCompleted; private handleTurnFailed; private handleError; private enrichDoneEvent; private extractToolId; private extractMessageText; private extractReasoningText; private resetState; } /** * Manages the `~/.codex/config.toml` lifecycle for MCP server configuration. * * The Codex CLI reads MCP config from `~/.codex/config.toml`. The config uses * TOML format with `[mcp_servers.]` sections. * * Uses a merge-restore pattern: * - **Setup**: read existing config (if any), save a copy, append `mcp_servers` * sections, write back. * - **Teardown** (always, via `finally`): restore original or delete created file. */ export declare class CodexMcpConfigManager { private readonly mcpServers; private readonly configDir; private readonly configPath; private originalContent; private createdFile; private createdDir; constructor(mcpServers: Record, configDir?: string); setup(): Promise; teardown(): Promise; } /** * Serialize MCP server configs to TOML format for Codex config. * * Output format: * ```toml * [mcp_servers.server_name] * type = "stdio" * command = "node" * args = ["server.js"] * * [mcp_servers.server_name.env] * KEY = "VALUE" * ``` */ export declare function serializeMcpServersToToml(mcpServers: Record): string;