import { type CtxRunner } from "../recall/ctx.js"; /** claude code stores transcripts under ~/.claude/projects/; * ctx records THAT as the workspace. Map a repo root to candidate workspaces. */ export declare function workspaceCandidates(repoRoot: string, home?: string): string[]; /** themed probes — SHORT queries, several per theme: ctx's ranked match wants * most words present, so long keyword soups zero out on a workspace-filtered * subset. Short probes hit; the merge dedupes. */ export declare const HISTORY_THEMES: { kind: string; probes: string[]; }[]; export interface HistoryExcerpt { kind: string; sessionId: string; timestamp?: string; snippet: string; } /** search the build history per theme; dedupe by (session, snippet-prefix). */ export declare function gatherHistory(repoRoot: string, run?: CtxRunner, limitPerTheme?: number): { workspace: string | null; excerpts: HistoryExcerpt[]; }; export declare const HISTORY_SYSTEM = "You are slowcook's build-history archaeologist. The excerpts below come\nfrom the CODING-AGENT SESSIONS THAT BUILT this repository \u2014 the discussions\nwhere decisions were made, approaches were tried and abandoned, and bugs were\ndiscovered. Each excerpt is tagged with a candidate kind and its session id.\n\nExtract the durable knowledge: statements a newcomer (or a product intake)\nshould know that the CODE ITSELF does not say. For each, output:\n- kind: \"decision\" | \"rejected_approach\" | \"known_issue\" | \"constraint\"\n- statement: one clear sentence, past tense for history (\"X was tried and\n reverted because Y\"), present for standing facts.\n- session: the session id of the excerpt(s) you drew it from (REQUIRED \u2014\n uncited claims are dropped).\n- when: the excerpt's date (YYYY-MM-DD) if present.\n\nRules: only what the excerpts actually support \u2014 no invention, no padding.\nMerge duplicates. Skip excerpts that are just command output or pleasantries.\nOutput STRICT JSON only: {\"claims\":[{\"kind\":\"...\",\"statement\":\"...\",\"session\":\"...\",\"when\":\"...\"}]}"; export interface HistoryClaim { kind: string; statement: string; session: string; when?: string; } /** validate + citation-enforce the model's output against real session ids. */ export declare function parseHistoryClaims(text: string, validSessions: Set): HistoryClaim[]; /** survey-claim-shaped output, so dash's knowledge sync ingests it as-is. */ export declare function toSurveyShape(claims: HistoryClaim[]): { source: string; area: string; statement: string; status: string; evidence: Record; }[]; export declare function historyOutputPath(repoRoot: string): string; export declare function brewingDirExists(repoRoot: string): boolean; //# sourceMappingURL=history.d.ts.map