/** * Step 0.8 gate — the session's on-disk inputs. * * Extracted from `step-08-gate.ts` when the remedy exemption pushed that file * past the 300-line cap. Each reader answers ONE question about the session * directory; the gate keeps the decision. */ export interface Step08Progress { readonly jobId: string; readonly done: number; readonly total: number; readonly currentSlice: string; readonly lastCommitSha: string | null; readonly updatedAt: string; } export declare function readProgressIfAny(projectRoot: string, sessionId: string, jid: string): Step08Progress | null; export declare function readPromptFromLastPromptFile(projectRoot: string, sessionId: string): string; /** * Job ids this session owns a ledger for, sorted. * * A ledger is `job//state.json`, which only `peaks job init` writes. * `peaks code detect-job` writes the deliberate `job-shape.json`; since backlog * §17.1 fix (3) `peaks job init` also writes a PROVISIONAL one right after the * ledger. A ledger with no decision is therefore a ledger from before that fix * or a provisional write that failed — not proof the decision step was skipped. */ export declare function ledgerJobIds(projectRoot: string, sessionId: string): string[];