import { type ChildLifecycleRuntime } from "./child-lifecycle-runtime.js"; import { RunFlightLedger, type FlightObservation, type RunFlightEvent } from "./run-flight-ledger.js"; import { type TerminalRescueAcceptedBase, type TerminalRescueBudget, type TerminalRescueTarget } from "./terminal-rescue-policy.js"; export interface TerminalRescueRequest { readonly unit_id: string; readonly failed_attempt_id: string; readonly accepted_base: TerminalRescueAcceptedBase; readonly budget_request: TerminalRescueBudget; readonly explicit_override: boolean; } export interface TerminalRescueExecution { readonly child_id: string; readonly runtime: ChildLifecycleRuntime; /** Start inference only after the runtime has durably registered this host-created child. */ begin(): Promise; readonly completion: Promise<{ readonly observed_model: string | null; readonly observed_variant: string | null; readonly observation: FlightObservation; readonly failure: Extract["failure"]; readonly disposition: "succeeded" | "failed" | "cancelled"; readonly references: Extract["references"]; }>; } export type TerminalRescueAttempt = Extract & { readonly terminal_rescue_contract: TerminalRescueAcceptedBase; }; export type TerminalRescueRunResult = { readonly status: "non_rescue"; readonly reason: string; } | { readonly status: "existing"; readonly attempt: TerminalRescueAttempt; } | { readonly status: "waiting"; readonly attempt: TerminalRescueAttempt; readonly reason: string; } | { readonly status: "finished"; readonly attempt: TerminalRescueAttempt; readonly outcome: Awaited; readonly candidate_gates: "validation_review_cas_required"; }; /** The host must reuse its normal writer admission and execute only the pinned attempt model. */ export interface TerminalRescueHost { availableTarget(): Promise; start(attempt: TerminalRescueAttempt, signal: AbortSignal): Promise; } /** Reserves once before host dispatch; final validation, review and CAS remain with the candidate owner. */ export declare class TerminalRescueRuntime { readonly ledger: RunFlightLedger; readonly host: TerminalRescueHost; constructor(ledger: RunFlightLedger, host: TerminalRescueHost); execute(request: TerminalRescueRequest): Promise; }