@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,309 +0,0 @@
1
- /**
2
- * Parallel Search Executor
3
- *
4
- * Phase 12 Sprint 2: Executes search layers (semantic, lexical, symbolic)
5
- * concurrently using Promise.all with graceful fallback on failures.
6
- *
7
- * @module search/ParallelSearchExecutor
8
- */
9
- import { SymbolicSearch } from './SymbolicSearch.js';
10
- import { SEMANTIC_SEARCH_LIMITS } from '../utils/constants.js';
11
- /**
12
- * ParallelSearchExecutor - Execute search layers concurrently
13
- *
14
- * Orchestrates parallel execution of semantic, lexical, and symbolic search
15
- * layers using Promise.all. Provides:
16
- * - Concurrent execution for improved latency
17
- * - Per-layer timing metadata
18
- * - Graceful fallback on individual layer failures
19
- * - Layer-specific error isolation
20
- *
21
- * @example
22
- * ```typescript
23
- * const executor = new ParallelSearchExecutor(semanticSearch, rankedSearch);
24
- *
25
- * const result = await executor.execute(graph, 'machine learning', {
26
- * semantic: { minSimilarity: 0.5 },
27
- * symbolic: { tags: ['ai'] }
28
- * });
29
- *
30
- * console.log(`Total time: ${result.totalTimeMs}ms`);
31
- * for (const timing of result.timings) {
32
- * console.log(`${timing.layer}: ${timing.durationMs}ms, ${timing.resultCount} results`);
33
- * }
34
- * ```
35
- */
36
- export class ParallelSearchExecutor {
37
- semanticSearch;
38
- rankedSearch;
39
- symbolicSearch;
40
- constructor(semanticSearch, rankedSearch) {
41
- this.semanticSearch = semanticSearch;
42
- this.rankedSearch = rankedSearch;
43
- this.symbolicSearch = new SymbolicSearch();
44
- }
45
- /**
46
- * Execute all search layers in parallel.
47
- *
48
- * @param graph - Knowledge graph to search
49
- * @param query - Search query text
50
- * @param options - Search options for each layer
51
- * @returns Parallel search results with timing metadata
52
- */
53
- async execute(graph, query, options = {}) {
54
- const { semantic = {}, lexical = {}, symbolic = {}, limit = SEMANTIC_SEARCH_LIMITS.DEFAULT_LIMIT, timeoutMs = 30000, } = options;
55
- const overallStart = Date.now();
56
- const timings = [];
57
- const failedLayers = [];
58
- // Execute all three layers in parallel
59
- const [semanticResult, lexicalResult, symbolicResult] = await Promise.all([
60
- this.executeSemanticLayer(graph, query, semantic, limit * 2, timeoutMs),
61
- this.executeLexicalLayer(query, lexical, limit * 2, timeoutMs),
62
- this.executeSymbolicLayer(graph.entities, symbolic, timeoutMs),
63
- ]);
64
- // Collect timing information
65
- timings.push(semanticResult.timing);
66
- timings.push(lexicalResult.timing);
67
- timings.push(symbolicResult.timing);
68
- // Track failed layers
69
- if (!semanticResult.timing.success)
70
- failedLayers.push('semantic');
71
- if (!lexicalResult.timing.success)
72
- failedLayers.push('lexical');
73
- if (!symbolicResult.timing.success)
74
- failedLayers.push('symbolic');
75
- const totalTimeMs = Date.now() - overallStart;
76
- return {
77
- semanticResults: semanticResult.results,
78
- lexicalResults: lexicalResult.results,
79
- symbolicResults: symbolicResult.results,
80
- timings,
81
- totalTimeMs,
82
- allSucceeded: failedLayers.length === 0,
83
- failedLayers,
84
- };
85
- }
86
- /**
87
- * Execute semantic search layer with timing.
88
- */
89
- async executeSemanticLayer(graph, query, options, limit, _timeoutMs) {
90
- const startTime = Date.now();
91
- const results = new Map();
92
- let success = true;
93
- let error;
94
- if (!this.semanticSearch) {
95
- // Semantic search not available - treat as graceful degradation
96
- return {
97
- results,
98
- timing: {
99
- layer: 'semantic',
100
- startTime,
101
- endTime: Date.now(),
102
- durationMs: Date.now() - startTime,
103
- success: true, // Not an error, just not configured
104
- resultCount: 0,
105
- },
106
- };
107
- }
108
- try {
109
- // Execute semantic search with timeout
110
- const semanticResults = await Promise.race([
111
- this.semanticSearch.search(graph, query, options.topK ?? limit, options.minSimilarity ?? 0),
112
- this.createTimeout(_timeoutMs, 'Semantic search timeout'),
113
- ]);
114
- for (const result of semanticResults) {
115
- results.set(result.entity.name, result.similarity);
116
- }
117
- }
118
- catch (err) {
119
- success = false;
120
- error = err instanceof Error ? err.message : String(err);
121
- }
122
- const endTime = Date.now();
123
- return {
124
- results,
125
- timing: {
126
- layer: 'semantic',
127
- startTime,
128
- endTime,
129
- durationMs: endTime - startTime,
130
- success,
131
- error,
132
- resultCount: results.size,
133
- },
134
- };
135
- }
136
- /**
137
- * Execute lexical search layer (TF-IDF/BM25) with timing.
138
- */
139
- async executeLexicalLayer(query, _options, limit, _timeoutMs) {
140
- const startTime = Date.now();
141
- const results = new Map();
142
- let success = true;
143
- let error;
144
- try {
145
- // Execute lexical search with timeout
146
- const lexicalResults = await Promise.race([
147
- this.rankedSearch.searchNodesRanked(query, undefined, // tags
148
- undefined, // minImportance
149
- undefined, // maxImportance
150
- limit),
151
- this.createTimeout(_timeoutMs, 'Lexical search timeout'),
152
- ]);
153
- // Normalize scores to 0-1 range
154
- const maxScore = Math.max(...lexicalResults.map(r => r.score), 1);
155
- for (const result of lexicalResults) {
156
- results.set(result.entity.name, result.score / maxScore);
157
- }
158
- }
159
- catch (err) {
160
- success = false;
161
- error = err instanceof Error ? err.message : String(err);
162
- }
163
- const endTime = Date.now();
164
- return {
165
- results,
166
- timing: {
167
- layer: 'lexical',
168
- startTime,
169
- endTime,
170
- durationMs: endTime - startTime,
171
- success,
172
- error,
173
- resultCount: results.size,
174
- },
175
- };
176
- }
177
- /**
178
- * Execute symbolic search layer with timing.
179
- */
180
- async executeSymbolicLayer(entities, filters, _timeoutMs) {
181
- const startTime = Date.now();
182
- const results = new Map();
183
- let success = true;
184
- let error;
185
- try {
186
- // Symbolic search is synchronous but wrap for consistency
187
- if (!filters || Object.keys(filters).length === 0) {
188
- // No filters - give all entities base score
189
- for (const entity of entities) {
190
- results.set(entity.name, 0.5);
191
- }
192
- }
193
- else {
194
- const symbolicResults = this.symbolicSearch.search(entities, filters);
195
- for (const result of symbolicResults) {
196
- results.set(result.entity.name, result.score);
197
- }
198
- }
199
- }
200
- catch (err) {
201
- success = false;
202
- error = err instanceof Error ? err.message : String(err);
203
- }
204
- const endTime = Date.now();
205
- return {
206
- results,
207
- timing: {
208
- layer: 'symbolic',
209
- startTime,
210
- endTime,
211
- durationMs: endTime - startTime,
212
- success,
213
- error,
214
- resultCount: results.size,
215
- },
216
- };
217
- }
218
- /**
219
- * Create a timeout promise.
220
- */
221
- createTimeout(ms, message) {
222
- return new Promise((_, reject) => {
223
- setTimeout(() => reject(new Error(message)), ms);
224
- });
225
- }
226
- /**
227
- * Execute a single layer independently.
228
- *
229
- * @param layer - Layer to execute
230
- * @param graph - Knowledge graph
231
- * @param query - Search query
232
- * @param options - Layer-specific options
233
- * @returns Layer results with timing
234
- */
235
- async executeLayer(layer, graph, query, options = {}) {
236
- const limit = options.limit ?? SEMANTIC_SEARCH_LIMITS.DEFAULT_LIMIT;
237
- const timeoutMs = options.timeoutMs ?? 30000;
238
- switch (layer) {
239
- case 'semantic':
240
- return this.executeSemanticLayer(graph, query, options.semantic ?? {}, limit * 2, timeoutMs);
241
- case 'lexical':
242
- return this.executeLexicalLayer(query, options.lexical ?? {}, limit * 2, timeoutMs);
243
- case 'symbolic':
244
- return this.executeSymbolicLayer(graph.entities, options.symbolic, timeoutMs);
245
- }
246
- }
247
- /**
248
- * Execute only specific layers in parallel.
249
- *
250
- * @param layers - Layers to execute
251
- * @param graph - Knowledge graph
252
- * @param query - Search query
253
- * @param options - Search options
254
- * @returns Partial results for requested layers
255
- */
256
- async executeSelectedLayers(layers, graph, query, options = {}) {
257
- const overallStart = Date.now();
258
- const results = new Map();
259
- const timings = [];
260
- const layerPromises = layers.map(layer => this.executeLayer(layer, graph, query, options).then(result => ({
261
- layer,
262
- ...result,
263
- })));
264
- const layerExecutionResults = await Promise.all(layerPromises);
265
- for (const { layer, results: layerData, timing } of layerExecutionResults) {
266
- results.set(layer, layerData);
267
- timings.push(timing);
268
- }
269
- return {
270
- results,
271
- timings,
272
- totalTimeMs: Date.now() - overallStart,
273
- };
274
- }
275
- /**
276
- * Get timing summary from results.
277
- *
278
- * @param timings - Array of layer timings
279
- * @returns Formatted timing summary
280
- */
281
- static formatTimingSummary(timings) {
282
- const lines = [];
283
- let totalTime = 0;
284
- let maxTime = 0;
285
- for (const timing of timings) {
286
- const status = timing.success ? 'OK' : `FAILED: ${timing.error}`;
287
- lines.push(` ${timing.layer}: ${timing.durationMs}ms (${timing.resultCount} results) [${status}]`);
288
- totalTime += timing.durationMs;
289
- maxTime = Math.max(maxTime, timing.durationMs);
290
- }
291
- lines.unshift('Search Layer Timings:');
292
- lines.push(` Total (sequential): ${totalTime}ms`);
293
- lines.push(` Max (parallel bottleneck): ${maxTime}ms`);
294
- lines.push(` Speedup: ${(totalTime / maxTime).toFixed(2)}x`);
295
- return lines.join('\n');
296
- }
297
- /**
298
- * Calculate potential speedup from parallel execution.
299
- *
300
- * @param timings - Array of layer timings
301
- * @returns Speedup metrics
302
- */
303
- static calculateSpeedup(timings) {
304
- const sequentialTime = timings.reduce((sum, t) => sum + t.durationMs, 0);
305
- const parallelTime = Math.max(...timings.map(t => t.durationMs));
306
- const speedup = sequentialTime / parallelTime;
307
- return { sequentialTime, parallelTime, speedup };
308
- }
309
- }
@@ -1,171 +0,0 @@
1
- /**
2
- * Quantized Vector Store
3
- *
4
- * Phase 12 Sprint 6: 8-bit scalar quantization for 4x vector memory reduction.
5
- * Uses asymmetric similarity computation for improved accuracy.
6
- *
7
- * @module search/QuantizedVectorStore
8
- */
9
- /**
10
- * Quantization parameters for a vector set.
11
- */
12
- export interface QuantizationParams {
13
- /** Minimum value in the original vectors */
14
- min: number;
15
- /** Maximum value in the original vectors */
16
- max: number;
17
- /** Scale factor for quantization */
18
- scale: number;
19
- /** Dimension of vectors */
20
- dimension: number;
21
- }
22
- /**
23
- * Statistics for the quantized vector store.
24
- */
25
- export interface QuantizedVectorStoreStats {
26
- /** Number of stored vectors */
27
- vectorCount: number;
28
- /** Vector dimension */
29
- dimension: number;
30
- /** Full precision memory usage (bytes) */
31
- fullPrecisionBytes: number;
32
- /** Quantized memory usage (bytes) */
33
- quantizedBytes: number;
34
- /** Memory reduction ratio */
35
- memoryReductionRatio: number;
36
- /** Average quantization error */
37
- avgQuantizationError: number;
38
- }
39
- /**
40
- * Search result from quantized vector store.
41
- */
42
- export interface QuantizedSearchResult {
43
- /** Entity ID */
44
- id: string;
45
- /** Similarity score (0-1) */
46
- similarity: number;
47
- /** Whether result used quantized computation */
48
- quantized: boolean;
49
- }
50
- /**
51
- * Configuration options for QuantizedVectorStore.
52
- */
53
- export interface QuantizedVectorStoreOptions {
54
- /** Use asymmetric similarity (query in full precision) */
55
- asymmetric?: boolean;
56
- /** Minimum vectors before enabling quantization */
57
- minVectorsForQuantization?: number;
58
- /** Enable accuracy tracking */
59
- trackAccuracy?: boolean;
60
- }
61
- /**
62
- * Quantized Vector Store with 8-bit scalar quantization.
63
- *
64
- * Provides 4x memory reduction while maintaining >95% accuracy
65
- * using asymmetric similarity computation.
66
- *
67
- * @example
68
- * ```typescript
69
- * const store = new QuantizedVectorStore();
70
- *
71
- * // Add vectors
72
- * store.add('entity1', [0.1, 0.2, 0.3, ...]);
73
- * store.add('entity2', [0.4, 0.5, 0.6, ...]);
74
- *
75
- * // Search
76
- * const results = store.search([0.15, 0.25, 0.35, ...], 10);
77
- *
78
- * // Get stats
79
- * const stats = store.getStats();
80
- * console.log(`Memory reduction: ${stats.memoryReductionRatio}x`);
81
- * ```
82
- */
83
- export declare class QuantizedVectorStore {
84
- private fullPrecisionVectors;
85
- private quantizedVectors;
86
- private quantizationParams;
87
- private options;
88
- private isQuantized;
89
- private quantizationErrors;
90
- constructor(options?: QuantizedVectorStoreOptions);
91
- /**
92
- * Add a vector to the store.
93
- *
94
- * @param id - Entity identifier
95
- * @param vector - Float vector (any dimension, must be consistent)
96
- */
97
- add(id: string, vector: number[]): void;
98
- /**
99
- * Remove a vector from the store.
100
- *
101
- * @param id - Entity identifier
102
- * @returns True if vector was removed
103
- */
104
- remove(id: string): boolean;
105
- /**
106
- * Check if a vector exists.
107
- *
108
- * @param id - Entity identifier
109
- */
110
- has(id: string): boolean;
111
- /**
112
- * Get a vector (dequantized if necessary).
113
- *
114
- * @param id - Entity identifier
115
- * @returns Vector or undefined
116
- */
117
- get(id: string): number[] | undefined;
118
- /**
119
- * Search for similar vectors.
120
- *
121
- * @param query - Query vector
122
- * @param k - Number of results to return
123
- * @returns Top k similar vectors with scores
124
- */
125
- search(query: number[], k: number): QuantizedSearchResult[];
126
- /**
127
- * Compute similarity between a query and specific entity.
128
- *
129
- * @param query - Query vector
130
- * @param id - Entity identifier
131
- * @returns Similarity score or undefined if not found
132
- */
133
- computeSimilarity(query: number[], id: string): number | undefined;
134
- /**
135
- * Force quantization of all vectors.
136
- */
137
- quantize(): void;
138
- /**
139
- * Get store statistics.
140
- */
141
- getStats(): QuantizedVectorStoreStats;
142
- /**
143
- * Check if store is currently using quantization.
144
- */
145
- isUsingQuantization(): boolean;
146
- /**
147
- * Get the number of stored vectors.
148
- */
149
- size(): number;
150
- /**
151
- * Clear all vectors from the store.
152
- */
153
- clear(): void;
154
- /**
155
- * Export all vectors.
156
- */
157
- export(): Map<string, number[]>;
158
- /**
159
- * Import vectors from a map.
160
- *
161
- * @param vectors - Map of id to vector
162
- * @param quantize - Whether to quantize after import
163
- */
164
- import(vectors: Map<string, number[]>, quantize?: boolean): void;
165
- private computeQuantizationParams;
166
- private quantizeVector;
167
- private dequantizeVector;
168
- private cosineSimilarity;
169
- private computeError;
170
- }
171
- //# sourceMappingURL=QuantizedVectorStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuantizedVectorStore.d.ts","sourceRoot":"","sources":["../../src/search/QuantizedVectorStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iCAAiC;IACjC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAQD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAgB;gBAE9B,OAAO,CAAC,EAAE,2BAA2B;IAMjD;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAuBvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B;;;;OAIG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAKrC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAyB3D;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAelE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAqBhB;;OAEG;IACH,QAAQ,IAAI,yBAAyB;IAsBrC;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAQ/B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,UAAO,GAAG,IAAI;IAa7D,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,YAAY;CAQrB"}