import { EventEmitter } from 'events'; import type { PromptCallbacks as ClaudePromptCallbacks, PromptResult as ClaudePromptResult } from '../agent/persistent-cli-process.js'; import type { IModelRunner, RunnerMetrics, PromptOptions, SessionPolicyStatus } from '../agent/model-runner.js'; import { type CodexAuxiliaryToolPolicy } from '../agent/codex-auxiliary-tools.js'; export interface AgentRuntimeProcess { sendMessage(content: string, callbacks?: ClaudePromptCallbacks): Promise; isReady(): boolean; stop(): void | Promise; getSessionId?(): string; on(event: 'idle' | 'close' | 'error', listener: (...args: unknown[]) => void): this; } export interface CodexRuntimeProcessOptions { defaultSessionKey?: string; model?: string; systemPrompt?: string; cwd?: string; sandbox?: 'read-only' | 'workspace-write' | 'danger-full-access'; requestTimeout?: number; codexHome?: string; isolatedHome?: string; registryRoot?: string; mcpConfigPath?: string; command?: string; auxiliaryToolPolicy?: CodexAuxiliaryToolPolicy; } /** * Session-persistent Codex wrapper with the same minimal contract used by * multi-agent runtime (sendMessage/isReady/stop + idle events). * * Implements both AgentRuntimeProcess (multi-agent) and IModelRunner (agent-loop). * Uses one Codex app-server connection and multiplexes durable threads by * session key. Different sessions may run concurrently; turns for the same * session are serialized by CodexAppServerProcess. */ export declare class CodexRuntimeProcess extends EventEmitter implements AgentRuntimeProcess, IModelRunner { readonly backendType: "codex"; private readonly options; private readonly appServer; private readonly auxiliaryToolBridge; private defaultSessionKey; private systemPrompt; private stopped; private activeRequests; private _requestCount; private _failureCount; private _totalLatencyMs; private _lastRequestAt; constructor(options: CodexRuntimeProcessOptions); prompt(content: string, callbacks?: ClaudePromptCallbacks, options?: PromptOptions): Promise; getSessionPolicyStatus(options: PromptOptions): SessionPolicyStatus; sendMessage(content: string, callbacks?: ClaudePromptCallbacks): Promise; private execute; private notifyError; setSessionId(id: string): void; setSystemPrompt(prompt: string): void; isReady(): boolean; isHealthy(): boolean; getMetrics(): RunnerMetrics; stop(): Promise; getSessionId(): string; } //# sourceMappingURL=runtime-process.d.ts.map