@soulcraft/brainy 0.41.0 → 0.44.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 (205) hide show
  1. package/README.md +605 -194
  2. package/dist/augmentationFactory.d.ts.map +1 -0
  3. package/dist/augmentationFactory.js +342 -0
  4. package/dist/augmentationFactory.js.map +1 -0
  5. package/dist/augmentationPipeline.d.ts.map +1 -0
  6. package/dist/augmentationPipeline.js +472 -0
  7. package/dist/augmentationPipeline.js.map +1 -0
  8. package/dist/augmentationRegistry.d.ts.map +1 -0
  9. package/dist/augmentationRegistry.js +105 -0
  10. package/dist/augmentationRegistry.js.map +1 -0
  11. package/dist/augmentationRegistryLoader.d.ts.map +1 -0
  12. package/dist/augmentationRegistryLoader.js +213 -0
  13. package/dist/augmentationRegistryLoader.js.map +1 -0
  14. package/dist/augmentations/conduitAugmentations.js +1158 -0
  15. package/dist/augmentations/conduitAugmentations.js.map +1 -0
  16. package/dist/augmentations/memoryAugmentations.d.ts +2 -0
  17. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  18. package/dist/augmentations/memoryAugmentations.js +270 -0
  19. package/dist/augmentations/memoryAugmentations.js.map +1 -0
  20. package/dist/augmentations/serverSearchAugmentations.js +531 -0
  21. package/dist/augmentations/serverSearchAugmentations.js.map +1 -0
  22. package/dist/brainyData.d.ts.map +1 -0
  23. package/dist/brainyData.js +3999 -0
  24. package/dist/brainyData.js.map +1 -0
  25. package/dist/browserFramework.d.ts +15 -0
  26. package/dist/browserFramework.d.ts.map +1 -0
  27. package/dist/browserFramework.js +31 -0
  28. package/dist/browserFramework.js.map +1 -0
  29. package/dist/coreTypes.d.ts.map +1 -0
  30. package/dist/coreTypes.js +5 -0
  31. package/dist/coreTypes.js.map +1 -0
  32. package/dist/demo.d.ts +106 -0
  33. package/dist/demo.d.ts.map +1 -0
  34. package/dist/demo.js +201 -0
  35. package/dist/demo.js.map +1 -0
  36. package/dist/distributed/configManager.d.ts.map +1 -0
  37. package/dist/distributed/configManager.js +322 -0
  38. package/dist/distributed/configManager.js.map +1 -0
  39. package/dist/distributed/domainDetector.d.ts.map +1 -0
  40. package/dist/distributed/domainDetector.js +307 -0
  41. package/dist/distributed/domainDetector.js.map +1 -0
  42. package/dist/distributed/hashPartitioner.d.ts.map +1 -0
  43. package/dist/distributed/hashPartitioner.js +146 -0
  44. package/dist/distributed/hashPartitioner.js.map +1 -0
  45. package/dist/distributed/healthMonitor.d.ts.map +1 -0
  46. package/dist/distributed/healthMonitor.js +244 -0
  47. package/dist/distributed/healthMonitor.js.map +1 -0
  48. package/dist/distributed/index.d.ts.map +1 -0
  49. package/dist/distributed/index.js +9 -0
  50. package/dist/distributed/index.js.map +1 -0
  51. package/dist/distributed/operationalModes.d.ts.map +1 -0
  52. package/dist/distributed/operationalModes.js +201 -0
  53. package/dist/distributed/operationalModes.js.map +1 -0
  54. package/dist/errors/brainyError.d.ts.map +1 -0
  55. package/dist/errors/brainyError.js +113 -0
  56. package/dist/errors/brainyError.js.map +1 -0
  57. package/dist/examples/basicUsage.js +118 -0
  58. package/dist/examples/basicUsage.js.map +1 -0
  59. package/dist/hnsw/distributedSearch.js +452 -0
  60. package/dist/hnsw/distributedSearch.js.map +1 -0
  61. package/dist/hnsw/hnswIndex.js +602 -0
  62. package/dist/hnsw/hnswIndex.js.map +1 -0
  63. package/dist/hnsw/hnswIndexOptimized.js +471 -0
  64. package/dist/hnsw/hnswIndexOptimized.js.map +1 -0
  65. package/dist/hnsw/optimizedHNSWIndex.js +313 -0
  66. package/dist/hnsw/optimizedHNSWIndex.js.map +1 -0
  67. package/dist/hnsw/partitionedHNSWIndex.js +304 -0
  68. package/dist/hnsw/partitionedHNSWIndex.js.map +1 -0
  69. package/dist/hnsw/scaledHNSWSystem.js +559 -0
  70. package/dist/hnsw/scaledHNSWSystem.js.map +1 -0
  71. package/dist/index.d.ts +3 -2
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +81 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/mcp/brainyMCPAdapter.js +142 -0
  76. package/dist/mcp/brainyMCPAdapter.js.map +1 -0
  77. package/dist/mcp/brainyMCPService.js +248 -0
  78. package/dist/mcp/brainyMCPService.js.map +1 -0
  79. package/dist/mcp/index.js +17 -0
  80. package/dist/mcp/index.js.map +1 -0
  81. package/dist/mcp/mcpAugmentationToolset.js +180 -0
  82. package/dist/mcp/mcpAugmentationToolset.js.map +1 -0
  83. package/dist/pipeline.d.ts.map +1 -0
  84. package/dist/pipeline.js +590 -0
  85. package/dist/pipeline.js.map +1 -0
  86. package/dist/sequentialPipeline.d.ts.map +1 -0
  87. package/dist/sequentialPipeline.js +417 -0
  88. package/dist/sequentialPipeline.js.map +1 -0
  89. package/dist/setup.d.ts.map +1 -0
  90. package/dist/setup.js +46 -0
  91. package/dist/setup.js.map +1 -0
  92. package/dist/storage/adapters/baseStorageAdapter.js +349 -0
  93. package/dist/storage/adapters/baseStorageAdapter.js.map +1 -0
  94. package/dist/storage/adapters/batchS3Operations.js +287 -0
  95. package/dist/storage/adapters/batchS3Operations.js.map +1 -0
  96. package/dist/storage/adapters/fileSystemStorage.js +846 -0
  97. package/dist/storage/adapters/fileSystemStorage.js.map +1 -0
  98. package/dist/storage/adapters/memoryStorage.js +532 -0
  99. package/dist/storage/adapters/memoryStorage.js.map +1 -0
  100. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  101. package/dist/storage/adapters/opfsStorage.js +1118 -0
  102. package/dist/storage/adapters/opfsStorage.js.map +1 -0
  103. package/dist/storage/adapters/optimizedS3Search.js +248 -0
  104. package/dist/storage/adapters/optimizedS3Search.js.map +1 -0
  105. package/dist/storage/adapters/s3CompatibleStorage.js +2026 -0
  106. package/dist/storage/adapters/s3CompatibleStorage.js.map +1 -0
  107. package/dist/storage/baseStorage.js +603 -0
  108. package/dist/storage/baseStorage.js.map +1 -0
  109. package/dist/storage/cacheManager.js +1306 -0
  110. package/dist/storage/cacheManager.js.map +1 -0
  111. package/dist/storage/enhancedCacheManager.js +520 -0
  112. package/dist/storage/enhancedCacheManager.js.map +1 -0
  113. package/dist/storage/readOnlyOptimizations.js +425 -0
  114. package/dist/storage/readOnlyOptimizations.js.map +1 -0
  115. package/dist/storage/storageFactory.d.ts +0 -1
  116. package/dist/storage/storageFactory.d.ts.map +1 -1
  117. package/dist/storage/storageFactory.js +227 -0
  118. package/dist/storage/storageFactory.js.map +1 -0
  119. package/dist/types/augmentations.js +16 -0
  120. package/dist/types/augmentations.js.map +1 -0
  121. package/dist/types/brainyDataInterface.js +8 -0
  122. package/dist/types/brainyDataInterface.js.map +1 -0
  123. package/dist/types/distributedTypes.js +6 -0
  124. package/dist/types/distributedTypes.js.map +1 -0
  125. package/dist/types/fileSystemTypes.js +8 -0
  126. package/dist/types/fileSystemTypes.js.map +1 -0
  127. package/dist/types/graphTypes.js +247 -0
  128. package/dist/types/graphTypes.js.map +1 -0
  129. package/dist/types/mcpTypes.js +22 -0
  130. package/dist/types/mcpTypes.js.map +1 -0
  131. package/dist/types/paginationTypes.js +5 -0
  132. package/dist/types/paginationTypes.js.map +1 -0
  133. package/dist/types/pipelineTypes.js +7 -0
  134. package/dist/types/pipelineTypes.js.map +1 -0
  135. package/dist/types/tensorflowTypes.js +6 -0
  136. package/dist/types/tensorflowTypes.js.map +1 -0
  137. package/dist/unified.d.ts.map +1 -0
  138. package/dist/unified.js +52 -128251
  139. package/dist/unified.js.map +1 -0
  140. package/dist/utils/autoConfiguration.js +341 -0
  141. package/dist/utils/autoConfiguration.js.map +1 -0
  142. package/dist/utils/cacheAutoConfig.js +261 -0
  143. package/dist/utils/cacheAutoConfig.js.map +1 -0
  144. package/dist/utils/crypto.js +45 -0
  145. package/dist/utils/crypto.js.map +1 -0
  146. package/dist/utils/distance.js +239 -0
  147. package/dist/utils/distance.js.map +1 -0
  148. package/dist/utils/embedding.d.ts.map +1 -1
  149. package/dist/utils/embedding.js +702 -0
  150. package/dist/utils/embedding.js.map +1 -0
  151. package/dist/utils/environment.js +75 -0
  152. package/dist/utils/environment.js.map +1 -0
  153. package/dist/utils/fieldNameTracking.js +90 -0
  154. package/dist/utils/fieldNameTracking.js.map +1 -0
  155. package/dist/utils/index.d.ts +1 -0
  156. package/dist/utils/index.d.ts.map +1 -1
  157. package/dist/utils/index.js +8 -0
  158. package/dist/utils/index.js.map +1 -0
  159. package/dist/utils/jsonProcessing.js +179 -0
  160. package/dist/utils/jsonProcessing.js.map +1 -0
  161. package/dist/utils/logger.js +129 -0
  162. package/dist/utils/logger.js.map +1 -0
  163. package/dist/utils/operationUtils.js +126 -0
  164. package/dist/utils/operationUtils.js.map +1 -0
  165. package/dist/utils/robustModelLoader.d.ts +14 -0
  166. package/dist/utils/robustModelLoader.d.ts.map +1 -1
  167. package/dist/utils/robustModelLoader.js +537 -0
  168. package/dist/utils/robustModelLoader.js.map +1 -0
  169. package/dist/utils/searchCache.js +248 -0
  170. package/dist/utils/searchCache.js.map +1 -0
  171. package/dist/utils/statistics.js +25 -0
  172. package/dist/utils/statistics.js.map +1 -0
  173. package/dist/utils/statisticsCollector.js +224 -0
  174. package/dist/utils/statisticsCollector.js.map +1 -0
  175. package/dist/utils/textEncoding.js +309 -0
  176. package/dist/utils/textEncoding.js.map +1 -0
  177. package/dist/utils/typeUtils.js +40 -0
  178. package/dist/utils/typeUtils.js.map +1 -0
  179. package/dist/utils/version.d.ts +15 -3
  180. package/dist/utils/version.d.ts.map +1 -1
  181. package/dist/utils/version.js +24 -0
  182. package/dist/utils/version.js.map +1 -0
  183. package/dist/utils/workerUtils.js +458 -0
  184. package/dist/utils/workerUtils.js.map +1 -0
  185. package/dist/worker.d.ts.map +1 -0
  186. package/dist/worker.js +54 -0
  187. package/dist/worker.js.map +1 -0
  188. package/package.json +30 -29
  189. package/dist/brainy.js +0 -90220
  190. package/dist/brainy.min.js +0 -12511
  191. package/dist/patched-platform-node.d.ts +0 -17
  192. package/dist/statistics/statisticsManager.d.ts +0 -121
  193. package/dist/storage/fileSystemStorage.d.ts +0 -73
  194. package/dist/storage/fileSystemStorage.d.ts.map +0 -1
  195. package/dist/storage/opfsStorage.d.ts +0 -236
  196. package/dist/storage/opfsStorage.d.ts.map +0 -1
  197. package/dist/storage/s3CompatibleStorage.d.ts +0 -157
  198. package/dist/storage/s3CompatibleStorage.d.ts.map +0 -1
  199. package/dist/testing/prettyReporter.d.ts +0 -23
  200. package/dist/testing/prettySummaryReporter.d.ts +0 -22
  201. package/dist/unified.min.js +0 -16153
  202. package/dist/utils/environmentDetection.d.ts +0 -47
  203. package/dist/utils/environmentDetection.d.ts.map +0 -1
  204. package/dist/utils/tensorflowUtils.d.ts +0 -17
  205. package/dist/utils/tensorflowUtils.d.ts.map +0 -1
@@ -0,0 +1,559 @@
1
+ /**
2
+ * Scaled HNSW System - Integration of All Optimization Strategies
3
+ * Production-ready system for handling millions of vectors with sub-second search
4
+ */
5
+ import { PartitionedHNSWIndex } from './partitionedHNSWIndex.js';
6
+ import { DistributedSearchSystem, SearchStrategy } from './distributedSearch.js';
7
+ import { EnhancedCacheManager } from '../storage/enhancedCacheManager.js';
8
+ import { BatchS3Operations } from '../storage/adapters/batchS3Operations.js';
9
+ import { ReadOnlyOptimizations } from '../storage/readOnlyOptimizations.js';
10
+ import { euclideanDistance } from '../utils/index.js';
11
+ import { AutoConfiguration } from '../utils/autoConfiguration.js';
12
+ /**
13
+ * High-performance HNSW system with all optimizations integrated
14
+ * Handles datasets from thousands to millions of vectors
15
+ */
16
+ export class ScaledHNSWSystem {
17
+ constructor(config = {}) {
18
+ // Performance monitoring and learning
19
+ this.performanceMetrics = {
20
+ totalSearches: 0,
21
+ averageSearchTime: 0,
22
+ cacheHitRate: 0,
23
+ compressionRatio: 0,
24
+ memoryUsage: 0,
25
+ indexSize: 0,
26
+ lastLearningUpdate: Date.now()
27
+ };
28
+ this.autoConfig = AutoConfiguration.getInstance();
29
+ // Set basic defaults - these will be overridden by auto-configuration
30
+ this.config = {
31
+ expectedDatasetSize: 100000,
32
+ maxMemoryUsage: 4 * 1024 * 1024 * 1024,
33
+ targetSearchLatency: 150,
34
+ autoConfigureEnvironment: true,
35
+ learningEnabled: true,
36
+ enablePartitioning: true,
37
+ enableCompression: true,
38
+ enableDistributedSearch: true,
39
+ enablePredictiveCaching: true,
40
+ readOnlyMode: false,
41
+ ...config
42
+ };
43
+ this.initializeOptimizedSystem();
44
+ }
45
+ /**
46
+ * Initialize the optimized system based on configuration
47
+ */
48
+ async initializeOptimizedSystem() {
49
+ console.log('Initializing Scaled HNSW System with auto-configuration...');
50
+ // Auto-configure if enabled
51
+ if (this.config.autoConfigureEnvironment) {
52
+ const autoConfigResult = await this.autoConfig.detectAndConfigure({
53
+ expectedDataSize: this.config.expectedDatasetSize,
54
+ s3Available: !!this.config.s3Config,
55
+ memoryBudget: this.config.maxMemoryUsage
56
+ });
57
+ console.log(`Detected environment: ${autoConfigResult.environment}`);
58
+ console.log(`Available memory: ${(autoConfigResult.availableMemory / 1024 / 1024 / 1024).toFixed(1)}GB`);
59
+ console.log(`CPU cores: ${autoConfigResult.cpuCores}`);
60
+ // Override config with auto-detected values
61
+ this.config = {
62
+ ...this.config,
63
+ expectedDatasetSize: autoConfigResult.recommendedConfig.expectedDatasetSize,
64
+ maxMemoryUsage: autoConfigResult.recommendedConfig.maxMemoryUsage,
65
+ targetSearchLatency: autoConfigResult.recommendedConfig.targetSearchLatency,
66
+ enablePartitioning: autoConfigResult.recommendedConfig.enablePartitioning,
67
+ enableCompression: autoConfigResult.recommendedConfig.enableCompression,
68
+ enableDistributedSearch: autoConfigResult.recommendedConfig.enableDistributedSearch,
69
+ enablePredictiveCaching: autoConfigResult.recommendedConfig.enablePredictiveCaching
70
+ };
71
+ }
72
+ // Determine optimal configuration
73
+ const optimizedConfig = this.calculateOptimalConfiguration();
74
+ // Initialize partitioned index with semantic partitioning as default
75
+ if (this.config.enablePartitioning) {
76
+ this.partitionedIndex = new PartitionedHNSWIndex({
77
+ ...optimizedConfig.partitionConfig,
78
+ partitionStrategy: 'semantic', // Always use semantic for better performance
79
+ autoTuneSemanticClusters: true // Enable auto-tuning
80
+ }, optimizedConfig.hnswConfig, euclideanDistance);
81
+ console.log('✓ Partitioned index initialized with semantic clustering');
82
+ }
83
+ // Initialize distributed search system
84
+ if (this.config.enableDistributedSearch && this.partitionedIndex) {
85
+ this.distributedSearch = new DistributedSearchSystem({
86
+ maxConcurrentSearches: optimizedConfig.maxConcurrentSearches,
87
+ searchTimeout: this.config.targetSearchLatency * 5,
88
+ adaptivePartitionSelection: true,
89
+ loadBalancing: true
90
+ });
91
+ console.log('✓ Distributed search system initialized');
92
+ }
93
+ // Initialize batch S3 operations
94
+ if (this.config.s3Config) {
95
+ this.batchOperations = new BatchS3Operations(null, // Would be initialized with actual S3 client
96
+ this.config.s3Config.bucketName, {
97
+ maxConcurrency: 50,
98
+ useS3Select: this.config.expectedDatasetSize > 100000
99
+ });
100
+ console.log('✓ Batch S3 operations initialized');
101
+ }
102
+ // Initialize enhanced caching
103
+ if (this.config.enablePredictiveCaching) {
104
+ this.cacheManager = new EnhancedCacheManager({
105
+ hotCacheMaxSize: optimizedConfig.hotCacheSize,
106
+ warmCacheMaxSize: optimizedConfig.warmCacheSize,
107
+ prefetchEnabled: true,
108
+ prefetchStrategy: 'hybrid', // Type casting for enum compatibility
109
+ prefetchBatchSize: 50
110
+ });
111
+ if (this.batchOperations) {
112
+ this.cacheManager.setStorageAdapters(null, this.batchOperations);
113
+ }
114
+ console.log('✓ Enhanced cache manager initialized');
115
+ }
116
+ // Initialize read-only optimizations
117
+ if (this.config.readOnlyMode && this.config.enableCompression) {
118
+ this.readOnlyOptimizations = new ReadOnlyOptimizations({
119
+ compression: {
120
+ vectorCompression: 'quantization',
121
+ metadataCompression: 'gzip',
122
+ quantizationType: 'scalar',
123
+ quantizationBits: 8
124
+ },
125
+ segmentSize: optimizedConfig.segmentSize,
126
+ memoryMapped: true,
127
+ cacheIndexInMemory: optimizedConfig.cacheIndexInMemory
128
+ });
129
+ console.log('✓ Read-only optimizations initialized');
130
+ }
131
+ console.log('Scaled HNSW System ready for', this.config.expectedDatasetSize, 'vectors');
132
+ }
133
+ /**
134
+ * Calculate optimal configuration based on dataset size and constraints
135
+ */
136
+ calculateOptimalConfiguration() {
137
+ const size = this.config.expectedDatasetSize;
138
+ const memoryBudget = this.config.maxMemoryUsage;
139
+ let config = {};
140
+ if (size <= 10000) {
141
+ // Small dataset - optimize for speed
142
+ config = {
143
+ partitionConfig: {
144
+ maxNodesPerPartition: 10000,
145
+ partitionStrategy: 'hash'
146
+ },
147
+ hnswConfig: {
148
+ M: 16,
149
+ efConstruction: 200,
150
+ efSearch: 50,
151
+ targetSearchLatency: this.config.targetSearchLatency
152
+ },
153
+ hotCacheSize: 1000,
154
+ warmCacheSize: 5000,
155
+ maxConcurrentSearches: 4,
156
+ segmentSize: 5000,
157
+ cacheIndexInMemory: true
158
+ };
159
+ }
160
+ else if (size <= 100000) {
161
+ // Medium dataset - balance performance and memory
162
+ config = {
163
+ partitionConfig: {
164
+ maxNodesPerPartition: 25000,
165
+ partitionStrategy: 'semantic',
166
+ semanticClusters: 8
167
+ },
168
+ hnswConfig: {
169
+ M: 24,
170
+ efConstruction: 300,
171
+ efSearch: 75,
172
+ targetSearchLatency: this.config.targetSearchLatency,
173
+ dynamicParameterTuning: true
174
+ },
175
+ hotCacheSize: 2000,
176
+ warmCacheSize: 15000,
177
+ maxConcurrentSearches: 8,
178
+ segmentSize: 10000,
179
+ cacheIndexInMemory: memoryBudget > 2 * 1024 * 1024 * 1024 // 2GB
180
+ };
181
+ }
182
+ else if (size <= 1000000) {
183
+ // Large dataset - optimize for scale
184
+ config = {
185
+ partitionConfig: {
186
+ maxNodesPerPartition: 50000,
187
+ partitionStrategy: 'semantic',
188
+ semanticClusters: 16
189
+ },
190
+ hnswConfig: {
191
+ M: 32,
192
+ efConstruction: 400,
193
+ efSearch: 100,
194
+ targetSearchLatency: this.config.targetSearchLatency,
195
+ dynamicParameterTuning: true,
196
+ memoryBudget: memoryBudget
197
+ },
198
+ hotCacheSize: 5000,
199
+ warmCacheSize: 25000,
200
+ maxConcurrentSearches: 12,
201
+ segmentSize: 20000,
202
+ cacheIndexInMemory: memoryBudget > 8 * 1024 * 1024 * 1024 // 8GB
203
+ };
204
+ }
205
+ else {
206
+ // Very large dataset - maximum optimization
207
+ config = {
208
+ partitionConfig: {
209
+ maxNodesPerPartition: 100000,
210
+ partitionStrategy: 'hybrid',
211
+ semanticClusters: 32
212
+ },
213
+ hnswConfig: {
214
+ M: 48,
215
+ efConstruction: 500,
216
+ efSearch: 150,
217
+ targetSearchLatency: this.config.targetSearchLatency,
218
+ dynamicParameterTuning: true,
219
+ memoryBudget: memoryBudget,
220
+ diskCacheEnabled: true
221
+ },
222
+ hotCacheSize: 10000,
223
+ warmCacheSize: 50000,
224
+ maxConcurrentSearches: 20,
225
+ segmentSize: 50000,
226
+ cacheIndexInMemory: false // Too large for memory
227
+ };
228
+ }
229
+ return config;
230
+ }
231
+ /**
232
+ * Add vector to the scaled system
233
+ */
234
+ async addVector(item) {
235
+ if (!this.partitionedIndex) {
236
+ throw new Error('System not properly initialized');
237
+ }
238
+ const startTime = Date.now();
239
+ const result = await this.partitionedIndex.addItem(item);
240
+ // Update performance metrics
241
+ this.performanceMetrics.indexSize = this.partitionedIndex.size();
242
+ return result;
243
+ }
244
+ /**
245
+ * Bulk insert vectors with optimizations
246
+ */
247
+ async bulkInsert(items) {
248
+ if (!this.partitionedIndex) {
249
+ throw new Error('System not properly initialized');
250
+ }
251
+ console.log(`Starting optimized bulk insert of ${items.length} vectors`);
252
+ const startTime = Date.now();
253
+ // Sort items for optimal insertion order
254
+ const sortedItems = this.optimizeInsertionOrder(items);
255
+ const results = [];
256
+ const batchSize = this.calculateOptimalBatchSize(items.length);
257
+ // Process in batches
258
+ for (let i = 0; i < sortedItems.length; i += batchSize) {
259
+ const batch = sortedItems.slice(i, i + batchSize);
260
+ for (const item of batch) {
261
+ const id = await this.partitionedIndex.addItem(item);
262
+ results.push(id);
263
+ }
264
+ // Progress logging
265
+ if (i % (batchSize * 10) === 0) {
266
+ const progress = ((i / sortedItems.length) * 100).toFixed(1);
267
+ console.log(`Bulk insert progress: ${progress}%`);
268
+ }
269
+ }
270
+ const totalTime = Date.now() - startTime;
271
+ console.log(`Bulk insert completed: ${results.length} vectors in ${totalTime}ms`);
272
+ return results;
273
+ }
274
+ /**
275
+ * High-performance vector search with all optimizations
276
+ */
277
+ async search(queryVector, k = 10, options = {}) {
278
+ const startTime = Date.now();
279
+ try {
280
+ let results;
281
+ if (this.distributedSearch && this.partitionedIndex) {
282
+ // Use distributed search for optimal performance
283
+ results = await this.distributedSearch.distributedSearch(this.partitionedIndex, queryVector, k, options.strategy || SearchStrategy.ADAPTIVE);
284
+ }
285
+ else if (this.partitionedIndex) {
286
+ // Fall back to partitioned search
287
+ results = await this.partitionedIndex.search(queryVector, k, { maxPartitions: options.maxPartitions });
288
+ }
289
+ else {
290
+ throw new Error('No search system available');
291
+ }
292
+ // Update performance metrics and learn from performance
293
+ const searchTime = Date.now() - startTime;
294
+ this.updateSearchMetrics(searchTime, results.length);
295
+ // Adaptive learning - adjust configuration based on performance
296
+ if (this.config.learningEnabled && this.shouldTriggerLearning()) {
297
+ await this.adaptivelyLearnFromPerformance();
298
+ }
299
+ return results;
300
+ }
301
+ catch (error) {
302
+ console.error('Search failed:', error);
303
+ throw error;
304
+ }
305
+ }
306
+ /**
307
+ * Get system performance metrics
308
+ */
309
+ getPerformanceMetrics() {
310
+ const metrics = { ...this.performanceMetrics };
311
+ // Add subsystem metrics
312
+ if (this.partitionedIndex) {
313
+ metrics.partitionStats = this.partitionedIndex.getPartitionStats();
314
+ }
315
+ if (this.cacheManager) {
316
+ metrics.cacheStats = this.cacheManager.getStats();
317
+ }
318
+ if (this.readOnlyOptimizations) {
319
+ metrics.compressionStats = this.readOnlyOptimizations.getCompressionStats();
320
+ }
321
+ if (this.distributedSearch) {
322
+ metrics.distributedSearchStats = this.distributedSearch.getSearchStats();
323
+ }
324
+ return metrics;
325
+ }
326
+ /**
327
+ * Optimize insertion order for better index quality
328
+ */
329
+ optimizeInsertionOrder(items) {
330
+ if (items.length < 1000) {
331
+ return items; // Not worth optimizing small batches
332
+ }
333
+ // Simple clustering-based approach for better HNSW construction
334
+ // In production, you might use more sophisticated clustering
335
+ return items.sort(() => Math.random() - 0.5);
336
+ }
337
+ /**
338
+ * Calculate optimal batch size based on system resources
339
+ */
340
+ calculateOptimalBatchSize(totalItems) {
341
+ const memoryBudget = this.config.maxMemoryUsage;
342
+ const estimatedItemSize = 1000; // Rough estimate per item in bytes
343
+ const maxBatch = Math.floor(memoryBudget * 0.1 / estimatedItemSize);
344
+ const targetBatch = Math.min(1000, Math.max(100, maxBatch));
345
+ return Math.min(targetBatch, totalItems);
346
+ }
347
+ /**
348
+ * Update search performance metrics
349
+ */
350
+ updateSearchMetrics(searchTime, resultCount) {
351
+ this.performanceMetrics.totalSearches++;
352
+ this.performanceMetrics.averageSearchTime =
353
+ (this.performanceMetrics.averageSearchTime + searchTime) / 2;
354
+ // Update other metrics
355
+ if (this.cacheManager) {
356
+ const cacheStats = this.cacheManager.getStats();
357
+ const totalOps = cacheStats.hotCacheHits + cacheStats.hotCacheMisses +
358
+ cacheStats.warmCacheHits + cacheStats.warmCacheMisses;
359
+ this.performanceMetrics.cacheHitRate = totalOps > 0 ?
360
+ (cacheStats.hotCacheHits + cacheStats.warmCacheHits) / totalOps : 0;
361
+ }
362
+ if (this.readOnlyOptimizations) {
363
+ const compressionStats = this.readOnlyOptimizations.getCompressionStats();
364
+ this.performanceMetrics.compressionRatio = compressionStats.compressionRatio;
365
+ }
366
+ // Estimate memory usage
367
+ this.performanceMetrics.memoryUsage = this.estimateMemoryUsage();
368
+ }
369
+ /**
370
+ * Estimate current memory usage
371
+ */
372
+ estimateMemoryUsage() {
373
+ let totalMemory = 0;
374
+ if (this.partitionedIndex) {
375
+ // Rough estimate: 1KB per vector
376
+ totalMemory += this.partitionedIndex.size() * 1024;
377
+ }
378
+ if (this.cacheManager) {
379
+ const cacheStats = this.cacheManager.getStats();
380
+ totalMemory += (cacheStats.hotCacheSize + cacheStats.warmCacheSize) * 1024;
381
+ }
382
+ return totalMemory;
383
+ }
384
+ /**
385
+ * Generate performance report
386
+ */
387
+ generatePerformanceReport() {
388
+ const metrics = this.getPerformanceMetrics();
389
+ return `
390
+ === Scaled HNSW System Performance Report ===
391
+
392
+ Dataset Configuration:
393
+ - Expected Size: ${this.config.expectedDatasetSize.toLocaleString()} vectors
394
+ - Current Size: ${metrics.indexSize.toLocaleString()} vectors
395
+ - Memory Budget: ${(this.config.maxMemoryUsage / 1024 / 1024 / 1024).toFixed(1)}GB
396
+ - Target Latency: ${this.config.targetSearchLatency}ms
397
+
398
+ Performance Metrics:
399
+ - Total Searches: ${metrics.totalSearches.toLocaleString()}
400
+ - Average Search Time: ${metrics.averageSearchTime.toFixed(1)}ms
401
+ - Cache Hit Rate: ${(metrics.cacheHitRate * 100).toFixed(1)}%
402
+ - Memory Usage: ${(metrics.memoryUsage / 1024 / 1024).toFixed(1)}MB
403
+ - Compression Ratio: ${metrics.compressionRatio ? (metrics.compressionRatio * 100).toFixed(1) + '%' : 'N/A'}
404
+
405
+ System Status: ${this.getSystemStatus()}
406
+ `.trim();
407
+ }
408
+ /**
409
+ * Get overall system status
410
+ */
411
+ getSystemStatus() {
412
+ const metrics = this.getPerformanceMetrics();
413
+ if (metrics.averageSearchTime <= this.config.targetSearchLatency) {
414
+ return '✅ OPTIMAL';
415
+ }
416
+ else if (metrics.averageSearchTime <= this.config.targetSearchLatency * 2) {
417
+ return '⚠️ ACCEPTABLE';
418
+ }
419
+ else {
420
+ return '❌ NEEDS OPTIMIZATION';
421
+ }
422
+ }
423
+ /**
424
+ * Check if adaptive learning should be triggered
425
+ */
426
+ shouldTriggerLearning() {
427
+ const timeSinceLastLearning = Date.now() - this.performanceMetrics.lastLearningUpdate;
428
+ const minLearningInterval = 30000; // 30 seconds
429
+ const minSearches = 20; // Minimum searches before learning
430
+ return timeSinceLastLearning > minLearningInterval &&
431
+ this.performanceMetrics.totalSearches > minSearches &&
432
+ this.performanceMetrics.totalSearches % 50 === 0; // Learn every 50 searches
433
+ }
434
+ /**
435
+ * Adaptively learn from performance and adjust configuration
436
+ */
437
+ async adaptivelyLearnFromPerformance() {
438
+ try {
439
+ const currentMetrics = {
440
+ averageSearchTime: this.performanceMetrics.averageSearchTime,
441
+ memoryUsage: this.performanceMetrics.memoryUsage,
442
+ cacheHitRate: this.performanceMetrics.cacheHitRate,
443
+ errorRate: 0 // Could be tracked separately
444
+ };
445
+ const adjustments = await this.autoConfig.learnFromPerformance(currentMetrics);
446
+ if (Object.keys(adjustments).length > 0) {
447
+ console.log('🧠 Adaptive learning: Adjusting configuration based on performance');
448
+ // Apply learned adjustments
449
+ let configChanged = false;
450
+ if (adjustments.enableDistributedSearch !== undefined &&
451
+ adjustments.enableDistributedSearch !== this.config.enableDistributedSearch) {
452
+ this.config.enableDistributedSearch = adjustments.enableDistributedSearch;
453
+ configChanged = true;
454
+ }
455
+ if (adjustments.enableCompression !== undefined &&
456
+ adjustments.enableCompression !== this.config.enableCompression) {
457
+ this.config.enableCompression = adjustments.enableCompression;
458
+ configChanged = true;
459
+ }
460
+ if (adjustments.enablePredictiveCaching !== undefined &&
461
+ adjustments.enablePredictiveCaching !== this.config.enablePredictiveCaching) {
462
+ this.config.enablePredictiveCaching = adjustments.enablePredictiveCaching;
463
+ configChanged = true;
464
+ }
465
+ // Apply partition adjustments
466
+ if (adjustments.maxNodesPerPartition &&
467
+ this.partitionedIndex &&
468
+ adjustments.maxNodesPerPartition !== this.partitionedIndex.getPartitionStats().averageNodesPerPartition) {
469
+ // This would require rebuilding the index in a real implementation
470
+ console.log(`Learning suggests partition size: ${adjustments.maxNodesPerPartition}`);
471
+ }
472
+ if (configChanged) {
473
+ console.log('✅ Configuration updated based on performance learning');
474
+ }
475
+ }
476
+ this.performanceMetrics.lastLearningUpdate = Date.now();
477
+ }
478
+ catch (error) {
479
+ console.warn('Adaptive learning failed:', error);
480
+ }
481
+ }
482
+ /**
483
+ * Update dataset analysis for better auto-configuration
484
+ */
485
+ async updateDatasetAnalysis(vectorCount, vectorDimension) {
486
+ if (this.config.autoConfigureEnvironment) {
487
+ const analysis = {
488
+ estimatedSize: vectorCount,
489
+ vectorDimension,
490
+ accessPatterns: this.inferAccessPatterns()
491
+ };
492
+ await this.autoConfig.adaptToDataset(analysis);
493
+ console.log(`📊 Dataset analysis updated: ${vectorCount} vectors${vectorDimension ? `, ${vectorDimension}D` : ''}`);
494
+ }
495
+ }
496
+ /**
497
+ * Infer access patterns from current metrics
498
+ */
499
+ inferAccessPatterns() {
500
+ // Simple heuristic - in practice, this would track read/write ratios
501
+ if (this.performanceMetrics.totalSearches > 100) {
502
+ return 'read-heavy';
503
+ }
504
+ return 'balanced';
505
+ }
506
+ /**
507
+ * Cleanup system resources
508
+ */
509
+ cleanup() {
510
+ this.distributedSearch?.cleanup();
511
+ this.cacheManager?.clear();
512
+ this.readOnlyOptimizations?.cleanup();
513
+ this.partitionedIndex?.clear();
514
+ this.autoConfig.resetCache();
515
+ console.log('Scaled HNSW System cleaned up');
516
+ }
517
+ }
518
+ // Export convenience factory functions
519
+ /**
520
+ * Create a fully auto-configured Brainy system - minimal setup required!
521
+ * Just provide S3 config if you want persistence beyond the current session
522
+ */
523
+ export function createAutoBrainy(s3Config) {
524
+ return new ScaledHNSWSystem({
525
+ s3Config: s3Config ? {
526
+ bucketName: s3Config.bucketName,
527
+ region: s3Config.region || 'us-east-1',
528
+ accessKeyId: s3Config.accessKeyId,
529
+ secretAccessKey: s3Config.secretAccessKey
530
+ } : undefined,
531
+ autoConfigureEnvironment: true,
532
+ learningEnabled: true
533
+ });
534
+ }
535
+ /**
536
+ * Create a Brainy system optimized for specific scenarios
537
+ */
538
+ export async function createQuickBrainy(scenario, s3Config) {
539
+ const { getQuickSetup } = await import('../utils/autoConfiguration.js');
540
+ const quickConfig = await getQuickSetup(scenario);
541
+ return new ScaledHNSWSystem({
542
+ ...quickConfig,
543
+ s3Config: s3Config && quickConfig.s3Required ? {
544
+ bucketName: s3Config.bucketName,
545
+ region: s3Config.region || 'us-east-1',
546
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
547
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
548
+ } : undefined,
549
+ autoConfigureEnvironment: true,
550
+ learningEnabled: true
551
+ });
552
+ }
553
+ /**
554
+ * Legacy factory function - still works but consider using createAutoBrainy() instead
555
+ */
556
+ export function createScaledHNSWSystem(config = {}) {
557
+ return new ScaledHNSWSystem(config);
558
+ }
559
+ //# sourceMappingURL=scaledHNSWSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaledHNSWSystem.js","sourceRoot":"","sources":["../../src/hnsw/scaledHNSWSystem.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,8 +13,9 @@ import { executeInThread, cleanupWorkerPools } from './utils/workerUtils.js';
13
13
  import { logger, LogLevel, configureLogger, createModuleLogger } from './utils/logger.js';
14
14
  import { isBrowser, isNode, isWebWorker, areWebWorkersAvailable, areWorkerThreadsAvailable, areWorkerThreadsAvailableSync, isThreadingAvailable, isThreadingAvailableAsync } from './utils/environment.js';
15
15
  export { UniversalSentenceEncoder, createEmbeddingFunction, createTensorFlowEmbeddingFunction, createThreadedEmbeddingFunction, defaultEmbeddingFunction, executeInThread, cleanupWorkerPools, isBrowser, isNode, isWebWorker, areWebWorkersAvailable, areWorkerThreadsAvailable, areWorkerThreadsAvailableSync, isThreadingAvailable, isThreadingAvailableAsync, logger, LogLevel, configureLogger, createModuleLogger };
16
- import { OPFSStorage, MemoryStorage, FileSystemStorage, R2Storage, S3CompatibleStorage, createStorage } from './storage/storageFactory.js';
17
- export { OPFSStorage, MemoryStorage, FileSystemStorage, R2Storage, S3CompatibleStorage, createStorage };
16
+ import { OPFSStorage, MemoryStorage, R2Storage, S3CompatibleStorage, createStorage } from './storage/storageFactory.js';
17
+ export { OPFSStorage, MemoryStorage, R2Storage, S3CompatibleStorage, createStorage };
18
+ export { FileSystemStorage } from './storage/adapters/fileSystemStorage.js';
18
19
  import { Pipeline, pipeline, augmentationPipeline, ExecutionMode, PipelineOptions, PipelineResult, executeStreamlined, executeByType, executeSingle, processStaticData, processStreamingData, createPipeline, createStreamingPipeline, StreamlinedExecutionMode, StreamlinedPipelineOptions, StreamlinedPipelineResult } from './pipeline.js';
19
20
  import { SequentialPipeline, sequentialPipeline, SequentialPipelineOptions } from './sequentialPipeline.js';
20
21
  import { createSenseAugmentation, addWebSocketSupport, executeAugmentation, loadAugmentationModule, AugmentationOptions } from './augmentationFactory.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}