/** * ContextRank Phase 0 (ADR-048 섹션 6.1~6.3 + 7) — 56f batch PageRank + MemoryRank 합성 (shadow). * * memory_edges 4종 + 56e per-memory 신호 → fused graph PPR(struct_rank) + MemoryRank 합성 + * RetentionScore/PruneScore/DecisionGate를 memories 컬럼에 기록 (액션 0 — 삭제/병합/rerank 없음): * - fused w(i→j) = α·sim + β·cooc + γ·ref + δ·temp (섹션 6.1, A2A 조정 .35/.30/.25/.10 — 섹션 11) * - cooc PPMI 정규화(raw count → PPMI → [0,1]) / temp max-norm / sim cosine 그대로 / ref DF 필터 weight * - teleport prior ∝ quality^a · tierPrior (reliability=1 중립, a=1) + c=.15 sparse power iteration (섹션 6.2) * - MemoryRank = w1·struct + w2·ref_local + w3·cooc_local + w4·uniqueness + w5·activation * + w6·reliability − w7·dup − w8·dump − w9·generic (섹션 6.3, w6=0) * - ref_local/cooc_local/coldstart는 edges/created_at 즉석 파생 (신호 컬럼 없음 — 56e 결정) * - RetentionScore(r1~r6 균등)/PruneScore(p1~p5 균등) + Hard Rules + DecisionGate (섹션 7, 보수적 시작) * * tierPrior/importancePrior/θ_cold는 ADR Open Q6/Q7 "구현 착수 시 결정" — 본 파일 상수가 결정값 (섹션 0.9 기록). */ import type { MemoryDatabase } from '../db/database.js'; /** 엣지 융합 가중 (ADR 섹션 11 A2A 초기 조정 — cooc/ref 희소로 α 임시 상향. 원본 .15/.35/.40/.10). */ export declare const FUSE_WEIGHTS: { readonly sim: 0.35; readonly cooc: 0.3; readonly ref: 0.25; readonly temp: 0.1; }; /** PPR restart 확률 (ADR 섹션 6.2 c≈0.15). */ export declare const PPR_RESTART = 0.15; /** power iteration 수렴 기준 (L1) + 최대 반복. */ export declare const PPR_EPSILON = 1e-9; export declare const PPR_MAX_ITERS = 100; /** MemoryRank 합성 가중 (ADR 섹션 6.3 — w6=0 재분배, reliability 활성화 후 원복). */ export declare const MEMORYRANK_WEIGHTS: { readonly w1_struct: 0.3; readonly w2_refLocal: 0.11; readonly w3_coocLocal: 0.09; readonly w4_uniqueness: 0.16; readonly w5_activation: 0.14; readonly w6_reliability: 0; readonly w7_dup: 0.08; readonly w8_dump: 0.06; readonly w9_generic: 0.06; }; /** cold-start 시간 상수 (ADR 섹션 11 τ_cold=21d) + 삭제 금지 임계 θ_cold (Open Q7 — 본 결정: 0.5 ≈ age 14.6d). */ export declare const COLDSTART_TAU_DAYS = 21; export declare const COLDSTART_THETA = 0.5; /** teleport tier prior (ADR Open Q6 — 본 결정: semantic 장기 지식 > episodic > working). */ export declare const TIER_PRIOR: Record; /** * Hard-protect 카테고리 (ADR 섹션 7.2 {security, incident, decision, rule/policy, retrospective}의 * A2A 8-카테고리 매핑: decision=의사결정 / convention=규칙 / error_solution=장애해결 / learning=회고). */ export declare const HARD_PROTECT_CATEGORIES: Set; /** retention importancePrior(category) (ADR Open Q6 — hard-protect 1.0 / 지식성 0.7 / 기타 0.5). */ export declare const IMPORTANCE_PRIOR: Record; /** lowUsage 관측창 (생성 후 N일 경과 + access 0이어야 low-usage — 미성숙 usage 신호 보호). */ export declare const OBSERVATION_WINDOW_DAYS = 21; /** PruneScore 임계 (ADR 섹션 7.3 P 높음/중간 — 보수적 시작). */ export declare const PRUNE_HIGH = 0.7; export declare const PRUNE_MID = 0.5; export type Decision = 'KEEP' | 'MERGE' | 'ARCHIVE' | 'DELETE_CANDIDATE'; interface Edge { src: string; dst: string; weight: number; } /** * PPMI 정규화 (ADR 섹션 6.1 — cooc raw count → PPMI → [0,1] max-norm). * pmi(i,j) = log( w(i,j)·total / (rowSum(i)·rowSum(j)) ), ppmi = max(0, pmi). * 대칭 양방향 저장 전제(각 쌍 2회) — marginal/total 모두 일관 2배라 PMI 값 불변. */ export declare function ppmiNormalize(edges: Edge[]): Edge[]; export interface RankBuildResult { nodes: number; fusedEdges: number; iterations: number; converged: boolean; decisions: Record; elapsedMs: number; } /** * 56f: fused graph PPR + MemoryRank/Retention/Prune/DecisionGate 계산 + 컬럼 기록 (shadow). * 실행 전제: build-edges + build-signals 완료 (edges 4종 + 56e 신호 컬럼). */ export declare function computeRanks(db: MemoryDatabase, opts?: { nowMs?: number; restart?: number; }): RankBuildResult; export {}; //# sourceMappingURL=rank-builder.d.ts.map