/** * The source role: a Codex home becomes a list of sessions, and one session becomes the * canonical vocabulary. Every result body is dropped (FR-24) and every reasoning trace is * ignored (FR-28, C-4). */ import type { CanonicalSession, CanonicalTurn, SessionDescriptor } from "./contract.js"; import type { CodexSessionMeta } from "./rollout.js"; export interface CodexRollout { filePath: string; meta: CodexSessionMeta | null; turns: CanonicalTurn[]; /** Entries of a type this module does not understand. Codex drops them in silence (C-6). */ skippedEntries: number; startedAt: string | null; updatedAt: string | null; title: string; changedPaths: string[]; truncated: boolean; } export declare class CodexRolloutUnreadableError extends Error { constructor(filePath: string); } /** Lenient: a file cut mid-entry still yields whatever parsed, with `truncated` set. */ export declare function scanRollout(filePath: string): Promise; /** Strict: FR-51's "unreadable" answer. */ export declare function readRollout(filePath: string): Promise; export declare function listCodexSessions(home: string): Promise; export declare function loadCodexSession(descriptor: SessionDescriptor): Promise;