import type { CodingAgentSessionProvider } from "./agent-session-provider.js"; import type { ForkContextPackage } from "./codex-session-provider.js"; import type { ActiveCodexProcess } from "./codex-session-provider.js"; import { type ClaudeAgentRow } from "./claude-terminal-agent-adapter.js"; import { type CliCommandDependencies } from "./cli-runtime-context.js"; import type { ExecutorKind } from "./executors.js"; import { type TerminalAgentAdapterRegistry, type TerminalCompletionEvidence, type TerminalControlRef, type TerminalDurableCompletionRequest, type TerminalNativeIdentityFence, type TerminalRuntimeIdentity, type TerminalThreadLifecycleCandidateProvider } from "./terminal-agent-adapter.js"; import { TerminalAgentBridge } from "./terminal-agent-bridge.js"; import { type TerminalControlProvider, type TerminalControlProviderRegistry } from "./terminal-control-provider.js"; import { type TerminalProcessSource } from "./terminal-process-source.js"; import { type CodexModelControlAgentVersion, type CodexNativeModelCatalog } from "./terminal-model-control.js"; export type TerminalRuntimeCliOptions = Readonly>; type TerminalRuntimeDependencyKey = "terminalControlProviderRegistry" | "terminalProcessSource" | "loadClaudeAgentRows" | "agentVersionForRunningProcess" | "createAgentSessionProvider" | "codexLocalSessionAdapter" | "codexThreadLifecycleProvider" | "monotonicNowMs" | "sleep"; export type TerminalRuntimeCliDependencies = Readonly, TerminalRuntimeDependencyKey>>; export interface CodexCompletionContextMatch { context: ForkContextPackage; match: string; confidence: "high" | "medium" | "low"; } export interface TerminalRuntimeCompletionPorts { detectExactBound(input: Readonly<{ conversation: Readonly>; nativeTakeover?: Readonly>; request: TerminalDurableCompletionRequest; runtime?: Readonly>; }>): { handled: boolean; completion?: TerminalCompletionEvidence; }; loadCodexContexts(nativeTakeover?: Readonly>): Promise; } export interface RuntimeNativeIdentityRequest { agent: ExecutorKind; pid: number; cwd?: string; preferredSessionId?: string; allowedCompanionIdentity?: TerminalNativeIdentityFence; allowedAdditionalIdentities?: readonly TerminalNativeIdentityFence[]; } export interface TerminalRuntimeIdentityPorts { resolveCurrent(request: RuntimeNativeIdentityRequest): Promise; assertRuntime(input: Readonly<{ runtime?: TerminalRuntimeIdentity; currentIdentity: unknown; agent: ExecutorKind; pid: number; }>): void; } export interface TerminalRuntimeWorkspacePorts { assertConfigured(configured: unknown, candidate: unknown, subject: string): void; } export interface CreateTerminalRuntimeCliAdapterInput { options: TerminalRuntimeCliOptions; dependencies: TerminalRuntimeCliDependencies; completion: TerminalRuntimeCompletionPorts; identity: TerminalRuntimeIdentityPorts; workspace: TerminalRuntimeWorkspacePorts; } export interface TerminalRuntimeCliAdapter { createControlProviderRegistry(): TerminalControlProviderRegistry; createControlProvider(registry?: TerminalControlProviderRegistry): TerminalControlProvider; createProcessSource(): TerminalProcessSource; loadClaudeAgentRows(observation?: { required?: boolean; }): ClaudeAgentRow[]; createAgentRegistry(): TerminalAgentAdapterRegistry; createBridge(provider?: TerminalControlProvider, registry?: TerminalAgentAdapterRegistry): TerminalAgentBridge; createAgentSessionProvider(agent: string): CodingAgentSessionProvider; createThreadLifecycleCandidateProvider(agent: ExecutorKind): TerminalThreadLifecycleCandidateProvider; listActiveSessionsWithTerminalControl(provider: CodingAgentSessionProvider, terminalProvider?: TerminalControlProvider): Promise; agentVersionForRunningProcess(agent: ExecutorKind, pid: number): string | undefined; codexModelCatalogForRunningProcess(pid: number, expectedVersion: CodexModelControlAgentVersion, cwd?: string): CodexNativeModelCatalog; } /** * Build command-scoped terminal runtime infrastructure without process-global * provider state. Business completion and native-identity authority remain in * the callbacks supplied by the CLI composition root. */ export declare function createTerminalRuntimeCliAdapter(input: CreateTerminalRuntimeCliAdapterInput): TerminalRuntimeCliAdapter; /** Decode the provider-owned terminal control payload without product policy. */ export declare function terminalControlFromTakeover(nativeTakeover: unknown): TerminalControlRef | undefined; export {};