/** * Checkpoint Store — estado persistente suficiente para reconstruir e * retomar uma execução interrompida (crash, kill, timeout do processo). * * Diferente do Tracer (que só persiste o resultado FINAL de um run), o * checkpoint é salvo incrementalmente durante a execução — a cada rodada de * batches do Orchestrator — para que `izanagi resume ` continue de * onde parou em vez de reexecutar tudo. */ import type { ExecutionGraph } from '../types.js'; import type { PhaseId } from '../token/budget.js'; export interface CheckpointArtifact { nodeId: string; kind: string; content: unknown; valid: boolean; score: number; } export interface CheckpointData { runId: string; task: string; category: string; primaryAgent: string; skillChain: string[]; model: string; provider: string; graph: ExecutionGraph; artifacts: CheckpointArtifact[]; budgetSpent: Partial>; attempts: number; tokensUsed: number; savedAt: string; } export declare class CheckpointStore { private readonly dir; constructor(opts: { baseDir: string; }); get directory(): string; private fileFor; /** Persiste (sobrescreve) o checkpoint do run — chamado a cada rodada de batches. */ save(data: CheckpointData): string; load(runId: string): CheckpointData | null; /** Remove o checkpoint — chamado quando o run completa (nada mais a resumir). */ delete(runId: string): void; /** Lista checkpoints pendentes (execuções interrompidas, resumíveis), mais recente primeiro. */ list(): CheckpointData[]; } /** Progresso resumido de um checkpoint — usado por `izanagi resume`/`doctor`/`explain`. */ export declare function checkpointProgress(data: CheckpointData): { done: number; total: number; pendingNodeIds: string[]; }; //# sourceMappingURL=checkpoint.d.ts.map