@obsidicore/cascade-engine 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cascade/checkpoints.d.ts +55 -0
  3. package/dist/cascade/checkpoints.js +123 -0
  4. package/dist/cascade/checkpoints.js.map +1 -0
  5. package/dist/cascade/engine.d.ts +72 -0
  6. package/dist/cascade/engine.js +170 -0
  7. package/dist/cascade/engine.js.map +1 -0
  8. package/dist/cascade/gates.d.ts +46 -0
  9. package/dist/cascade/gates.js +199 -0
  10. package/dist/cascade/gates.js.map +1 -0
  11. package/dist/cascade/research.d.ts +50 -0
  12. package/dist/cascade/research.js +127 -0
  13. package/dist/cascade/research.js.map +1 -0
  14. package/dist/cli.d.ts +19 -0
  15. package/dist/cli.js +165 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/control/kalman.d.ts +53 -0
  18. package/dist/control/kalman.js +83 -0
  19. package/dist/control/kalman.js.map +1 -0
  20. package/dist/control/pid.d.ts +57 -0
  21. package/dist/control/pid.js +95 -0
  22. package/dist/control/pid.js.map +1 -0
  23. package/dist/control/stability.d.ts +42 -0
  24. package/dist/control/stability.js +117 -0
  25. package/dist/control/stability.js.map +1 -0
  26. package/dist/db/index.d.ts +26 -0
  27. package/dist/db/index.js +116 -0
  28. package/dist/db/index.js.map +1 -0
  29. package/dist/db/schema.sql +282 -0
  30. package/dist/graph/amem.d.ts +80 -0
  31. package/dist/graph/amem.js +190 -0
  32. package/dist/graph/amem.js.map +1 -0
  33. package/dist/graph/entities.d.ts +66 -0
  34. package/dist/graph/entities.js +187 -0
  35. package/dist/graph/entities.js.map +1 -0
  36. package/dist/graph/queries.d.ts +48 -0
  37. package/dist/graph/queries.js +176 -0
  38. package/dist/graph/queries.js.map +1 -0
  39. package/dist/hitl/dashboard.d.ts +51 -0
  40. package/dist/hitl/dashboard.js +135 -0
  41. package/dist/hitl/dashboard.js.map +1 -0
  42. package/dist/hitl/interventions.d.ts +36 -0
  43. package/dist/hitl/interventions.js +150 -0
  44. package/dist/hitl/interventions.js.map +1 -0
  45. package/dist/hitl/steering.d.ts +37 -0
  46. package/dist/hitl/steering.js +118 -0
  47. package/dist/hitl/steering.js.map +1 -0
  48. package/dist/index.d.ts +12 -0
  49. package/dist/index.js +701 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/memory/consolidation.d.ts +51 -0
  52. package/dist/memory/consolidation.js +122 -0
  53. package/dist/memory/consolidation.js.map +1 -0
  54. package/dist/memory/ncd.d.ts +40 -0
  55. package/dist/memory/ncd.js +90 -0
  56. package/dist/memory/ncd.js.map +1 -0
  57. package/dist/memory/sm2.d.ts +44 -0
  58. package/dist/memory/sm2.js +119 -0
  59. package/dist/memory/sm2.js.map +1 -0
  60. package/dist/memory/tiers.d.ts +49 -0
  61. package/dist/memory/tiers.js +145 -0
  62. package/dist/memory/tiers.js.map +1 -0
  63. package/dist/server.d.ts +6 -0
  64. package/dist/server.js +6 -0
  65. package/dist/server.js.map +1 -0
  66. package/dist/trust/ingestion.d.ts +38 -0
  67. package/dist/trust/ingestion.js +147 -0
  68. package/dist/trust/ingestion.js.map +1 -0
  69. package/dist/trust/patterns.d.ts +26 -0
  70. package/dist/trust/patterns.js +78 -0
  71. package/dist/trust/patterns.js.map +1 -0
  72. package/dist/trust/scoring.d.ts +39 -0
  73. package/dist/trust/scoring.js +206 -0
  74. package/dist/trust/scoring.js.map +1 -0
  75. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Memory Consolidation — Interleaved Replay + Retrieval Testing
3
+ *
4
+ * Dual-trigger:
5
+ * 1. Round-boundary: quality consolidation between research rounds
6
+ * 2. Context-saturation: emergency flush before compaction
7
+ *
8
+ * Process:
9
+ * 1. NCD deduplication — remove redundant findings
10
+ * 2. Kalman fusion — merge confidence from multiple sources
11
+ * 3. Graph update — extract entities and relationships
12
+ * 4. Tier management — promote/demote based on composite scores
13
+ * 5. SM-2 scheduling — queue items for retrieval testing
14
+ */
15
+ export interface ConsolidationResult {
16
+ deduped: {
17
+ kept: number;
18
+ removed: number;
19
+ clusters: number;
20
+ };
21
+ fused: number;
22
+ entitiesUpdated: number;
23
+ tierChanges: {
24
+ promoted: number;
25
+ demoted: number;
26
+ graphPromoted: number;
27
+ };
28
+ pruned: {
29
+ archived: number;
30
+ protected: number;
31
+ };
32
+ scheduled: number;
33
+ durationMs: number;
34
+ }
35
+ /**
36
+ * Run full consolidation cycle for a cascade round.
37
+ */
38
+ export declare function consolidateRound(cascadeId: string, roundIndex: number): ConsolidationResult;
39
+ /**
40
+ * Emergency consolidation — triggered before context compaction.
41
+ * Faster and more aggressive than round-boundary consolidation.
42
+ */
43
+ export declare function emergencyConsolidate(cascadeId: string): {
44
+ savedFindings: number;
45
+ savedEntities: number;
46
+ };
47
+ /**
48
+ * Get consolidation history for a cascade.
49
+ */
50
+ export declare function getConsolidationHistory(cascadeId: string): any[];
51
+ //# sourceMappingURL=consolidation.d.ts.map
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Memory Consolidation — Interleaved Replay + Retrieval Testing
3
+ *
4
+ * Dual-trigger:
5
+ * 1. Round-boundary: quality consolidation between research rounds
6
+ * 2. Context-saturation: emergency flush before compaction
7
+ *
8
+ * Process:
9
+ * 1. NCD deduplication — remove redundant findings
10
+ * 2. Kalman fusion — merge confidence from multiple sources
11
+ * 3. Graph update — extract entities and relationships
12
+ * 4. Tier management — promote/demote based on composite scores
13
+ * 5. SM-2 scheduling — queue items for retrieval testing
14
+ */
15
+ import { getDb } from '../db/index.js';
16
+ import { deduplicateFindings } from './ncd.js';
17
+ import { batchFuseForClaim } from '../control/kalman.js';
18
+ import { runTierCycle, prunePeripheral } from './tiers.js';
19
+ import { scheduleItem } from './sm2.js';
20
+ /**
21
+ * Run full consolidation cycle for a cascade round.
22
+ */
23
+ export function consolidateRound(cascadeId, roundIndex) {
24
+ const start = Date.now();
25
+ const db = getDb();
26
+ // 1. NCD Deduplication
27
+ const findings = db.prepare(`SELECT id, claim, confidence FROM findings
28
+ WHERE cascade_id = ? AND cascade_round = ? AND quarantined = 0`)
29
+ .all(cascadeId, roundIndex);
30
+ const dedupResult = deduplicateFindings(findings);
31
+ // Mark removed findings
32
+ if (dedupResult.removed.length > 0) {
33
+ const placeholders = dedupResult.removed.map(() => '?').join(',');
34
+ db.prepare(`UPDATE findings SET quarantined = 1, retrieval_weight = 0
35
+ WHERE id IN (${placeholders})`).run(...dedupResult.removed);
36
+ }
37
+ // 2. Kalman Confidence Fusion
38
+ // Group findings by claim similarity and fuse confidence
39
+ let fusedCount = 0;
40
+ const keptFindings = db.prepare(`SELECT id, claim, confidence, confidence_uncertainty,
41
+ trust_composite, source_type FROM findings
42
+ WHERE cascade_id = ? AND quarantined = 0`)
43
+ .all(cascadeId);
44
+ // Simple grouping: findings with same content hash cluster
45
+ const claimGroups = new Map();
46
+ for (const f of keptFindings) {
47
+ const key = f.id; // Content-addressable — same claim = same ID
48
+ if (!claimGroups.has(key))
49
+ claimGroups.set(key, []);
50
+ claimGroups.get(key).push(f);
51
+ }
52
+ for (const [_key, group] of claimGroups) {
53
+ if (group.length <= 1)
54
+ continue;
55
+ const base = group[0];
56
+ const measurements = group.slice(1).map((f) => ({
57
+ confidence: f.confidence,
58
+ sourceType: f.source_type,
59
+ trustScore: f.trust_composite || 0.5,
60
+ }));
61
+ const fused = batchFuseForClaim(base.confidence, base.confidence_uncertainty || 1.0, measurements);
62
+ db.prepare('UPDATE findings SET confidence = ?, confidence_uncertainty = ? WHERE id = ?')
63
+ .run(fused.confidence, fused.uncertainty, base.id);
64
+ fusedCount++;
65
+ }
66
+ // 3. Tier Management
67
+ const tierChanges = runTierCycle();
68
+ // 4. Pruning (conservative — only peripheral below threshold)
69
+ const pruneResult = prunePeripheral(0.05, 20);
70
+ // 5. SM-2 Scheduling — schedule high-importance findings for review
71
+ let scheduledCount = 0;
72
+ const importantFindings = db.prepare(`SELECT id FROM findings
73
+ WHERE cascade_id = ? AND quarantined = 0 AND confidence >= 0.6
74
+ ORDER BY confidence DESC LIMIT 20`)
75
+ .all(cascadeId);
76
+ for (const f of importantFindings) {
77
+ scheduleItem(f.id, 'finding');
78
+ scheduledCount++;
79
+ }
80
+ const durationMs = Date.now() - start;
81
+ // Log consolidation
82
+ db.prepare(`INSERT INTO consolidation_log
83
+ (cascade_id, trigger_type, items_processed, items_promoted, items_demoted, items_pruned, duration_ms)
84
+ VALUES (?, 'round_boundary', ?, ?, ?, ?, ?)`)
85
+ .run(cascadeId, findings.length, tierChanges.promoted + tierChanges.graphPromoted, tierChanges.demoted, pruneResult.archived.length, durationMs);
86
+ return {
87
+ deduped: { kept: dedupResult.kept.length, removed: dedupResult.removed.length, clusters: dedupResult.clusters },
88
+ fused: fusedCount,
89
+ entitiesUpdated: 0, // Entity extraction is done by the LLM, not here
90
+ tierChanges,
91
+ pruned: { archived: pruneResult.archived.length, protected: pruneResult.skippedProtected },
92
+ scheduled: scheduledCount,
93
+ durationMs,
94
+ };
95
+ }
96
+ /**
97
+ * Emergency consolidation — triggered before context compaction.
98
+ * Faster and more aggressive than round-boundary consolidation.
99
+ */
100
+ export function emergencyConsolidate(cascadeId) {
101
+ const db = getDb();
102
+ // Ensure all high-confidence findings are properly stored
103
+ const unsaved = db.prepare(`SELECT COUNT(*) as n FROM findings
104
+ WHERE cascade_id = ? AND quarantined = 0 AND trust_signals_json IS NULL`)
105
+ .get(cascadeId);
106
+ // Force a tier cycle to preserve important entities
107
+ runTierCycle();
108
+ return {
109
+ savedFindings: unsaved?.n || 0,
110
+ savedEntities: 0,
111
+ };
112
+ }
113
+ /**
114
+ * Get consolidation history for a cascade.
115
+ */
116
+ export function getConsolidationHistory(cascadeId) {
117
+ const db = getDb();
118
+ return db.prepare(`SELECT * FROM consolidation_log
119
+ WHERE cascade_id = ? ORDER BY created_at DESC LIMIT 10`)
120
+ .all(cascadeId);
121
+ }
122
+ //# sourceMappingURL=consolidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../src/memory/consolidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * NCD (Normalized Compression Distance) — Deduplication
3
+ *
4
+ * NCD(x,y) = [C(xy) - min(C(x),C(y))] / max(C(x),C(y))
5
+ * Using zlib deflate as compressor.
6
+ *
7
+ * < 0.3 = redundant (deduplicate)
8
+ * 0.3-0.7 = related (link in graph)
9
+ * > 0.7 = novel (keep as separate finding)
10
+ */
11
+ /**
12
+ * Compute NCD between two strings.
13
+ */
14
+ export declare function ncd(x: string, y: string): number;
15
+ /**
16
+ * Classify the relationship between two texts based on NCD.
17
+ */
18
+ export declare function classifyRelation(distance: number): 'redundant' | 'related' | 'novel';
19
+ /**
20
+ * Find near-duplicates in a set of claims.
21
+ * Returns clusters of redundant claims.
22
+ */
23
+ export declare function findDuplicateClusters(claims: {
24
+ id: string;
25
+ text: string;
26
+ }[], threshold?: number): Map<string, string[]>;
27
+ /**
28
+ * Deduplicate findings for a cascade round.
29
+ * Keeps the highest-confidence finding from each cluster.
30
+ */
31
+ export declare function deduplicateFindings(findings: {
32
+ id: string;
33
+ claim: string;
34
+ confidence: number;
35
+ }[], threshold?: number): {
36
+ kept: string[];
37
+ removed: string[];
38
+ clusters: number;
39
+ };
40
+ //# sourceMappingURL=ncd.d.ts.map
@@ -0,0 +1,90 @@
1
+ /**
2
+ * NCD (Normalized Compression Distance) — Deduplication
3
+ *
4
+ * NCD(x,y) = [C(xy) - min(C(x),C(y))] / max(C(x),C(y))
5
+ * Using zlib deflate as compressor.
6
+ *
7
+ * < 0.3 = redundant (deduplicate)
8
+ * 0.3-0.7 = related (link in graph)
9
+ * > 0.7 = novel (keep as separate finding)
10
+ */
11
+ import { deflateSync } from 'node:zlib';
12
+ /**
13
+ * Compute NCD between two strings.
14
+ */
15
+ export function ncd(x, y) {
16
+ const bx = Buffer.from(x, 'utf-8');
17
+ const by = Buffer.from(y, 'utf-8');
18
+ const bxy = Buffer.from(x + y, 'utf-8');
19
+ const cx = deflateSync(bx).length;
20
+ const cy = deflateSync(by).length;
21
+ const cxy = deflateSync(bxy).length;
22
+ const minC = Math.min(cx, cy);
23
+ const maxC = Math.max(cx, cy);
24
+ if (maxC === 0)
25
+ return 0;
26
+ return (cxy - minC) / maxC;
27
+ }
28
+ /**
29
+ * Classify the relationship between two texts based on NCD.
30
+ */
31
+ export function classifyRelation(distance) {
32
+ if (distance < 0.3)
33
+ return 'redundant';
34
+ if (distance < 0.7)
35
+ return 'related';
36
+ return 'novel';
37
+ }
38
+ /**
39
+ * Find near-duplicates in a set of claims.
40
+ * Returns clusters of redundant claims.
41
+ */
42
+ export function findDuplicateClusters(claims, threshold = 0.3) {
43
+ const clusters = new Map();
44
+ const assigned = new Set();
45
+ for (let i = 0; i < claims.length; i++) {
46
+ if (assigned.has(claims[i].id))
47
+ continue;
48
+ const cluster = [claims[i].id];
49
+ assigned.add(claims[i].id);
50
+ for (let j = i + 1; j < claims.length; j++) {
51
+ if (assigned.has(claims[j].id))
52
+ continue;
53
+ const distance = ncd(claims[i].text, claims[j].text);
54
+ if (distance < threshold) {
55
+ cluster.push(claims[j].id);
56
+ assigned.add(claims[j].id);
57
+ }
58
+ }
59
+ if (cluster.length > 1) {
60
+ clusters.set(claims[i].id, cluster);
61
+ }
62
+ }
63
+ return clusters;
64
+ }
65
+ /**
66
+ * Deduplicate findings for a cascade round.
67
+ * Keeps the highest-confidence finding from each cluster.
68
+ */
69
+ export function deduplicateFindings(findings, threshold = 0.3) {
70
+ const clusters = findDuplicateClusters(findings.map(f => ({ id: f.id, text: f.claim })), threshold);
71
+ const removed = [];
72
+ const kept = [];
73
+ for (const [_leaderId, clusterIds] of clusters) {
74
+ // Find highest confidence in cluster
75
+ const clusterFindings = findings.filter(f => clusterIds.includes(f.id));
76
+ clusterFindings.sort((a, b) => b.confidence - a.confidence);
77
+ kept.push(clusterFindings[0].id);
78
+ for (let i = 1; i < clusterFindings.length; i++) {
79
+ removed.push(clusterFindings[i].id);
80
+ }
81
+ }
82
+ // Add unclustered findings to kept
83
+ for (const f of findings) {
84
+ if (!kept.includes(f.id) && !removed.includes(f.id)) {
85
+ kept.push(f.id);
86
+ }
87
+ }
88
+ return { kept, removed, clusters: clusters.size };
89
+ }
90
+ //# sourceMappingURL=ncd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ncd.js","sourceRoot":"","sources":["../../src/memory/ncd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * SM-2 Spaced Repetition Scheduler
3
+ *
4
+ * Schedules knowledge retrieval testing to strengthen important memories.
5
+ * Based on SuperMemo SM-2 algorithm with ease factor ≥ 1.3.
6
+ *
7
+ * Integration: After consolidation, schedule retrieval tests for key findings.
8
+ * Before each round, check which items are due for review.
9
+ */
10
+ export interface SM2Item {
11
+ itemId: string;
12
+ itemType: 'finding' | 'entity' | 'hypothesis';
13
+ easeFactor: number;
14
+ intervalDays: number;
15
+ repetitions: number;
16
+ nextReview: string;
17
+ lastReviewed: string | null;
18
+ retrievalSuccessRate: number;
19
+ }
20
+ /**
21
+ * Schedule a new item for spaced repetition.
22
+ */
23
+ export declare function scheduleItem(itemId: string, itemType: SM2Item['itemType']): void;
24
+ /**
25
+ * Get items due for review.
26
+ */
27
+ export declare function getDueItems(limit?: number): SM2Item[];
28
+ /**
29
+ * Record a review result and update SM-2 parameters.
30
+ *
31
+ * @param itemId The item reviewed
32
+ * @param quality 0-5 quality score (0-2 = failure, 3-5 = success)
33
+ */
34
+ export declare function recordReview(itemId: string, quality: number): SM2Item | null;
35
+ /**
36
+ * Get review statistics for reporting.
37
+ */
38
+ export declare function getReviewStats(): {
39
+ totalScheduled: number;
40
+ dueNow: number;
41
+ avgEaseFactor: number;
42
+ avgSuccessRate: number;
43
+ };
44
+ //# sourceMappingURL=sm2.d.ts.map
@@ -0,0 +1,119 @@
1
+ /**
2
+ * SM-2 Spaced Repetition Scheduler
3
+ *
4
+ * Schedules knowledge retrieval testing to strengthen important memories.
5
+ * Based on SuperMemo SM-2 algorithm with ease factor ≥ 1.3.
6
+ *
7
+ * Integration: After consolidation, schedule retrieval tests for key findings.
8
+ * Before each round, check which items are due for review.
9
+ */
10
+ import { getDb } from '../db/index.js';
11
+ /**
12
+ * Schedule a new item for spaced repetition.
13
+ */
14
+ export function scheduleItem(itemId, itemType) {
15
+ const db = getDb();
16
+ db.prepare(`INSERT INTO sm2_schedule (item_id, item_type, ease_factor, interval_days, repetitions, next_review)
17
+ VALUES (?, ?, 2.5, 1.0, 0, datetime('now'))
18
+ ON CONFLICT(item_id) DO NOTHING`)
19
+ .run(itemId, itemType);
20
+ }
21
+ /**
22
+ * Get items due for review.
23
+ */
24
+ export function getDueItems(limit = 10) {
25
+ const db = getDb();
26
+ const rows = db.prepare(`SELECT * FROM sm2_schedule
27
+ WHERE next_review <= datetime('now')
28
+ ORDER BY next_review ASC
29
+ LIMIT ?`)
30
+ .all(limit);
31
+ return rows.map(rowToSM2Item);
32
+ }
33
+ /**
34
+ * Record a review result and update SM-2 parameters.
35
+ *
36
+ * @param itemId The item reviewed
37
+ * @param quality 0-5 quality score (0-2 = failure, 3-5 = success)
38
+ */
39
+ export function recordReview(itemId, quality) {
40
+ const db = getDb();
41
+ const row = db.prepare('SELECT * FROM sm2_schedule WHERE item_id = ?').get(itemId);
42
+ if (!row)
43
+ return null;
44
+ const item = rowToSM2Item(row);
45
+ const q = Math.max(0, Math.min(5, Math.round(quality)));
46
+ // SM-2 algorithm
47
+ let newEF = item.easeFactor + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02));
48
+ newEF = Math.max(1.3, newEF); // Minimum ease factor
49
+ let newInterval;
50
+ let newReps;
51
+ if (q < 3) {
52
+ // Failed — reset
53
+ newReps = 0;
54
+ newInterval = 1;
55
+ }
56
+ else {
57
+ // Success
58
+ newReps = item.repetitions + 1;
59
+ if (newReps === 1) {
60
+ newInterval = 1;
61
+ }
62
+ else if (newReps === 2) {
63
+ newInterval = 6;
64
+ }
65
+ else {
66
+ newInterval = item.intervalDays * newEF;
67
+ }
68
+ }
69
+ // Update success rate
70
+ const totalReviews = item.repetitions + 1;
71
+ const successes = item.retrievalSuccessRate * item.repetitions + (q >= 3 ? 1 : 0);
72
+ const newSuccessRate = successes / totalReviews;
73
+ db.prepare(`UPDATE sm2_schedule SET
74
+ ease_factor = ?,
75
+ interval_days = ?,
76
+ repetitions = ?,
77
+ next_review = datetime('now', '+' || CAST(? AS TEXT) || ' days'),
78
+ last_reviewed = datetime('now'),
79
+ retrieval_success_rate = ?
80
+ WHERE item_id = ?`)
81
+ .run(newEF, newInterval, newReps, Math.round(newInterval), newSuccessRate, itemId);
82
+ return {
83
+ ...item,
84
+ easeFactor: newEF,
85
+ intervalDays: newInterval,
86
+ repetitions: newReps,
87
+ retrievalSuccessRate: newSuccessRate,
88
+ };
89
+ }
90
+ /**
91
+ * Get review statistics for reporting.
92
+ */
93
+ export function getReviewStats() {
94
+ const db = getDb();
95
+ const total = db.prepare('SELECT COUNT(*) as n FROM sm2_schedule').get().n;
96
+ const due = db.prepare("SELECT COUNT(*) as n FROM sm2_schedule WHERE next_review <= datetime('now')").get().n;
97
+ const avgEF = db.prepare('SELECT AVG(ease_factor) as v FROM sm2_schedule').get()?.v || 2.5;
98
+ const avgSR = db.prepare('SELECT AVG(retrieval_success_rate) as v FROM sm2_schedule WHERE repetitions > 0').get()?.v || 0;
99
+ return {
100
+ totalScheduled: total,
101
+ dueNow: due,
102
+ avgEaseFactor: Math.round(avgEF * 100) / 100,
103
+ avgSuccessRate: Math.round(avgSR * 100) / 100,
104
+ };
105
+ }
106
+ // --- Helpers ---
107
+ function rowToSM2Item(row) {
108
+ return {
109
+ itemId: row.item_id,
110
+ itemType: row.item_type,
111
+ easeFactor: row.ease_factor,
112
+ intervalDays: row.interval_days,
113
+ repetitions: row.repetitions,
114
+ nextReview: row.next_review,
115
+ lastReviewed: row.last_reviewed,
116
+ retrievalSuccessRate: row.retrieval_success_rate,
117
+ };
118
+ }
119
+ //# sourceMappingURL=sm2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sm2.js","sourceRoot":"","sources":["../../src/memory/sm2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Memory Tier Management — Weibull Decay + Graph-Aware Promotion
3
+ *
4
+ * Tiers:
5
+ * Core — k=0.8 (Lindy effect — survives longer over time)
6
+ * Working — k=1.0 (standard exponential decay)
7
+ * Peripheral — k=1.3 (fades fast)
8
+ *
9
+ * Composite score: 0.4×weibull + 0.3×min(1, access/10) + 0.3×importance×confidence
10
+ *
11
+ * Promotion: Working→Core when access≥10 AND composite≥0.7
12
+ * Demotion: Working→Peripheral when composite<0.15
13
+ * Graph-aware: peripheral connected to ≥2 core entities → promoted (spreading activation)
14
+ */
15
+ export interface TierConfig {
16
+ k: number;
17
+ lambda: number;
18
+ }
19
+ /**
20
+ * Compute Weibull survival probability.
21
+ * S(t) = exp(-(t/λ)^k)
22
+ */
23
+ export declare function weibullSurvival(ageDays: number, tier: string): number;
24
+ /**
25
+ * Compute composite score for an entity.
26
+ */
27
+ export declare function computeComposite(ageDays: number, tier: string, accessCount: number, importance: number, confidence?: number): number;
28
+ /**
29
+ * Run tier promotion/demotion cycle across all entities.
30
+ * Returns counts of changes made.
31
+ */
32
+ export declare function runTierCycle(): {
33
+ promoted: number;
34
+ demoted: number;
35
+ graphPromoted: number;
36
+ };
37
+ /**
38
+ * Apply CD47 protection — mark active/cited entities as immune from pruning.
39
+ */
40
+ export declare function applyCD47Protection(cascadeId: string): number;
41
+ /**
42
+ * Prune low-value entities (archive, never delete).
43
+ * Only prunes peripheral entities with composite below threshold.
44
+ */
45
+ export declare function prunePeripheral(threshold?: number, maxPrune?: number): {
46
+ archived: string[];
47
+ skippedProtected: number;
48
+ };
49
+ //# sourceMappingURL=tiers.d.ts.map