import { type AdvisoryOutcome, type AdvisoryProjection } from './advisory.js'; import type { RalplanConsensusGate, RalplanDraftResult, RalplanReviewResult, RalplanRuntimeResult, RunRalplanConsensusOptions } from './runtime-contract.js'; type Binding = Record | null; type ModeUpdates = Record & { ralplan_consensus_gate?: RalplanConsensusGate; }; export interface RalplanRuntimeSnapshot { iteration: number; drafts: RalplanDraftResult[]; architectReviews: RalplanReviewResult[]; criticReviews: RalplanReviewResult[]; consensusGate: RalplanConsensusGate; reviewHistory: Array>; latestPlanPath?: string; artifacts: Record; } interface RuntimeLifecycleBase { readonly kind: 'standard' | 'advisory'; readonly sessionId: string | undefined; reviewScope(task: string): string; postDraft(planPath: string | undefined): Promise; postReview(planPath: string | undefined, role: 'architect' | 'critic', artifactPath?: string): Promise; completeApproved(input: RalplanRuntimeSnapshot & { architectReview: RalplanReviewResult; criticReview: RalplanReviewResult; }): Promise; terminalFailure(input: RalplanRuntimeSnapshot & { outcome: Exclude; error: string; statusMessage: string; updates?: ModeUpdates; }): Promise; recoverFailure(primaryError: unknown, input: RalplanRuntimeSnapshot): Promise; } export type RalplanRuntimeLifecycle = RuntimeLifecycleBase; declare const hooks: { reconcile?: (cwd: string, sessionId: string) => Promise; readBinding?: (cwd: string, sessionId: string) => Promise; beforeProjectLifecycle?: () => void | Promise; }; export declare function __setRalplanAdvisoryLifecycleHooksForTests(next: typeof hooks): void; type AdvisoryCatchRecoveryProjection = Pick & { fence: { state: string; } | null; journal: { outcome: string; } | null; }; export declare function isCompletedAdvisoryCatchRecovery(recovered: AdvisoryCatchRecoveryProjection | null, binding: Record | null, sessionId: string, generationId: string): boolean; export declare function verifyAdvisoryCatchRecovery(input: { cwd: string; sessionId: string; generationId: string; primaryError: unknown; }): Promise; export declare function createRalplanRuntimeLifecycle(input: { cwd: string; runtimeSessionId: string | undefined; maxIterations: number; options: RunRalplanConsensusOptions; existing: Record | null; }): Promise; export declare function terminalizeCancelledAdvisory(input: { cwd: string; sessionId: string; generationId: string; closingTurnId: string; iteration: number; consensusGate: RalplanConsensusGate; revalidateAuthority?: (checkpoint: string) => void | Promise; }): Promise; export {}; //# sourceMappingURL=runtime-advisory-lifecycle.d.ts.map