@soulcraft/brainy 0.41.0 → 0.43.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 (144) hide show
  1. package/README.md +605 -194
  2. package/dist/augmentations/conduitAugmentations.js +1158 -0
  3. package/dist/augmentations/conduitAugmentations.js.map +1 -0
  4. package/dist/augmentations/memoryAugmentations.d.ts +2 -0
  5. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  6. package/dist/augmentations/memoryAugmentations.js +270 -0
  7. package/dist/augmentations/memoryAugmentations.js.map +1 -0
  8. package/dist/augmentations/serverSearchAugmentations.js +531 -0
  9. package/dist/augmentations/serverSearchAugmentations.js.map +1 -0
  10. package/dist/browserFramework.d.ts +15 -0
  11. package/dist/demo.d.ts +106 -0
  12. package/dist/examples/basicUsage.js +118 -0
  13. package/dist/examples/basicUsage.js.map +1 -0
  14. package/dist/hnsw/distributedSearch.js +452 -0
  15. package/dist/hnsw/distributedSearch.js.map +1 -0
  16. package/dist/hnsw/hnswIndex.js +602 -0
  17. package/dist/hnsw/hnswIndex.js.map +1 -0
  18. package/dist/hnsw/hnswIndexOptimized.js +471 -0
  19. package/dist/hnsw/hnswIndexOptimized.js.map +1 -0
  20. package/dist/hnsw/optimizedHNSWIndex.js +313 -0
  21. package/dist/hnsw/optimizedHNSWIndex.js.map +1 -0
  22. package/dist/hnsw/partitionedHNSWIndex.js +304 -0
  23. package/dist/hnsw/partitionedHNSWIndex.js.map +1 -0
  24. package/dist/hnsw/scaledHNSWSystem.js +559 -0
  25. package/dist/hnsw/scaledHNSWSystem.js.map +1 -0
  26. package/dist/index.d.ts +3 -2
  27. package/dist/index.js +81 -0
  28. package/dist/mcp/brainyMCPAdapter.js +142 -0
  29. package/dist/mcp/brainyMCPAdapter.js.map +1 -0
  30. package/dist/mcp/brainyMCPService.js +248 -0
  31. package/dist/mcp/brainyMCPService.js.map +1 -0
  32. package/dist/mcp/index.js +17 -0
  33. package/dist/mcp/index.js.map +1 -0
  34. package/dist/mcp/mcpAugmentationToolset.js +180 -0
  35. package/dist/mcp/mcpAugmentationToolset.js.map +1 -0
  36. package/dist/storage/adapters/baseStorageAdapter.js +349 -0
  37. package/dist/storage/adapters/baseStorageAdapter.js.map +1 -0
  38. package/dist/storage/adapters/batchS3Operations.js +287 -0
  39. package/dist/storage/adapters/batchS3Operations.js.map +1 -0
  40. package/dist/storage/adapters/fileSystemStorage.js +846 -0
  41. package/dist/storage/adapters/fileSystemStorage.js.map +1 -0
  42. package/dist/storage/adapters/memoryStorage.js +532 -0
  43. package/dist/storage/adapters/memoryStorage.js.map +1 -0
  44. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  45. package/dist/storage/adapters/opfsStorage.js +1118 -0
  46. package/dist/storage/adapters/opfsStorage.js.map +1 -0
  47. package/dist/storage/adapters/optimizedS3Search.js +248 -0
  48. package/dist/storage/adapters/optimizedS3Search.js.map +1 -0
  49. package/dist/storage/adapters/s3CompatibleStorage.js +2026 -0
  50. package/dist/storage/adapters/s3CompatibleStorage.js.map +1 -0
  51. package/dist/storage/baseStorage.js +603 -0
  52. package/dist/storage/baseStorage.js.map +1 -0
  53. package/dist/storage/cacheManager.js +1306 -0
  54. package/dist/storage/cacheManager.js.map +1 -0
  55. package/dist/storage/enhancedCacheManager.js +520 -0
  56. package/dist/storage/enhancedCacheManager.js.map +1 -0
  57. package/dist/storage/readOnlyOptimizations.js +425 -0
  58. package/dist/storage/readOnlyOptimizations.js.map +1 -0
  59. package/dist/storage/storageFactory.d.ts +0 -1
  60. package/dist/storage/storageFactory.d.ts.map +1 -1
  61. package/dist/storage/storageFactory.js +227 -0
  62. package/dist/storage/storageFactory.js.map +1 -0
  63. package/dist/types/augmentations.js +16 -0
  64. package/dist/types/augmentations.js.map +1 -0
  65. package/dist/types/brainyDataInterface.js +8 -0
  66. package/dist/types/brainyDataInterface.js.map +1 -0
  67. package/dist/types/distributedTypes.js +6 -0
  68. package/dist/types/distributedTypes.js.map +1 -0
  69. package/dist/types/fileSystemTypes.js +8 -0
  70. package/dist/types/fileSystemTypes.js.map +1 -0
  71. package/dist/types/graphTypes.js +247 -0
  72. package/dist/types/graphTypes.js.map +1 -0
  73. package/dist/types/mcpTypes.js +22 -0
  74. package/dist/types/mcpTypes.js.map +1 -0
  75. package/dist/types/paginationTypes.js +5 -0
  76. package/dist/types/paginationTypes.js.map +1 -0
  77. package/dist/types/pipelineTypes.js +7 -0
  78. package/dist/types/pipelineTypes.js.map +1 -0
  79. package/dist/types/tensorflowTypes.js +6 -0
  80. package/dist/types/tensorflowTypes.js.map +1 -0
  81. package/dist/unified.js +52 -128251
  82. package/dist/utils/autoConfiguration.js +341 -0
  83. package/dist/utils/autoConfiguration.js.map +1 -0
  84. package/dist/utils/cacheAutoConfig.js +261 -0
  85. package/dist/utils/cacheAutoConfig.js.map +1 -0
  86. package/dist/utils/crypto.js +45 -0
  87. package/dist/utils/crypto.js.map +1 -0
  88. package/dist/utils/distance.js +239 -0
  89. package/dist/utils/distance.js.map +1 -0
  90. package/dist/utils/embedding.d.ts.map +1 -1
  91. package/dist/utils/embedding.js +702 -0
  92. package/dist/utils/embedding.js.map +1 -0
  93. package/dist/utils/environment.js +75 -0
  94. package/dist/utils/environment.js.map +1 -0
  95. package/dist/utils/fieldNameTracking.js +90 -0
  96. package/dist/utils/fieldNameTracking.js.map +1 -0
  97. package/dist/utils/index.d.ts +1 -0
  98. package/dist/utils/index.d.ts.map +1 -1
  99. package/dist/utils/index.js +8 -0
  100. package/dist/utils/index.js.map +1 -0
  101. package/dist/utils/jsonProcessing.js +179 -0
  102. package/dist/utils/jsonProcessing.js.map +1 -0
  103. package/dist/utils/logger.js +129 -0
  104. package/dist/utils/logger.js.map +1 -0
  105. package/dist/utils/operationUtils.js +126 -0
  106. package/dist/utils/operationUtils.js.map +1 -0
  107. package/dist/utils/robustModelLoader.d.ts +14 -0
  108. package/dist/utils/robustModelLoader.d.ts.map +1 -1
  109. package/dist/utils/robustModelLoader.js +537 -0
  110. package/dist/utils/robustModelLoader.js.map +1 -0
  111. package/dist/utils/searchCache.js +248 -0
  112. package/dist/utils/searchCache.js.map +1 -0
  113. package/dist/utils/statistics.js +25 -0
  114. package/dist/utils/statistics.js.map +1 -0
  115. package/dist/utils/statisticsCollector.js +224 -0
  116. package/dist/utils/statisticsCollector.js.map +1 -0
  117. package/dist/utils/textEncoding.js +309 -0
  118. package/dist/utils/textEncoding.js.map +1 -0
  119. package/dist/utils/typeUtils.js +40 -0
  120. package/dist/utils/typeUtils.js.map +1 -0
  121. package/dist/utils/version.d.ts +15 -3
  122. package/dist/utils/version.d.ts.map +1 -1
  123. package/dist/utils/version.js +24 -0
  124. package/dist/utils/version.js.map +1 -0
  125. package/dist/utils/workerUtils.js +458 -0
  126. package/dist/utils/workerUtils.js.map +1 -0
  127. package/package.json +23 -18
  128. package/dist/brainy.js +0 -90220
  129. package/dist/brainy.min.js +0 -12511
  130. package/dist/patched-platform-node.d.ts +0 -17
  131. package/dist/statistics/statisticsManager.d.ts +0 -121
  132. package/dist/storage/fileSystemStorage.d.ts +0 -73
  133. package/dist/storage/fileSystemStorage.d.ts.map +0 -1
  134. package/dist/storage/opfsStorage.d.ts +0 -236
  135. package/dist/storage/opfsStorage.d.ts.map +0 -1
  136. package/dist/storage/s3CompatibleStorage.d.ts +0 -157
  137. package/dist/storage/s3CompatibleStorage.d.ts.map +0 -1
  138. package/dist/testing/prettyReporter.d.ts +0 -23
  139. package/dist/testing/prettySummaryReporter.d.ts +0 -22
  140. package/dist/unified.min.js +0 -16153
  141. package/dist/utils/environmentDetection.d.ts +0 -47
  142. package/dist/utils/environmentDetection.d.ts.map +0 -1
  143. package/dist/utils/tensorflowUtils.d.ts +0 -17
  144. package/dist/utils/tensorflowUtils.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../src/storage/cacheManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,520 @@
1
+ /**
2
+ * Enhanced Multi-Level Cache Manager with Predictive Prefetching
3
+ * Optimized for HNSW search patterns and large-scale vector operations
4
+ */
5
+ // Prefetch prediction strategies
6
+ var PrefetchStrategy;
7
+ (function (PrefetchStrategy) {
8
+ PrefetchStrategy["GRAPH_CONNECTIVITY"] = "connectivity";
9
+ PrefetchStrategy["VECTOR_SIMILARITY"] = "similarity";
10
+ PrefetchStrategy["ACCESS_PATTERN"] = "pattern";
11
+ PrefetchStrategy["HYBRID"] = "hybrid";
12
+ })(PrefetchStrategy || (PrefetchStrategy = {}));
13
+ /**
14
+ * Enhanced cache manager with intelligent prefetching for HNSW operations
15
+ * Provides multi-level caching optimized for vector search workloads
16
+ */
17
+ export class EnhancedCacheManager {
18
+ constructor(config = {}) {
19
+ this.hotCache = new Map();
20
+ this.warmCache = new Map();
21
+ this.prefetchQueue = new Set();
22
+ this.accessPatterns = new Map(); // Track access times
23
+ this.vectorIndex = new Map(); // For similarity calculations
24
+ this.prefetchInProgress = false;
25
+ // Statistics and monitoring
26
+ this.stats = {
27
+ hotCacheHits: 0,
28
+ hotCacheMisses: 0,
29
+ warmCacheHits: 0,
30
+ warmCacheMisses: 0,
31
+ prefetchHits: 0,
32
+ prefetchMisses: 0,
33
+ totalPrefetched: 0,
34
+ predictionAccuracy: 0,
35
+ backgroundOptimizations: 0
36
+ };
37
+ this.config = {
38
+ hotCacheMaxSize: 1000,
39
+ hotCacheEvictionThreshold: 0.8,
40
+ warmCacheMaxSize: 10000,
41
+ warmCacheTTL: 300000, // 5 minutes
42
+ prefetchEnabled: true,
43
+ prefetchStrategy: PrefetchStrategy.HYBRID,
44
+ prefetchBatchSize: 50,
45
+ predictionLookahead: 3,
46
+ similarityThreshold: 0.8,
47
+ maxSimilarityDistance: 2.0,
48
+ backgroundOptimization: true,
49
+ statisticsCollection: true,
50
+ ...config
51
+ };
52
+ // Start background optimization if enabled
53
+ if (this.config.backgroundOptimization) {
54
+ this.startBackgroundOptimization();
55
+ }
56
+ }
57
+ /**
58
+ * Set storage adapters for warm/cold storage operations
59
+ */
60
+ setStorageAdapters(storageAdapter, batchOperations) {
61
+ this.storageAdapter = storageAdapter;
62
+ this.batchOperations = batchOperations;
63
+ }
64
+ /**
65
+ * Get item with intelligent prefetching
66
+ */
67
+ async get(id) {
68
+ const startTime = Date.now();
69
+ // Update access pattern
70
+ this.recordAccess(id, startTime);
71
+ // Check hot cache first
72
+ let entry = this.hotCache.get(id);
73
+ if (entry && !this.isExpired(entry)) {
74
+ entry.lastAccessed = startTime;
75
+ entry.accessCount++;
76
+ this.stats.hotCacheHits++;
77
+ // Trigger predictive prefetch
78
+ if (this.config.prefetchEnabled) {
79
+ this.schedulePrefetch(id, entry.data);
80
+ }
81
+ return entry.data;
82
+ }
83
+ this.stats.hotCacheMisses++;
84
+ // Check warm cache
85
+ entry = this.warmCache.get(id);
86
+ if (entry && !this.isExpired(entry)) {
87
+ entry.lastAccessed = startTime;
88
+ entry.accessCount++;
89
+ this.stats.warmCacheHits++;
90
+ // Promote to hot cache if frequently accessed
91
+ if (entry.accessCount > 3) {
92
+ this.promoteToHotCache(id, entry);
93
+ }
94
+ return entry.data;
95
+ }
96
+ this.stats.warmCacheMisses++;
97
+ // Load from storage
98
+ const item = await this.loadFromStorage(id);
99
+ if (item) {
100
+ // Cache the item
101
+ await this.set(id, item);
102
+ // Trigger predictive prefetch
103
+ if (this.config.prefetchEnabled) {
104
+ this.schedulePrefetch(id, item);
105
+ }
106
+ }
107
+ return item;
108
+ }
109
+ /**
110
+ * Get multiple items efficiently with batch operations
111
+ */
112
+ async getMany(ids) {
113
+ const result = new Map();
114
+ const uncachedIds = [];
115
+ // Check caches first
116
+ for (const id of ids) {
117
+ const cached = await this.get(id);
118
+ if (cached) {
119
+ result.set(id, cached);
120
+ }
121
+ else {
122
+ uncachedIds.push(id);
123
+ }
124
+ }
125
+ // Batch load uncached items
126
+ if (uncachedIds.length > 0 && this.batchOperations) {
127
+ const batchResult = await this.batchOperations.batchGetNodes(uncachedIds);
128
+ // Cache loaded items
129
+ for (const [id, item] of batchResult.items) {
130
+ await this.set(id, item);
131
+ result.set(id, item);
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ /**
137
+ * Set item in cache with metadata
138
+ */
139
+ async set(id, item) {
140
+ const now = Date.now();
141
+ const entry = {
142
+ data: item,
143
+ lastAccessed: now,
144
+ accessCount: 1,
145
+ expiresAt: now + this.config.warmCacheTTL,
146
+ connectedNodes: this.extractConnectedNodes(item),
147
+ predictionScore: 0
148
+ };
149
+ // Store vector for similarity calculations
150
+ if ('vector' in item && item.vector) {
151
+ this.vectorIndex.set(id, item.vector);
152
+ entry.vectorSimilarity = 0;
153
+ }
154
+ // Add to warm cache initially
155
+ this.warmCache.set(id, entry);
156
+ // Clean up if needed
157
+ if (this.warmCache.size > this.config.warmCacheMaxSize) {
158
+ this.evictFromWarmCache();
159
+ }
160
+ // Update statistics
161
+ this.stats.warmCacheHits++; // Count as a potential future hit
162
+ }
163
+ /**
164
+ * Intelligent prefetch based on access patterns and graph structure
165
+ */
166
+ async schedulePrefetch(currentId, currentItem) {
167
+ if (this.prefetchInProgress || !this.config.prefetchEnabled) {
168
+ return;
169
+ }
170
+ // Use different strategies based on configuration
171
+ let candidateIds = [];
172
+ switch (this.config.prefetchStrategy) {
173
+ case PrefetchStrategy.GRAPH_CONNECTIVITY:
174
+ candidateIds = this.predictByConnectivity(currentId, currentItem);
175
+ break;
176
+ case PrefetchStrategy.VECTOR_SIMILARITY:
177
+ candidateIds = await this.predictBySimilarity(currentId, currentItem);
178
+ break;
179
+ case PrefetchStrategy.ACCESS_PATTERN:
180
+ candidateIds = this.predictByAccessPattern(currentId);
181
+ break;
182
+ case PrefetchStrategy.HYBRID:
183
+ candidateIds = await this.hybridPrediction(currentId, currentItem);
184
+ break;
185
+ }
186
+ // Filter out already cached items
187
+ const uncachedIds = candidateIds.filter(id => !this.hotCache.has(id) && !this.warmCache.has(id)).slice(0, this.config.prefetchBatchSize);
188
+ if (uncachedIds.length > 0) {
189
+ this.executePrefetch(uncachedIds);
190
+ }
191
+ }
192
+ /**
193
+ * Predict next nodes based on graph connectivity
194
+ */
195
+ predictByConnectivity(currentId, currentItem) {
196
+ const candidates = [];
197
+ if ('connections' in currentItem && currentItem.connections) {
198
+ const connections = currentItem.connections;
199
+ // Add immediate neighbors with higher priority for lower levels
200
+ for (const [level, nodeIds] of connections.entries()) {
201
+ const priority = Math.max(1, 5 - level); // Higher priority for level 0
202
+ for (const nodeId of nodeIds) {
203
+ // Add based on priority
204
+ for (let i = 0; i < priority; i++) {
205
+ candidates.push(nodeId);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ // Shuffle and deduplicate
211
+ const shuffled = candidates.sort(() => Math.random() - 0.5);
212
+ return [...new Set(shuffled)];
213
+ }
214
+ /**
215
+ * Predict next nodes based on vector similarity
216
+ */
217
+ async predictBySimilarity(currentId, currentItem) {
218
+ if (!('vector' in currentItem) || !currentItem.vector) {
219
+ return [];
220
+ }
221
+ const currentVector = currentItem.vector;
222
+ const similarities = [];
223
+ // Calculate similarities with vectors in cache
224
+ for (const [id, vector] of this.vectorIndex.entries()) {
225
+ if (id === currentId)
226
+ continue;
227
+ const similarity = this.cosineSimilarity(currentVector, vector);
228
+ if (similarity > this.config.similarityThreshold) {
229
+ similarities.push([id, similarity]);
230
+ }
231
+ }
232
+ // Sort by similarity and return top candidates
233
+ similarities.sort((a, b) => b[1] - a[1]);
234
+ return similarities.slice(0, this.config.prefetchBatchSize).map(([id]) => id);
235
+ }
236
+ /**
237
+ * Predict based on historical access patterns
238
+ */
239
+ predictByAccessPattern(currentId) {
240
+ const currentPattern = this.accessPatterns.get(currentId);
241
+ if (!currentPattern || currentPattern.length < 2) {
242
+ return [];
243
+ }
244
+ // Find similar access patterns
245
+ const candidates = [];
246
+ for (const [id, pattern] of this.accessPatterns.entries()) {
247
+ if (id === currentId || pattern.length < 2)
248
+ continue;
249
+ const similarity = this.patternSimilarity(currentPattern, pattern);
250
+ if (similarity > 0.5) {
251
+ candidates.push([id, similarity]);
252
+ }
253
+ }
254
+ candidates.sort((a, b) => b[1] - a[1]);
255
+ return candidates.slice(0, this.config.prefetchBatchSize).map(([id]) => id);
256
+ }
257
+ /**
258
+ * Hybrid prediction combining multiple strategies
259
+ */
260
+ async hybridPrediction(currentId, currentItem) {
261
+ const connectivityCandidates = this.predictByConnectivity(currentId, currentItem);
262
+ const similarityCandidates = await this.predictBySimilarity(currentId, currentItem);
263
+ const patternCandidates = this.predictByAccessPattern(currentId);
264
+ // Weighted combination
265
+ const candidateScores = new Map();
266
+ // Connectivity gets highest weight (40%)
267
+ connectivityCandidates.forEach((id, index) => {
268
+ const score = (connectivityCandidates.length - index) / connectivityCandidates.length * 0.4;
269
+ candidateScores.set(id, (candidateScores.get(id) || 0) + score);
270
+ });
271
+ // Similarity gets medium weight (35%)
272
+ similarityCandidates.forEach((id, index) => {
273
+ const score = (similarityCandidates.length - index) / similarityCandidates.length * 0.35;
274
+ candidateScores.set(id, (candidateScores.get(id) || 0) + score);
275
+ });
276
+ // Pattern gets lower weight (25%)
277
+ patternCandidates.forEach((id, index) => {
278
+ const score = (patternCandidates.length - index) / patternCandidates.length * 0.25;
279
+ candidateScores.set(id, (candidateScores.get(id) || 0) + score);
280
+ });
281
+ // Sort by combined score
282
+ const sortedCandidates = Array.from(candidateScores.entries())
283
+ .sort((a, b) => b[1] - a[1])
284
+ .map(([id]) => id);
285
+ return sortedCandidates.slice(0, this.config.prefetchBatchSize);
286
+ }
287
+ /**
288
+ * Execute prefetch operation in background
289
+ */
290
+ async executePrefetch(ids) {
291
+ if (this.prefetchInProgress || !this.batchOperations) {
292
+ return;
293
+ }
294
+ this.prefetchInProgress = true;
295
+ try {
296
+ const batchResult = await this.batchOperations.batchGetNodes(ids);
297
+ // Cache prefetched items
298
+ for (const [id, item] of batchResult.items) {
299
+ const entry = {
300
+ data: item,
301
+ lastAccessed: Date.now(),
302
+ accessCount: 0, // Prefetched items start with 0 access count
303
+ expiresAt: Date.now() + this.config.warmCacheTTL,
304
+ connectedNodes: this.extractConnectedNodes(item),
305
+ predictionScore: 1 // Mark as prefetched
306
+ };
307
+ this.warmCache.set(id, entry);
308
+ }
309
+ this.stats.totalPrefetched += batchResult.items.size;
310
+ }
311
+ catch (error) {
312
+ console.warn('Prefetch operation failed:', error);
313
+ }
314
+ finally {
315
+ this.prefetchInProgress = false;
316
+ }
317
+ }
318
+ /**
319
+ * Load item from storage adapter
320
+ */
321
+ async loadFromStorage(id) {
322
+ if (!this.storageAdapter) {
323
+ return null;
324
+ }
325
+ try {
326
+ return await this.storageAdapter.get(id);
327
+ }
328
+ catch (error) {
329
+ console.warn(`Failed to load ${id} from storage:`, error);
330
+ return null;
331
+ }
332
+ }
333
+ /**
334
+ * Promote frequently accessed item to hot cache
335
+ */
336
+ promoteToHotCache(id, entry) {
337
+ // Remove from warm cache
338
+ this.warmCache.delete(id);
339
+ // Add to hot cache
340
+ this.hotCache.set(id, entry);
341
+ // Evict if necessary
342
+ if (this.hotCache.size > this.config.hotCacheMaxSize) {
343
+ this.evictFromHotCache();
344
+ }
345
+ }
346
+ /**
347
+ * Evict least recently used items from hot cache
348
+ */
349
+ evictFromHotCache() {
350
+ const threshold = Math.floor(this.config.hotCacheMaxSize * this.config.hotCacheEvictionThreshold);
351
+ if (this.hotCache.size <= threshold) {
352
+ return;
353
+ }
354
+ // Sort by last accessed time and access count
355
+ const entries = Array.from(this.hotCache.entries())
356
+ .sort((a, b) => {
357
+ const scoreA = a[1].accessCount * 0.7 + (Date.now() - a[1].lastAccessed) * -0.3;
358
+ const scoreB = b[1].accessCount * 0.7 + (Date.now() - b[1].lastAccessed) * -0.3;
359
+ return scoreA - scoreB;
360
+ });
361
+ // Remove least valuable entries
362
+ const toRemove = entries.slice(0, this.hotCache.size - threshold);
363
+ for (const [id] of toRemove) {
364
+ this.hotCache.delete(id);
365
+ }
366
+ }
367
+ /**
368
+ * Evict expired items from warm cache
369
+ */
370
+ evictFromWarmCache() {
371
+ const now = Date.now();
372
+ const toRemove = [];
373
+ for (const [id, entry] of this.warmCache.entries()) {
374
+ if (this.isExpired(entry)) {
375
+ toRemove.push(id);
376
+ }
377
+ }
378
+ // Remove expired items
379
+ for (const id of toRemove) {
380
+ this.warmCache.delete(id);
381
+ this.vectorIndex.delete(id);
382
+ }
383
+ // If still over limit, remove LRU items
384
+ if (this.warmCache.size > this.config.warmCacheMaxSize) {
385
+ const entries = Array.from(this.warmCache.entries())
386
+ .sort((a, b) => a[1].lastAccessed - b[1].lastAccessed);
387
+ const excess = this.warmCache.size - this.config.warmCacheMaxSize;
388
+ for (let i = 0; i < excess; i++) {
389
+ const [id] = entries[i];
390
+ this.warmCache.delete(id);
391
+ this.vectorIndex.delete(id);
392
+ }
393
+ }
394
+ }
395
+ /**
396
+ * Record access pattern for prediction
397
+ */
398
+ recordAccess(id, timestamp) {
399
+ if (!this.config.statisticsCollection) {
400
+ return;
401
+ }
402
+ let pattern = this.accessPatterns.get(id);
403
+ if (!pattern) {
404
+ pattern = [];
405
+ this.accessPatterns.set(id, pattern);
406
+ }
407
+ pattern.push(timestamp);
408
+ // Keep only recent accesses (last 10)
409
+ if (pattern.length > 10) {
410
+ pattern.shift();
411
+ }
412
+ }
413
+ /**
414
+ * Extract connected node IDs from HNSW item
415
+ */
416
+ extractConnectedNodes(item) {
417
+ const connected = new Set();
418
+ if ('connections' in item && item.connections) {
419
+ const connections = item.connections;
420
+ for (const nodeIds of connections.values()) {
421
+ nodeIds.forEach(id => connected.add(id));
422
+ }
423
+ }
424
+ return connected;
425
+ }
426
+ /**
427
+ * Check if cache entry is expired
428
+ */
429
+ isExpired(entry) {
430
+ return entry.expiresAt !== null && Date.now() > entry.expiresAt;
431
+ }
432
+ /**
433
+ * Calculate cosine similarity between vectors
434
+ */
435
+ cosineSimilarity(a, b) {
436
+ if (a.length !== b.length)
437
+ return 0;
438
+ let dotProduct = 0;
439
+ let normA = 0;
440
+ let normB = 0;
441
+ for (let i = 0; i < a.length; i++) {
442
+ dotProduct += a[i] * b[i];
443
+ normA += a[i] * a[i];
444
+ normB += b[i] * b[i];
445
+ }
446
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
447
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
448
+ }
449
+ /**
450
+ * Calculate pattern similarity between access patterns
451
+ */
452
+ patternSimilarity(pattern1, pattern2) {
453
+ const minLength = Math.min(pattern1.length, pattern2.length);
454
+ if (minLength < 2)
455
+ return 0;
456
+ // Calculate intervals between accesses
457
+ const intervals1 = pattern1.slice(1).map((t, i) => t - pattern1[i]);
458
+ const intervals2 = pattern2.slice(1).map((t, i) => t - pattern2[i]);
459
+ // Compare interval patterns
460
+ let similarity = 0;
461
+ const compareLength = Math.min(intervals1.length, intervals2.length);
462
+ for (let i = 0; i < compareLength; i++) {
463
+ const diff = Math.abs(intervals1[i] - intervals2[i]);
464
+ const maxInterval = Math.max(intervals1[i], intervals2[i]);
465
+ similarity += maxInterval === 0 ? 1 : 1 - (diff / maxInterval);
466
+ }
467
+ return compareLength === 0 ? 0 : similarity / compareLength;
468
+ }
469
+ /**
470
+ * Start background optimization process
471
+ */
472
+ startBackgroundOptimization() {
473
+ setInterval(() => {
474
+ this.runBackgroundOptimization();
475
+ }, 60000); // Run every minute
476
+ }
477
+ /**
478
+ * Run background optimization tasks
479
+ */
480
+ runBackgroundOptimization() {
481
+ // Clean up expired entries
482
+ this.evictFromWarmCache();
483
+ this.evictFromHotCache();
484
+ // Clean up old access patterns
485
+ const cutoff = Date.now() - 3600000; // 1 hour
486
+ for (const [id, pattern] of this.accessPatterns.entries()) {
487
+ const recentAccesses = pattern.filter(t => t > cutoff);
488
+ if (recentAccesses.length === 0) {
489
+ this.accessPatterns.delete(id);
490
+ }
491
+ else {
492
+ this.accessPatterns.set(id, recentAccesses);
493
+ }
494
+ }
495
+ this.stats.backgroundOptimizations++;
496
+ }
497
+ /**
498
+ * Get cache statistics
499
+ */
500
+ getStats() {
501
+ return {
502
+ ...this.stats,
503
+ hotCacheSize: this.hotCache.size,
504
+ warmCacheSize: this.warmCache.size,
505
+ prefetchQueueSize: this.prefetchQueue.size,
506
+ accessPatternsTracked: this.accessPatterns.size
507
+ };
508
+ }
509
+ /**
510
+ * Clear all caches
511
+ */
512
+ clear() {
513
+ this.hotCache.clear();
514
+ this.warmCache.clear();
515
+ this.prefetchQueue.clear();
516
+ this.accessPatterns.clear();
517
+ this.vectorIndex.clear();
518
+ }
519
+ }
520
+ //# sourceMappingURL=enhancedCacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancedCacheManager.js","sourceRoot":"","sources":["../../src/storage/enhancedCacheManager.ts"],"names":[],"mappings":"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"}