@soulcraft/brainy 0.47.0 → 0.49.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 (52) hide show
  1. package/README.md +268 -554
  2. package/dist/brainyData.d.ts +83 -2
  3. package/dist/brainyData.js +536 -66
  4. package/dist/brainyData.js.map +1 -1
  5. package/dist/coreTypes.d.ts +74 -12
  6. package/dist/distributed/configManager.d.ts +9 -0
  7. package/dist/distributed/configManager.js +129 -10
  8. package/dist/distributed/configManager.js.map +1 -1
  9. package/dist/hnsw/hnswIndex.d.ts +2 -2
  10. package/dist/hnsw/hnswIndex.js +48 -29
  11. package/dist/hnsw/hnswIndex.js.map +1 -1
  12. package/dist/hnsw/optimizedHNSWIndex.d.ts +1 -1
  13. package/dist/hnsw/optimizedHNSWIndex.js +3 -3
  14. package/dist/hnsw/optimizedHNSWIndex.js.map +1 -1
  15. package/dist/storage/adapters/baseStorageAdapter.d.ts +18 -2
  16. package/dist/storage/adapters/baseStorageAdapter.js +69 -4
  17. package/dist/storage/adapters/baseStorageAdapter.js.map +1 -1
  18. package/dist/storage/adapters/fileSystemStorage.d.ts +14 -8
  19. package/dist/storage/adapters/fileSystemStorage.js +90 -22
  20. package/dist/storage/adapters/fileSystemStorage.js.map +1 -1
  21. package/dist/storage/adapters/memoryStorage.d.ts +0 -8
  22. package/dist/storage/adapters/memoryStorage.js +26 -45
  23. package/dist/storage/adapters/memoryStorage.js.map +1 -1
  24. package/dist/storage/adapters/opfsStorage.d.ts +40 -8
  25. package/dist/storage/adapters/opfsStorage.js +195 -44
  26. package/dist/storage/adapters/opfsStorage.js.map +1 -1
  27. package/dist/storage/adapters/optimizedS3Search.js +4 -3
  28. package/dist/storage/adapters/optimizedS3Search.js.map +1 -1
  29. package/dist/storage/adapters/s3CompatibleStorage.d.ts +3 -10
  30. package/dist/storage/adapters/s3CompatibleStorage.js +41 -44
  31. package/dist/storage/adapters/s3CompatibleStorage.js.map +1 -1
  32. package/dist/storage/backwardCompatibility.d.ts +84 -0
  33. package/dist/storage/backwardCompatibility.js +141 -0
  34. package/dist/storage/backwardCompatibility.js.map +1 -0
  35. package/dist/storage/baseStorage.d.ts +33 -19
  36. package/dist/storage/baseStorage.js +116 -195
  37. package/dist/storage/baseStorage.js.map +1 -1
  38. package/dist/utils/distance.d.ts +4 -4
  39. package/dist/utils/distance.js +4 -4
  40. package/dist/utils/embedding.d.ts +10 -0
  41. package/dist/utils/embedding.js +81 -9
  42. package/dist/utils/embedding.js.map +1 -1
  43. package/dist/utils/metadataFilter.d.ts +79 -0
  44. package/dist/utils/metadataFilter.js +229 -0
  45. package/dist/utils/metadataFilter.js.map +1 -0
  46. package/dist/utils/metadataIndex.d.ts +148 -0
  47. package/dist/utils/metadataIndex.js +639 -0
  48. package/dist/utils/metadataIndex.js.map +1 -0
  49. package/dist/utils/metadataIndexCache.d.ts +60 -0
  50. package/dist/utils/metadataIndexCache.js +119 -0
  51. package/dist/utils/metadataIndexCache.js.map +1 -0
  52. package/package.json +4 -4
@@ -4,13 +4,50 @@
4
4
  */
5
5
  import { BaseStorageAdapter } from './adapters/baseStorageAdapter.js';
6
6
  // Common directory/prefix names
7
- export const NOUNS_DIR = 'nouns';
8
- export const VERBS_DIR = 'verbs';
9
- export const METADATA_DIR = 'metadata';
10
- export const NOUN_METADATA_DIR = 'noun-metadata';
11
- export const VERB_METADATA_DIR = 'verb-metadata';
12
- export const INDEX_DIR = 'index';
7
+ // Option A: Entity-Based Directory Structure
8
+ export const ENTITIES_DIR = 'entities';
9
+ export const NOUNS_VECTOR_DIR = 'entities/nouns/vectors';
10
+ export const NOUNS_METADATA_DIR = 'entities/nouns/metadata';
11
+ export const VERBS_VECTOR_DIR = 'entities/verbs/vectors';
12
+ export const VERBS_METADATA_DIR = 'entities/verbs/metadata';
13
+ export const INDEXES_DIR = 'indexes';
14
+ export const METADATA_INDEX_DIR = 'indexes/metadata';
15
+ // Legacy paths - kept for backward compatibility during migration
16
+ export const NOUNS_DIR = 'nouns'; // Legacy: now maps to entities/nouns/vectors
17
+ export const VERBS_DIR = 'verbs'; // Legacy: now maps to entities/verbs/vectors
18
+ export const METADATA_DIR = 'metadata'; // Legacy: now maps to entities/nouns/metadata
19
+ export const NOUN_METADATA_DIR = 'noun-metadata'; // Legacy: now maps to entities/nouns/metadata
20
+ export const VERB_METADATA_DIR = 'verb-metadata'; // Legacy: now maps to entities/verbs/metadata
21
+ export const INDEX_DIR = 'index'; // Legacy - kept for backward compatibility
22
+ export const SYSTEM_DIR = '_system'; // System config & metadata indexes
13
23
  export const STATISTICS_KEY = 'statistics';
24
+ // Migration version to track compatibility
25
+ export const STORAGE_SCHEMA_VERSION = 3; // v3: Entity-Based Directory Structure (Option A)
26
+ // Configuration flag to enable new directory structure
27
+ export const USE_ENTITY_BASED_STRUCTURE = true; // Set to true to use Option A structure
28
+ /**
29
+ * Get the appropriate directory path based on configuration
30
+ */
31
+ export function getDirectoryPath(entityType, dataType) {
32
+ if (USE_ENTITY_BASED_STRUCTURE) {
33
+ // Option A: Entity-Based Structure
34
+ if (entityType === 'noun') {
35
+ return dataType === 'vector' ? NOUNS_VECTOR_DIR : NOUNS_METADATA_DIR;
36
+ }
37
+ else {
38
+ return dataType === 'vector' ? VERBS_VECTOR_DIR : VERBS_METADATA_DIR;
39
+ }
40
+ }
41
+ else {
42
+ // Legacy structure
43
+ if (entityType === 'noun') {
44
+ return dataType === 'vector' ? NOUNS_DIR : METADATA_DIR;
45
+ }
46
+ else {
47
+ return dataType === 'vector' ? VERBS_DIR : VERB_METADATA_DIR;
48
+ }
49
+ }
50
+ }
14
51
  /**
15
52
  * Base storage adapter that implements common functionality
16
53
  * This is an abstract class that should be extended by specific storage adapters
@@ -43,16 +80,6 @@ export class BaseStorage extends BaseStorageAdapter {
43
80
  await this.ensureInitialized();
44
81
  return this.getNoun_internal(id);
45
82
  }
46
- /**
47
- * Get all nouns from storage
48
- * @deprecated This method is deprecated and will be removed in a future version.
49
- * It can cause memory issues with large datasets. Use getNouns() with pagination instead.
50
- */
51
- async getAllNouns() {
52
- await this.ensureInitialized();
53
- console.warn('WARNING: getAllNouns() is deprecated and will be removed in a future version. Use getNouns() with pagination instead.');
54
- return this.getAllNouns_internal();
55
- }
56
83
  /**
57
84
  * Get nouns by noun type
58
85
  * @param nounType The noun type to filter by
@@ -155,48 +182,78 @@ export class BaseStorage extends BaseStorageAdapter {
155
182
  }
156
183
  /**
157
184
  * Get all verbs from storage
158
- * @deprecated This method is deprecated and will be removed in a future version.
159
- * It can cause memory issues with large datasets. Use getVerbs() with pagination instead.
185
+ * @returns Promise that resolves to an array of all HNSWVerbs
186
+ * @deprecated This method loads all data into memory and may cause performance issues. Use getVerbs() with pagination instead.
160
187
  */
161
188
  async getAllVerbs() {
162
189
  await this.ensureInitialized();
163
- console.warn('WARNING: getAllVerbs() is deprecated and will be removed in a future version. Use getVerbs() with pagination instead.');
164
- const hnswVerbs = await this.getAllVerbs_internal();
165
- const graphVerbs = [];
166
- for (const hnswVerb of hnswVerbs) {
167
- const graphVerb = await this.convertHNSWVerbToGraphVerb(hnswVerb);
168
- if (graphVerb) {
169
- graphVerbs.push(graphVerb);
190
+ console.warn('getAllVerbs() is deprecated and may cause memory issues with large datasets. Consider using getVerbs() with pagination instead.');
191
+ // Get all verbs using the paginated method with a very large limit
192
+ const result = await this.getVerbs({
193
+ pagination: {
194
+ limit: Number.MAX_SAFE_INTEGER
170
195
  }
196
+ });
197
+ // Convert GraphVerbs back to HNSWVerbs since that's what this method should return
198
+ const hnswVerbs = [];
199
+ for (const graphVerb of result.items) {
200
+ // Create an HNSWVerb from the GraphVerb (reverse conversion)
201
+ const hnswVerb = {
202
+ id: graphVerb.id,
203
+ vector: graphVerb.vector,
204
+ connections: new Map() // HNSWVerbs need connections, but GraphVerbs don't have them
205
+ };
206
+ hnswVerbs.push(hnswVerb);
171
207
  }
172
- return graphVerbs;
208
+ return hnswVerbs;
173
209
  }
174
210
  /**
175
211
  * Get verbs by source
176
212
  */
177
213
  async getVerbsBySource(sourceId) {
178
214
  await this.ensureInitialized();
179
- // Get all verbs and filter by source
180
- const allVerbs = await this.getAllVerbs();
181
- return allVerbs.filter(verb => verb.sourceId === sourceId || verb.source === sourceId);
215
+ // Use the paginated getVerbs method with source filter
216
+ const result = await this.getVerbs({
217
+ filter: { sourceId }
218
+ });
219
+ return result.items;
182
220
  }
183
221
  /**
184
222
  * Get verbs by target
185
223
  */
186
224
  async getVerbsByTarget(targetId) {
187
225
  await this.ensureInitialized();
188
- // Get all verbs and filter by target
189
- const allVerbs = await this.getAllVerbs();
190
- return allVerbs.filter(verb => verb.targetId === targetId || verb.target === targetId);
226
+ // Use the paginated getVerbs method with target filter
227
+ const result = await this.getVerbs({
228
+ filter: { targetId }
229
+ });
230
+ return result.items;
191
231
  }
192
232
  /**
193
233
  * Get verbs by type
194
234
  */
195
235
  async getVerbsByType(type) {
196
236
  await this.ensureInitialized();
197
- // Get all verbs and filter by type
198
- const allVerbs = await this.getAllVerbs();
199
- return allVerbs.filter(verb => verb.type === type || verb.verb === type);
237
+ // Use the paginated getVerbs method with type filter
238
+ const result = await this.getVerbs({
239
+ filter: { verbType: type }
240
+ });
241
+ return result.items;
242
+ }
243
+ /**
244
+ * Get all nouns from storage
245
+ * @returns Promise that resolves to an array of all nouns
246
+ * @deprecated This method loads all data into memory and may cause performance issues. Use getNouns() with pagination instead.
247
+ */
248
+ async getAllNouns() {
249
+ await this.ensureInitialized();
250
+ console.warn('getAllNouns() is deprecated and may cause memory issues with large datasets. Consider using getNouns() with pagination instead.');
251
+ const result = await this.getNouns({
252
+ pagination: {
253
+ limit: Number.MAX_SAFE_INTEGER
254
+ }
255
+ });
256
+ return result.items;
200
257
  }
201
258
  /**
202
259
  * Get nouns with pagination and filtering
@@ -270,82 +327,12 @@ export class BaseStorage extends BaseStorageAdapter {
270
327
  nextCursor: result.nextCursor
271
328
  };
272
329
  }
273
- // If the adapter doesn't have a paginated method, fall back to the old approach
274
- // but with a warning and a reasonable limit
275
- console.warn('Storage adapter does not support pagination, falling back to loading all nouns. This may cause performance issues with large datasets.');
276
- // Get nouns with a reasonable limit to avoid memory issues
277
- const maxNouns = Math.min(offset + limit + 100, 1000); // Reasonable limit
278
- let allNouns = [];
279
- try {
280
- // Try to get only the nouns we need
281
- allNouns = await this.getAllNouns_internal();
282
- // If we have too many nouns, truncate the array to avoid memory issues
283
- if (allNouns.length > maxNouns) {
284
- console.warn(`Large number of nouns (${allNouns.length}), truncating to ${maxNouns} for filtering`);
285
- allNouns = allNouns.slice(0, maxNouns);
286
- }
287
- }
288
- catch (error) {
289
- console.error('Error getting all nouns:', error);
290
- // Return empty result on error
291
- return {
292
- items: [],
293
- totalCount: 0,
294
- hasMore: false
295
- };
296
- }
297
- // Apply filtering if needed
298
- let filteredNouns = allNouns;
299
- if (options?.filter) {
300
- // Filter by noun type
301
- if (options.filter.nounType) {
302
- const nounTypes = Array.isArray(options.filter.nounType)
303
- ? options.filter.nounType
304
- : [options.filter.nounType];
305
- filteredNouns = filteredNouns.filter((noun) => {
306
- // HNSWNoun doesn't have a type property directly, check metadata
307
- const nounType = noun.metadata?.type;
308
- return typeof nounType === 'string' && nounTypes.includes(nounType);
309
- });
310
- }
311
- // Filter by service
312
- if (options.filter.service) {
313
- const services = Array.isArray(options.filter.service)
314
- ? options.filter.service
315
- : [options.filter.service];
316
- filteredNouns = filteredNouns.filter((noun) => {
317
- // HNSWNoun doesn't have a service property directly, check metadata
318
- const service = noun.metadata?.service;
319
- return typeof service === 'string' && services.includes(service);
320
- });
321
- }
322
- // Filter by metadata
323
- if (options.filter.metadata) {
324
- const metadataFilter = options.filter.metadata;
325
- filteredNouns = filteredNouns.filter((noun) => {
326
- if (!noun.metadata)
327
- return false;
328
- // Check if all metadata keys match
329
- return Object.entries(metadataFilter).every(([key, value]) => noun.metadata && noun.metadata[key] === value);
330
- });
331
- }
332
- }
333
- // Get total count before pagination
334
- totalCount = totalCount || filteredNouns.length;
335
- // Apply pagination
336
- const paginatedNouns = filteredNouns.slice(offset, offset + limit);
337
- const hasMore = offset + limit < filteredNouns.length || filteredNouns.length >= maxNouns;
338
- // Set next cursor if there are more items
339
- let nextCursor = undefined;
340
- if (hasMore && paginatedNouns.length > 0) {
341
- const lastItem = paginatedNouns[paginatedNouns.length - 1];
342
- nextCursor = lastItem.id;
343
- }
330
+ // Storage adapter does not support pagination
331
+ console.error('Storage adapter does not support pagination. The deprecated getAllNouns_internal() method has been removed. Please implement getNounsWithPagination() in your storage adapter.');
344
332
  return {
345
- items: paginatedNouns,
346
- totalCount,
347
- hasMore,
348
- nextCursor
333
+ items: [],
334
+ totalCount: 0,
335
+ hasMore: false
349
336
  };
350
337
  }
351
338
  catch (error) {
@@ -485,92 +472,12 @@ export class BaseStorage extends BaseStorageAdapter {
485
472
  nextCursor: result.nextCursor
486
473
  };
487
474
  }
488
- // If the adapter doesn't have a paginated method, fall back to the old approach
489
- // but with a warning and a reasonable limit
490
- console.warn('Storage adapter does not support pagination, falling back to loading all verbs. This may cause performance issues with large datasets.');
491
- // Get verbs with a reasonable limit to avoid memory issues
492
- const maxVerbs = Math.min(offset + limit + 100, 1000); // Reasonable limit
493
- let allVerbs = [];
494
- try {
495
- // Try to get only the verbs we need
496
- allVerbs = await this.getAllVerbs();
497
- // If we have too many verbs, truncate the array to avoid memory issues
498
- if (allVerbs.length > maxVerbs) {
499
- console.warn(`Large number of verbs (${allVerbs.length}), truncating to ${maxVerbs} for filtering`);
500
- allVerbs = allVerbs.slice(0, maxVerbs);
501
- }
502
- }
503
- catch (error) {
504
- console.error('Error getting all verbs:', error);
505
- // Return empty result on error
506
- return {
507
- items: [],
508
- totalCount: 0,
509
- hasMore: false
510
- };
511
- }
512
- // Apply filtering if needed
513
- let filteredVerbs = allVerbs;
514
- if (options?.filter) {
515
- // Filter by verb type
516
- if (options.filter.verbType) {
517
- const verbTypes = Array.isArray(options.filter.verbType)
518
- ? options.filter.verbType
519
- : [options.filter.verbType];
520
- filteredVerbs = filteredVerbs.filter((verb) => verb.type !== undefined && verbTypes.includes(verb.type));
521
- }
522
- // Filter by source ID
523
- if (options.filter.sourceId) {
524
- const sourceIds = Array.isArray(options.filter.sourceId)
525
- ? options.filter.sourceId
526
- : [options.filter.sourceId];
527
- filteredVerbs = filteredVerbs.filter((verb) => verb.sourceId !== undefined && sourceIds.includes(verb.sourceId));
528
- }
529
- // Filter by target ID
530
- if (options.filter.targetId) {
531
- const targetIds = Array.isArray(options.filter.targetId)
532
- ? options.filter.targetId
533
- : [options.filter.targetId];
534
- filteredVerbs = filteredVerbs.filter((verb) => verb.targetId !== undefined && targetIds.includes(verb.targetId));
535
- }
536
- // Filter by service
537
- if (options.filter.service) {
538
- const services = Array.isArray(options.filter.service)
539
- ? options.filter.service
540
- : [options.filter.service];
541
- filteredVerbs = filteredVerbs.filter((verb) => {
542
- // GraphVerb doesn't have a service property directly, check metadata
543
- const service = verb.metadata?.service;
544
- return typeof service === 'string' && services.includes(service);
545
- });
546
- }
547
- // Filter by metadata
548
- if (options.filter.metadata) {
549
- const metadataFilter = options.filter.metadata;
550
- filteredVerbs = filteredVerbs.filter((verb) => {
551
- if (!verb.metadata)
552
- return false;
553
- // Check if all metadata keys match
554
- return Object.entries(metadataFilter).every(([key, value]) => verb.metadata && verb.metadata[key] === value);
555
- });
556
- }
557
- }
558
- // Get total count before pagination
559
- totalCount = totalCount || filteredVerbs.length;
560
- // Apply pagination
561
- const paginatedVerbs = filteredVerbs.slice(offset, offset + limit);
562
- const hasMore = offset + limit < filteredVerbs.length || filteredVerbs.length >= maxVerbs;
563
- // Set next cursor if there are more items
564
- let nextCursor = undefined;
565
- if (hasMore && paginatedVerbs.length > 0) {
566
- const lastItem = paginatedVerbs[paginatedVerbs.length - 1];
567
- nextCursor = lastItem.id;
568
- }
475
+ // Storage adapter does not support pagination
476
+ console.error('Storage adapter does not support pagination. The deprecated getAllVerbs_internal() method has been removed. Please implement getVerbsWithPagination() in your storage adapter.');
569
477
  return {
570
- items: paginatedVerbs,
571
- totalCount,
572
- hasMore,
573
- nextCursor
478
+ items: [],
479
+ totalCount: 0,
480
+ hasMore: false
574
481
  };
575
482
  }
576
483
  catch (error) {
@@ -599,5 +506,19 @@ export class BaseStorage extends BaseStorageAdapter {
599
506
  }
600
507
  return obj;
601
508
  }
509
+ /**
510
+ * Save statistics data to storage (public interface)
511
+ * @param statistics The statistics data to save
512
+ */
513
+ async saveStatistics(statistics) {
514
+ return this.saveStatisticsData(statistics);
515
+ }
516
+ /**
517
+ * Get statistics data from storage (public interface)
518
+ * @returns Promise that resolves to the statistics data or null if not found
519
+ */
520
+ async getStatistics() {
521
+ return this.getStatisticsData();
522
+ }
602
523
  }
603
524
  //# sourceMappingURL=baseStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseStorage.js","sourceRoot":"","sources":["../../src/storage/baseStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseStorage.js","sourceRoot":"","sources":["../../src/storage/baseStorage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Distance functions for vector similarity calculations
3
- * Optimized for Node.js 23.11+ using enhanced array methods
4
- * GPU-accelerated versions available for high-performance computing
3
+ * Optimized pure JavaScript implementations using enhanced array methods
4
+ * Faster than GPU for small vectors (384 dims) due to no transfer overhead
5
5
  */
6
6
  import { DistanceFunction, Vector } from '../coreTypes.js';
7
7
  /**
@@ -31,8 +31,8 @@ export declare const manhattanDistance: DistanceFunction;
31
31
  */
32
32
  export declare const dotProductDistance: DistanceFunction;
33
33
  /**
34
- * Batch distance calculation
35
- * Uses TensorFlow.js with CPU backend for optimized performance
34
+ * Batch distance calculation using optimized JavaScript
35
+ * More efficient than GPU for small vectors due to no memory transfer overhead
36
36
  *
37
37
  * @param queryVector The query vector to compare against all vectors
38
38
  * @param vectors Array of vectors to compare against
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Distance functions for vector similarity calculations
3
- * Optimized for Node.js 23.11+ using enhanced array methods
4
- * GPU-accelerated versions available for high-performance computing
3
+ * Optimized pure JavaScript implementations using enhanced array methods
4
+ * Faster than GPU for small vectors (384 dims) due to no transfer overhead
5
5
  */
6
6
  /**
7
7
  * Calculates the Euclidean distance between two vectors
@@ -72,8 +72,8 @@ export const dotProductDistance = (a, b) => {
72
72
  return -dotProduct;
73
73
  };
74
74
  /**
75
- * Batch distance calculation
76
- * Uses TensorFlow.js with CPU backend for optimized performance
75
+ * Batch distance calculation using optimized JavaScript
76
+ * More efficient than GPU for small vectors due to no memory transfer overhead
77
77
  *
78
78
  * @param queryVector The query vector to compare against all vectors
79
79
  * @param vectors Array of vectors to compare against
@@ -3,6 +3,14 @@
3
3
  * Complete rewrite to eliminate TensorFlow.js and use ONNX-based models
4
4
  */
5
5
  import { EmbeddingFunction, EmbeddingModel, Vector } from '../coreTypes.js';
6
+ /**
7
+ * Detect the best available GPU device for the current environment
8
+ */
9
+ export declare function detectBestDevice(): Promise<'cpu' | 'webgpu' | 'cuda'>;
10
+ /**
11
+ * Resolve device string to actual device configuration
12
+ */
13
+ export declare function resolveDevice(device?: string): Promise<string>;
6
14
  /**
7
15
  * Transformers.js Sentence Encoder embedding model
8
16
  * Uses ONNX Runtime for fast, offline embeddings with smaller models
@@ -19,6 +27,8 @@ export interface TransformerEmbeddingOptions {
19
27
  localFilesOnly?: boolean;
20
28
  /** Quantization setting (fp32, fp16, q8, q4) */
21
29
  dtype?: 'fp32' | 'fp16' | 'q8' | 'q4';
30
+ /** Device to run inference on - 'auto' detects best available */
31
+ device?: 'auto' | 'cpu' | 'webgpu' | 'cuda' | 'gpu';
22
32
  }
23
33
  export declare class TransformerEmbedding implements EmbeddingModel {
24
34
  private extractor;