import { CancellableChildLifecycle, type ChildLifecycleRuntime } from "./child-lifecycle-runtime.js"; import { EvidenceCapsuleStore, type EvidenceSourceReference } from "./evidence-capsule.js"; import { type ExecutionPlan } from "./execution-plan.js"; import { type LunaFabricContract } from "./luna-fabric-contract.js"; import { type FailureSwarmLane } from "./failure-swarm-plan.js"; import { RunFlightLedger, type DiagnosisFlightState, type DiagnosisSelection, type FlightBudgetCharge, type FlightResourceBudget, type FlightObservation } from "./run-flight-ledger.js"; export interface FailureSwarmRequest { readonly run_id: string; readonly unit_id: string; readonly attempt_id: string; readonly cause: "known" | "unknown"; readonly source_capsule_id: string; readonly causal_classes: readonly string[]; readonly max_lanes: number; readonly per_lane_budget_charge: FlightBudgetCharge; readonly per_lane_resource_budget?: FlightResourceBudget; readonly timeout_ms: number; } export interface ReadOnlyDiagnosisDescriptor { readonly swarm_id: string; readonly lane_id: string; readonly diagnosis_id: string; readonly causal_class: string; readonly run_id: string; readonly unit_id: string; readonly failed_attempt_id: string; readonly candidate_id: string; readonly source_capsule_id: string; readonly source_manifest: readonly string[]; readonly deadline_ms: number; readonly access: "read_only"; } export interface DiagnosisFinding { readonly causal_class: string; readonly verdict: "supported" | "excluded" | "unknown"; readonly validation_fingerprints: readonly string[]; } export declare class FailureSwarmRuntime { readonly ledger: RunFlightLedger; readonly store: EvidenceCapsuleStore; readonly currentSources: (paths: readonly string[]) => Promise[]>; readonly ownerRoot: string; readonly plan: ExecutionPlan; readonly fabric: LunaFabricContract; constructor(ledger: RunFlightLedger, store: EvidenceCapsuleStore, plan: unknown, fabric: unknown, currentSources: (paths: readonly string[]) => Promise[]>, ownerRoot: string); get(swarmID: string): Promise; descriptor(swarm: DiagnosisFlightState, laneID: string): ReadOnlyDiagnosisDescriptor; prepare(request: FailureSwarmRequest, lanes: readonly FailureSwarmLane[]): Promise<{ readonly status: "not_planned"; readonly reason: import("./failure-swarm-plan.js").FailureSwarmNonPlanReason; } | { readonly status: "rejected"; readonly reason: "invalid_input" | "invalid_identity" | "invalid_budget" | "budget_exceeded"; } | { status: "prepared"; swarm: DiagnosisFlightState; replay: boolean; }>; claim(swarmID: string, laneID: string, callID: string): Promise; bindChild(descriptor: ReadOnlyDiagnosisDescriptor, callID: string, childID: string, runtime: ChildLifecycleRuntime): Promise; finish(swarmID: string, laneID: string, value: unknown, observation: FlightObservation): Promise; select(swarmID: string, input: Omit): Promise<{ contract: Readonly<{ budget_request: Readonly<{ kind: "implementation" | import("./run-flight-ledger.js").RecoveryKind; recovery_actions: number; probe_iterations: number; model_attempts: number; }>; capsule_id: string; proposal: string; recovery_kind: Exclude; diagnosis_id: string; plan_id: string; plan_binding_id: string; candidate_id: string; failed_attempt_id: string; unit_id: string; scope_read: readonly string[]; scope_write: readonly string[]; acceptance: readonly string[]; validation: Readonly<{ command: readonly string[]; level: "targeted" | "full"; }>; }>; selection: DiagnosisSelection; replay: boolean; executed_attempt_id: string | null; }>; }