/** * Brain.db noise purge utility — removes 2927 noise entries leaving ~57 signal entries. * * Purge rules: * - Patterns: keep newest per unique pattern text (dedup), delete duplicates * - Learnings: delete ALL (all are auto-generated task completion noise) * - Decisions: delete ALL except D-mntpeeer (the one real architectural decision) * - Observations: delete task-start/task-complete/session-note/test/junk noise * * Safety: requires backup to exist before calling. Never touches tasks.db. * * @task T524 * @epic T523 */ /** Result counts from a purge run. */ export interface PurgeResult { /** Number of pattern rows deleted. */ patternsDeleted: number; /** Number of learning rows deleted. */ learningsDeleted: number; /** Number of decision rows deleted. */ decisionsDeleted: number; /** Number of observation rows deleted. */ observationsDeleted: number; /** Counts after purge. */ after: { patterns: number; learnings: number; decisions: number; observations: number; }; /** FTS5 indexes rebuilt. */ fts5Rebuilt: boolean; } /** * Execute the brain.db noise purge. * * Deletes ~2927 noise entries across four tables, leaving ~57 signal entries. * The one real architectural decision (D-mntpeeer) is explicitly preserved. * * Rules applied in order: * 1. Patterns: deduplicate by pattern text — keep newest per unique text, delete older dupes * 2. Learnings: delete all (100% noise — auto-generated "Completed:" and dependency notices) * 3. Decisions: delete all except D-mntpeeer * 4. Observations: delete task-start, task-complete, session-note, and test/junk entries * * @param projectRoot - Absolute path to the project root (e.g. /mnt/projects/cleocode) * @returns PurgeResult with before/after counts and FTS5 status */ export declare function purgeBrainNoise(projectRoot: string): Promise; //# sourceMappingURL=brain-purge.d.ts.map