import type { ExecutorKind } from "./executors.js"; /** * Verified native model-control behavior profiles. * * Keep every version/profile pairing here. Callers must consume this registry * instead of independently deciding that a running TUI is compatible. */ export declare const TERMINAL_MODEL_CONTROL_PROFILE_IDS: Readonly<{ readonly codex: "codex-model-control-0.154.0"; readonly codex01551: "codex-model-control-0.155.1"; readonly claude: "claude-model-control-2.1.266"; }>; export type TerminalModelControlBehaviorProfile = typeof TERMINAL_MODEL_CONTROL_PROFILE_IDS[keyof typeof TERMINAL_MODEL_CONTROL_PROFILE_IDS]; export type TerminalModelControlScope = "current_session" | "current_and_new_sessions"; export interface TerminalModelControlCapabilities { readonly status: "supported" | "unsupported" | "unknown"; readonly agentVersion?: string; readonly behaviorProfile?: string; readonly scope?: TerminalModelControlScope; readonly modelSelection: boolean; readonly reasoningEffortSelection: boolean; readonly reason: string; } export interface TerminalModelControlPlan { readonly behaviorProfile: TerminalModelControlBehaviorProfile; readonly command: "/model"; readonly scope: TerminalModelControlScope; readonly requiresIdle: true; readonly requiresExactEmptyComposer: true; } export interface TerminalModelControlProfile { readonly agent: ExecutorKind; readonly agentVersion: string; readonly behaviorProfile: TerminalModelControlBehaviorProfile; readonly plan: TerminalModelControlPlan; readonly supportsZeroRolloutPhysicalAuthority: boolean; readonly supportsResidualContinuation: boolean; readonly supportsResidualRepair: boolean; /** Exact native slash-completion rows accepted before dispatching Enter. */ readonly slashCompletionRows: readonly string[]; /** * Whether an exact styled Composer/popup may prove the slash surface without * the legacy viewport-wide background paint. Keep this version-profiled: * identical visible completion text does not imply identical TUI authority. */ readonly allowsStyledSlashPopupWithoutViewportPaint: boolean; readonly reason: string; } export declare const CODEX_MODEL_CONTROL_AGENT_VERSION = "0.154.0"; export declare const CODEX_MODEL_CONTROL_AGENT_VERSIONS: readonly ["0.154.0", "0.155.1"]; export type CodexModelControlAgentVersion = typeof CODEX_MODEL_CONTROL_AGENT_VERSIONS[number]; export declare const CLAUDE_MODEL_CONTROL_AGENT_VERSION = "2.1.266"; export declare function isCodexModelControlAgentVersion(value: string): value is CodexModelControlAgentVersion; export declare function terminalModelControlProfiles(): readonly TerminalModelControlProfile[]; export declare function terminalModelControlProfileFor(agent: ExecutorKind, agentVersion: string | undefined): TerminalModelControlProfile | undefined; export declare function terminalModelControlProfileForPlan(plan: TerminalModelControlPlan): TerminalModelControlProfile | undefined; export declare function terminalModelControlPlanConforms(input: { readonly agent: ExecutorKind; readonly agentVersion: string | undefined; readonly plan: TerminalModelControlPlan; }): boolean; export declare function isTerminalModelControlPlanForAgent(plan: TerminalModelControlPlan, agent: ExecutorKind): boolean; export declare function terminalModelControlSlashCompletionRows(plan: TerminalModelControlPlan): readonly string[]; export declare function terminalModelControlAllowsStyledSlashPopupWithoutViewportPaint(plan: TerminalModelControlPlan): boolean; export declare function probeTerminalModelControlProfile(agent: ExecutorKind, agentVersion: string | undefined): TerminalModelControlCapabilities; export declare function planTerminalModelControlProfile(capabilities: TerminalModelControlCapabilities): TerminalModelControlPlan;