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.
Files changed (36) hide show
  1. package/README.md +11 -1
  2. package/dist/__tests__/consolidation-merge.test.d.ts +9 -0
  3. package/dist/__tests__/consolidation-merge.test.d.ts.map +1 -0
  4. package/dist/__tests__/consolidation-merge.test.js +137 -0
  5. package/dist/__tests__/consolidation-merge.test.js.map +1 -0
  6. package/dist/__tests__/contradictions.test.d.ts +8 -0
  7. package/dist/__tests__/contradictions.test.d.ts.map +1 -0
  8. package/dist/__tests__/contradictions.test.js +78 -0
  9. package/dist/__tests__/contradictions.test.js.map +1 -0
  10. package/dist/__tests__/salience-evolution.test.d.ts +7 -0
  11. package/dist/__tests__/salience-evolution.test.d.ts.map +1 -0
  12. package/dist/__tests__/salience-evolution.test.js +151 -0
  13. package/dist/__tests__/salience-evolution.test.js.map +1 -0
  14. package/dist/__tests__/store.test.js +261 -0
  15. package/dist/__tests__/store.test.js.map +1 -1
  16. package/dist/memory/activation.js +1 -1
  17. package/dist/memory/consolidate.d.ts +4 -2
  18. package/dist/memory/consolidate.d.ts.map +1 -1
  19. package/dist/memory/consolidate.js +138 -27
  20. package/dist/memory/consolidate.js.map +1 -1
  21. package/dist/memory/salience.d.ts.map +1 -1
  22. package/dist/memory/salience.js +17 -1
  23. package/dist/memory/salience.js.map +1 -1
  24. package/dist/memory/store.d.ts +9 -13
  25. package/dist/memory/store.d.ts.map +1 -1
  26. package/dist/memory/store.js +181 -48
  27. package/dist/memory/store.js.map +1 -1
  28. package/dist/memory/types.d.ts +6 -0
  29. package/dist/memory/types.d.ts.map +1 -1
  30. package/dist/memory/types.js.map +1 -1
  31. package/dist/tools/recall.d.ts +5 -0
  32. package/dist/tools/recall.d.ts.map +1 -1
  33. package/dist/tools/recall.js +17 -1
  34. package/dist/tools/recall.js.map +1 -1
  35. package/dist/tools/remember.d.ts +2 -2
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../src/memory/consolidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../src/memory/consolidate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"salience.d.ts","sourceRoot":"","sources":["../../src/memory/salience.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwC1E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAa1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAmBrE;AAkCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAmBlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CA0BxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,GAAE,MAAY,GAAG,OAAO,CAGzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAchE"}
1
+ {"version":3,"file":"salience.d.ts","sourceRoot":"","sources":["../../src/memory/salience.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwC1E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAa1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAmBrE;AAkDD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAmBlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CA0BxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,GAAE,MAAY,GAAG,OAAO,CAGzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAchE"}
@@ -54,7 +54,7 @@ export function analyzeSalienceFactors(input) {
54
54
  isErrorResolution: detectKeywords(text, ERROR_KEYWORDS),
55
55
  isCodePattern: detectKeywords(text, PATTERN_KEYWORDS),
56
56
  isUserPreference: detectKeywords(text, PREFERENCE_KEYWORDS),
57
- mentionCount: 1, // Will be updated by external context
57
+ mentionCount: countMentions(text),
58
58
  hasCodeReference: detectCodeReferences(input.content),
59
59
  emotionalMarkers: detectKeywords(text, EMOTIONAL_MARKERS),
60
60
  };
@@ -86,6 +86,22 @@ export function computeSalienceScore(factors) {
86
86
  // Cap at 1.0
87
87
  return Math.min(1.0, score);
88
88
  }
89
+ /**
90
+ * Count how many keyword mentions appear in the text
91
+ */
92
+ function countMentions(text) {
93
+ const allKeywords = [
94
+ ...ARCHITECTURE_KEYWORDS, ...ERROR_KEYWORDS,
95
+ ...PREFERENCE_KEYWORDS, ...PATTERN_KEYWORDS
96
+ ];
97
+ let count = 0;
98
+ const lower = text.toLowerCase();
99
+ for (const kw of allKeywords) {
100
+ if (lower.includes(kw))
101
+ count++;
102
+ }
103
+ return Math.max(1, count);
104
+ }
89
105
  /**
90
106
  * Detect if user explicitly requested to remember
91
107
  */
@@ -1 +1 @@
1
- {"version":3,"file":"salience.js","sourceRoot":"","sources":["../../src/memory/salience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"salience.js","sourceRoot":"","sources":["../../src/memory/salience.ts"],"names":[],"mappings":"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"}
@@ -44,12 +44,12 @@ export declare function deleteMemory(id: number): boolean;
44
44
  */
45
45
  export declare function accessMemory(id: number, config?: MemoryConfig): Memory | null;
46
46
  /**
47
- * Soft access - updates last_accessed without boosting salience
48
- * Used for search results to close the reinforcement loop
49
- * ORGANIC FEATURE: This allows searched memories to stay fresh without
50
- * artificially inflating their salience scores
47
+ * Reinforce a memory that appeared in search results
48
+ * Gives a small salience boost with diminishing returns based on access count.
49
+ * ORGANIC FEATURE: Searched memories get reinforced, closing the feedback loop
50
+ * so frequently-found memories grow stronger over time.
51
51
  */
52
- export declare function softAccessMemory(id: number): void;
52
+ export declare function reinforceFromSearch(memoryId: number): void;
53
53
  /**
54
54
  * Enrichment result indicating what happened
55
55
  */
@@ -91,10 +91,6 @@ export declare function getEnrichmentCooldownStatus(memoryId: number): {
91
91
  * Returns the number of memories updated
92
92
  */
93
93
  export declare function updateDecayScores(): number;
94
- /**
95
- * Search memories using full-text search, vector similarity, and filters
96
- * Now uses hybrid search combining FTS5 keywords with semantic vector matching
97
- */
98
94
  export declare function searchMemories(options: SearchOptions, config?: MemoryConfig): Promise<SearchResult[]>;
99
95
  /**
100
96
  * Get all memories for a project
@@ -163,10 +159,10 @@ export declare function deleteMemoryLink(sourceId: number, targetId: number): bo
163
159
  export declare function getAllMemoryLinks(): MemoryLink[];
164
160
  /**
165
161
  * Detect potential relationships for a new memory
166
- * Returns memories that might be related based on:
167
- * - Shared tags
168
- * - Similar project
169
- * - Content similarity (keywords)
162
+ * Uses three strategies in priority order:
163
+ * 1. Tag-based linking (shared tags)
164
+ * 2. Embedding-based semantic linking (cosine similarity >= 0.6)
165
+ * 3. FTS content similarity fallback (Jaccard similarity >= 0.3)
170
166
  */
171
167
  export declare function detectRelationships(memory: Memory, maxResults?: number): {
172
168
  targetId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,CAAC;AAkDpB;;GAEG;AACH,wBAAgB,qBAAqB;kBArBG,OAAO;oBAAkB,MAAM;qBAAmB,MAAM;SAuB/F;AAgCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmBhE;AAkBD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,YAA6B,GACpC,MAAM,CA6GR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,MAAM,GAAG,IAAI,CAsDf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAgBhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,YAA6B,GACpC,MAAM,GAAG,IAAI,CA8Df;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB1D;AAcD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,QAAQ,GAAG,QAAQ,GAAG,SAAoB,GACtD,gBAAgB,CAqDlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC7D,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAcA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAkJD,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,YAA6B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CA+MzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,YAA6B,GACpC,MAAM,EAAE,CAaV;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,MAAW,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,EAAE,CAeV;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,GAAE,MAAW,GACjB,MAAM,EAAE,CAUV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,GAAE,MAAW,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,EAAE,CAkBV;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,YAA6B,GACpC,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;CACzB,CAyCA;AAMD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,GAAE,MAAY,GACrB,UAAU,GAAG,IAAI,CA6BnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;CACpC,EAAE,CA6CF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAYhD;AAiHD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAU,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CA6B1E"}
@@ -8,7 +8,7 @@ import { getDatabase } from '../database/init.js';
8
8
  import { DEFAULT_CONFIG, } from './types.js';
9
9
  import { calculateSalience, suggestCategory, extractTags, } from './salience.js';
10
10
  import { calculateDecayedScore, calculateReinforcementBoost, calculatePriority, } from './decay.js';
11
- import { activateMemory as spreadActivation, getActivationBoost, } from './activation.js';
11
+ import { activateMemory as spreadActivation, getActivationBoost, pruneActivationCache, } from './activation.js';
12
12
  import { jaccardSimilarity } from './similarity.js';
13
13
  import { emitMemoryCreated, emitMemoryAccessed, emitMemoryDeleted, emitMemoryUpdated, persistEvent, } from '../api/events.js';
14
14
  import { generateEmbedding, cosineSimilarity } from '../embeddings/index.js';
@@ -342,15 +342,26 @@ export function accessMemory(id, config = DEFAULT_CONFIG) {
342
342
  return updatedMemory;
343
343
  }
344
344
  /**
345
- * Soft access - updates last_accessed without boosting salience
346
- * Used for search results to close the reinforcement loop
347
- * ORGANIC FEATURE: This allows searched memories to stay fresh without
348
- * artificially inflating their salience scores
345
+ * Reinforce a memory that appeared in search results
346
+ * Gives a small salience boost with diminishing returns based on access count.
347
+ * ORGANIC FEATURE: Searched memories get reinforced, closing the feedback loop
348
+ * so frequently-found memories grow stronger over time.
349
349
  */
350
- export function softAccessMemory(id) {
350
+ export function reinforceFromSearch(memoryId) {
351
351
  const db = getDatabase();
352
- db.prepare('UPDATE memories SET last_accessed = ? WHERE id = ?')
353
- .run(new Date().toISOString(), id);
352
+ const memory = db.prepare('SELECT salience, access_count FROM memories WHERE id = ?').get(memoryId);
353
+ if (!memory)
354
+ return;
355
+ // Small salience boost per search appearance (diminishing returns)
356
+ const boost = Math.max(0.005, 0.02 / (1 + memory.access_count * 0.1));
357
+ const newSalience = Math.min(1.0, memory.salience + boost);
358
+ db.prepare(`
359
+ UPDATE memories
360
+ SET last_accessed = CURRENT_TIMESTAMP,
361
+ access_count = access_count + 1,
362
+ salience = ?
363
+ WHERE id = ?
364
+ `).run(newSalience, memoryId);
354
365
  }
355
366
  // ============================================
356
367
  // ORGANIC FEATURE: Memory Enrichment (Phase 3)
@@ -585,7 +596,11 @@ function vectorSearch(queryEmbedding, limit, project, includeGlobal = true) {
585
596
  * Search memories using full-text search, vector similarity, and filters
586
597
  * Now uses hybrid search combining FTS5 keywords with semantic vector matching
587
598
  */
599
+ let searchCount = 0;
588
600
  export async function searchMemories(options, config = DEFAULT_CONFIG) {
601
+ if (++searchCount % 100 === 0) {
602
+ pruneActivationCache();
603
+ }
589
604
  const db = getDatabase();
590
605
  const limit = options.limit || 20;
591
606
  const includeGlobal = options.includeGlobal ?? true;
@@ -687,10 +702,10 @@ export async function searchMemories(options, config = DEFAULT_CONFIG) {
687
702
  const vectorSimilarity = vectorResults.get(memory.id) || 0;
688
703
  const vectorBoost = vectorSimilarity * 0.3; // 30% weight for vector similarity
689
704
  // Combined relevance score (adjusted weights to accommodate vector)
690
- const relevanceScore = (ftsScore * 0.3 + // Reduced from 0.35
705
+ const relevanceScore = (ftsScore * 0.25 + // Reduced from 0.3
691
706
  vectorBoost + // New: 0-0.3 from vector similarity
692
- decayedScore * 0.25 + // Reduced from 0.35
693
- calculatePriority(memory) * 0.1 + // Reduced from 0.15
707
+ decayedScore * 0.2 + // Reduced from 0.25
708
+ calculatePriority(memory) * 0.05 + // Reduced from 0.1
694
709
  recencyBoost + categoryBoost + linkBoost + tagBoost + activationBoost);
695
710
  return { memory, relevanceScore };
696
711
  });
@@ -698,13 +713,69 @@ export async function searchMemories(options, config = DEFAULT_CONFIG) {
698
713
  const sortedResults = results
699
714
  .filter(r => options.includeDecayed || r.memory.decayedScore >= config.salienceThreshold)
700
715
  .sort((a, b) => b.relevanceScore - a.relevanceScore);
701
- // ORGANIC FEATURE: Soft-access top results to reinforce useful memories
702
- // This closes the reinforcement loop - memories that appear in searches stay fresh
703
- // We only soft-access (update last_accessed, no salience boost) to avoid inflation
704
- for (const result of sortedResults.slice(0, 5)) {
705
- softAccessMemory(result.memory.id);
716
+ // ORGANIC FEATURE: Reinforce top search results
717
+ // This closes the feedback loop - memories that appear in searches get a small
718
+ // salience boost with diminishing returns, so useful memories grow stronger
719
+ const topResults = sortedResults.slice(0, 5);
720
+ for (const result of topResults) {
721
+ reinforceFromSearch(result.memory.id);
706
722
  }
707
- return sortedResults;
723
+ // ORGANIC FEATURE: Link co-returned search results (top 5 only)
724
+ // Memories that frequently appear together in searches become linked,
725
+ // building the knowledge graph from usage patterns
726
+ if (topResults.length >= 2) {
727
+ for (let i = 0; i < topResults.length; i++) {
728
+ for (let j = i + 1; j < topResults.length; j++) {
729
+ const idA = topResults[i].memory.id;
730
+ const idB = topResults[j].memory.id;
731
+ const existing = db.prepare('SELECT strength FROM memory_links WHERE (source_id = ? AND target_id = ?) OR (source_id = ? AND target_id = ?)').get(idA, idB, idB, idA);
732
+ if (existing) {
733
+ const newStrength = Math.min(1.0, existing.strength + 0.03);
734
+ db.prepare('UPDATE memory_links SET strength = ? WHERE (source_id = ? AND target_id = ?) OR (source_id = ? AND target_id = ?)').run(newStrength, idA, idB, idB, idA);
735
+ }
736
+ else {
737
+ try {
738
+ db.prepare('INSERT INTO memory_links (source_id, target_id, relationship, strength) VALUES (?, ?, ?, ?)').run(idA, idB, 'related', 0.2);
739
+ }
740
+ catch { /* ignore duplicate */ }
741
+ }
742
+ }
743
+ }
744
+ }
745
+ // ORGANIC FEATURE: Enrich top result with search context
746
+ // When a search query contains significant new information not already in the
747
+ // top result, append it as enrichment context so memories accumulate knowledge
748
+ if (sortedResults.length > 0 && options.query && options.query.length > 30) {
749
+ const topResult = sortedResults[0];
750
+ const queryWords = new Set(options.query.toLowerCase().split(/\s+/).filter(w => w.length > 3));
751
+ const contentWords = new Set(topResult.memory.content.toLowerCase().split(/\s+/));
752
+ const newWords = [...queryWords].filter(w => !contentWords.has(w));
753
+ // Only enrich if query has significant new content (>30% new words)
754
+ if (newWords.length > queryWords.size * 0.3 && options.query.length > 50) {
755
+ try {
756
+ enrichMemory(topResult.memory.id, options.query, 'search');
757
+ }
758
+ catch { /* enrichment is best-effort */ }
759
+ }
760
+ }
761
+ // Look up contradictions for top results
762
+ const finalResults = sortedResults.slice(0, limit);
763
+ for (const result of finalResults) {
764
+ const contradictions = db.prepare(`
765
+ SELECT ml.strength,
766
+ CASE WHEN ml.source_id = ? THEN ml.target_id ELSE ml.source_id END as other_id
767
+ FROM memory_links ml
768
+ WHERE ml.relationship = 'contradicts'
769
+ AND (ml.source_id = ? OR ml.target_id = ?)
770
+ `).all(result.memory.id, result.memory.id, result.memory.id);
771
+ if (contradictions.length > 0) {
772
+ result.contradictions = contradictions.map(c => {
773
+ const other = db.prepare('SELECT title FROM memories WHERE id = ?').get(c.other_id);
774
+ return { memoryId: c.other_id, title: other?.title || 'Unknown', score: c.strength };
775
+ });
776
+ }
777
+ }
778
+ return finalResults;
708
779
  }
709
780
  /**
710
781
  * Get all memories for a project
@@ -934,16 +1005,11 @@ export function getAllMemoryLinks() {
934
1005
  }));
935
1006
  }
936
1007
  /**
937
- * Detect potential relationships for a new memory
938
- * Returns memories that might be related based on:
939
- * - Shared tags
940
- * - Similar project
941
- * - Content similarity (keywords)
1008
+ * Detect tag-based links for a memory.
1009
+ * Finds memories sharing tags and scores by overlap count.
942
1010
  */
943
- export function detectRelationships(memory, maxResults = 5) {
944
- const db = getDatabase();
1011
+ function detectTagLinks(db, memory, maxResults) {
945
1012
  const results = [];
946
- // Find memories with shared tags
947
1013
  if (memory.tags.length > 0) {
948
1014
  const tagPlaceholders = memory.tags.map(() => '?').join(',');
949
1015
  const tagMatches = db.prepare(`
@@ -960,34 +1026,101 @@ export function detectRelationships(memory, maxResults = 5) {
960
1026
  results.push({ targetId: match.id, relationship: 'related', strength });
961
1027
  }
962
1028
  }
963
- // Find memories in the same project
964
- if (memory.project) {
965
- const projectMatches = db.prepare(`
966
- SELECT id FROM memories
967
- WHERE project = ? AND id != ?
968
- ORDER BY last_accessed DESC
1029
+ return results;
1030
+ }
1031
+ /**
1032
+ * Detect embedding-based semantic links for a memory.
1033
+ * Computes cosine similarity against top memories that have embeddings.
1034
+ */
1035
+ function detectEmbeddingLinks(db, memory, maxResults) {
1036
+ if (!memory.embedding)
1037
+ return [];
1038
+ const candidates = db.prepare(`
1039
+ SELECT id, embedding FROM memories
1040
+ WHERE embedding IS NOT NULL AND id != ?
1041
+ ORDER BY decayed_score DESC
1042
+ LIMIT 100
1043
+ `).all(memory.id);
1044
+ const results = [];
1045
+ const sourceEmbedding = new Float32Array(memory.embedding.buffer, memory.embedding.byteOffset, memory.embedding.byteLength / 4);
1046
+ for (const candidate of candidates) {
1047
+ const candidateEmbedding = new Float32Array(candidate.embedding.buffer, candidate.embedding.byteOffset, candidate.embedding.byteLength / 4);
1048
+ const similarity = cosineSimilarity(sourceEmbedding, candidateEmbedding);
1049
+ if (similarity >= 0.6) {
1050
+ results.push({
1051
+ targetId: candidate.id,
1052
+ relationship: 'related',
1053
+ strength: Math.min(0.9, similarity),
1054
+ });
1055
+ }
1056
+ }
1057
+ return results;
1058
+ }
1059
+ /**
1060
+ * Detect content-based links using FTS5 and Jaccard similarity.
1061
+ * Fallback when embeddings are not available.
1062
+ */
1063
+ function detectFtsLinks(db, memory, maxResults) {
1064
+ const queryText = `${memory.title} ${memory.content.slice(0, 200)}`;
1065
+ const escapedQuery = escapeFts5Query(queryText);
1066
+ if (!escapedQuery.trim())
1067
+ return [];
1068
+ let ftsMatches;
1069
+ try {
1070
+ ftsMatches = db.prepare(`
1071
+ SELECT m.id, m.title, m.content
1072
+ FROM memories_fts fts
1073
+ JOIN memories m ON m.id = fts.rowid
1074
+ WHERE memories_fts MATCH ?
1075
+ AND m.id != ?
969
1076
  LIMIT ?
970
- `).all(memory.project, memory.id, maxResults);
971
- for (const match of projectMatches) {
972
- // Only add if not already in results
973
- if (!results.find(r => r.targetId === match.id)) {
974
- results.push({ targetId: match.id, relationship: 'related', strength: 0.4 });
975
- }
1077
+ `).all(escapedQuery, memory.id, maxResults * 2);
1078
+ }
1079
+ catch {
1080
+ return [];
1081
+ }
1082
+ const results = [];
1083
+ for (const match of ftsMatches) {
1084
+ const matchText = `${match.title} ${match.content.slice(0, 200)}`;
1085
+ const sim = jaccardSimilarity(queryText, matchText);
1086
+ if (sim >= 0.3) {
1087
+ results.push({
1088
+ targetId: match.id,
1089
+ relationship: 'related',
1090
+ strength: Math.min(0.7, sim + 0.2),
1091
+ });
976
1092
  }
977
1093
  }
978
- // Find memories with similar category
979
- const categoryMatches = db.prepare(`
980
- SELECT id FROM memories
981
- WHERE category = ? AND id != ?
982
- ORDER BY salience DESC, last_accessed DESC
983
- LIMIT ?
984
- `).all(memory.category, memory.id, 3);
985
- for (const match of categoryMatches) {
986
- if (!results.find(r => r.targetId === match.id)) {
987
- results.push({ targetId: match.id, relationship: 'related', strength: 0.3 });
1094
+ return results;
1095
+ }
1096
+ /**
1097
+ * Detect potential relationships for a new memory
1098
+ * Uses three strategies in priority order:
1099
+ * 1. Tag-based linking (shared tags)
1100
+ * 2. Embedding-based semantic linking (cosine similarity >= 0.6)
1101
+ * 3. FTS content similarity fallback (Jaccard similarity >= 0.3)
1102
+ */
1103
+ export function detectRelationships(memory, maxResults = 5) {
1104
+ const db = getDatabase();
1105
+ const seen = new Set();
1106
+ const results = [];
1107
+ function addResults(links) {
1108
+ for (const link of links) {
1109
+ if (!seen.has(link.targetId)) {
1110
+ seen.add(link.targetId);
1111
+ results.push(link);
1112
+ }
988
1113
  }
989
1114
  }
990
- // Sort by strength and limit
1115
+ // 1. Tag-based linking
1116
+ addResults(detectTagLinks(db, memory, maxResults));
1117
+ // 2. Embedding-based semantic linking
1118
+ addResults(detectEmbeddingLinks(db, memory, maxResults));
1119
+ // 3. FTS content similarity fallback (when no embeddings)
1120
+ if (!memory.embedding) {
1121
+ addResults(detectFtsLinks(db, memory, maxResults));
1122
+ }
1123
+ // Sort by strength descending and limit
991
1124
  return results
992
1125
  .sort((a, b) => b.strength - a.strength)
993
1126
  .slice(0, maxResults);