@danielsimonjr/memory-mcp 9.9.0 → 10.0.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 (70) hide show
  1. package/dist/core/EntityManager.d.ts +2 -0
  2. package/dist/core/EntityManager.d.ts.map +1 -1
  3. package/dist/core/EntityManager.js +14 -9
  4. package/dist/core/RelationManager.d.ts.map +1 -1
  5. package/dist/core/RelationManager.js +5 -4
  6. package/dist/features/CompressionManager.d.ts +3 -1
  7. package/dist/features/CompressionManager.d.ts.map +1 -1
  8. package/dist/features/CompressionManager.js +14 -5
  9. package/dist/search/BM25Search.d.ts +148 -0
  10. package/dist/search/BM25Search.d.ts.map +1 -0
  11. package/dist/search/BM25Search.js +339 -0
  12. package/dist/search/EarlyTerminationManager.d.ts +140 -0
  13. package/dist/search/EarlyTerminationManager.d.ts.map +1 -0
  14. package/dist/search/EarlyTerminationManager.js +279 -0
  15. package/dist/search/EmbeddingCache.d.ts +175 -0
  16. package/dist/search/EmbeddingCache.d.ts.map +1 -0
  17. package/dist/search/EmbeddingCache.js +246 -0
  18. package/dist/search/EmbeddingService.d.ts +108 -9
  19. package/dist/search/EmbeddingService.d.ts.map +1 -1
  20. package/dist/search/EmbeddingService.js +187 -15
  21. package/dist/search/HybridScorer.d.ts +181 -0
  22. package/dist/search/HybridScorer.d.ts.map +1 -0
  23. package/dist/search/HybridScorer.js +257 -0
  24. package/dist/search/IncrementalIndexer.d.ts +201 -0
  25. package/dist/search/IncrementalIndexer.d.ts.map +1 -0
  26. package/dist/search/IncrementalIndexer.js +342 -0
  27. package/dist/search/OptimizedInvertedIndex.d.ts +163 -0
  28. package/dist/search/OptimizedInvertedIndex.d.ts.map +1 -0
  29. package/dist/search/OptimizedInvertedIndex.js +358 -0
  30. package/dist/search/ParallelSearchExecutor.d.ts +172 -0
  31. package/dist/search/ParallelSearchExecutor.d.ts.map +1 -0
  32. package/dist/search/ParallelSearchExecutor.js +309 -0
  33. package/dist/search/QuantizedVectorStore.d.ts +171 -0
  34. package/dist/search/QuantizedVectorStore.d.ts.map +1 -0
  35. package/dist/search/QuantizedVectorStore.js +307 -0
  36. package/dist/search/QueryCostEstimator.d.ts +135 -2
  37. package/dist/search/QueryCostEstimator.d.ts.map +1 -1
  38. package/dist/search/QueryCostEstimator.js +298 -1
  39. package/dist/search/QueryPlanCache.d.ts +220 -0
  40. package/dist/search/QueryPlanCache.d.ts.map +1 -0
  41. package/dist/search/QueryPlanCache.js +379 -0
  42. package/dist/search/ReflectionManager.d.ts +49 -0
  43. package/dist/search/ReflectionManager.d.ts.map +1 -1
  44. package/dist/search/ReflectionManager.js +113 -6
  45. package/dist/search/index.d.ts +12 -3
  46. package/dist/search/index.d.ts.map +1 -1
  47. package/dist/search/index.js +20 -2
  48. package/dist/types/index.d.ts +1 -1
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/types/types.d.ts +41 -2
  51. package/dist/types/types.d.ts.map +1 -1
  52. package/dist/utils/BatchProcessor.d.ts +271 -0
  53. package/dist/utils/BatchProcessor.d.ts.map +1 -0
  54. package/dist/utils/BatchProcessor.js +376 -0
  55. package/dist/utils/MemoryMonitor.d.ts +176 -0
  56. package/dist/utils/MemoryMonitor.d.ts.map +1 -0
  57. package/dist/utils/MemoryMonitor.js +305 -0
  58. package/dist/utils/WorkerPoolManager.d.ts +233 -0
  59. package/dist/utils/WorkerPoolManager.d.ts.map +1 -0
  60. package/dist/utils/WorkerPoolManager.js +420 -0
  61. package/dist/utils/compressedCache.d.ts +29 -0
  62. package/dist/utils/compressedCache.d.ts.map +1 -1
  63. package/dist/utils/compressedCache.js +39 -0
  64. package/dist/utils/entityUtils.d.ts +25 -0
  65. package/dist/utils/entityUtils.d.ts.map +1 -1
  66. package/dist/utils/entityUtils.js +33 -0
  67. package/dist/utils/index.d.ts +4 -1
  68. package/dist/utils/index.d.ts.map +1 -1
  69. package/dist/utils/index.js +8 -0
  70. package/package.json +1 -1
@@ -0,0 +1,246 @@
1
+ /**
2
+ * Embedding Cache
3
+ *
4
+ * Phase 12 Sprint 5: LRU cache for embedding vectors with hit/miss tracking,
5
+ * auto-invalidation on text hash changes, and TTL support.
6
+ *
7
+ * @module search/EmbeddingCache
8
+ */
9
+ import { createHash } from 'crypto';
10
+ /**
11
+ * Default cache options.
12
+ */
13
+ export const DEFAULT_EMBEDDING_CACHE_OPTIONS = {
14
+ maxSize: 1000,
15
+ ttlMs: 3600000, // 1 hour
16
+ dimensions: 384,
17
+ };
18
+ /**
19
+ * LRU cache for embedding vectors with hit/miss tracking.
20
+ *
21
+ * Features:
22
+ * - LRU eviction when max size is reached
23
+ * - Text hash-based invalidation (detects stale entries)
24
+ * - TTL support for automatic expiration
25
+ * - Hit/miss statistics tracking
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const cache = new EmbeddingCache({ maxSize: 500, ttlMs: 60000 });
30
+ *
31
+ * // Cache an embedding
32
+ * cache.set('entity1', 'Original text content', [0.1, 0.2, ...]);
33
+ *
34
+ * // Retrieve from cache
35
+ * const result = cache.get('entity1', 'Original text content');
36
+ * if (result) {
37
+ * console.log('Cache hit!', result);
38
+ * }
39
+ *
40
+ * // Check stats
41
+ * console.log(cache.getStats()); // { size, memoryBytes, hitRate, hits, misses }
42
+ * ```
43
+ */
44
+ export class EmbeddingCache {
45
+ cache;
46
+ options;
47
+ hits = 0;
48
+ misses = 0;
49
+ /**
50
+ * Create a new embedding cache.
51
+ *
52
+ * @param options - Cache configuration options
53
+ */
54
+ constructor(options) {
55
+ this.options = { ...DEFAULT_EMBEDDING_CACHE_OPTIONS, ...options };
56
+ this.cache = new Map();
57
+ }
58
+ /**
59
+ * Hash a text string for cache invalidation.
60
+ *
61
+ * @param text - Text to hash
62
+ * @returns MD5 hash of the text
63
+ */
64
+ hashText(text) {
65
+ return createHash('md5').update(text).digest('hex');
66
+ }
67
+ /**
68
+ * Check if an entry is expired based on TTL.
69
+ *
70
+ * @param entry - Cache entry to check
71
+ * @returns True if expired
72
+ */
73
+ isExpired(entry) {
74
+ return Date.now() - entry.createdAt > this.options.ttlMs;
75
+ }
76
+ /**
77
+ * Evict the least recently used entry.
78
+ */
79
+ evictLRU() {
80
+ let oldestKey = null;
81
+ let oldestTime = Infinity;
82
+ for (const [key, entry] of this.cache) {
83
+ if (entry.lastAccess < oldestTime) {
84
+ oldestTime = entry.lastAccess;
85
+ oldestKey = key;
86
+ }
87
+ }
88
+ if (oldestKey) {
89
+ this.cache.delete(oldestKey);
90
+ }
91
+ }
92
+ /**
93
+ * Get an embedding from the cache.
94
+ *
95
+ * Returns null if:
96
+ * - Key not found
97
+ * - Entry is expired (TTL)
98
+ * - Text hash doesn't match (content changed)
99
+ *
100
+ * @param key - Cache key (typically entity name)
101
+ * @param text - Current text content (for hash validation)
102
+ * @returns Embedding vector if found and valid, null otherwise
103
+ */
104
+ get(key, text) {
105
+ const entry = this.cache.get(key);
106
+ if (!entry) {
107
+ this.misses++;
108
+ return null;
109
+ }
110
+ // Check TTL
111
+ if (this.isExpired(entry)) {
112
+ this.cache.delete(key);
113
+ this.misses++;
114
+ return null;
115
+ }
116
+ // Check text hash for invalidation
117
+ const currentHash = this.hashText(text);
118
+ if (entry.textHash !== currentHash) {
119
+ this.cache.delete(key);
120
+ this.misses++;
121
+ return null;
122
+ }
123
+ // Update last access time
124
+ entry.lastAccess = Date.now();
125
+ this.hits++;
126
+ return entry.vector;
127
+ }
128
+ /**
129
+ * Set an embedding in the cache.
130
+ *
131
+ * Automatically evicts LRU entries if max size is reached.
132
+ *
133
+ * @param key - Cache key (typically entity name)
134
+ * @param text - Text content (used for hash-based invalidation)
135
+ * @param vector - Embedding vector to cache
136
+ */
137
+ set(key, text, vector) {
138
+ // Evict if at capacity and not updating existing key
139
+ if (this.cache.size >= this.options.maxSize && !this.cache.has(key)) {
140
+ this.evictLRU();
141
+ }
142
+ const now = Date.now();
143
+ this.cache.set(key, {
144
+ vector,
145
+ textHash: this.hashText(text),
146
+ createdAt: now,
147
+ lastAccess: now,
148
+ });
149
+ }
150
+ /**
151
+ * Check if a key exists in the cache (without affecting hit/miss stats).
152
+ *
153
+ * @param key - Cache key to check
154
+ * @returns True if key exists (may be expired or stale)
155
+ */
156
+ has(key) {
157
+ return this.cache.has(key);
158
+ }
159
+ /**
160
+ * Delete an entry from the cache.
161
+ *
162
+ * @param key - Cache key to delete
163
+ * @returns True if entry was deleted
164
+ */
165
+ delete(key) {
166
+ return this.cache.delete(key);
167
+ }
168
+ /**
169
+ * Clear all entries from the cache.
170
+ */
171
+ clear() {
172
+ this.cache.clear();
173
+ }
174
+ /**
175
+ * Get cache statistics.
176
+ *
177
+ * @returns Cache statistics including size, memory usage, and hit rate
178
+ */
179
+ getStats() {
180
+ const size = this.cache.size;
181
+ // Estimate memory: each entry has vector (dimensions * 8 bytes for float64)
182
+ // plus overhead for hash (~32 bytes), timestamps (~16 bytes), and Map overhead (~50 bytes)
183
+ const memoryPerEntry = this.options.dimensions * 8 + 32 + 16 + 50;
184
+ const memoryBytes = size * memoryPerEntry;
185
+ const totalRequests = this.hits + this.misses;
186
+ const hitRate = totalRequests > 0 ? this.hits / totalRequests : 0;
187
+ return {
188
+ size,
189
+ memoryBytes,
190
+ hitRate,
191
+ hits: this.hits,
192
+ misses: this.misses,
193
+ };
194
+ }
195
+ /**
196
+ * Reset hit/miss statistics (useful for benchmarks).
197
+ */
198
+ resetStats() {
199
+ this.hits = 0;
200
+ this.misses = 0;
201
+ }
202
+ /**
203
+ * Remove expired entries from the cache.
204
+ *
205
+ * Called automatically during get operations, but can be
206
+ * manually triggered for maintenance.
207
+ *
208
+ * @returns Number of entries removed
209
+ */
210
+ pruneExpired() {
211
+ let removed = 0;
212
+ for (const [key, entry] of this.cache) {
213
+ if (this.isExpired(entry)) {
214
+ this.cache.delete(key);
215
+ removed++;
216
+ }
217
+ }
218
+ return removed;
219
+ }
220
+ /**
221
+ * Get the current cache size.
222
+ *
223
+ * @returns Number of entries in the cache
224
+ */
225
+ size() {
226
+ return this.cache.size;
227
+ }
228
+ /**
229
+ * Get all cached keys.
230
+ *
231
+ * @returns Array of cache keys
232
+ */
233
+ keys() {
234
+ return Array.from(this.cache.keys());
235
+ }
236
+ /**
237
+ * Update options dynamically.
238
+ *
239
+ * Note: Reducing maxSize will not immediately evict entries.
240
+ *
241
+ * @param options - New options to apply
242
+ */
243
+ updateOptions(options) {
244
+ this.options = { ...this.options, ...options };
245
+ }
246
+ }
@@ -2,21 +2,55 @@
2
2
  * Embedding Service
3
3
  *
4
4
  * Phase 4 Sprint 10: Provides embedding abstractions for semantic search.
5
+ * Phase 12 Sprint 5: Added query/document prefixes, l2Normalize, mode parameter,
6
+ * and batch embedding with progress callback.
5
7
  * Supports multiple providers: OpenAI (cloud) and local (transformers.js).
6
8
  *
7
9
  * @module search/EmbeddingService
8
10
  */
9
- import type { EmbeddingService, EmbeddingConfig } from '../types/index.js';
11
+ import type { EmbeddingService, EmbeddingConfig, EmbeddingMode } from '../types/index.js';
12
+ /**
13
+ * Phase 12 Sprint 5: Prefixes for query-optimized embedding encoding.
14
+ *
15
+ * These prefixes are used to distinguish between query and document embeddings,
16
+ * which can improve retrieval performance with asymmetric embedding models.
17
+ */
18
+ export declare const QUERY_PREFIX = "query: ";
19
+ export declare const DOCUMENT_PREFIX = "passage: ";
20
+ /**
21
+ * Phase 12 Sprint 5: Callback for batch embedding progress.
22
+ */
23
+ export type EmbeddingProgressCallback = (progress: {
24
+ current: number;
25
+ total: number;
26
+ percentage: number;
27
+ }) => void;
28
+ /**
29
+ * Phase 12 Sprint 5: L2 normalize a vector for cosine similarity.
30
+ *
31
+ * Normalizes a vector to unit length (magnitude 1), which is required
32
+ * for accurate cosine similarity calculations.
33
+ *
34
+ * @param vector - Input vector to normalize
35
+ * @returns L2 normalized vector
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const normalized = l2Normalize([3, 4]); // [0.6, 0.8]
40
+ * ```
41
+ */
42
+ export declare function l2Normalize(vector: number[]): number[];
10
43
  /**
11
44
  * OpenAI Embedding Service
12
45
  *
13
46
  * Uses OpenAI's text-embedding-3-small model for generating embeddings.
14
47
  * Supports single and batch embedding with rate limit handling.
48
+ * Phase 12 Sprint 5: Added mode parameter and progress callback support.
15
49
  *
16
50
  * @example
17
51
  * ```typescript
18
52
  * const service = new OpenAIEmbeddingService('sk-...');
19
- * const embedding = await service.embed("Hello world");
53
+ * const embedding = await service.embed("Hello world", 'query');
20
54
  * console.log(`Generated ${embedding.length} dimensions`);
21
55
  * ```
22
56
  */
@@ -36,20 +70,41 @@ export declare class OpenAIEmbeddingService implements EmbeddingService {
36
70
  * Check if the service is ready.
37
71
  */
38
72
  isReady(): Promise<boolean>;
73
+ /**
74
+ * Apply prefix to text based on embedding mode.
75
+ *
76
+ * @param text - Original text
77
+ * @param mode - Embedding mode ('query' or 'document')
78
+ * @returns Text with appropriate prefix
79
+ */
80
+ private applyPrefix;
39
81
  /**
40
82
  * Generate embedding for a single text.
41
83
  *
42
84
  * @param text - Text to embed
85
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
43
86
  * @returns Embedding vector
44
87
  */
45
- embed(text: string): Promise<number[]>;
88
+ embed(text: string, mode?: EmbeddingMode): Promise<number[]>;
46
89
  /**
47
90
  * Generate embeddings for multiple texts in batch.
48
91
  *
49
92
  * @param texts - Array of texts to embed
93
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
94
+ * @returns Array of embedding vectors
95
+ */
96
+ embedBatch(texts: string[], mode?: EmbeddingMode): Promise<number[][]>;
97
+ /**
98
+ * Generate embeddings with progress callback support.
99
+ *
100
+ * Phase 12 Sprint 5: Added for tracking progress on large batch operations.
101
+ *
102
+ * @param texts - Array of texts to embed
103
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
104
+ * @param onProgress - Optional progress callback
50
105
  * @returns Array of embedding vectors
51
106
  */
52
- embedBatch(texts: string[]): Promise<number[][]>;
107
+ embedBatchWithProgress(texts: string[], mode?: EmbeddingMode, onProgress?: EmbeddingProgressCallback): Promise<number[][]>;
53
108
  /**
54
109
  * Internal batch embedding with retry logic.
55
110
  */
@@ -68,6 +123,7 @@ export declare class OpenAIEmbeddingService implements EmbeddingService {
68
123
  *
69
124
  * Uses @xenova/transformers for local embedding generation.
70
125
  * No API calls needed - runs entirely offline after initial model download.
126
+ * Phase 12 Sprint 5: Added mode parameter and progress callback support.
71
127
  *
72
128
  * Note: Requires @xenova/transformers to be installed as an optional dependency.
73
129
  * If not available, initialization will fail gracefully.
@@ -76,7 +132,7 @@ export declare class OpenAIEmbeddingService implements EmbeddingService {
76
132
  * ```typescript
77
133
  * const service = new LocalEmbeddingService();
78
134
  * await service.initialize();
79
- * const embedding = await service.embed("Hello world");
135
+ * const embedding = await service.embed("Hello world", 'query');
80
136
  * ```
81
137
  */
82
138
  export declare class LocalEmbeddingService implements EmbeddingService {
@@ -105,21 +161,42 @@ export declare class LocalEmbeddingService implements EmbeddingService {
105
161
  * Check if the service is ready.
106
162
  */
107
163
  isReady(): Promise<boolean>;
164
+ /**
165
+ * Apply prefix to text based on embedding mode.
166
+ *
167
+ * @param text - Original text
168
+ * @param mode - Embedding mode ('query' or 'document')
169
+ * @returns Text with appropriate prefix
170
+ */
171
+ private applyPrefix;
108
172
  /**
109
173
  * Generate embedding for a single text.
110
174
  *
111
175
  * @param text - Text to embed
176
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
112
177
  * @returns Embedding vector
113
178
  */
114
- embed(text: string): Promise<number[]>;
179
+ embed(text: string, mode?: EmbeddingMode): Promise<number[]>;
115
180
  /**
116
181
  * Generate embeddings for multiple texts in batch.
117
182
  * Note: Local processing is done sequentially to avoid memory issues.
118
183
  *
119
184
  * @param texts - Array of texts to embed
185
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
186
+ * @returns Array of embedding vectors
187
+ */
188
+ embedBatch(texts: string[], mode?: EmbeddingMode): Promise<number[][]>;
189
+ /**
190
+ * Generate embeddings with progress callback support.
191
+ *
192
+ * Phase 12 Sprint 5: Added for tracking progress on large batch operations.
193
+ *
194
+ * @param texts - Array of texts to embed
195
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
196
+ * @param onProgress - Optional progress callback
120
197
  * @returns Array of embedding vectors
121
198
  */
122
- embedBatch(texts: string[]): Promise<number[][]>;
199
+ embedBatchWithProgress(texts: string[], mode?: EmbeddingMode, onProgress?: EmbeddingProgressCallback): Promise<number[][]>;
123
200
  /**
124
201
  * Ensure the service is initialized.
125
202
  */
@@ -130,6 +207,7 @@ export declare class LocalEmbeddingService implements EmbeddingService {
130
207
  *
131
208
  * Generates deterministic mock embeddings for testing purposes.
132
209
  * Useful for unit tests that don't need real embeddings.
210
+ * Phase 12 Sprint 5: Added mode parameter and progress callback support.
133
211
  */
134
212
  export declare class MockEmbeddingService implements EmbeddingService {
135
213
  readonly dimensions: number;
@@ -145,20 +223,41 @@ export declare class MockEmbeddingService implements EmbeddingService {
145
223
  * Check if the service is ready.
146
224
  */
147
225
  isReady(): Promise<boolean>;
226
+ /**
227
+ * Apply prefix to text based on embedding mode.
228
+ *
229
+ * @param text - Original text
230
+ * @param mode - Embedding mode ('query' or 'document')
231
+ * @returns Text with appropriate prefix
232
+ */
233
+ private applyPrefix;
148
234
  /**
149
235
  * Generate a deterministic mock embedding for a text.
150
236
  *
151
237
  * @param text - Text to embed
238
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
152
239
  * @returns Mock embedding vector
153
240
  */
154
- embed(text: string): Promise<number[]>;
241
+ embed(text: string, mode?: EmbeddingMode): Promise<number[]>;
155
242
  /**
156
243
  * Generate mock embeddings for multiple texts.
157
244
  *
158
245
  * @param texts - Array of texts to embed
246
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
247
+ * @returns Array of mock embedding vectors
248
+ */
249
+ embedBatch(texts: string[], mode?: EmbeddingMode): Promise<number[][]>;
250
+ /**
251
+ * Generate mock embeddings with progress callback support.
252
+ *
253
+ * Phase 12 Sprint 5: Added for tracking progress on large batch operations.
254
+ *
255
+ * @param texts - Array of texts to embed
256
+ * @param mode - Embedding mode ('query' or 'document', default: 'document')
257
+ * @param onProgress - Optional progress callback
159
258
  * @returns Array of mock embedding vectors
160
259
  */
161
- embedBatch(texts: string[]): Promise<number[][]>;
260
+ embedBatchWithProgress(texts: string[], mode?: EmbeddingMode, onProgress?: EmbeddingProgressCallback): Promise<number[][]>;
162
261
  /**
163
262
  * Simple string hash function.
164
263
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/search/EmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAO3E;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAS1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK5C;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAkBtD;;OAEG;YACW,kBAAkB;IA0DhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAuC;IAClE,QAAQ,CAAC,QAAQ,WAAW;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA8B;IAEjD;;;;OAIG;gBACS,KAAK,CAAC,EAAE,MAAM;IAI1B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;YACW,kBAAkB;IAkBhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAWjC;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS5C;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAWtD;;OAEG;YACW,iBAAiB;CAKhC;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,UAAU;IAC3B,QAAQ,CAAC,KAAK,gBAAgB;IAE9B;;;;OAIG;gBACS,UAAU,GAAE,MAAY;IAIpC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe5C;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAItD;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,SAAS;CAalB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAoBjG"}
1
+ {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/search/EmbeddingService.ts"],"names":[],"mappings":"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"}