@soulcraft/brainy 0.48.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 (47) 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 +1 -1
  10. package/dist/hnsw/hnswIndex.js +44 -25
  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/metadataFilter.d.ts +79 -0
  39. package/dist/utils/metadataFilter.js +229 -0
  40. package/dist/utils/metadataFilter.js.map +1 -0
  41. package/dist/utils/metadataIndex.d.ts +148 -0
  42. package/dist/utils/metadataIndex.js +639 -0
  43. package/dist/utils/metadataIndex.js.map +1 -0
  44. package/dist/utils/metadataIndexCache.d.ts +60 -0
  45. package/dist/utils/metadataIndexCache.js +119 -0
  46. package/dist/utils/metadataIndexCache.js.map +1 -0
  47. package/package.json +1 -1
@@ -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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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Smart metadata filtering for vector search
3
+ * Filters DURING search to ensure relevant results
4
+ * Simple API that just works without configuration
5
+ */
6
+ import { SearchResult, HNSWNoun } from '../coreTypes.js';
7
+ /**
8
+ * MongoDB-style query operators
9
+ */
10
+ export interface QueryOperators {
11
+ $eq?: any;
12
+ $ne?: any;
13
+ $gt?: any;
14
+ $gte?: any;
15
+ $lt?: any;
16
+ $lte?: any;
17
+ $in?: any[];
18
+ $nin?: any[];
19
+ $exists?: boolean;
20
+ $regex?: string | RegExp;
21
+ $includes?: any;
22
+ $all?: any[];
23
+ $size?: number;
24
+ $and?: MetadataFilter[];
25
+ $or?: MetadataFilter[];
26
+ $not?: MetadataFilter;
27
+ }
28
+ /**
29
+ * Metadata filter definition
30
+ */
31
+ export interface MetadataFilter {
32
+ [key: string]: any | QueryOperators;
33
+ }
34
+ /**
35
+ * Options for metadata filtering
36
+ */
37
+ export interface MetadataFilterOptions {
38
+ metadata?: MetadataFilter;
39
+ scoring?: {
40
+ vectorWeight?: number;
41
+ metadataWeight?: number;
42
+ metadataBoosts?: Record<string, number | ((value: any, query: any) => number)>;
43
+ };
44
+ }
45
+ /**
46
+ * Check if metadata matches the filter
47
+ */
48
+ export declare function matchesMetadataFilter(metadata: any, filter: MetadataFilter): boolean;
49
+ /**
50
+ * Calculate metadata boost score
51
+ */
52
+ export declare function calculateMetadataScore(metadata: any, filter: MetadataFilter, scoring?: MetadataFilterOptions['scoring']): number;
53
+ /**
54
+ * Apply compound scoring to search results
55
+ */
56
+ export declare function applyCompoundScoring<T>(results: SearchResult<T>[], filter: MetadataFilter, scoring?: MetadataFilterOptions['scoring']): SearchResult<T>[];
57
+ /**
58
+ * Filter search results by metadata
59
+ */
60
+ export declare function filterSearchResultsByMetadata<T>(results: SearchResult<T>[], filter: MetadataFilter): SearchResult<T>[];
61
+ /**
62
+ * Filter nouns by metadata before search
63
+ */
64
+ export declare function filterNounsByMetadata(nouns: HNSWNoun[], filter: MetadataFilter): HNSWNoun[];
65
+ /**
66
+ * Aggregate search results for faceted search
67
+ */
68
+ export interface FacetConfig {
69
+ field: string;
70
+ limit?: number;
71
+ }
72
+ export interface FacetResult {
73
+ [value: string]: number;
74
+ }
75
+ export interface AggregationResult<T> {
76
+ results: SearchResult<T>[];
77
+ facets: Record<string, FacetResult>;
78
+ }
79
+ export declare function aggregateSearchResults<T>(results: SearchResult<T>[], facets: Record<string, FacetConfig>): AggregationResult<T>;