import type { ExecutorKind } from "./executors.js"; import type { TerminalControlRef } from "./terminal-agent-adapter.js"; import { type TerminalNativeIdentity } from "./terminal-binding-authority.js"; import type { VirginBindingRecoveryState } from "./terminal-acceptance-application-service.js"; export interface VirginCodexSessionBindingFacts { bindingId?: string; generation?: number; pid?: number; terminalIncarnationMatches: boolean; nativeThreadId?: string; processUuid?: string; processBirth?: string; rollout?: TerminalNativeIdentity["rollout"]; } export interface VirginCodexRecoveryFacts { agent: ExecutorKind; anchorVersion?: number; anchorNativeThreadBinding?: string; anchorProcessUuid?: string; anchorProcessBirth?: string; terminalControl?: TerminalControlRef; initialTerminalIncarnationMatches: boolean; submissionStatus?: string; messageId?: string; takeoverMessageId?: string; requestHash?: string; computedRequestHash?: string; bindingId?: string; bindingGeneration?: number; pid?: number; sessionId?: string; sessionAgent?: ExecutorKind; sessionStatus?: string; sessionBinding?: VirginCodexSessionBindingFacts; turnNativeThreadId?: string; turnProcessUuid?: string; turnProcessBirth?: string; turnRollout?: TerminalNativeIdentity["rollout"]; } export interface PersistedVirginIdentityProof { nativeThreadId?: string; processUuid?: string; processBirth?: string; rollout?: TerminalNativeIdentity["rollout"]; } export interface ManagedTurnRecoveryPorts { identity: { resolve(input: { pid: number; cwd?: string; preferredSessionId?: string; }): Promise; resolveCandidate(input: { pid: number; cwd?: string; requestHash: string; recoveryIdentity?: TerminalNativeIdentity; }): Promise; }; acceptance: { detect(identity: TerminalNativeIdentity, requestHash: string): boolean; }; authority: { prepareIdentityClaim(input: { pid: number; nativeThreadId: string; terminalControl: TerminalControlRef; sessionId: string; identity: TerminalNativeIdentity; }): Promise; assertTurn(identity?: TerminalNativeIdentity): void; }; persistence: { persistSessionIdentity(identity: TerminalNativeIdentity): PersistedVirginIdentityProof | undefined; persistTurnIdentity(identity: TerminalNativeIdentity): void; }; } export interface ManagedTurnRecoveryResult { state: VirginBindingRecoveryState; identity?: TerminalNativeIdentity; } export declare function isVirginCodexRecoveryCandidate(facts: VirginCodexRecoveryFacts): boolean; export declare function isCurrentVirginCodexRecoveryBoundary(facts: VirginCodexRecoveryFacts): boolean; /** * Recovers one split post-submission Session/Turn identity transaction. The * service sees only literal facts and typed capability ports, never Store, * filesystem, lock, JSON, or terminal-adapter instances. */ export declare class ManagedTurnRecoveryService { #private; constructor(ports: ManagedTurnRecoveryPorts); recover(facts: VirginCodexRecoveryFacts): Promise; }