/** * Decision cross-link module for CLEO BRAIN. * * Extracts file paths and symbol names referenced in a decision's text and * rationale, then creates `affects` edges from the decision graph node to * matching `file` / `symbol` nodes in brain_page_nodes. This implements * the cross-substrate edge described in * docs/plans/brain-synaptic-visualization-research.md §3.2. * * All database operations are best-effort — they never throw or block the * caller. Nodes for referenced files / symbols are upserted on demand so * the graph remains consistent even when the target has not yet been * independently indexed. * * @task T626 * @epic T626 */ /** A reference extracted from a decision or rationale string. */ export interface ExtractedRef { /** Raw text that matched. */ raw: string; /** Resolved graph node ID: 'file:' or 'symbol:'. */ nodeId: string; /** Discriminated node type. */ nodeType: 'file' | 'symbol'; /** Human-readable label for the graph node. */ label: string; } /** * Extract file-path and symbol references from free-form text. * * Symbols shorter than 4 characters or matching common English stop-words * are filtered to reduce noise. * * @param text - Decision text and/or rationale to scan. * @returns Deduplicated array of extracted references. */ export declare function extractReferencedSymbols(text: string): ExtractedRef[]; /** * Create `affects` edges from a decision graph node to every referenced * file / symbol node. * * For each reference: * 1. Upsert the target node (file or symbol) so the graph stays consistent. * 2. Insert an `applies_to` edge from `decision:` to the target node. * * All writes are best-effort via {@link upsertGraphNode} and * {@link addGraphEdge} — failures are swallowed internally. * * @param projectRoot - Absolute path to the project root directory. * @param decisionId - The decision ID (e.g. `D001`). * @param refs - Extracted references returned by {@link extractReferencedSymbols}. */ export declare function linkDecisionToTargets(projectRoot: string, decisionId: string, refs: ExtractedRef[]): Promise; /** * Extract file/symbol references from a decision and create `applies_to` * edges in the brain graph. Combines {@link extractReferencedSymbols} and * {@link linkDecisionToTargets} in one call. * * This is the function wired into {@link storeDecision} after a new decision * is saved. It is always fire-and-forget: the caller should NOT await it * when used inside the decision write path. * * @param projectRoot - Absolute path to the project root directory. * @param decisionId - The saved decision ID (e.g. `D001`). * @param decisionText - Full decision text. * @param rationale - Full rationale text. */ export declare function autoCrossLinkDecision(projectRoot: string, decisionId: string, decisionText: string, rationale: string): Promise; //# sourceMappingURL=decision-cross-link.d.ts.map