/** * CodraGraph-side glue for the Phase 4 versioned graph store. * * The graphstore package itself is engine-agnostic; everything that * touches LadybugDB lives here, in codragraph/. Best-effort by design: * if any step fails the analyze flow continues and the user keeps a * working index — versioning gracefully degrades to "no snapshot * recorded for this run" rather than breaking unrelated paths. */ import { type ObjectId, type Snapshot, type SnapshotStats } from '@codragraph/graphstore'; /** Subdirectory of `/.codragraph` that holds versioning artifacts. */ export declare const GRAPHSTORE_SUBDIR = "graphstore"; export interface RecordAnalysisSnapshotOptions { /** Absolute path of the repo's `.codragraph/` storage directory. */ readonly storagePath: string; /** Git HEAD of the indexed repo, when known. */ readonly indexedRepoCommit?: string; /** * Author for the implicit "analyze" commit. Defaults to a generic * `@codragraph/cli` identity when callers don't have a real one to hand. */ readonly author?: { readonly name: string; readonly email: string; }; /** Override the commit message — defaults to a timestamped analyze marker. */ readonly message?: string; /** Called with per-table failures so the analyze caller can log them. */ readonly onSkipTable?: (tableName: string, error: unknown) => void; } export interface RecordAnalysisSnapshotResult { readonly snapshotId: ObjectId; readonly commitId: ObjectId; readonly snapshot: Snapshot; readonly stats: SnapshotStats; readonly branch: string; } /** * Snapshot the currently-loaded LadybugDB into the content-addressed * store and advance the active branch's HEAD to the new commit. Caller * is expected to have already initialized cgdb with `initCgdb(...)`. * * Returns null if anything goes sideways (logged via `onSkipTable`); the * analyze pipeline treats that as "no snapshot for this run". */ export declare const recordAnalysisSnapshot: (opts: RecordAnalysisSnapshotOptions) => Promise;