import type { CanonicalState, DerivedState } from "../types/index.js"; export type AgentAction = { kind: "mission.create"; } | { kind: "mission.approve"; missionId?: string; } | { kind: "mission.evidence.add"; missionId?: string; } | { kind: "expedition.create"; missionId?: string; } | { kind: "expedition.approve"; expeditionId: string; } | { kind: "expedition.commit"; expeditionId: string; } | { kind: "expedition.start"; expeditionId: string; } | { kind: "expedition.complete"; expeditionId: string; } | { kind: "execution.mutate"; expeditionId: string; }; export type IntakeResult = { decision: "ALLOW"; activeMissionId?: string; activeExpeditionId?: string; note?: string; } | { decision: "BLOCK"; reason: string; requiredAction: string; }; /** * Validate an agent action against the current canonical state. * * The gate is intentionally simple: it checks lifecycle preconditions, * not semantic correctness. Domain invariants are enforced later by the * ExecutionGate and pure domain functions. */ export declare function validateAgentAction(action: AgentAction, state: CanonicalState, derivedState?: DerivedState): IntakeResult;