/** * LH-3 Mission Continuation Scheduler v1. * * Freezes the exact continuation identity, cycle bindings, revision * guards, and event digests for a single Mission Execution. The * scheduler is a deterministic, replayable event log that can be * independently verified without the caller runtime. * * Every mutation produces a single immutable ContinuationSchedulerEvent * with a SHA-256 digest computed over its ordered fields. Events form * a hash chain via previousEventDigest. The aggregate history digest * covers the full event sequence. * * Threat Model: * The unkeyed event hash chain and semantic replay protect against * accidental mutation, partial rewriting, internally inconsistent * rewriting, broken ordering, and broken replay. They do not claim * protection against a privileged writer capable of rewriting the * complete record and all digests consistently. */ export declare const CONTINUATION_SCHEDULER_VERSION: 1; export type ContinuationSchedulerState = "IDLE" | "SCHEDULED" | "DISPATCHED"; export type ContinuationSchedulerEventKind = "SCHEDULE" | "DISPATCH" | "CONSUME" | "CANCEL" | "ABANDON"; export interface ContinuationSchedulerRecord { readonly schedulerVersion: 1; readonly executionId: string; readonly contractDigest: string; readonly schedulerRevision: number; readonly state: ContinuationSchedulerState; readonly events: readonly ContinuationSchedulerEvent[]; readonly historyDigest: string | null; } export interface ContinuationSchedulerEvent { readonly eventId: string; readonly kind: ContinuationSchedulerEventKind; readonly cycleId: string; readonly requestSchedulerRevision: number; readonly observedExecutionRevision: number; readonly fromState: ContinuationSchedulerState; readonly toState: ContinuationSchedulerState; readonly revisionBefore: number; readonly revisionAfter: number; readonly previousEventDigest: string | null; readonly eventDigest: string; readonly createdAt: string; readonly expectedExecutionRevision?: number; readonly dispatchedContinuationId?: string; readonly resultDigest?: string; } export interface ScheduleContinuationRequest { readonly eventId: string; readonly expectedSchedulerRevision: number; readonly expectedExecutionRevision: number; } export interface DispatchContinuationRequest { readonly eventId: string; readonly cycleId: string; readonly expectedSchedulerRevision: number; readonly dispatchedContinuationId: string; } export interface ConsumeContinuationRequest { readonly eventId: string; readonly cycleId: string; readonly expectedSchedulerRevision: number; readonly dispatchedContinuationId: string; readonly resultDigest: string; } export interface CancelContinuationRequest { readonly eventId: string; readonly cycleId: string; readonly expectedSchedulerRevision: number; } export interface AbandonContinuationRequest { readonly eventId: string; readonly cycleId: string; readonly expectedSchedulerRevision: number; } export type ContinuationSchedulerRequest = ScheduleContinuationRequest | DispatchContinuationRequest | ConsumeContinuationRequest | CancelContinuationRequest | AbandonContinuationRequest; export type ContinuationSchedulerErrorCode = "IDEMPOTENCY_CONFLICT" | "STALE_SCHEDULER_REVISION" | "INVALID_STATE" | "INVALID_CYCLE" | "CYCLE_NOT_SUPERSEDED" | "CYCLE_SUPERSEDED" | "EXECUTION_REVISION_MISMATCH" | "INVALID_REQUEST" | "CONTRACT_DIGEST_MISMATCH" | "ENOENT" | "INVALID_SCHEDULER_RECORD"; export interface ContinuationSchedulerResult { readonly ok: boolean; readonly record?: ContinuationSchedulerRecord; readonly event?: ContinuationSchedulerEvent; readonly error?: string; readonly code?: ContinuationSchedulerErrorCode; } export interface ContinuationSchedulerInspection { readonly valid: boolean; readonly executionId: string; readonly contractDigest: string; readonly schedulerRevision: number; readonly state: ContinuationSchedulerState; readonly eventCount: number; readonly historyDigest: string | null; readonly error?: string; } export interface ContinuationSchedulerValidation { readonly valid: boolean; readonly schedulerRevision: number; readonly state: ContinuationSchedulerState; readonly eventCount: number; readonly contractBound: boolean; readonly executionBound: boolean; readonly semanticValid: boolean; readonly error?: string; } export declare function initializeContinuationScheduler(executionId: string, contractDigest: string): ContinuationSchedulerRecord; export declare function scheduleContinuation(record: ContinuationSchedulerRecord | null, request: ScheduleContinuationRequest): ContinuationSchedulerResult; export declare function dispatchContinuation(record: ContinuationSchedulerRecord | null, request: DispatchContinuationRequest, currentExecutionRevision: number): ContinuationSchedulerResult; export declare function consumeContinuation(record: ContinuationSchedulerRecord | null, request: ConsumeContinuationRequest, currentExecutionRevision: number): ContinuationSchedulerResult; export declare function cancelContinuation(record: ContinuationSchedulerRecord | null, request: CancelContinuationRequest, currentExecutionRevision: number): ContinuationSchedulerResult; export declare function abandonContinuation(record: ContinuationSchedulerRecord | null, request: AbandonContinuationRequest, currentExecutionRevision: number): ContinuationSchedulerResult; export declare function inspectContinuationScheduler(record: ContinuationSchedulerRecord): ContinuationSchedulerInspection; export declare function validateContinuationScheduler(record: ContinuationSchedulerRecord, contractDigest: string, executionId: string, _executionRevision: number): ContinuationSchedulerValidation; //# sourceMappingURL=continuation-scheduler.d.ts.map