import { spawnSync } from "node:child_process"; import { type AgentExecutionIntent } from "../contracts/index.js"; export type CodexFlagScope = "global" | "exec"; export type CodexPromptTransport = "stdin-dash" | "argv"; export type CodexWriteStrategy = "sandbox+approval" | "automation"; export interface CodexCapabilityFlag { flag: string; scope: CodexFlagScope; } export interface CodexSandboxCapability extends CodexCapabilityFlag { values: string[]; } export interface CodexApprovalCapability extends CodexCapabilityFlag { semantics: "approval-policy" | "automation-mode"; values?: string[]; } export interface CodexAutonomyResolution { binaryPath: string; intent: AgentExecutionIntent; strategy: "automation" | "sandbox+approval"; sandboxValue?: "workspace-write"; approvalValue?: string; } export interface CodexCapabilityProfile { binaryPath: string; supportsExec: boolean; probeSucceeded: boolean; probeError?: string; model?: CodexCapabilityFlag; cwd?: CodexCapabilityFlag; sandbox?: CodexSandboxCapability; /** Preferred compatibility alias. `automation` and `approvalPolicy` are authoritative. */ approval?: CodexApprovalCapability; automation?: CodexApprovalCapability; approvalPolicy?: CodexApprovalCapability; json?: CodexCapabilityFlag; color?: CodexCapabilityFlag & { neverValue?: string; }; userConfigIsolation?: CodexCapabilityFlag; promptTransport: CodexPromptTransport; promptTransports?: CodexPromptTransport[]; } export interface CodexExecArgsOptions { command?: string; workingDirectory: string; sandbox?: "read-only" | "workspace-write" | "danger-full-access"; model?: string; extraArgs?: string[]; mode?: "prompt" | "probe"; prompt?: string; capabilityProfile?: CodexCapabilityProfile; promptTransport?: CodexPromptTransport; writeStrategy?: CodexWriteStrategy; autonomyResolution?: CodexAutonomyResolution; } type SpawnSyncLike = typeof spawnSync; export declare function markCodexAutonomyResolutionVerifiedByLaunchProbe(resolution: CodexAutonomyResolution): CodexAutonomyResolution; export declare function isCodexAutonomyResolutionVerifiedByLaunchProbe(resolution: CodexAutonomyResolution): boolean; export declare function clearCodexCapabilityCacheForTests(): void; export declare function cacheCodexCapabilityProfile(profile: CodexCapabilityProfile, platform?: NodeJS.Platform): CodexCapabilityProfile; export declare function probeCodexCapabilities(binaryPath: string, options?: { platform?: NodeJS.Platform; spawnSyncImpl?: SpawnSyncLike; cache?: boolean; }): CodexCapabilityProfile; export declare function codexWriteStrategies(profile: CodexCapabilityProfile): CodexWriteStrategy[]; export declare function resolveCodexAutonomyCandidates(profile: CodexCapabilityProfile, intent?: AgentExecutionIntent): CodexAutonomyResolution[]; export declare function buildCodexExecArgs(options: CodexExecArgsOptions): string[]; export declare function buildCodexStdin(profile: CodexCapabilityProfile, prompt: string, transport?: CodexPromptTransport): string | undefined; export {};