@danielsimonjr/memory-mcp 12.5.2 → 12.7.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 (159) hide show
  1. package/README.md +158 -14
  2. package/dist/core/EntityManager.d.ts +263 -0
  3. package/dist/core/EntityManager.d.ts.map +1 -0
  4. package/dist/core/EntityManager.js +478 -0
  5. package/dist/core/GraphStorage.d.ts +344 -0
  6. package/dist/core/GraphStorage.d.ts.map +1 -0
  7. package/dist/core/GraphStorage.js +708 -0
  8. package/dist/core/GraphTraversal.d.ts +136 -0
  9. package/dist/core/GraphTraversal.d.ts.map +1 -0
  10. package/dist/core/GraphTraversal.js +556 -0
  11. package/dist/core/HierarchyManager.d.ts +111 -0
  12. package/dist/core/HierarchyManager.d.ts.map +1 -0
  13. package/dist/core/HierarchyManager.js +224 -0
  14. package/dist/core/ManagerContext.d.ts +72 -0
  15. package/dist/core/ManagerContext.d.ts.map +1 -0
  16. package/dist/core/ManagerContext.js +118 -0
  17. package/dist/core/ObservationManager.d.ts +85 -0
  18. package/dist/core/ObservationManager.d.ts.map +1 -0
  19. package/dist/core/ObservationManager.js +123 -0
  20. package/dist/core/RelationManager.d.ts +131 -0
  21. package/dist/core/RelationManager.d.ts.map +1 -0
  22. package/dist/core/RelationManager.js +210 -0
  23. package/dist/core/SQLiteStorage.d.ts +354 -0
  24. package/dist/core/SQLiteStorage.d.ts.map +1 -0
  25. package/dist/core/SQLiteStorage.js +917 -0
  26. package/dist/core/StorageFactory.d.ts +45 -0
  27. package/dist/core/StorageFactory.d.ts.map +1 -0
  28. package/dist/core/StorageFactory.js +64 -0
  29. package/dist/core/TransactionManager.d.ts +259 -0
  30. package/dist/core/TransactionManager.d.ts.map +1 -0
  31. package/dist/core/TransactionManager.js +392 -0
  32. package/dist/core/index.d.ts +16 -0
  33. package/dist/core/index.d.ts.map +1 -0
  34. package/dist/core/index.js +17 -0
  35. package/dist/features/AnalyticsManager.d.ts +44 -0
  36. package/dist/features/AnalyticsManager.d.ts.map +1 -0
  37. package/dist/features/AnalyticsManager.js +223 -0
  38. package/dist/features/ArchiveManager.d.ts +121 -0
  39. package/dist/features/ArchiveManager.d.ts.map +1 -0
  40. package/dist/features/ArchiveManager.js +240 -0
  41. package/dist/features/CompressionManager.d.ts +109 -0
  42. package/dist/features/CompressionManager.d.ts.map +1 -0
  43. package/dist/features/CompressionManager.js +404 -0
  44. package/dist/features/IOManager.d.ts +221 -0
  45. package/dist/features/IOManager.d.ts.map +1 -0
  46. package/dist/features/IOManager.js +997 -0
  47. package/dist/features/StreamingExporter.d.ts +105 -0
  48. package/dist/features/StreamingExporter.d.ts.map +1 -0
  49. package/dist/features/StreamingExporter.js +150 -0
  50. package/dist/features/TagManager.d.ts +147 -0
  51. package/dist/features/TagManager.d.ts.map +1 -0
  52. package/dist/features/TagManager.js +210 -0
  53. package/dist/features/index.d.ts +12 -0
  54. package/dist/features/index.d.ts.map +1 -0
  55. package/dist/features/index.js +11 -0
  56. package/dist/index.js +8 -2
  57. package/dist/search/BasicSearch.d.ts +51 -0
  58. package/dist/search/BasicSearch.d.ts.map +1 -0
  59. package/dist/search/BasicSearch.js +137 -0
  60. package/dist/search/BooleanSearch.d.ts +98 -0
  61. package/dist/search/BooleanSearch.d.ts.map +1 -0
  62. package/dist/search/BooleanSearch.js +430 -0
  63. package/dist/search/EmbeddingService.d.ts +178 -0
  64. package/dist/search/EmbeddingService.d.ts.map +1 -0
  65. package/dist/search/EmbeddingService.js +358 -0
  66. package/dist/search/FuzzySearch.d.ts +118 -0
  67. package/dist/search/FuzzySearch.d.ts.map +1 -0
  68. package/dist/search/FuzzySearch.js +312 -0
  69. package/dist/search/RankedSearch.d.ts +71 -0
  70. package/dist/search/RankedSearch.d.ts.map +1 -0
  71. package/dist/search/RankedSearch.js +238 -0
  72. package/dist/search/SavedSearchManager.d.ts +79 -0
  73. package/dist/search/SavedSearchManager.d.ts.map +1 -0
  74. package/dist/search/SavedSearchManager.js +145 -0
  75. package/dist/search/SearchFilterChain.d.ts +120 -0
  76. package/dist/search/SearchFilterChain.d.ts.map +1 -0
  77. package/dist/search/SearchFilterChain.js +185 -0
  78. package/dist/search/SearchManager.d.ts +285 -0
  79. package/dist/search/SearchManager.d.ts.map +1 -0
  80. package/dist/search/SearchManager.js +338 -0
  81. package/dist/search/SearchSuggestions.d.ts +27 -0
  82. package/dist/search/SearchSuggestions.d.ts.map +1 -0
  83. package/dist/search/SearchSuggestions.js +57 -0
  84. package/dist/search/SemanticSearch.d.ts +146 -0
  85. package/dist/search/SemanticSearch.d.ts.map +1 -0
  86. package/dist/search/SemanticSearch.js +313 -0
  87. package/dist/search/TFIDFIndexManager.d.ts +63 -0
  88. package/dist/search/TFIDFIndexManager.d.ts.map +1 -0
  89. package/dist/search/TFIDFIndexManager.js +215 -0
  90. package/dist/search/VectorStore.d.ts +235 -0
  91. package/dist/search/VectorStore.d.ts.map +1 -0
  92. package/dist/search/VectorStore.js +311 -0
  93. package/dist/search/index.d.ts +18 -0
  94. package/dist/search/index.d.ts.map +1 -0
  95. package/dist/search/index.js +21 -0
  96. package/dist/server/MCPServer.d.ts.map +1 -1
  97. package/dist/server/toolDefinitions.d.ts +1 -1
  98. package/dist/server/toolDefinitions.d.ts.map +1 -1
  99. package/dist/server/toolDefinitions.js +254 -2
  100. package/dist/server/toolHandlers.d.ts.map +1 -1
  101. package/dist/server/toolHandlers.js +241 -25
  102. package/dist/types/index.d.ts +13 -0
  103. package/dist/types/index.d.ts.map +1 -0
  104. package/dist/types/index.js +12 -0
  105. package/dist/types/types.d.ts +1234 -0
  106. package/dist/types/types.d.ts.map +1 -0
  107. package/dist/types/types.js +9 -0
  108. package/dist/utils/compressedCache.d.ts +192 -0
  109. package/dist/utils/compressedCache.d.ts.map +1 -0
  110. package/dist/utils/compressedCache.js +309 -0
  111. package/dist/utils/compressionUtil.d.ts +214 -0
  112. package/dist/utils/compressionUtil.d.ts.map +1 -0
  113. package/dist/utils/compressionUtil.js +247 -0
  114. package/dist/utils/constants.d.ts +245 -0
  115. package/dist/utils/constants.d.ts.map +1 -0
  116. package/dist/utils/constants.js +252 -0
  117. package/dist/utils/entityUtils.d.ts +321 -0
  118. package/dist/utils/entityUtils.d.ts.map +1 -0
  119. package/dist/utils/entityUtils.js +538 -0
  120. package/dist/utils/errors.d.ts +77 -0
  121. package/dist/utils/errors.d.ts.map +1 -0
  122. package/dist/utils/errors.js +121 -0
  123. package/dist/utils/formatters.d.ts +145 -0
  124. package/dist/utils/formatters.d.ts.map +1 -0
  125. package/dist/utils/formatters.js +132 -0
  126. package/dist/utils/index.d.ts +22 -0
  127. package/dist/utils/index.d.ts.map +1 -0
  128. package/dist/utils/index.js +75 -0
  129. package/dist/utils/indexes.d.ts +270 -0
  130. package/dist/utils/indexes.d.ts.map +1 -0
  131. package/dist/utils/indexes.js +526 -0
  132. package/dist/utils/logger.d.ts +24 -0
  133. package/dist/utils/logger.d.ts.map +1 -0
  134. package/dist/utils/logger.js +33 -0
  135. package/dist/utils/parallelUtils.d.ts +72 -0
  136. package/dist/utils/parallelUtils.d.ts.map +1 -0
  137. package/dist/utils/parallelUtils.js +169 -0
  138. package/dist/utils/schemas.d.ts +374 -0
  139. package/dist/utils/schemas.d.ts.map +1 -0
  140. package/dist/utils/schemas.js +484 -0
  141. package/dist/utils/searchAlgorithms.d.ts +99 -0
  142. package/dist/utils/searchAlgorithms.d.ts.map +1 -0
  143. package/dist/utils/searchAlgorithms.js +167 -0
  144. package/dist/utils/searchCache.d.ts +108 -0
  145. package/dist/utils/searchCache.d.ts.map +1 -0
  146. package/dist/utils/searchCache.js +209 -0
  147. package/dist/utils/taskScheduler.d.ts +290 -0
  148. package/dist/utils/taskScheduler.d.ts.map +1 -0
  149. package/dist/utils/taskScheduler.js +466 -0
  150. package/dist/workers/WorkerPool.d.ts +81 -0
  151. package/dist/workers/WorkerPool.d.ts.map +1 -0
  152. package/dist/workers/WorkerPool.js +121 -0
  153. package/dist/workers/index.d.ts +12 -0
  154. package/dist/workers/index.d.ts.map +1 -0
  155. package/dist/workers/index.js +9 -0
  156. package/dist/workers/levenshteinWorker.d.ts +60 -0
  157. package/dist/workers/levenshteinWorker.d.ts.map +1 -0
  158. package/dist/workers/levenshteinWorker.js +98 -0
  159. package/package.json +7 -7
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Levenshtein Worker
3
+ *
4
+ * Worker thread for calculating Levenshtein distances in parallel.
5
+ * Uses workerpool for worker management.
6
+ *
7
+ * @module workers/levenshteinWorker
8
+ */
9
+ /**
10
+ * Input data structure for the worker.
11
+ */
12
+ export interface WorkerInput {
13
+ /** Search query string */
14
+ query: string;
15
+ /** Array of entities to search */
16
+ entities: Array<{
17
+ name: string;
18
+ nameLower: string;
19
+ observations: string[];
20
+ }>;
21
+ /** Similarity threshold (0.0 to 1.0) */
22
+ threshold: number;
23
+ }
24
+ /**
25
+ * Match result returned by the worker.
26
+ */
27
+ export interface MatchResult {
28
+ /** Entity name that matched */
29
+ name: string;
30
+ /** Similarity score (0.0 to 1.0) */
31
+ score: number;
32
+ /** Where the match occurred */
33
+ matchedIn: 'name' | 'observation';
34
+ }
35
+ /**
36
+ * Calculate Levenshtein distance between two strings.
37
+ *
38
+ * Uses dynamic programming matrix for efficient computation.
39
+ *
40
+ * @param s1 - First string
41
+ * @param s2 - Second string
42
+ * @returns Levenshtein distance (number of edits)
43
+ */
44
+ export declare function levenshteinDistance(s1: string, s2: string): number;
45
+ /**
46
+ * Calculate similarity score between two strings.
47
+ *
48
+ * @param s1 - First string
49
+ * @param s2 - Second string
50
+ * @returns Similarity score (0.0 to 1.0, where 1.0 is identical)
51
+ */
52
+ export declare function similarity(s1: string, s2: string): number;
53
+ /**
54
+ * Search entities for fuzzy matches.
55
+ *
56
+ * @param data - Worker input containing query, entities, and threshold
57
+ * @returns Array of match results
58
+ */
59
+ export declare function searchEntities(data: WorkerInput): MatchResult[];
60
+ //# sourceMappingURL=levenshteinWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levenshteinWorker.d.ts","sourceRoot":"","sources":["../../src/workers/levenshteinWorker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAgClE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAwB/D"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Levenshtein Worker
3
+ *
4
+ * Worker thread for calculating Levenshtein distances in parallel.
5
+ * Uses workerpool for worker management.
6
+ *
7
+ * @module workers/levenshteinWorker
8
+ */
9
+ import workerpool from '@danielsimonjr/workerpool/modern';
10
+ /**
11
+ * Calculate Levenshtein distance between two strings.
12
+ *
13
+ * Uses dynamic programming matrix for efficient computation.
14
+ *
15
+ * @param s1 - First string
16
+ * @param s2 - Second string
17
+ * @returns Levenshtein distance (number of edits)
18
+ */
19
+ export function levenshteinDistance(s1, s2) {
20
+ const len1 = s1.length;
21
+ const len2 = s2.length;
22
+ if (len1 === 0)
23
+ return len2;
24
+ if (len2 === 0)
25
+ return len1;
26
+ const matrix = [];
27
+ // Initialize first column
28
+ for (let i = 0; i <= len1; i++) {
29
+ matrix[i] = [i];
30
+ }
31
+ // Initialize first row
32
+ for (let j = 0; j <= len2; j++) {
33
+ matrix[0][j] = j;
34
+ }
35
+ // Fill matrix
36
+ for (let i = 1; i <= len1; i++) {
37
+ for (let j = 1; j <= len2; j++) {
38
+ const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;
39
+ matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion
40
+ matrix[i][j - 1] + 1, // insertion
41
+ matrix[i - 1][j - 1] + cost // substitution
42
+ );
43
+ }
44
+ }
45
+ return matrix[len1][len2];
46
+ }
47
+ /**
48
+ * Calculate similarity score between two strings.
49
+ *
50
+ * @param s1 - First string
51
+ * @param s2 - Second string
52
+ * @returns Similarity score (0.0 to 1.0, where 1.0 is identical)
53
+ */
54
+ export function similarity(s1, s2) {
55
+ // Exact match
56
+ if (s1 === s2)
57
+ return 1.0;
58
+ // One contains the other
59
+ if (s1.includes(s2) || s2.includes(s1))
60
+ return 1.0;
61
+ // Calculate Levenshtein-based similarity
62
+ const distance = levenshteinDistance(s1, s2);
63
+ const maxLength = Math.max(s1.length, s2.length);
64
+ return 1 - distance / maxLength;
65
+ }
66
+ /**
67
+ * Search entities for fuzzy matches.
68
+ *
69
+ * @param data - Worker input containing query, entities, and threshold
70
+ * @returns Array of match results
71
+ */
72
+ export function searchEntities(data) {
73
+ const { query, entities, threshold } = data;
74
+ const queryLower = query.toLowerCase();
75
+ const results = [];
76
+ for (const entity of entities) {
77
+ // Check name similarity
78
+ const nameScore = similarity(queryLower, entity.nameLower);
79
+ if (nameScore >= threshold) {
80
+ results.push({ name: entity.name, score: nameScore, matchedIn: 'name' });
81
+ continue;
82
+ }
83
+ // Check observations
84
+ for (const obs of entity.observations) {
85
+ const obsScore = similarity(queryLower, obs);
86
+ if (obsScore >= threshold) {
87
+ results.push({ name: entity.name, score: obsScore, matchedIn: 'observation' });
88
+ break;
89
+ }
90
+ }
91
+ }
92
+ return results;
93
+ }
94
+ // Register worker methods with workerpool
95
+ // Cast to satisfy workerpool's generic type signature
96
+ workerpool.worker({
97
+ searchEntities: searchEntities,
98
+ });
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@danielsimonjr/memory-mcp",
3
- "version": "12.5.2",
4
- "description": "Enhanced MCP memory server with hierarchies, compression, archiving, graph algorithms, semantic search, temporal KG, RBAC, bitemporal validity, OCC, procedural memory, causal reasoning, world model, do_not_remember exclusions, decision rationale, project context, heuristic guidelines, tool affordance + observer, observation dedup, spell correction, and 213 advanced tools",
3
+ "version": "12.7.0",
4
+ "description": "Enhanced MCP memory server with hierarchies, compression, archiving, graph algorithms, semantic search, temporal KG, RBAC, bitemporal validity, OCC, procedural memory, causal reasoning, world model, do_not_remember exclusions, decision rationale, project context, heuristic guidelines, tool affordance + observer, observation dedup, spell correction, event memory, reconstructive memory, relation consolidation, agent reflection, and 241 advanced tools",
5
5
  "license": "MIT",
6
6
  "engines": {
7
- "node": ">=18.0.0"
7
+ "node": ">=22.0.0"
8
8
  },
9
9
  "author": "Daniel Simon Jr. (https://github.com/danielsimonjr)",
10
10
  "homepage": "https://github.com/danielsimonjr/memory-mcp",
@@ -58,7 +58,7 @@
58
58
  "tools:build": "cd tools/chunking-for-files && npm run build && cd ../compress-for-context && npm run build && cd ../create-dependency-graph && npm run build && cd ../migrate-from-jsonl-to-sqlite && npm run build"
59
59
  },
60
60
  "dependencies": {
61
- "@danielsimonjr/memoryjs": "^2.8.1",
61
+ "@danielsimonjr/memoryjs": "^3.0.0",
62
62
  "@modelcontextprotocol/sdk": "^1.21.1",
63
63
  "zod": "^4.4.3"
64
64
  },
@@ -66,10 +66,10 @@
66
66
  "better-sqlite3": "^12.10.1"
67
67
  },
68
68
  "devDependencies": {
69
- "@types/node": "^22",
70
- "@vitest/coverage-v8": "^4.1.5",
69
+ "@types/node": "^26",
70
+ "@vitest/coverage-v8": "^4.1.10",
71
71
  "shx": "^0.4.0",
72
- "typescript": "^5.6.2",
72
+ "typescript": "^7.0.2",
73
73
  "vitest": "^4.1.5"
74
74
  }
75
75
  }