import type { FlightBudgetCharge, FlightBudgetLimits, RecoveryKind } from "./run-flight-ledger.js"; export interface FailureSwarmIdentity { readonly run_id: string; readonly unit_id: string; readonly attempt_id: string; readonly candidate_id: string; } export interface FailureSwarmLane { readonly lane_id: string; readonly access: "read_only" | "write"; readonly available: boolean; } export interface FailureSwarmPlanInput { readonly identity: FailureSwarmIdentity; readonly remediation_status: "pending" | "completed"; readonly canonical_result: "not_run" | "passed" | "failed"; readonly cause: "known" | "unknown"; readonly origin: "implementation" | "read_only_diagnosis"; readonly prior_diagnosis_attempts: readonly FailureSwarmIdentity[]; readonly causal_classes: readonly string[]; readonly lanes: readonly FailureSwarmLane[]; readonly max_lanes: number; readonly per_lane_budget_charge: FlightBudgetCharge; readonly budget_limits: FlightBudgetLimits; readonly budget_consumed: FlightBudgetLimits; } export interface FailureSwarmAssignment { readonly causal_class: string; readonly lane_id: string; } export interface FailureSwarmPlan { readonly identity: FailureSwarmIdentity; readonly recovery_kind: Extract; readonly assignments: readonly FailureSwarmAssignment[]; readonly budget_reservation: { readonly status: "requested"; readonly charge: FlightBudgetCharge; readonly remaining_after_reservation: FlightBudgetLimits; }; readonly runtime_responsibilities: { readonly persist_attempt_history: true; readonly reserve_budget: true; readonly dispatch_read_only_lanes: true; readonly execute_diagnosis: true; readonly accept_diagnosis_results: true; }; } export type FailureSwarmNonPlanReason = "remediation_not_completed" | "canonical_failure_absent" | "cause_already_known" | "recursive_diagnosis" | "attempt_already_diagnosed" | "no_diagnosis_capacity"; export type FailureSwarmPlanOutcome = { readonly status: "not_planned"; readonly reason: FailureSwarmNonPlanReason; } | { readonly status: "rejected"; readonly reason: "invalid_input" | "invalid_identity" | "invalid_budget" | "budget_exceeded"; } | { readonly status: "planned"; readonly plan: FailureSwarmPlan; }; /** * Builds an inert, deterministic read-only diagnosis proposal. The caller must persist history, * reserve the requested budget, dispatch the lanes, execute diagnosis, and accept its results. */ export declare function planFailureSwarm(input: unknown): FailureSwarmPlanOutcome;