/** * ADR-017 L7: Auto Consolidation (Dream) * * 트리거: 24시간 경과 OR 5세션 이상 * 동작: 카테고리별 + 최근 30일 메모리에서 cosine > 0.9 쌍 병합 * 제한: O(n²) 방지를 위해 카테고리+기간 제한 */ import type { MemoryDatabase } from '../db/database.js'; export interface ConsolidationResult { merged: number; conflicts: number; skipped: number; /** * #101: 보호 자산이라 병합을 건너뛴 쌍 수. * 0이 아니면 그 세션에서 실제로 무보호 병합이 일어났을 자리다 — 이 채널의 유일한 관측 앵커이므로 * 호출부가 반드시 로깅해야 한다(`session-end.ts` Consolidation done). */ protectedSkipped: number; /** * #104 (ADR-057): 병합 결과가 `MERGE_CONTENT_MAX_CHARS`를 넘겨 건너뛴 쌍 수. * 0이 아니면 그 세션에서 **원본이 잘리고 상대가 소멸했을** 자리다. * `protectedSkipped`와 같은 이유로 호출부가 반드시 로깅해야 한다. */ truncationSkipped: number; } /** * 24시간 OR 5세션 경과 여부 확인 */ export declare function shouldConsolidate(db: MemoryDatabase, projectPath: string): boolean; /** * 카테고리별 cosine > 0.9 쌍 병합 */ export declare function runConsolidation(db: MemoryDatabase, projectPath: string): ConsolidationResult; //# sourceMappingURL=consolidation.d.ts.map