claude-cortex 1.5.2 → 1.6.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.
- package/README.md +11 -1
- package/dist/__tests__/consolidation-merge.test.d.ts +9 -0
- package/dist/__tests__/consolidation-merge.test.d.ts.map +1 -0
- package/dist/__tests__/consolidation-merge.test.js +137 -0
- package/dist/__tests__/consolidation-merge.test.js.map +1 -0
- package/dist/__tests__/contradictions.test.d.ts +8 -0
- package/dist/__tests__/contradictions.test.d.ts.map +1 -0
- package/dist/__tests__/contradictions.test.js +78 -0
- package/dist/__tests__/contradictions.test.js.map +1 -0
- package/dist/__tests__/salience-evolution.test.d.ts +7 -0
- package/dist/__tests__/salience-evolution.test.d.ts.map +1 -0
- package/dist/__tests__/salience-evolution.test.js +151 -0
- package/dist/__tests__/salience-evolution.test.js.map +1 -0
- package/dist/__tests__/store.test.js +261 -0
- package/dist/__tests__/store.test.js.map +1 -1
- package/dist/memory/activation.js +1 -1
- package/dist/memory/consolidate.d.ts +4 -2
- package/dist/memory/consolidate.d.ts.map +1 -1
- package/dist/memory/consolidate.js +138 -27
- package/dist/memory/consolidate.js.map +1 -1
- package/dist/memory/salience.d.ts.map +1 -1
- package/dist/memory/salience.js +17 -1
- package/dist/memory/salience.js.map +1 -1
- package/dist/memory/store.d.ts +9 -13
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +181 -48
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +6 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/recall.d.ts +5 -0
- package/dist/tools/recall.d.ts.map +1 -1
- package/dist/tools/recall.js +17 -1
- package/dist/tools/recall.js.map +1 -1
- package/dist/tools/remember.d.ts +2 -2
- package/package.json +1 -1
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Tests for core memory operations, salience detection, and decay calculations.
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect } from '@jest/globals';
|
|
7
|
+
import { jaccardSimilarity } from '../memory/similarity.js';
|
|
8
|
+
import { cosineSimilarity } from '../embeddings/generator.js';
|
|
7
9
|
describe('Memory Types', () => {
|
|
8
10
|
describe('DEFAULT_CONFIG', () => {
|
|
9
11
|
it('should have sensible default values', async () => {
|
|
@@ -318,4 +320,263 @@ describe('Content Truncation', () => {
|
|
|
318
320
|
expect(longContent.length).toBeGreaterThan(MAX_CONTENT_SIZE);
|
|
319
321
|
});
|
|
320
322
|
});
|
|
323
|
+
describe('Semantic Linking', () => {
|
|
324
|
+
describe('cosineSimilarity for embedding-based linking', () => {
|
|
325
|
+
it('should return 1.0 for identical vectors', () => {
|
|
326
|
+
const a = new Float32Array([1, 2, 3]);
|
|
327
|
+
const b = new Float32Array([1, 2, 3]);
|
|
328
|
+
expect(cosineSimilarity(a, b)).toBeCloseTo(1.0, 5);
|
|
329
|
+
});
|
|
330
|
+
it('should return 0.0 for orthogonal vectors', () => {
|
|
331
|
+
const a = new Float32Array([1, 0, 0]);
|
|
332
|
+
const b = new Float32Array([0, 1, 0]);
|
|
333
|
+
expect(cosineSimilarity(a, b)).toBeCloseTo(0.0, 5);
|
|
334
|
+
});
|
|
335
|
+
it('should return high similarity for similar vectors', () => {
|
|
336
|
+
const a = new Float32Array([1, 2, 3]);
|
|
337
|
+
const b = new Float32Array([1.1, 2.1, 3.1]);
|
|
338
|
+
expect(cosineSimilarity(a, b)).toBeGreaterThan(0.99);
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
describe('jaccardSimilarity for FTS fallback linking', () => {
|
|
342
|
+
it('should link memories with similar content but different tags', () => {
|
|
343
|
+
// Two memories about the same topic (SQLite performance) but with different tags
|
|
344
|
+
const memoryA = 'SQLite database performance optimization using WAL mode and busy timeout';
|
|
345
|
+
const memoryB = 'SQLite performance tuning with WAL journal mode and connection pooling';
|
|
346
|
+
const similarity = jaccardSimilarity(memoryA, memoryB);
|
|
347
|
+
// Should exceed the 0.3 threshold for FTS fallback linking
|
|
348
|
+
expect(similarity).toBeGreaterThanOrEqual(0.3);
|
|
349
|
+
});
|
|
350
|
+
it('should not link unrelated memories', () => {
|
|
351
|
+
const memoryA = 'React component lifecycle hooks and state management';
|
|
352
|
+
const memoryB = 'PostgreSQL database backup and restore procedures';
|
|
353
|
+
const similarity = jaccardSimilarity(memoryA, memoryB);
|
|
354
|
+
// Should be below the 0.3 threshold
|
|
355
|
+
expect(similarity).toBeLessThan(0.3);
|
|
356
|
+
});
|
|
357
|
+
it('should compute correct strength: min(0.7, sim + 0.2)', () => {
|
|
358
|
+
const memoryA = 'SQLite WAL mode performance optimization database';
|
|
359
|
+
const memoryB = 'SQLite WAL mode performance tuning database';
|
|
360
|
+
const sim = jaccardSimilarity(memoryA, memoryB);
|
|
361
|
+
const strength = Math.min(0.7, sim + 0.2);
|
|
362
|
+
expect(strength).toBeGreaterThan(0.2);
|
|
363
|
+
expect(strength).toBeLessThanOrEqual(0.7);
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
describe('Search Reinforcement and Co-Search Linking', () => {
|
|
367
|
+
it('should increase salience after repeated searches', async () => {
|
|
368
|
+
const { initDatabase, closeDatabase } = await import('../database/init.js');
|
|
369
|
+
const { addMemory, searchMemories, getMemoryById, deleteMemory } = await import('../memory/store.js');
|
|
370
|
+
closeDatabase();
|
|
371
|
+
initDatabase(':memory:');
|
|
372
|
+
let memoryId;
|
|
373
|
+
try {
|
|
374
|
+
const memory = addMemory({
|
|
375
|
+
title: 'Unique Reinforcement Test Target',
|
|
376
|
+
content: 'This memory is about reinforcement testing with a unique keyword xyzzyplugh',
|
|
377
|
+
tags: ['reinforcement-test'],
|
|
378
|
+
project: 'test-project',
|
|
379
|
+
});
|
|
380
|
+
memoryId = memory.id;
|
|
381
|
+
const initialSalience = memory.salience;
|
|
382
|
+
// Search 3 times for this memory
|
|
383
|
+
for (let i = 0; i < 3; i++) {
|
|
384
|
+
await searchMemories({ query: 'xyzzyplugh', project: 'test-project' });
|
|
385
|
+
}
|
|
386
|
+
const updated = getMemoryById(memoryId);
|
|
387
|
+
expect(updated).not.toBeNull();
|
|
388
|
+
expect(updated.salience).toBeGreaterThan(initialSalience);
|
|
389
|
+
}
|
|
390
|
+
finally {
|
|
391
|
+
if (memoryId) {
|
|
392
|
+
try {
|
|
393
|
+
deleteMemory(memoryId);
|
|
394
|
+
}
|
|
395
|
+
catch { /* ignore */ }
|
|
396
|
+
}
|
|
397
|
+
closeDatabase();
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
it('should link memories that co-appear in search results', async () => {
|
|
401
|
+
const { initDatabase, closeDatabase } = await import('../database/init.js');
|
|
402
|
+
const { addMemory, searchMemories, getRelatedMemories, deleteMemory } = await import('../memory/store.js');
|
|
403
|
+
closeDatabase();
|
|
404
|
+
initDatabase(':memory:');
|
|
405
|
+
let idA;
|
|
406
|
+
let idB;
|
|
407
|
+
try {
|
|
408
|
+
const memA = addMemory({
|
|
409
|
+
title: 'Co-search Link Memory Alpha',
|
|
410
|
+
content: 'Shared topic cosearchunique for linking test alpha variant',
|
|
411
|
+
tags: ['cosearch-test'],
|
|
412
|
+
project: 'test-project',
|
|
413
|
+
});
|
|
414
|
+
idA = memA.id;
|
|
415
|
+
const memB = addMemory({
|
|
416
|
+
title: 'Co-search Link Memory Beta',
|
|
417
|
+
content: 'Shared topic cosearchunique for linking test beta variant',
|
|
418
|
+
tags: ['cosearch-test'],
|
|
419
|
+
project: 'test-project',
|
|
420
|
+
});
|
|
421
|
+
idB = memB.id;
|
|
422
|
+
// Search for a term that matches both
|
|
423
|
+
await searchMemories({ query: 'cosearchunique', project: 'test-project' });
|
|
424
|
+
// Verify they got linked
|
|
425
|
+
const relatedToA = getRelatedMemories(idA);
|
|
426
|
+
const linkToB = relatedToA.find(r => r.memory.id === idB);
|
|
427
|
+
expect(linkToB).toBeDefined();
|
|
428
|
+
if (linkToB) {
|
|
429
|
+
expect(linkToB.relationship).toBe('related');
|
|
430
|
+
expect(linkToB.strength).toBeGreaterThan(0);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
finally {
|
|
434
|
+
if (idA) {
|
|
435
|
+
try {
|
|
436
|
+
deleteMemory(idA);
|
|
437
|
+
}
|
|
438
|
+
catch { /* ignore */ }
|
|
439
|
+
}
|
|
440
|
+
if (idB) {
|
|
441
|
+
try {
|
|
442
|
+
deleteMemory(idB);
|
|
443
|
+
}
|
|
444
|
+
catch { /* ignore */ }
|
|
445
|
+
}
|
|
446
|
+
closeDatabase();
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
describe('Integration: detectRelationships via addMemory', () => {
|
|
451
|
+
it('should auto-link related memories with different tags', async () => {
|
|
452
|
+
const { initDatabase, closeDatabase } = await import('../database/init.js');
|
|
453
|
+
const { addMemory, getRelatedMemories, deleteMemory } = await import('../memory/store.js');
|
|
454
|
+
// Close any existing database connection first
|
|
455
|
+
closeDatabase();
|
|
456
|
+
// Initialize a fresh test database
|
|
457
|
+
const testDbPath = ':memory:';
|
|
458
|
+
initDatabase(testDbPath);
|
|
459
|
+
let memoryAId;
|
|
460
|
+
let memoryBId;
|
|
461
|
+
try {
|
|
462
|
+
// Create first memory tagged "database"
|
|
463
|
+
const memoryA = addMemory({
|
|
464
|
+
title: 'SQLite Performance Optimization',
|
|
465
|
+
content: 'SQLite database performance optimization using WAL mode and busy timeout for concurrent access',
|
|
466
|
+
tags: ['database'],
|
|
467
|
+
project: 'test-project',
|
|
468
|
+
});
|
|
469
|
+
memoryAId = memoryA.id;
|
|
470
|
+
// Create second memory tagged "backend" with similar content
|
|
471
|
+
// This triggers detectRelationships internally, which should find memoryA
|
|
472
|
+
const memoryB = addMemory({
|
|
473
|
+
title: 'Backend Database Tuning',
|
|
474
|
+
content: 'SQLite performance tuning with WAL journal mode and connection pooling for better throughput',
|
|
475
|
+
tags: ['backend'],
|
|
476
|
+
project: 'test-project',
|
|
477
|
+
});
|
|
478
|
+
memoryBId = memoryB.id;
|
|
479
|
+
// Wait a bit for async embedding generation (though FTS fallback should work immediately)
|
|
480
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
481
|
+
// Verify that memoryB is linked to memoryA
|
|
482
|
+
const relatedToB = getRelatedMemories(memoryB.id);
|
|
483
|
+
// Should have at least one link
|
|
484
|
+
expect(relatedToB.length).toBeGreaterThan(0);
|
|
485
|
+
// Should contain a link to memoryA
|
|
486
|
+
const linkToA = relatedToB.find(rel => rel.memory.id === memoryA.id);
|
|
487
|
+
expect(linkToA).toBeDefined();
|
|
488
|
+
if (linkToA) {
|
|
489
|
+
// Verify the relationship properties
|
|
490
|
+
expect(linkToA.relationship).toBe('related');
|
|
491
|
+
expect(linkToA.strength).toBeGreaterThan(0);
|
|
492
|
+
expect(linkToA.strength).toBeLessThanOrEqual(1);
|
|
493
|
+
expect(linkToA.direction).toBe('outgoing');
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
finally {
|
|
497
|
+
// Cleanup: delete test memories
|
|
498
|
+
if (memoryAId) {
|
|
499
|
+
try {
|
|
500
|
+
deleteMemory(memoryAId);
|
|
501
|
+
}
|
|
502
|
+
catch (e) { /* ignore */ }
|
|
503
|
+
}
|
|
504
|
+
if (memoryBId) {
|
|
505
|
+
try {
|
|
506
|
+
deleteMemory(memoryBId);
|
|
507
|
+
}
|
|
508
|
+
catch (e) { /* ignore */ }
|
|
509
|
+
}
|
|
510
|
+
// Close the database connection
|
|
511
|
+
closeDatabase();
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
});
|
|
515
|
+
describe('enrichMemory', () => {
|
|
516
|
+
it('should enrich a memory with new related context', async () => {
|
|
517
|
+
const { initDatabase, closeDatabase } = await import('../database/init.js');
|
|
518
|
+
const { addMemory, enrichMemory, getMemoryById, deleteMemory } = await import('../memory/store.js');
|
|
519
|
+
closeDatabase();
|
|
520
|
+
initDatabase(':memory:');
|
|
521
|
+
let memoryId;
|
|
522
|
+
try {
|
|
523
|
+
const memory = addMemory({
|
|
524
|
+
title: 'JWT token authentication',
|
|
525
|
+
content: 'We use JWT tokens for authentication in our API server with rate limiting',
|
|
526
|
+
category: 'architecture',
|
|
527
|
+
tags: ['auth', 'jwt'],
|
|
528
|
+
project: 'test-project',
|
|
529
|
+
type: 'long_term',
|
|
530
|
+
});
|
|
531
|
+
memoryId = memory.id;
|
|
532
|
+
const result = enrichMemory(memoryId, 'We use JWT tokens for authentication in our API server with rate limiting and also need Redis caching', 'search');
|
|
533
|
+
expect(result.enriched).toBe(true);
|
|
534
|
+
const updated = getMemoryById(memoryId);
|
|
535
|
+
expect(updated).toBeDefined();
|
|
536
|
+
expect(updated.content).toContain('rate limiting');
|
|
537
|
+
expect(updated.content).toContain('search:');
|
|
538
|
+
}
|
|
539
|
+
finally {
|
|
540
|
+
if (memoryId) {
|
|
541
|
+
try {
|
|
542
|
+
deleteMemory(memoryId);
|
|
543
|
+
}
|
|
544
|
+
catch { /* ignore */ }
|
|
545
|
+
}
|
|
546
|
+
closeDatabase();
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
it('should reject enrichment when context is too similar', async () => {
|
|
550
|
+
const { initDatabase, closeDatabase } = await import('../database/init.js');
|
|
551
|
+
const { addMemory, enrichMemory, deleteMemory } = await import('../memory/store.js');
|
|
552
|
+
closeDatabase();
|
|
553
|
+
initDatabase(':memory:');
|
|
554
|
+
let memoryId;
|
|
555
|
+
try {
|
|
556
|
+
const memory = addMemory({
|
|
557
|
+
title: 'JWT token authentication',
|
|
558
|
+
content: 'We use JWT tokens for authentication with RS256 signing',
|
|
559
|
+
category: 'architecture',
|
|
560
|
+
tags: ['auth'],
|
|
561
|
+
project: 'test-project',
|
|
562
|
+
type: 'long_term',
|
|
563
|
+
});
|
|
564
|
+
memoryId = memory.id;
|
|
565
|
+
const result = enrichMemory(memoryId, 'We use JWT tokens for authentication with RS256 signing', 'search');
|
|
566
|
+
expect(result.enriched).toBe(false);
|
|
567
|
+
// May fail due to cooldown (shared process state) or similarity
|
|
568
|
+
expect(result.reason).toMatch(/similar|cooldown/);
|
|
569
|
+
}
|
|
570
|
+
finally {
|
|
571
|
+
if (memoryId) {
|
|
572
|
+
try {
|
|
573
|
+
deleteMemory(memoryId);
|
|
574
|
+
}
|
|
575
|
+
catch { /* ignore */ }
|
|
576
|
+
}
|
|
577
|
+
closeDatabase();
|
|
578
|
+
}
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
});
|
|
321
582
|
//# sourceMappingURL=store.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../src/__tests__/store.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../src/__tests__/store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const activationCache = new Map();
|
|
|
22
22
|
const DECAY_HALF_LIFE_MINUTES = 30; // Activation halves every 30 minutes
|
|
23
23
|
const SPREAD_FACTOR = 0.5; // How much activation spreads (50% of link strength)
|
|
24
24
|
const MAX_SPREAD_DEPTH = 1; // Only spread to direct neighbors (not neighbors of neighbors)
|
|
25
|
-
const MAX_ACTIVATION_BOOST = 0.
|
|
25
|
+
const MAX_ACTIVATION_BOOST = 0.3; // Cap search boost at 30%
|
|
26
26
|
/**
|
|
27
27
|
* Activate a memory and spread activation to linked memories
|
|
28
28
|
*
|
|
@@ -19,8 +19,10 @@ export declare function consolidate(config?: MemoryConfig): ConsolidationResult;
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function enforceMemoryLimits(config?: MemoryConfig): number;
|
|
21
21
|
/**
|
|
22
|
-
* Find and merge similar memories
|
|
23
|
-
*
|
|
22
|
+
* Find and merge similar short-term memories into coherent long-term entries.
|
|
23
|
+
* Groups memories by project|category, then clusters by Jaccard similarity
|
|
24
|
+
* on content (0.6 weight) + title (0.4 weight).
|
|
25
|
+
* Returns count of deleted (merged) memories.
|
|
24
26
|
*/
|
|
25
27
|
export declare function mergeSimilarMemories(project?: string, similarityThreshold?: number): number;
|
|
26
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../../src/memory/consolidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,MAAM,EACN,YAAY,EAEZ,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../../src/memory/consolidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,MAAM,EACN,YAAY,EAEZ,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;AAyBpB;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,GAAE,YAA6B,GACpC,mBAAmB,CAqErB;AAgDD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,YAA6B,GAAG,MAAM,CA+CjF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,CAAC,EAAE,MAAM,EAChB,mBAAmB,GAAE,MAAa,GACjC,MAAM,CA4HR;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,GAAE,YAA6B,GACpC,OAAO,CAAC,cAAc,CAAC,CAqCzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAuCpE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC,CAcD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAavD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgCnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,GAAE,YAA6B,GACpC;IACD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CA8BA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,YAA6B,GACpC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2BxC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,GAAE,YAA6B,GACpC;IAAE,aAAa,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAe3E"}
|
|
@@ -12,6 +12,8 @@ import { DEFAULT_CONFIG, } from './types.js';
|
|
|
12
12
|
import { getMemoriesByType, getRecentMemories, promoteMemory, deleteMemory, searchMemories, getMemoryStats, updateDecayScores, } from './store.js';
|
|
13
13
|
import { processDecay, } from './decay.js';
|
|
14
14
|
import { detectContradictions, linkContradictions, } from './contradiction.js';
|
|
15
|
+
import { jaccardSimilarity } from './similarity.js';
|
|
16
|
+
import { pruneActivationCache } from './activation.js';
|
|
15
17
|
/**
|
|
16
18
|
* Run full consolidation process
|
|
17
19
|
* This is like the brain's sleep consolidation - should be run periodically
|
|
@@ -51,6 +53,14 @@ export function consolidate(config = DEFAULT_CONFIG) {
|
|
|
51
53
|
deleted += enforceMemoryLimits(config);
|
|
52
54
|
// Persist updated decay scores for efficient sorting
|
|
53
55
|
updateDecayScores();
|
|
56
|
+
// Evolve salience based on structural importance
|
|
57
|
+
let salienceEvolved = 0;
|
|
58
|
+
try {
|
|
59
|
+
salienceEvolved = evolveSalience(db);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error('[claude-cortex] Salience evolution failed:', e);
|
|
63
|
+
}
|
|
54
64
|
// ORGANIC FEATURE: Contradiction Detection (Phase 3)
|
|
55
65
|
// Detect and link contradicting memories during consolidation
|
|
56
66
|
let contradictionsFound = 0;
|
|
@@ -63,9 +73,52 @@ export function consolidate(config = DEFAULT_CONFIG) {
|
|
|
63
73
|
catch (e) {
|
|
64
74
|
console.error('[claude-cortex] Contradiction detection failed:', e);
|
|
65
75
|
}
|
|
66
|
-
|
|
76
|
+
// Prune activation cache to prevent unbounded growth
|
|
77
|
+
pruneActivationCache();
|
|
78
|
+
return { consolidated, decayed, deleted, contradictionsFound, contradictionsLinked, salienceEvolved };
|
|
67
79
|
});
|
|
68
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Adjust salience based on structural importance (link count, contradiction status).
|
|
83
|
+
* Called during consolidation.
|
|
84
|
+
*/
|
|
85
|
+
function evolveSalience(db) {
|
|
86
|
+
let updated = 0;
|
|
87
|
+
// Boost highly-linked memories (hub bonus)
|
|
88
|
+
const hubs = db.prepare(`
|
|
89
|
+
SELECT m.id, m.salience,
|
|
90
|
+
(SELECT COUNT(*) FROM memory_links WHERE source_id = m.id OR target_id = m.id) as link_count
|
|
91
|
+
FROM memories m
|
|
92
|
+
WHERE m.type IN ('long_term', 'episodic')
|
|
93
|
+
`).all();
|
|
94
|
+
for (const hub of hubs) {
|
|
95
|
+
if (hub.link_count < 2)
|
|
96
|
+
continue;
|
|
97
|
+
const linkBonus = Math.min(0.1, Math.log2(hub.link_count) * 0.03);
|
|
98
|
+
const newSalience = Math.min(1.0, hub.salience + linkBonus);
|
|
99
|
+
if (newSalience > hub.salience) {
|
|
100
|
+
db.prepare('UPDATE memories SET salience = ? WHERE id = ?').run(newSalience, hub.id);
|
|
101
|
+
updated++;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Penalize contradicted memories slightly (both sides)
|
|
105
|
+
const contradicted = db.prepare(`
|
|
106
|
+
SELECT DISTINCT source_id, target_id
|
|
107
|
+
FROM memory_links
|
|
108
|
+
WHERE relationship = 'contradicts'
|
|
109
|
+
`).all();
|
|
110
|
+
for (const pair of contradicted) {
|
|
111
|
+
for (const id of [pair.source_id, pair.target_id]) {
|
|
112
|
+
const mem = db.prepare('SELECT salience FROM memories WHERE id = ?').get(id);
|
|
113
|
+
if (mem && mem.salience > 0.3) {
|
|
114
|
+
db.prepare('UPDATE memories SET salience = ? WHERE id = ?')
|
|
115
|
+
.run(mem.salience - 0.02, id);
|
|
116
|
+
updated++;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return updated;
|
|
121
|
+
}
|
|
69
122
|
/**
|
|
70
123
|
* Enforce maximum memory limits
|
|
71
124
|
* Removes lowest-priority memories when limits are exceeded
|
|
@@ -108,46 +161,104 @@ export function enforceMemoryLimits(config = DEFAULT_CONFIG) {
|
|
|
108
161
|
return deleted;
|
|
109
162
|
}
|
|
110
163
|
/**
|
|
111
|
-
* Find and merge similar memories
|
|
112
|
-
*
|
|
164
|
+
* Find and merge similar short-term memories into coherent long-term entries.
|
|
165
|
+
* Groups memories by project|category, then clusters by Jaccard similarity
|
|
166
|
+
* on content (0.6 weight) + title (0.4 weight).
|
|
167
|
+
* Returns count of deleted (merged) memories.
|
|
113
168
|
*/
|
|
114
|
-
export function mergeSimilarMemories(project, similarityThreshold = 0.
|
|
115
|
-
// Wrap in transaction for atomic merge operations
|
|
169
|
+
export function mergeSimilarMemories(project, similarityThreshold = 0.25) {
|
|
116
170
|
return withTransaction(() => {
|
|
117
171
|
const db = getDatabase();
|
|
118
|
-
let
|
|
119
|
-
// Get all memories
|
|
120
|
-
let sql =
|
|
172
|
+
let deleted = 0;
|
|
173
|
+
// Step 1: Get all short-term memories, optionally filtered by project
|
|
174
|
+
let sql = "SELECT * FROM memories WHERE type = 'short_term'";
|
|
121
175
|
const params = [];
|
|
122
176
|
if (project) {
|
|
123
|
-
sql += '
|
|
177
|
+
sql += ' AND project = ?';
|
|
124
178
|
params.push(project);
|
|
125
179
|
}
|
|
126
180
|
sql += ' ORDER BY created_at ASC';
|
|
127
181
|
const memories = db.prepare(sql).all(...params);
|
|
128
|
-
//
|
|
129
|
-
const
|
|
130
|
-
for (const
|
|
131
|
-
const key = `${
|
|
132
|
-
if (
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
182
|
+
// Step 2: Group by project|category
|
|
183
|
+
const groups = new Map();
|
|
184
|
+
for (const mem of memories) {
|
|
185
|
+
const key = `${mem.project || ''}|${mem.category || ''}`;
|
|
186
|
+
if (!groups.has(key))
|
|
187
|
+
groups.set(key, []);
|
|
188
|
+
groups.get(key).push(mem);
|
|
189
|
+
}
|
|
190
|
+
// Step 3: For each group with 2+ members, find clusters
|
|
191
|
+
for (const [, group] of groups) {
|
|
192
|
+
if (group.length < 2)
|
|
193
|
+
continue;
|
|
194
|
+
// Track which memories have been clustered
|
|
195
|
+
const clustered = new Set();
|
|
196
|
+
for (let i = 0; i < group.length; i++) {
|
|
197
|
+
if (clustered.has(i))
|
|
198
|
+
continue;
|
|
199
|
+
const cluster = [i]; // indices into group
|
|
200
|
+
const memA = group[i];
|
|
201
|
+
for (let j = i + 1; j < group.length; j++) {
|
|
202
|
+
if (clustered.has(j))
|
|
203
|
+
continue;
|
|
204
|
+
const memB = group[j];
|
|
205
|
+
const contentSim = jaccardSimilarity(memA.content, memB.content);
|
|
206
|
+
const titleSim = jaccardSimilarity(memA.title, memB.title);
|
|
207
|
+
const combinedSim = contentSim * 0.6 + titleSim * 0.4;
|
|
208
|
+
if (combinedSim >= similarityThreshold) {
|
|
209
|
+
cluster.push(j);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (cluster.length < 2)
|
|
213
|
+
continue;
|
|
214
|
+
// Mark all as clustered
|
|
215
|
+
for (const idx of cluster)
|
|
216
|
+
clustered.add(idx);
|
|
217
|
+
// Step 4: Merge cluster
|
|
218
|
+
// Sort by salience desc, pick highest as base
|
|
219
|
+
const clusterMems = cluster.map(idx => group[idx]);
|
|
220
|
+
clusterMems.sort((a, b) => b.salience - a.salience);
|
|
221
|
+
const base = clusterMems[0];
|
|
222
|
+
const others = clusterMems.slice(1);
|
|
223
|
+
// Merge content
|
|
224
|
+
const bulletPoints = others
|
|
225
|
+
.map(m => `- ${m.title}: ${m.content}`)
|
|
226
|
+
.join('\n');
|
|
227
|
+
const mergedContent = `${base.content}\n\nConsolidated context:\n${bulletPoints}`;
|
|
228
|
+
// Merge tags (union)
|
|
229
|
+
const allTags = new Set();
|
|
230
|
+
for (const m of clusterMems) {
|
|
231
|
+
try {
|
|
232
|
+
const tags = JSON.parse(m.tags || '[]');
|
|
233
|
+
for (const t of tags)
|
|
234
|
+
allTags.add(t);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// skip invalid tags
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Sum access counts
|
|
241
|
+
const totalAccessCount = clusterMems.reduce((sum, m) => sum + (m.access_count || 0), 0);
|
|
242
|
+
// New salience: base + 0.1, capped at 1.0
|
|
243
|
+
const newSalience = Math.min(1.0, base.salience + 0.1);
|
|
244
|
+
// Update base memory
|
|
136
245
|
db.prepare(`
|
|
137
246
|
UPDATE memories
|
|
138
|
-
SET
|
|
139
|
-
|
|
247
|
+
SET type = 'long_term',
|
|
248
|
+
content = ?,
|
|
249
|
+
tags = ?,
|
|
250
|
+
salience = ?,
|
|
251
|
+
access_count = ?
|
|
140
252
|
WHERE id = ?
|
|
141
|
-
`).run(
|
|
142
|
-
// Delete
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
seen.set(key, row.id);
|
|
253
|
+
`).run(mergedContent, JSON.stringify([...allTags]), newSalience, totalAccessCount, base.id);
|
|
254
|
+
// Delete others
|
|
255
|
+
for (const other of others) {
|
|
256
|
+
deleteMemory(other.id);
|
|
257
|
+
deleted++;
|
|
258
|
+
}
|
|
148
259
|
}
|
|
149
260
|
}
|
|
150
|
-
return
|
|
261
|
+
return deleted;
|
|
151
262
|
});
|
|
152
263
|
}
|
|
153
264
|
/**
|