@danielsimonjr/memory-mcp 11.0.1 → 11.1.1

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 (172) hide show
  1. package/LICENSE +22 -22
  2. package/dist/core/EntityManager.d.ts +10 -15
  3. package/dist/core/EntityManager.d.ts.map +1 -1
  4. package/dist/core/EntityManager.js +21 -54
  5. package/dist/core/GraphStorage.d.ts +0 -51
  6. package/dist/core/GraphStorage.d.ts.map +1 -1
  7. package/dist/core/GraphStorage.js +2 -79
  8. package/dist/core/GraphTraversal.d.ts +2 -7
  9. package/dist/core/GraphTraversal.d.ts.map +1 -1
  10. package/dist/core/GraphTraversal.js +2 -19
  11. package/dist/core/ManagerContext.d.ts +0 -4
  12. package/dist/core/ManagerContext.d.ts.map +1 -1
  13. package/dist/core/ManagerContext.js +2 -12
  14. package/dist/core/RelationManager.d.ts.map +1 -1
  15. package/dist/core/RelationManager.js +4 -5
  16. package/dist/core/SQLiteStorage.d.ts.map +1 -1
  17. package/dist/core/SQLiteStorage.js +2 -3
  18. package/dist/core/TransactionManager.d.ts +2 -207
  19. package/dist/core/TransactionManager.d.ts.map +1 -1
  20. package/dist/core/TransactionManager.js +6 -482
  21. package/dist/core/index.d.ts +1 -2
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +1 -3
  24. package/dist/features/ArchiveManager.d.ts +2 -14
  25. package/dist/features/ArchiveManager.d.ts.map +1 -1
  26. package/dist/features/ArchiveManager.js +3 -44
  27. package/dist/features/CompressionManager.d.ts +4 -14
  28. package/dist/features/CompressionManager.d.ts.map +1 -1
  29. package/dist/features/CompressionManager.js +9 -74
  30. package/dist/features/IOManager.d.ts +2 -6
  31. package/dist/features/IOManager.d.ts.map +1 -1
  32. package/dist/features/IOManager.js +10 -105
  33. package/dist/features/StreamingExporter.d.ts +4 -27
  34. package/dist/features/StreamingExporter.d.ts.map +1 -1
  35. package/dist/features/StreamingExporter.js +4 -65
  36. package/dist/features/index.d.ts +0 -2
  37. package/dist/features/index.d.ts.map +1 -1
  38. package/dist/features/index.js +0 -3
  39. package/dist/search/EmbeddingService.d.ts +9 -108
  40. package/dist/search/EmbeddingService.d.ts.map +1 -1
  41. package/dist/search/EmbeddingService.js +15 -187
  42. package/dist/search/FuzzySearch.js +1 -1
  43. package/dist/search/SavedSearchManager.d.ts.map +1 -1
  44. package/dist/search/SavedSearchManager.js +2 -3
  45. package/dist/search/SearchManager.d.ts +1 -42
  46. package/dist/search/SearchManager.d.ts.map +1 -1
  47. package/dist/search/SearchManager.js +0 -115
  48. package/dist/search/SemanticSearch.d.ts +1 -4
  49. package/dist/search/SemanticSearch.d.ts.map +1 -1
  50. package/dist/search/SemanticSearch.js +2 -12
  51. package/dist/search/TFIDFIndexManager.d.ts +0 -88
  52. package/dist/search/TFIDFIndexManager.d.ts.map +1 -1
  53. package/dist/search/TFIDFIndexManager.js +0 -217
  54. package/dist/search/index.d.ts +1 -18
  55. package/dist/search/index.d.ts.map +1 -1
  56. package/dist/search/index.js +1 -32
  57. package/dist/server/MCPServer.d.ts.map +1 -1
  58. package/dist/server/MCPServer.js +4 -1
  59. package/dist/server/responseCompressor.js +5 -5
  60. package/dist/server/toolDefinitions.d.ts.map +1 -1
  61. package/dist/server/toolDefinitions.js +5 -1
  62. package/dist/server/toolHandlers.d.ts +9 -5
  63. package/dist/server/toolHandlers.d.ts.map +1 -1
  64. package/dist/server/toolHandlers.js +23 -8
  65. package/dist/types/index.d.ts +1 -1
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/types.d.ts +2 -579
  68. package/dist/types/types.d.ts.map +1 -1
  69. package/dist/utils/compressedCache.d.ts +0 -29
  70. package/dist/utils/compressedCache.d.ts.map +1 -1
  71. package/dist/utils/compressedCache.js +0 -39
  72. package/dist/utils/entityUtils.d.ts +1 -59
  73. package/dist/utils/entityUtils.d.ts.map +1 -1
  74. package/dist/utils/entityUtils.js +3 -113
  75. package/dist/utils/errors.d.ts +0 -18
  76. package/dist/utils/errors.d.ts.map +1 -1
  77. package/dist/utils/errors.js +0 -24
  78. package/dist/utils/index.d.ts +2 -6
  79. package/dist/utils/index.d.ts.map +1 -1
  80. package/dist/utils/index.js +2 -14
  81. package/dist/utils/logger.d.ts +0 -7
  82. package/dist/utils/logger.d.ts.map +1 -1
  83. package/dist/utils/logger.js +2 -9
  84. package/dist/utils/parallelUtils.d.ts +1 -5
  85. package/dist/utils/parallelUtils.d.ts.map +1 -1
  86. package/dist/utils/parallelUtils.js +1 -23
  87. package/dist/utils/schemas.d.ts +16 -16
  88. package/dist/utils/schemas.d.ts.map +1 -1
  89. package/dist/utils/schemas.js +12 -12
  90. package/dist/utils/taskScheduler.d.ts +0 -4
  91. package/dist/utils/taskScheduler.d.ts.map +1 -1
  92. package/dist/utils/taskScheduler.js +1 -21
  93. package/dist/workers/WorkerPool.d.ts +81 -0
  94. package/dist/workers/WorkerPool.d.ts.map +1 -0
  95. package/dist/workers/WorkerPool.js +121 -0
  96. package/dist/workers/index.d.ts +1 -1
  97. package/dist/workers/index.d.ts.map +1 -1
  98. package/dist/workers/levenshteinWorker.js +1 -1
  99. package/package.json +1 -4
  100. package/dist/__tests__/file-path.test.js +0 -119
  101. package/dist/__tests__/knowledge-graph.test.js +0 -318
  102. package/dist/core/GraphEventEmitter.d.ts +0 -202
  103. package/dist/core/GraphEventEmitter.d.ts.map +0 -1
  104. package/dist/core/GraphEventEmitter.js +0 -346
  105. package/dist/features/KeywordExtractor.d.ts +0 -61
  106. package/dist/features/KeywordExtractor.d.ts.map +0 -1
  107. package/dist/features/KeywordExtractor.js +0 -126
  108. package/dist/features/ObservationNormalizer.d.ts +0 -90
  109. package/dist/features/ObservationNormalizer.d.ts.map +0 -1
  110. package/dist/features/ObservationNormalizer.js +0 -193
  111. package/dist/memory.jsonl +0 -1
  112. package/dist/search/BM25Search.d.ts +0 -148
  113. package/dist/search/BM25Search.d.ts.map +0 -1
  114. package/dist/search/BM25Search.js +0 -339
  115. package/dist/search/EarlyTerminationManager.d.ts +0 -140
  116. package/dist/search/EarlyTerminationManager.d.ts.map +0 -1
  117. package/dist/search/EarlyTerminationManager.js +0 -279
  118. package/dist/search/EmbeddingCache.d.ts +0 -175
  119. package/dist/search/EmbeddingCache.d.ts.map +0 -1
  120. package/dist/search/EmbeddingCache.js +0 -246
  121. package/dist/search/HybridScorer.d.ts +0 -181
  122. package/dist/search/HybridScorer.d.ts.map +0 -1
  123. package/dist/search/HybridScorer.js +0 -257
  124. package/dist/search/HybridSearchManager.d.ts +0 -80
  125. package/dist/search/HybridSearchManager.d.ts.map +0 -1
  126. package/dist/search/HybridSearchManager.js +0 -187
  127. package/dist/search/IncrementalIndexer.d.ts +0 -201
  128. package/dist/search/IncrementalIndexer.d.ts.map +0 -1
  129. package/dist/search/IncrementalIndexer.js +0 -342
  130. package/dist/search/OptimizedInvertedIndex.d.ts +0 -163
  131. package/dist/search/OptimizedInvertedIndex.d.ts.map +0 -1
  132. package/dist/search/OptimizedInvertedIndex.js +0 -358
  133. package/dist/search/ParallelSearchExecutor.d.ts +0 -172
  134. package/dist/search/ParallelSearchExecutor.d.ts.map +0 -1
  135. package/dist/search/ParallelSearchExecutor.js +0 -309
  136. package/dist/search/QuantizedVectorStore.d.ts +0 -171
  137. package/dist/search/QuantizedVectorStore.d.ts.map +0 -1
  138. package/dist/search/QuantizedVectorStore.js +0 -307
  139. package/dist/search/QueryAnalyzer.d.ts +0 -76
  140. package/dist/search/QueryAnalyzer.d.ts.map +0 -1
  141. package/dist/search/QueryAnalyzer.js +0 -227
  142. package/dist/search/QueryCostEstimator.d.ts +0 -244
  143. package/dist/search/QueryCostEstimator.d.ts.map +0 -1
  144. package/dist/search/QueryCostEstimator.js +0 -652
  145. package/dist/search/QueryPlanCache.d.ts +0 -220
  146. package/dist/search/QueryPlanCache.d.ts.map +0 -1
  147. package/dist/search/QueryPlanCache.js +0 -379
  148. package/dist/search/QueryPlanner.d.ts +0 -58
  149. package/dist/search/QueryPlanner.d.ts.map +0 -1
  150. package/dist/search/QueryPlanner.js +0 -137
  151. package/dist/search/ReflectionManager.d.ts +0 -120
  152. package/dist/search/ReflectionManager.d.ts.map +0 -1
  153. package/dist/search/ReflectionManager.js +0 -231
  154. package/dist/search/SymbolicSearch.d.ts +0 -61
  155. package/dist/search/SymbolicSearch.d.ts.map +0 -1
  156. package/dist/search/SymbolicSearch.js +0 -163
  157. package/dist/search/TFIDFEventSync.d.ts +0 -85
  158. package/dist/search/TFIDFEventSync.d.ts.map +0 -1
  159. package/dist/search/TFIDFEventSync.js +0 -133
  160. package/dist/utils/BatchProcessor.d.ts +0 -271
  161. package/dist/utils/BatchProcessor.d.ts.map +0 -1
  162. package/dist/utils/BatchProcessor.js +0 -376
  163. package/dist/utils/MemoryMonitor.d.ts +0 -176
  164. package/dist/utils/MemoryMonitor.d.ts.map +0 -1
  165. package/dist/utils/MemoryMonitor.js +0 -305
  166. package/dist/utils/WorkerPoolManager.d.ts +0 -233
  167. package/dist/utils/WorkerPoolManager.d.ts.map +0 -1
  168. package/dist/utils/WorkerPoolManager.js +0 -420
  169. package/dist/utils/operationUtils.d.ts +0 -124
  170. package/dist/utils/operationUtils.d.ts.map +0 -1
  171. package/dist/utils/operationUtils.js +0 -175
  172. package/dist/vitest.config.js +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"parallelUtils.d.ts","sourceRoot":"","sources":["../../src/utils/parallelUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAmDnD;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAClB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CA2Cd;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC/B,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CA2Cd;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,UAAU,CAAC,SAAS,GAAG,IAAI,CAK1D"}
1
+ {"version":3,"file":"parallelUtils.d.ts","sourceRoot":"","sources":["../../src/utils/parallelUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAoC1D;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAClB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwCd;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC/B,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwCd;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,UAAU,CAAC,SAAS,GAAG,IAAI,CAK1D"}
@@ -4,27 +4,9 @@
4
4
  * Utilities for parallel array operations using workerpool.
5
5
  * Phase 8 Sprint 3: Parallel array operations for improved performance.
6
6
  *
7
- * **SECURITY WARNING:** These functions use `new Function()` internally for worker serialization.
8
- * The `fn` parameter MUST be a real function object, never a user-provided string.
9
- * Runtime validation ensures only function objects are accepted.
10
- *
11
7
  * @module utils/parallelUtils
12
8
  */
13
- import workerpool from '@danielsimonjr/workerpool';
14
- /**
15
- * Validates that the input is a real function object.
16
- * Prevents code injection through string masquerading as functions.
17
- *
18
- * @param fn - Function to validate
19
- * @param paramName - Parameter name for error message
20
- * @throws {TypeError} If fn is not a function
21
- * @internal
22
- */
23
- function validateFunction(fn, paramName) {
24
- if (typeof fn !== 'function') {
25
- throw new TypeError(`${paramName} must be a function, got ${typeof fn}`);
26
- }
27
- }
9
+ import workerpool from '@danielsimonjr/workerpool/modern';
28
10
  /**
29
11
  * Default chunk size for parallel operations.
30
12
  * Can be overridden per operation.
@@ -91,8 +73,6 @@ export async function shutdownParallelUtils() {
91
73
  * ```
92
74
  */
93
75
  export async function parallelMap(items, fn, chunkSize = DEFAULT_CHUNK_SIZE) {
94
- // Security: Validate that fn is a real function, not a user-provided string
95
- validateFunction(fn, 'fn');
96
76
  // Fall back to single-threaded for small arrays
97
77
  if (items.length < MIN_PARALLEL_SIZE) {
98
78
  return items.map(fn);
@@ -147,8 +127,6 @@ export async function parallelMap(items, fn, chunkSize = DEFAULT_CHUNK_SIZE) {
147
127
  * ```
148
128
  */
149
129
  export async function parallelFilter(items, predicate, chunkSize = DEFAULT_CHUNK_SIZE) {
150
- // Security: Validate that predicate is a real function, not a user-provided string
151
- validateFunction(predicate, 'predicate');
152
130
  // Fall back to single-threaded for small arrays
153
131
  if (items.length < MIN_PARALLEL_SIZE) {
154
132
  return items.filter(predicate);
@@ -35,7 +35,7 @@ export declare const CreateEntitySchema: z.ZodObject<{
35
35
  parentId: z.ZodOptional<z.ZodString>;
36
36
  createdAt: z.ZodOptional<z.ZodString>;
37
37
  lastModified: z.ZodOptional<z.ZodString>;
38
- }, z.core.$strict>;
38
+ }, z.core.$strip>;
39
39
  /**
40
40
  * Entity update input schema.
41
41
  * All fields are optional for partial updates.
@@ -47,7 +47,7 @@ export declare const UpdateEntitySchema: z.ZodObject<{
47
47
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
48
  importance: z.ZodOptional<z.ZodNumber>;
49
49
  parentId: z.ZodOptional<z.ZodString>;
50
- }, z.core.$strict>;
50
+ }, z.core.$strip>;
51
51
  /**
52
52
  * Complete Relation schema with all fields.
53
53
  * Used for validating full relation objects including timestamps.
@@ -70,7 +70,7 @@ export declare const CreateRelationSchema: z.ZodObject<{
70
70
  relationType: z.ZodString;
71
71
  createdAt: z.ZodOptional<z.ZodString>;
72
72
  lastModified: z.ZodOptional<z.ZodString>;
73
- }, z.core.$strict>;
73
+ }, z.core.$strip>;
74
74
  /**
75
75
  * Search query validation.
76
76
  * Validates text search queries with reasonable length constraints.
@@ -82,14 +82,14 @@ export declare const SearchQuerySchema: z.ZodString;
82
82
  export declare const DateRangeSchema: z.ZodObject<{
83
83
  start: z.ZodString;
84
84
  end: z.ZodString;
85
- }, z.core.$strict>;
85
+ }, z.core.$strip>;
86
86
  /**
87
87
  * Tag alias validation for TagManager.
88
88
  */
89
89
  export declare const TagAliasSchema: z.ZodObject<{
90
90
  canonical: z.ZodString;
91
91
  aliases: z.ZodArray<z.ZodString>;
92
- }, z.core.$strict>;
92
+ }, z.core.$strip>;
93
93
  /**
94
94
  * Export format validation.
95
95
  */
@@ -112,7 +112,7 @@ export declare const BatchCreateEntitiesSchema: z.ZodArray<z.ZodObject<{
112
112
  parentId: z.ZodOptional<z.ZodString>;
113
113
  createdAt: z.ZodOptional<z.ZodString>;
114
114
  lastModified: z.ZodOptional<z.ZodString>;
115
- }, z.core.$strict>>;
115
+ }, z.core.$strip>>;
116
116
  /**
117
117
  * Batch relation creation validation.
118
118
  * Validates array of relations with maximum constraints.
@@ -124,7 +124,7 @@ export declare const BatchCreateRelationsSchema: z.ZodArray<z.ZodObject<{
124
124
  relationType: z.ZodString;
125
125
  createdAt: z.ZodOptional<z.ZodString>;
126
126
  lastModified: z.ZodOptional<z.ZodString>;
127
- }, z.core.$strict>>;
127
+ }, z.core.$strip>>;
128
128
  /**
129
129
  * Entity name array validation for batch deletion.
130
130
  */
@@ -138,7 +138,7 @@ export declare const DeleteRelationsSchema: z.ZodArray<z.ZodObject<{
138
138
  relationType: z.ZodString;
139
139
  createdAt: z.ZodOptional<z.ZodString>;
140
140
  lastModified: z.ZodOptional<z.ZodString>;
141
- }, z.core.$strict>>;
141
+ }, z.core.$strip>>;
142
142
  /**
143
143
  * Single observation input for add operations.
144
144
  * Empty contents array is allowed (no-op).
@@ -146,7 +146,7 @@ export declare const DeleteRelationsSchema: z.ZodArray<z.ZodObject<{
146
146
  export declare const AddObservationInputSchema: z.ZodObject<{
147
147
  entityName: z.ZodString;
148
148
  contents: z.ZodArray<z.ZodString>;
149
- }, z.core.$strict>;
149
+ }, z.core.$strip>;
150
150
  /**
151
151
  * Batch observation addition validation.
152
152
  * Empty array is allowed (no-op).
@@ -154,7 +154,7 @@ export declare const AddObservationInputSchema: z.ZodObject<{
154
154
  export declare const AddObservationsInputSchema: z.ZodArray<z.ZodObject<{
155
155
  entityName: z.ZodString;
156
156
  contents: z.ZodArray<z.ZodString>;
157
- }, z.core.$strict>>;
157
+ }, z.core.$strip>>;
158
158
  /**
159
159
  * Single observation deletion input.
160
160
  * Empty observations array is allowed (no-op).
@@ -163,7 +163,7 @@ export declare const AddObservationsInputSchema: z.ZodArray<z.ZodObject<{
163
163
  export declare const DeleteObservationInputSchema: z.ZodObject<{
164
164
  entityName: z.ZodString;
165
165
  observations: z.ZodArray<z.ZodString>;
166
- }, z.core.$strict>;
166
+ }, z.core.$strip>;
167
167
  /**
168
168
  * Batch observation deletion validation.
169
169
  * Empty array is allowed (no-op).
@@ -171,7 +171,7 @@ export declare const DeleteObservationInputSchema: z.ZodObject<{
171
171
  export declare const DeleteObservationsInputSchema: z.ZodArray<z.ZodObject<{
172
172
  entityName: z.ZodString;
173
173
  observations: z.ZodArray<z.ZodString>;
174
- }, z.core.$strict>>;
174
+ }, z.core.$strip>>;
175
175
  /**
176
176
  * Archive criteria validation.
177
177
  * All fields are optional - the manager handles the case when no criteria provided.
@@ -180,7 +180,7 @@ export declare const ArchiveCriteriaSchema: z.ZodObject<{
180
180
  olderThan: z.ZodOptional<z.ZodString>;
181
181
  importanceLessThan: z.ZodOptional<z.ZodNumber>;
182
182
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
183
- }, z.core.$strict>;
183
+ }, z.core.$strip>;
184
184
  /**
185
185
  * Saved search creation input validation.
186
186
  */
@@ -192,7 +192,7 @@ export declare const SavedSearchInputSchema: z.ZodObject<{
192
192
  minImportance: z.ZodOptional<z.ZodNumber>;
193
193
  maxImportance: z.ZodOptional<z.ZodNumber>;
194
194
  entityType: z.ZodOptional<z.ZodString>;
195
- }, z.core.$strict>;
195
+ }, z.core.$strip>;
196
196
  /**
197
197
  * Saved search update validation.
198
198
  * All fields are optional for partial updates.
@@ -204,7 +204,7 @@ export declare const SavedSearchUpdateSchema: z.ZodObject<{
204
204
  minImportance: z.ZodOptional<z.ZodNumber>;
205
205
  maxImportance: z.ZodOptional<z.ZodNumber>;
206
206
  entityType: z.ZodOptional<z.ZodString>;
207
- }, z.core.$strict>;
207
+ }, z.core.$strip>;
208
208
  /**
209
209
  * Import format validation.
210
210
  */
@@ -242,7 +242,7 @@ export declare const ExportFilterSchema: z.ZodObject<{
242
242
  endDate: z.ZodOptional<z.ZodString>;
243
243
  entityType: z.ZodOptional<z.ZodString>;
244
244
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
245
- }, z.core.$strict>;
245
+ }, z.core.$strip>;
246
246
  /**
247
247
  * Tags array validation (optional, for search filters).
248
248
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
@@ -98,7 +98,7 @@ export const CreateEntitySchema = z.object({
98
98
  parentId: entityNameSchema.optional(),
99
99
  createdAt: isoDateSchema.optional(),
100
100
  lastModified: isoDateSchema.optional(),
101
- }).strict();
101
+ });
102
102
  /**
103
103
  * Entity update input schema.
104
104
  * All fields are optional for partial updates.
@@ -110,7 +110,7 @@ export const UpdateEntitySchema = z.object({
110
110
  tags: z.array(tagSchema).optional(),
111
111
  importance: importanceSchema.optional(),
112
112
  parentId: entityNameSchema.optional(),
113
- }).strict();
113
+ });
114
114
  // ==================== Relation Schemas ====================
115
115
  /**
116
116
  * Complete Relation schema with all fields.
@@ -134,7 +134,7 @@ export const CreateRelationSchema = z.object({
134
134
  relationType: relationTypeSchema,
135
135
  createdAt: isoDateSchema.optional(),
136
136
  lastModified: isoDateSchema.optional(),
137
- }).strict();
137
+ });
138
138
  // ==================== Search Schemas ====================
139
139
  /**
140
140
  * Search query validation.
@@ -150,7 +150,7 @@ export const SearchQuerySchema = z.string()
150
150
  export const DateRangeSchema = z.object({
151
151
  start: isoDateSchema,
152
152
  end: isoDateSchema,
153
- }).strict().refine((data) => new Date(data.start) <= new Date(data.end), { message: 'Start date must be before or equal to end date' });
153
+ }).refine((data) => new Date(data.start) <= new Date(data.end), { message: 'Start date must be before or equal to end date' });
154
154
  // ==================== Tag Schemas ====================
155
155
  /**
156
156
  * Tag alias validation for TagManager.
@@ -158,7 +158,7 @@ export const DateRangeSchema = z.object({
158
158
  export const TagAliasSchema = z.object({
159
159
  canonical: tagSchema,
160
160
  aliases: z.array(tagSchema).min(1, 'Must have at least one alias'),
161
- }).strict();
161
+ });
162
162
  // ==================== Export Schemas ====================
163
163
  /**
164
164
  * Export format validation.
@@ -199,7 +199,7 @@ export const DeleteRelationsSchema = z.array(CreateRelationSchema)
199
199
  export const AddObservationInputSchema = z.object({
200
200
  entityName: entityNameSchema,
201
201
  contents: z.array(observationSchema),
202
- }).strict();
202
+ });
203
203
  /**
204
204
  * Batch observation addition validation.
205
205
  * Empty array is allowed (no-op).
@@ -214,7 +214,7 @@ export const AddObservationsInputSchema = z.array(AddObservationInputSchema)
214
214
  export const DeleteObservationInputSchema = z.object({
215
215
  entityName: entityNameSchema,
216
216
  observations: z.array(observationSchema),
217
- }).strict();
217
+ });
218
218
  /**
219
219
  * Batch observation deletion validation.
220
220
  * Empty array is allowed (no-op).
@@ -227,10 +227,10 @@ export const DeleteObservationsInputSchema = z.array(DeleteObservationInputSchem
227
227
  * All fields are optional - the manager handles the case when no criteria provided.
228
228
  */
229
229
  export const ArchiveCriteriaSchema = z.object({
230
- olderThan: isoDateSchema.optional(),
230
+ olderThan: z.string().optional(),
231
231
  importanceLessThan: z.number().min(0).max(10).optional(),
232
232
  tags: z.array(tagSchema).optional(),
233
- }).strict();
233
+ });
234
234
  // ==================== Saved Search Schemas ====================
235
235
  /**
236
236
  * Saved search creation input validation.
@@ -243,7 +243,7 @@ export const SavedSearchInputSchema = z.object({
243
243
  minImportance: importanceSchema.optional(),
244
244
  maxImportance: importanceSchema.optional(),
245
245
  entityType: entityTypeSchema.optional(),
246
- }).strict();
246
+ });
247
247
  /**
248
248
  * Saved search update validation.
249
249
  * All fields are optional for partial updates.
@@ -255,7 +255,7 @@ export const SavedSearchUpdateSchema = z.object({
255
255
  minImportance: importanceSchema.optional(),
256
256
  maxImportance: importanceSchema.optional(),
257
257
  entityType: entityTypeSchema.optional(),
258
- }).strict();
258
+ });
259
259
  // ==================== Import/Export Schemas ====================
260
260
  /**
261
261
  * Import format validation.
@@ -277,7 +277,7 @@ export const ExportFilterSchema = z.object({
277
277
  endDate: isoDateSchema.optional(),
278
278
  entityType: entityTypeSchema.optional(),
279
279
  tags: z.array(tagSchema).optional(),
280
- }).strict();
280
+ });
281
281
  // ==================== Search Parameter Schemas ====================
282
282
  /**
283
283
  * Tags array validation (optional, for search filters).
@@ -4,10 +4,6 @@
4
4
  * Advanced task scheduling utilities using workerpool.
5
5
  * Phase 8 Sprint 4: Priority queues, concurrency control, progress tracking.
6
6
  *
7
- * **SECURITY WARNING:** TaskQueue uses `new Function()` internally for worker serialization.
8
- * Task functions MUST be real function objects, never user-provided strings.
9
- * Runtime validation ensures only function objects are accepted.
10
- *
11
7
  * @module utils/taskScheduler
12
8
  */
13
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taskScheduler.d.ts","sourceRoot":"","sources":["../../src/utils/taskScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taskScheduler.d.ts","sourceRoot":"","sources":["../../src/utils/taskScheduler.ts"],"names":[],"mappings":"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"}
@@ -4,27 +4,9 @@
4
4
  * Advanced task scheduling utilities using workerpool.
5
5
  * Phase 8 Sprint 4: Priority queues, concurrency control, progress tracking.
6
6
  *
7
- * **SECURITY WARNING:** TaskQueue uses `new Function()` internally for worker serialization.
8
- * Task functions MUST be real function objects, never user-provided strings.
9
- * Runtime validation ensures only function objects are accepted.
10
- *
11
7
  * @module utils/taskScheduler
12
8
  */
13
- import workerpool from '@danielsimonjr/workerpool';
14
- /**
15
- * Validates that the input is a real function object.
16
- * Prevents code injection through string masquerading as functions.
17
- *
18
- * @param fn - Function to validate
19
- * @param paramName - Parameter name for error message
20
- * @throws {TypeError} If fn is not a function
21
- * @internal
22
- */
23
- function validateFunction(fn, paramName) {
24
- if (typeof fn !== 'function') {
25
- throw new TypeError(`${paramName} must be a function, got ${typeof fn}`);
26
- }
27
- }
9
+ import workerpool from '@danielsimonjr/workerpool/modern';
28
10
  // ==================== Types ====================
29
11
  /**
30
12
  * Task priority levels.
@@ -109,8 +91,6 @@ export class TaskQueue {
109
91
  * @returns Promise that resolves when the task completes
110
92
  */
111
93
  enqueue(task) {
112
- // Security: Validate that task.fn is a real function, not a user-provided string
113
- validateFunction(task.fn, 'task.fn');
114
94
  return new Promise((resolve, reject) => {
115
95
  const queuedTask = {
116
96
  ...task,
@@ -0,0 +1,81 @@
1
+ /**
2
+ * WorkerPool
3
+ *
4
+ * Manages a pool of worker threads for parallel task execution.
5
+ *
6
+ * @module workers/WorkerPool
7
+ */
8
+ /**
9
+ * Worker pool configuration options.
10
+ */
11
+ interface PoolOptions {
12
+ /** Maximum number of concurrent workers (default: CPU count - 1) */
13
+ maxWorkers?: number;
14
+ /** Absolute path to the worker script */
15
+ workerPath: string;
16
+ }
17
+ /**
18
+ * Statistics about the worker pool.
19
+ */
20
+ export interface PoolStats {
21
+ /** Number of currently active workers */
22
+ activeWorkers: number;
23
+ /** Number of tasks waiting in queue */
24
+ queueSize: number;
25
+ /** Maximum number of concurrent workers */
26
+ maxWorkers: number;
27
+ }
28
+ /**
29
+ * Worker pool for parallel task execution.
30
+ *
31
+ * Features:
32
+ * - Limits concurrent workers to maxWorkers
33
+ * - Queues tasks when all workers are busy
34
+ * - Automatically terminates workers after task completion
35
+ * - Supports batch execution with executeAll()
36
+ */
37
+ export declare class WorkerPool<TInput, TOutput> {
38
+ private taskQueue;
39
+ private activeWorkers;
40
+ private readonly maxWorkers;
41
+ private readonly workerPath;
42
+ constructor(options: PoolOptions);
43
+ /**
44
+ * Execute a single task in a worker thread.
45
+ *
46
+ * @param data - Input data for the worker
47
+ * @returns Promise that resolves with the worker's output
48
+ */
49
+ execute(data: TInput): Promise<TOutput>;
50
+ /**
51
+ * Execute multiple tasks in parallel.
52
+ *
53
+ * @param items - Array of input data for workers
54
+ * @returns Promise that resolves with array of outputs
55
+ */
56
+ executeAll(items: TInput[]): Promise<TOutput[]>;
57
+ /**
58
+ * Process the task queue, spawning workers as needed.
59
+ */
60
+ private processQueue;
61
+ /**
62
+ * Run a single task in a worker thread.
63
+ *
64
+ * @param task - Task to execute
65
+ */
66
+ private runTask;
67
+ /**
68
+ * Wait for all active workers to complete.
69
+ *
70
+ * @returns Promise that resolves when all workers are done
71
+ */
72
+ shutdown(): Promise<void>;
73
+ /**
74
+ * Get current statistics about the worker pool.
75
+ *
76
+ * @returns Pool statistics
77
+ */
78
+ getStats(): PoolStats;
79
+ }
80
+ export {};
81
+ //# sourceMappingURL=WorkerPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerPool.d.ts","sourceRoot":"","sources":["../../src/workers/WorkerPool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH;;GAEG;AACH,UAAU,WAAW;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,MAAM,EAAE,OAAO;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,WAAW;IAKhC;;;;;OAKG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7C;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAKrD;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAsCf;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;;;OAIG;IACH,QAAQ,IAAI,SAAS;CAOtB"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * WorkerPool
3
+ *
4
+ * Manages a pool of worker threads for parallel task execution.
5
+ *
6
+ * @module workers/WorkerPool
7
+ */
8
+ import { Worker } from 'worker_threads';
9
+ import { cpus } from 'os';
10
+ /**
11
+ * Worker pool for parallel task execution.
12
+ *
13
+ * Features:
14
+ * - Limits concurrent workers to maxWorkers
15
+ * - Queues tasks when all workers are busy
16
+ * - Automatically terminates workers after task completion
17
+ * - Supports batch execution with executeAll()
18
+ */
19
+ export class WorkerPool {
20
+ taskQueue = [];
21
+ activeWorkers = 0;
22
+ maxWorkers;
23
+ workerPath;
24
+ constructor(options) {
25
+ this.maxWorkers = options.maxWorkers ?? Math.max(1, cpus().length - 1);
26
+ this.workerPath = options.workerPath;
27
+ }
28
+ /**
29
+ * Execute a single task in a worker thread.
30
+ *
31
+ * @param data - Input data for the worker
32
+ * @returns Promise that resolves with the worker's output
33
+ */
34
+ async execute(data) {
35
+ return new Promise((resolve, reject) => {
36
+ this.taskQueue.push({ data, resolve, reject });
37
+ this.processQueue();
38
+ });
39
+ }
40
+ /**
41
+ * Execute multiple tasks in parallel.
42
+ *
43
+ * @param items - Array of input data for workers
44
+ * @returns Promise that resolves with array of outputs
45
+ */
46
+ async executeAll(items) {
47
+ const promises = items.map(item => this.execute(item));
48
+ return Promise.all(promises);
49
+ }
50
+ /**
51
+ * Process the task queue, spawning workers as needed.
52
+ */
53
+ processQueue() {
54
+ while (this.taskQueue.length > 0 && this.activeWorkers < this.maxWorkers) {
55
+ const task = this.taskQueue.shift();
56
+ if (task) {
57
+ this.runTask(task);
58
+ }
59
+ }
60
+ }
61
+ /**
62
+ * Run a single task in a worker thread.
63
+ *
64
+ * @param task - Task to execute
65
+ */
66
+ runTask(task) {
67
+ this.activeWorkers++;
68
+ let taskCompleted = false;
69
+ const worker = new Worker(this.workerPath, {
70
+ workerData: task.data,
71
+ });
72
+ worker.on('message', (result) => {
73
+ if (!taskCompleted) {
74
+ taskCompleted = true;
75
+ task.resolve(result);
76
+ this.activeWorkers--;
77
+ worker.terminate();
78
+ this.processQueue();
79
+ }
80
+ });
81
+ worker.on('error', (error) => {
82
+ if (!taskCompleted) {
83
+ taskCompleted = true;
84
+ task.reject(error);
85
+ this.activeWorkers--;
86
+ worker.terminate();
87
+ this.processQueue();
88
+ }
89
+ });
90
+ worker.on('exit', (code) => {
91
+ if (!taskCompleted && code !== 0) {
92
+ taskCompleted = true;
93
+ task.reject(new Error(`Worker stopped with exit code ${code}`));
94
+ this.activeWorkers--;
95
+ this.processQueue();
96
+ }
97
+ });
98
+ }
99
+ /**
100
+ * Wait for all active workers to complete.
101
+ *
102
+ * @returns Promise that resolves when all workers are done
103
+ */
104
+ async shutdown() {
105
+ while (this.activeWorkers > 0) {
106
+ await new Promise(resolve => setTimeout(resolve, 10));
107
+ }
108
+ }
109
+ /**
110
+ * Get current statistics about the worker pool.
111
+ *
112
+ * @returns Pool statistics
113
+ */
114
+ getStats() {
115
+ return {
116
+ activeWorkers: this.activeWorkers,
117
+ queueSize: this.taskQueue.length,
118
+ maxWorkers: this.maxWorkers,
119
+ };
120
+ }
121
+ }
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module workers
8
8
  */
9
- export type { Pool, PoolStats } from '@danielsimonjr/workerpool';
9
+ export type { Pool, PoolStats } from '@danielsimonjr/workerpool/modern';
10
10
  export type { WorkerInput, MatchResult } from './levenshteinWorker.js';
11
11
  export { levenshteinDistance, similarity, searchEntities } from './levenshteinWorker.js';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGjE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGxE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module workers/levenshteinWorker
8
8
  */
9
- import workerpool from '@danielsimonjr/workerpool';
9
+ import workerpool from '@danielsimonjr/workerpool/modern';
10
10
  /**
11
11
  * Calculate Levenshtein distance between two strings.
12
12
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/memory-mcp",
3
- "version": "11.0.1",
3
+ "version": "11.1.1",
4
4
  "description": "Enhanced MCP memory server with hierarchies, compression, archiving, graph algorithms, semantic search, and 59 advanced tools",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -63,11 +63,8 @@
63
63
  "zod": "^3.24.1"
64
64
  },
65
65
  "devDependencies": {
66
- "@types/better-sqlite3": "^7.6.12",
67
- "@types/js-yaml": "^4.0.9",
68
66
  "@types/node": "^22",
69
67
  "@vitest/coverage-v8": "^4.0.13",
70
- "js-yaml": "^4.1.1",
71
68
  "shx": "^0.4.0",
72
69
  "typescript": "^5.6.2",
73
70
  "vitest": "^4.0.13"