/** * Drift detection logic. * * Pure functions — given a stored SemanticFields and a current artifact * snapshot, classify status and produce a DriftRow. The CLI layer * orchestrates filesystem I/O around these primitives. * * @implements #1208 */ import type { SemanticFields } from '../enrichment/types.js'; import { type DriftRow, type DriftThresholds } from './types.js'; /** Tokenize and de-stop a string into a content keyword set. */ export declare function keywords(text: string): Set; /** Jaccard-like overlap ratio between two keyword sets. */ export declare function keywordOverlap(a: Set, b: Set): number; /** Symmetric difference between two symbol arrays. */ export declare function symbolDelta(stored: string[], current: string[]): { added: string[]; removed: string[]; }; export interface DriftInput { artifactId: string; stored: SemanticFields; currentHash: string; /** Recomputed semantic fields for the current artifact (or null if not recomputed). */ recomputed: SemanticFields | null; thresholds?: Partial; now?: Date; } /** Classify drift for a single entry. */ export declare function detectDrift(input: DriftInput): DriftRow; //# sourceMappingURL=drift.d.ts.map