@soulcraft/brainy 0.18.0 → 0.20.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 (35) hide show
  1. package/README.md +32 -1
  2. package/dist/brainy.js +4797 -4680
  3. package/dist/brainy.min.js +750 -750
  4. package/dist/brainyData.d.ts +63 -4
  5. package/dist/coreTypes.d.ts +54 -0
  6. package/dist/index.d.ts +2 -2
  7. package/dist/storage/adapters/baseStorageAdapter.d.ts +68 -0
  8. package/dist/storage/adapters/baseStorageAdapter.d.ts.map +1 -0
  9. package/dist/storage/adapters/fileSystemStorage.d.ts +11 -1
  10. package/dist/storage/adapters/fileSystemStorage.d.ts.map +1 -1
  11. package/dist/storage/adapters/memoryStorage.d.ts +12 -1
  12. package/dist/storage/adapters/memoryStorage.d.ts.map +1 -1
  13. package/dist/storage/adapters/opfsStorage.d.ts +12 -1
  14. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  15. package/dist/storage/adapters/s3CompatibleStorage.d.ts +12 -1
  16. package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +1 -1
  17. package/dist/storage/baseStorage.d.ts +16 -2
  18. package/dist/storage/baseStorage.d.ts.map +1 -1
  19. package/dist/storage/fileSystemStorage.d.ts +15 -2
  20. package/dist/storage/fileSystemStorage.d.ts.map +1 -1
  21. package/dist/storage/opfsStorage.d.ts +66 -3
  22. package/dist/storage/opfsStorage.d.ts.map +1 -1
  23. package/dist/storage/s3CompatibleStorage.d.ts +14 -2
  24. package/dist/storage/s3CompatibleStorage.d.ts.map +1 -1
  25. package/dist/unified.js +1200 -541
  26. package/dist/unified.min.js +747 -747
  27. package/dist/utils/index.d.ts +1 -0
  28. package/dist/utils/index.d.ts.map +1 -1
  29. package/dist/utils/statistics.d.ts +28 -0
  30. package/dist/utils/statistics.d.ts.map +1 -0
  31. package/dist/utils/version.d.ts +1 -1
  32. package/package.json +1 -1
  33. package/README.demo.md +0 -65
  34. package/dist/utils/logger.d.ts +0 -99
  35. package/dist/utils/logger.d.ts.map +0 -1
@@ -138,6 +138,12 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
138
138
  * @throws Error if the database is in read-only mode
139
139
  */
140
140
  private checkReadOnly;
141
+ /**
142
+ * Get the current augmentation name if available
143
+ * This is used to auto-detect the service performing data operations
144
+ * @returns The name of the current augmentation or 'default' if none is detected
145
+ */
146
+ private getCurrentAugmentation;
141
147
  /**
142
148
  * Initialize the database
143
149
  * Loads existing data from storage if available
@@ -162,6 +168,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
162
168
  forceEmbed?: boolean;
163
169
  addToRemote?: boolean;
164
170
  id?: string;
171
+ service?: string;
165
172
  }): Promise<string>;
166
173
  /**
167
174
  * Add a text item to the database with automatic embedding
@@ -222,6 +229,14 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
222
229
  forceEmbed?: boolean;
223
230
  concurrency?: number;
224
231
  }): Promise<string[]>;
232
+ /**
233
+ * Filter search results by service
234
+ * @param results Search results to filter
235
+ * @param service Service to filter by
236
+ * @returns Filtered search results
237
+ * @private
238
+ */
239
+ private filterResultsByService;
225
240
  /**
226
241
  * Search for similar vectors within specific noun types
227
242
  * @param queryVectorOrData Query vector or data to search for
@@ -232,6 +247,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
232
247
  */
233
248
  searchByNounTypes(queryVectorOrData: Vector | any, k?: number, nounTypes?: string[] | null, options?: {
234
249
  forceEmbed?: boolean;
250
+ service?: string;
235
251
  }): Promise<SearchResult<T>[]>;
236
252
  /**
237
253
  * Search for similar vectors
@@ -249,6 +265,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
249
265
  verbTypes?: string[];
250
266
  searchConnectedNouns?: boolean;
251
267
  verbDirection?: 'outgoing' | 'incoming' | 'both';
268
+ service?: string;
252
269
  }): Promise<SearchResult<T>[]>;
253
270
  /**
254
271
  * Search the local database for similar vectors
@@ -261,6 +278,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
261
278
  forceEmbed?: boolean;
262
279
  nounTypes?: string[];
263
280
  includeVerbs?: boolean;
281
+ service?: string;
264
282
  }): Promise<SearchResult<T>[]>;
265
283
  /**
266
284
  * Find entities similar to a given entity ID
@@ -285,17 +303,33 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
285
303
  getAllNouns(): Promise<VectorDocument<T>[]>;
286
304
  /**
287
305
  * Delete a vector by ID
306
+ * @param id The ID of the vector to delete
307
+ * @param options Additional options
308
+ * @returns Promise that resolves to true if the vector was deleted, false otherwise
288
309
  */
289
- delete(id: string): Promise<boolean>;
310
+ delete(id: string, options?: {
311
+ service?: string;
312
+ }): Promise<boolean>;
290
313
  /**
291
314
  * Update metadata for a vector
315
+ * @param id The ID of the vector to update metadata for
316
+ * @param metadata The new metadata
317
+ * @param options Additional options
318
+ * @returns Promise that resolves to true if the metadata was updated, false otherwise
292
319
  */
293
- updateMetadata(id: string, metadata: T): Promise<boolean>;
320
+ updateMetadata(id: string, metadata: T, options?: {
321
+ service?: string;
322
+ }): Promise<boolean>;
294
323
  /**
295
324
  * Create a relationship between two entities
296
325
  * This is a convenience wrapper around addVerb
297
326
  */
298
327
  relate(sourceId: string, targetId: string, relationType: string, metadata?: any): Promise<string>;
328
+ /**
329
+ * Create a connection between two entities
330
+ * This is an alias for relate() for backward compatibility
331
+ */
332
+ connect(sourceId: string, targetId: string, relationType: string, metadata?: any): Promise<string>;
299
333
  /**
300
334
  * Add a verb between two nouns
301
335
  * If metadata is provided and vector is not, the metadata will be vectorized using the embedding function
@@ -324,6 +358,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
324
358
  id?: string;
325
359
  autoCreateMissingNouns?: boolean;
326
360
  missingNounMetadata?: any;
361
+ service?: string;
327
362
  }): Promise<string>;
328
363
  /**
329
364
  * Get a verb by ID
@@ -347,8 +382,13 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
347
382
  getVerbsByType(type: string): Promise<GraphVerb[]>;
348
383
  /**
349
384
  * Delete a verb
385
+ * @param id The ID of the verb to delete
386
+ * @param options Additional options
387
+ * @returns Promise that resolves to true if the verb was deleted, false otherwise
350
388
  */
351
- deleteVerb(id: string): Promise<boolean>;
389
+ deleteVerb(id: string, options?: {
390
+ service?: string;
391
+ }): Promise<boolean>;
352
392
  /**
353
393
  * Clear the database
354
394
  */
@@ -357,15 +397,31 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
357
397
  * Get the number of vectors in the database
358
398
  */
359
399
  size(): number;
400
+ /**
401
+ * Get the number of nouns in the database (excluding verbs)
402
+ * This is used for statistics reporting to match the expected behavior in tests
403
+ * @private
404
+ */
405
+ private getNounCount;
360
406
  /**
361
407
  * Get statistics about the current state of the database
408
+ * @param options Additional options for retrieving statistics
362
409
  * @returns Object containing counts of nouns, verbs, metadata entries, and HNSW index size
363
410
  */
364
- getStatistics(): Promise<{
411
+ getStatistics(options?: {
412
+ service?: string | string[];
413
+ }): Promise<{
365
414
  nounCount: number;
366
415
  verbCount: number;
367
416
  metadataCount: number;
368
417
  hnswIndexSize: number;
418
+ serviceBreakdown?: {
419
+ [service: string]: {
420
+ nounCount: number;
421
+ verbCount: number;
422
+ metadataCount: number;
423
+ };
424
+ };
369
425
  }>;
370
426
  /**
371
427
  * Check if the database is in read-only mode
@@ -395,6 +451,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
395
451
  searchVerbs(queryVectorOrData: Vector | any, k?: number, options?: {
396
452
  forceEmbed?: boolean;
397
453
  verbTypes?: string[];
454
+ service?: string;
398
455
  }): Promise<Array<GraphVerb & {
399
456
  similarity: number;
400
457
  }>>;
@@ -436,6 +493,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
436
493
  nounTypes?: string[];
437
494
  includeVerbs?: boolean;
438
495
  storeResults?: boolean;
496
+ service?: string;
439
497
  }): Promise<SearchResult<T>[]>;
440
498
  /**
441
499
  * Search both local and remote Brainy instances, combining the results
@@ -449,6 +507,7 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
449
507
  nounTypes?: string[];
450
508
  includeVerbs?: boolean;
451
509
  localFirst?: boolean;
510
+ service?: string;
452
511
  }): Promise<SearchResult<T>[]>;
453
512
  /**
454
513
  * Check if the instance is connected to a remote server
@@ -83,6 +83,31 @@ export interface HNSWConfig {
83
83
  /**
84
84
  * Storage interface for persistence
85
85
  */
86
+ /**
87
+ * Statistics data structure for tracking counts by service
88
+ */
89
+ export interface StatisticsData {
90
+ /**
91
+ * Count of nouns by service
92
+ */
93
+ nounCount: Record<string, number>;
94
+ /**
95
+ * Count of verbs by service
96
+ */
97
+ verbCount: Record<string, number>;
98
+ /**
99
+ * Count of metadata entries by service
100
+ */
101
+ metadataCount: Record<string, number>;
102
+ /**
103
+ * Size of the HNSW index
104
+ */
105
+ hnswIndexSize: number;
106
+ /**
107
+ * Last updated timestamp
108
+ */
109
+ lastUpdated: string;
110
+ }
86
111
  export interface StorageAdapter {
87
112
  init(): Promise<void>;
88
113
  saveNoun(noun: HNSWNoun): Promise<void>;
@@ -127,4 +152,33 @@ export interface StorageAdapter {
127
152
  */
128
153
  details?: Record<string, any>;
129
154
  }>;
155
+ /**
156
+ * Save statistics data
157
+ * @param statistics The statistics data to save
158
+ */
159
+ saveStatistics(statistics: StatisticsData): Promise<void>;
160
+ /**
161
+ * Get statistics data
162
+ * @returns Promise that resolves to the statistics data
163
+ */
164
+ getStatistics(): Promise<StatisticsData | null>;
165
+ /**
166
+ * Increment a statistic counter
167
+ * @param type The type of statistic to increment ('noun', 'verb', 'metadata')
168
+ * @param service The service that inserted the data
169
+ * @param amount The amount to increment by (default: 1)
170
+ */
171
+ incrementStatistic(type: 'noun' | 'verb' | 'metadata', service: string, amount?: number): Promise<void>;
172
+ /**
173
+ * Decrement a statistic counter
174
+ * @param type The type of statistic to decrement ('noun', 'verb', 'metadata')
175
+ * @param service The service that inserted the data
176
+ * @param amount The amount to decrement by (default: 1)
177
+ */
178
+ decrementStatistic(type: 'noun' | 'verb' | 'metadata', service: string, amount?: number): Promise<void>;
179
+ /**
180
+ * Update the HNSW index size statistic
181
+ * @param size The new size of the HNSW index
182
+ */
183
+ updateHnswIndexSize(size: number): Promise<void>;
130
184
  }
package/dist/index.d.ts CHANGED
@@ -6,8 +6,8 @@ import './setup.js';
6
6
  import { BrainyData, BrainyDataConfig } from './brainyData.js';
7
7
  export { BrainyData };
8
8
  export type { BrainyDataConfig };
9
- import { euclideanDistance, cosineDistance, manhattanDistance, dotProductDistance } from './utils/index.js';
10
- export { euclideanDistance, cosineDistance, manhattanDistance, dotProductDistance };
9
+ import { euclideanDistance, cosineDistance, manhattanDistance, dotProductDistance, getStatistics } from './utils/index.js';
10
+ export { euclideanDistance, cosineDistance, manhattanDistance, dotProductDistance, getStatistics };
11
11
  import { UniversalSentenceEncoder, createEmbeddingFunction, createTensorFlowEmbeddingFunction, createThreadedEmbeddingFunction, defaultEmbeddingFunction } from './utils/embedding.js';
12
12
  import { executeInThread, cleanupWorkerPools } from './utils/workerUtils.js';
13
13
  import { isBrowser, isNode, isWebWorker, areWebWorkersAvailable, areWorkerThreadsAvailable, areWorkerThreadsAvailableSync, isThreadingAvailable, isThreadingAvailableAsync } from './utils/environment.js';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Base Storage Adapter
3
+ * Provides common functionality for all storage adapters, including statistics tracking
4
+ */
5
+ import { StatisticsData, StorageAdapter } from '../../coreTypes.js';
6
+ /**
7
+ * Base class for storage adapters that implements statistics tracking
8
+ */
9
+ export declare abstract class BaseStorageAdapter implements StorageAdapter {
10
+ abstract init(): Promise<void>;
11
+ abstract saveNoun(noun: any): Promise<void>;
12
+ abstract getNoun(id: string): Promise<any | null>;
13
+ abstract getAllNouns(): Promise<any[]>;
14
+ abstract getNounsByNounType(nounType: string): Promise<any[]>;
15
+ abstract deleteNoun(id: string): Promise<void>;
16
+ abstract saveVerb(verb: any): Promise<void>;
17
+ abstract getVerb(id: string): Promise<any | null>;
18
+ abstract getAllVerbs(): Promise<any[]>;
19
+ abstract getVerbsBySource(sourceId: string): Promise<any[]>;
20
+ abstract getVerbsByTarget(targetId: string): Promise<any[]>;
21
+ abstract getVerbsByType(type: string): Promise<any[]>;
22
+ abstract deleteVerb(id: string): Promise<void>;
23
+ abstract saveMetadata(id: string, metadata: any): Promise<void>;
24
+ abstract getMetadata(id: string): Promise<any | null>;
25
+ abstract clear(): Promise<void>;
26
+ abstract getStorageStatus(): Promise<{
27
+ type: string;
28
+ used: number;
29
+ quota: number | null;
30
+ details?: Record<string, any>;
31
+ }>;
32
+ protected abstract saveStatisticsData(statistics: StatisticsData): Promise<void>;
33
+ protected abstract getStatisticsData(): Promise<StatisticsData | null>;
34
+ /**
35
+ * Save statistics data
36
+ * @param statistics The statistics data to save
37
+ */
38
+ saveStatistics(statistics: StatisticsData): Promise<void>;
39
+ /**
40
+ * Get statistics data
41
+ * @returns Promise that resolves to the statistics data
42
+ */
43
+ getStatistics(): Promise<StatisticsData | null>;
44
+ /**
45
+ * Increment a statistic counter
46
+ * @param type The type of statistic to increment ('noun', 'verb', 'metadata')
47
+ * @param service The service that inserted the data
48
+ * @param amount The amount to increment by (default: 1)
49
+ */
50
+ incrementStatistic(type: 'noun' | 'verb' | 'metadata', service: string, amount?: number): Promise<void>;
51
+ /**
52
+ * Decrement a statistic counter
53
+ * @param type The type of statistic to decrement ('noun', 'verb', 'metadata')
54
+ * @param service The service that inserted the data
55
+ * @param amount The amount to decrement by (default: 1)
56
+ */
57
+ decrementStatistic(type: 'noun' | 'verb' | 'metadata', service: string, amount?: number): Promise<void>;
58
+ /**
59
+ * Update the HNSW index size statistic
60
+ * @param size The new size of the HNSW index
61
+ */
62
+ updateHnswIndexSize(size: number): Promise<void>;
63
+ /**
64
+ * Create default statistics data
65
+ * @returns Default statistics data
66
+ */
67
+ protected createDefaultStatistics(): StatisticsData;
68
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/baseStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * File System Storage Adapter
3
3
  * File system storage adapter for Node.js environments
4
4
  */
5
- import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
5
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../../coreTypes.js';
6
6
  import { BaseStorage } from '../baseStorage.js';
7
7
  type HNSWNode = HNSWNoun;
8
8
  type Edge = GraphVerb;
@@ -100,5 +100,15 @@ export declare class FileSystemStorage extends BaseStorage {
100
100
  quota: number | null;
101
101
  details?: Record<string, any>;
102
102
  }>;
103
+ /**
104
+ * Save statistics data to storage
105
+ * @param statistics The statistics data to save
106
+ */
107
+ protected saveStatisticsData(statistics: StatisticsData): Promise<void>;
108
+ /**
109
+ * Get statistics data from storage
110
+ * @returns Promise that resolves to the statistics data or null if not found
111
+ */
112
+ protected getStatisticsData(): Promise<StatisticsData | null>;
103
113
  }
104
114
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"fileSystemStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/fileSystemStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAiD,MAAM,mBAAmB,CAAA;AAG9F,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAyBrB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;OAGG;gBACS,aAAa,EAAE,MAAM;IASjC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmClC;;OAEG;YACW,qBAAqB;IAWnC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA2B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuCzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAsC9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAezD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;CAsFH"}
1
+ {"version":3,"file":"fileSystemStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/fileSystemStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAiE,MAAM,mBAAmB,CAAA;AAG9G,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAyBrB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;OAGG;gBACS,aAAa,EAAE,MAAM;IASjC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmClC;;OAEG;YACW,qBAAqB;IAWnC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA2B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuCzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAsC9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAezD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;IAuFF;;;OAGG;cACa,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAgBpE"}
@@ -2,7 +2,7 @@
2
2
  * Memory Storage Adapter
3
3
  * In-memory storage adapter for environments where persistent storage is not available or needed
4
4
  */
5
- import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
5
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../../coreTypes.js';
6
6
  import { BaseStorage } from '../baseStorage.js';
7
7
  /**
8
8
  * Type alias for HNSWNoun to make the code more readable
@@ -20,6 +20,7 @@ export declare class MemoryStorage extends BaseStorage {
20
20
  private nouns;
21
21
  private verbs;
22
22
  private metadata;
23
+ private statistics;
23
24
  constructor();
24
25
  /**
25
26
  * Initialize the storage adapter
@@ -97,5 +98,15 @@ export declare class MemoryStorage extends BaseStorage {
97
98
  quota: number | null;
98
99
  details?: Record<string, any>;
99
100
  }>;
101
+ /**
102
+ * Save statistics data to storage
103
+ * @param statistics The statistics data to save
104
+ */
105
+ protected saveStatisticsData(statistics: StatisticsData): Promise<void>;
106
+ /**
107
+ * Get statistics data from storage
108
+ * @returns Promise that resolves to the statistics data or null if not found
109
+ */
110
+ protected getStatisticsData(): Promise<StatisticsData | null>;
100
111
  }
101
112
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"memoryStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/memoryStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;GAEG;AACH,KAAK,QAAQ,GAAG,QAAQ,CAAA;AAExB;;GAEG;AACH,KAAK,IAAI,GAAG,SAAS,CAAA;AAErB;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAA8B;;IAM9C;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwB7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuBlD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA6BzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA6BzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA4B9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IASzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;CAYH"}
1
+ {"version":3,"file":"memoryStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/memoryStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAA;AAE/D;;GAEG;AACH,KAAK,QAAQ,GAAG,QAAQ,CAAA;AAExB;;GAEG;AACH,KAAK,IAAI,GAAG,SAAS,CAAA;AAErB;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAA8B;;IAMhD;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwB7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuBlD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA6BzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA6BzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA4B9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IASzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;IAaF;;;OAGG;cACa,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7E;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAcpE"}
@@ -2,7 +2,7 @@
2
2
  * OPFS (Origin Private File System) Storage Adapter
3
3
  * Provides persistent storage for the vector database using the Origin Private File System API
4
4
  */
5
- import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
5
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../../coreTypes.js';
6
6
  import { BaseStorage } from '../baseStorage.js';
7
7
  import '../../types/fileSystemTypes.js';
8
8
  type HNSWNode = HNSWNoun;
@@ -20,6 +20,7 @@ export declare class OPFSStorage extends BaseStorage {
20
20
  private isAvailable;
21
21
  private isPersistentRequested;
22
22
  private isPersistentGranted;
23
+ private statistics;
23
24
  constructor();
24
25
  /**
25
26
  * Initialize the storage adapter
@@ -110,5 +111,15 @@ export declare class OPFSStorage extends BaseStorage {
110
111
  quota: number | null;
111
112
  details?: Record<string, any>;
112
113
  }>;
114
+ /**
115
+ * Save statistics data to storage
116
+ * @param statistics The statistics data to save
117
+ */
118
+ protected saveStatisticsData(statistics: StatisticsData): Promise<void>;
119
+ /**
120
+ * Get statistics data from storage
121
+ * @returns Promise that resolves to the statistics data or null if not found
122
+ */
123
+ protected getStatisticsData(): Promise<StatisticsData | null>;
113
124
  }
114
125
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"opfsStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/opfsStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAC,WAAW,EAAgD,MAAM,mBAAmB,CAAA;AAC5F,OAAO,gCAAgC,CAAA;AAavC,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAKrB;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW;IACxC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,mBAAmB,CAAQ;;IAWnC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ClC;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;;OAGG;IACU,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAuBzD;;;OAGG;IACU,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7C;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA6B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4CzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAkCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA0C9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAiBzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAChC,CAAC;CAoIL"}
1
+ {"version":3,"file":"opfsStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/opfsStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAC,WAAW,EAAgE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,gCAAgC,CAAA;AAavC,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAKrB;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW;IACxC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,UAAU,CAA8B;;IAWhD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ClC;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;;OAGG;IACU,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAuBzD;;;OAGG;IACU,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7C;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA6B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4CzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAkCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA0C9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAiBzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAChC,CAAC;IAqIF;;;OAGG;cACa,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7E;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAuDtE"}
@@ -3,7 +3,7 @@
3
3
  * Uses the AWS S3 client to interact with S3-compatible storage services
4
4
  * including Amazon S3, Cloudflare R2, and Google Cloud Storage
5
5
  */
6
- import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
6
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../../coreTypes.js';
7
7
  import { BaseStorage } from '../baseStorage.js';
8
8
  type HNSWNode = HNSWNoun;
9
9
  type Edge = GraphVerb;
@@ -44,6 +44,7 @@ export declare class S3CompatibleStorage extends BaseStorage {
44
44
  private verbPrefix;
45
45
  private metadataPrefix;
46
46
  private indexPrefix;
47
+ private statisticsCache;
47
48
  /**
48
49
  * Initialize the storage adapter
49
50
  * @param options Configuration options for the S3-compatible storage
@@ -133,4 +134,14 @@ export declare class S3CompatibleStorage extends BaseStorage {
133
134
  quota: number | null;
134
135
  details?: Record<string, any>;
135
136
  }>;
137
+ /**
138
+ * Save statistics data to storage
139
+ * @param statistics The statistics data to save
140
+ */
141
+ protected saveStatisticsData(statistics: StatisticsData): Promise<void>;
142
+ /**
143
+ * Get statistics data from storage
144
+ * @returns Promise that resolves to the statistics data or null if not found
145
+ */
146
+ protected getStatisticsData(): Promise<StatisticsData | null>;
136
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"s3CompatibleStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/s3CompatibleStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3CompatibleStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/s3CompatibleStorage.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,18 @@
2
2
  * Base Storage Adapter
3
3
  * Provides common functionality for all storage adapters
4
4
  */
5
- import { GraphVerb, HNSWNoun, StorageAdapter } from '../coreTypes.js';
5
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../coreTypes.js';
6
+ import { BaseStorageAdapter } from './adapters/baseStorageAdapter.js';
6
7
  export declare const NOUNS_DIR = "nouns";
7
8
  export declare const VERBS_DIR = "verbs";
8
9
  export declare const METADATA_DIR = "metadata";
9
10
  export declare const INDEX_DIR = "index";
11
+ export declare const STATISTICS_KEY = "statistics";
10
12
  /**
11
13
  * Base storage adapter that implements common functionality
12
14
  * This is an abstract class that should be extended by specific storage adapters
13
15
  */
14
- export declare abstract class BaseStorage implements StorageAdapter {
16
+ export declare abstract class BaseStorage extends BaseStorageAdapter {
15
17
  protected isInitialized: boolean;
16
18
  /**
17
19
  * Initialize the storage adapter
@@ -161,4 +163,16 @@ export declare abstract class BaseStorage implements StorageAdapter {
161
163
  * Helper method to convert a Map to a plain object for serialization
162
164
  */
163
165
  protected mapToObject<K extends string | number, V>(map: Map<K, V>, valueTransformer?: (value: V) => any): Record<string, any>;
166
+ /**
167
+ * Save statistics data to storage
168
+ * This method should be implemented by each specific adapter
169
+ * @param statistics The statistics data to save
170
+ */
171
+ protected abstract saveStatisticsData(statistics: StatisticsData): Promise<void>;
172
+ /**
173
+ * Get statistics data from storage
174
+ * This method should be implemented by each specific adapter
175
+ * @returns Promise that resolves to the statistics data or null if not found
176
+ */
177
+ protected abstract getStatisticsData(): Promise<StatisticsData | null>;
164
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseStorage.d.ts","sourceRoot":"","sources":["../../src/storage/baseStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseStorage.d.ts","sourceRoot":"","sources":["../../src/storage/baseStorage.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
- import { GraphVerb, HNSWNoun, StorageAdapter } from '../coreTypes.js';
1
+ import { GraphVerb, HNSWNoun, StatisticsData } from '../coreTypes.js';
2
+ import { BaseStorageAdapter } from './adapters/baseStorageAdapter.js';
2
3
  /**
3
4
  * File system storage adapter for Node.js environments
4
5
  */
5
- export declare class FileSystemStorage implements StorageAdapter {
6
+ export declare class FileSystemStorage extends BaseStorageAdapter {
6
7
  private rootDir;
7
8
  private nounsDir;
8
9
  private verbsDir;
9
10
  private metadataDir;
11
+ private indexDir;
10
12
  private isInitialized;
13
+ private statistics;
11
14
  constructor(rootDirectory?: string);
12
15
  /**
13
16
  * Initialize the storage adapter
@@ -70,4 +73,14 @@ export declare class FileSystemStorage implements StorageAdapter {
70
73
  quota: number | null;
71
74
  details?: Record<string, any>;
72
75
  }>;
76
+ /**
77
+ * Save statistics data to storage
78
+ * @param statistics The statistics data to save
79
+ */
80
+ protected saveStatisticsData(statistics: StatisticsData): Promise<void>;
81
+ /**
82
+ * Get statistics data from storage
83
+ * @returns Promise that resolves to the statistics data or null if not found
84
+ */
85
+ protected getStatisticsData(): Promise<StatisticsData | null>;
73
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileSystemStorage.d.ts","sourceRoot":"","sources":["../../src/storage/fileSystemStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAqDrE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAAQ;gBAEjB,aAAa,CAAC,EAAE,MAAM;IAQlC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA2CpB,qBAAqB;IAWnC,OAAO,CAAC,WAAW;IAKN,QAAQ,CACnB,IAAI,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,OAAO,CAAC,IAAI,CAAC;IAQH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAc7C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoB/C;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4BzD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;OAIG;IACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAc9C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMrE;;;;OAIG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMrE;;;;OAIG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMlD,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAoBnC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalD;;;;OAIG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;;;OAIG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAc5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DtB,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;CAyCH"}
1
+ {"version":3,"file":"fileSystemStorage.d.ts","sourceRoot":"","sources":["../../src/storage/fileSystemStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAA;AAqDnE;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB;IACrD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAA8B;gBAEpC,aAAa,CAAC,EAAE,MAAM;IAUlC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA6CpB,qBAAqB;IAWnC,OAAO,CAAC,WAAW;IAKN,QAAQ,CACjB,IAAI,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAQH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAc7C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoB/C;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4BzD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;OAIG;IACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAc9C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMrE;;;;OAIG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMrE;;;;OAIG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMlD,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAoBnC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalD;;;;OAIG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;;;OAIG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAc5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DtB,gBAAgB,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAChC,CAAC;IA0CF;;;OAGG;cACa,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7E;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA8CtE"}