import type { TaskStore } from '../task/task-store.js'; import type { RunStore } from '../run/run-store.js'; import type { HistoryQuery } from '../history/history-query.js'; import type { ContextAssembler } from './context-assembler.js'; import type { SourceTraceLocator } from '../trajectory/source-trace-locator.js'; import type { TrajectoryTurnReader } from './trajectory-turn-reader.js'; import { type DiagnosticianContextPayload } from '../../context-payload.js'; export declare class SqliteContextAssembler implements ContextAssembler { private readonly taskStore; private readonly historyQuery; private readonly runStore; constructor(taskStore: TaskStore, historyQuery: HistoryQuery, runStore: RunStore, options?: { sourceTraceLocator?: SourceTraceLocator; trajectoryTurnReader?: TrajectoryTurnReader; }); private readonly sourceTraceLocator?; private readonly trajectoryTurnReader?; assemble(taskId: string): Promise; private buildFullTraceFromSource; private locateSourceRuns; private static buildFullTraceV2; private static buildAmbiguityNotes; /** * PRI-350: Read turns from TrajectoryDB and convert to HistoryQueryEntry[]. * Returns empty array if no turns found, with ambiguityNote added (ERR-002). */ private readTrajectoryTurns; private static extractStringField; private static extractEvidence; /** * PRI-844: extract the Owner's verbatim correction from persisted * diagnosticJson. Pass-through — the 2000-char defensive bound was already * applied by the writer (buildDiagnosticJson); no second truncation here so * there is exactly one storage bound. Undefined for legacy rows that * predate the field (Case D) — callers treat absence as "no correction * evidence available", never as license to fabricate one. */ private static extractCorrectionEvidence; /** * Reconstruct a DiagnosticianTaskRecord from a base TaskRecord by decoding * the diagnostic_json column (if present). */ private static reconstructDiagnosticianRecord; } //# sourceMappingURL=sqlite-context-assembler.d.ts.map