@soulcraft/brainy 0.22.0 → 0.23.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.
- package/dist/brainyData.d.ts +6 -0
- package/dist/coreTypes.d.ts +5 -0
- package/dist/storage/adapters/baseStorageAdapter.d.ts +5 -0
- package/dist/storage/adapters/baseStorageAdapter.d.ts.map +1 -1
- package/dist/storage/adapters/memoryStorage.d.ts +10 -19
- package/dist/storage/adapters/memoryStorage.d.ts.map +1 -1
- package/dist/unified.js +36 -0
- package/dist/unified.min.js +1 -1
- package/package.json +1 -1
package/dist/brainyData.d.ts
CHANGED
|
@@ -403,6 +403,12 @@ export declare class BrainyData<T = any> implements BrainyDataInterface<T> {
|
|
|
403
403
|
* @private
|
|
404
404
|
*/
|
|
405
405
|
private getNounCount;
|
|
406
|
+
/**
|
|
407
|
+
* Force an immediate flush of statistics to storage
|
|
408
|
+
* This ensures that any pending statistics updates are written to persistent storage
|
|
409
|
+
* @returns Promise that resolves when the statistics have been flushed
|
|
410
|
+
*/
|
|
411
|
+
flushStatistics(): Promise<void>;
|
|
406
412
|
/**
|
|
407
413
|
* Get statistics about the current state of the database
|
|
408
414
|
* @param options Additional options for retrieving statistics
|
package/dist/coreTypes.d.ts
CHANGED
|
@@ -193,4 +193,9 @@ export interface StorageAdapter {
|
|
|
193
193
|
* @param size The new size of the HNSW index
|
|
194
194
|
*/
|
|
195
195
|
updateHnswIndexSize(size: number): Promise<void>;
|
|
196
|
+
/**
|
|
197
|
+
* Force an immediate flush of statistics to storage
|
|
198
|
+
* This ensures that any pending statistics updates are written to persistent storage
|
|
199
|
+
*/
|
|
200
|
+
flushStatisticsToStorage(): Promise<void>;
|
|
196
201
|
}
|
|
@@ -74,6 +74,11 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
|
74
74
|
* @param size The new size of the HNSW index
|
|
75
75
|
*/
|
|
76
76
|
updateHnswIndexSize(size: number): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Force an immediate flush of statistics to storage
|
|
79
|
+
* This ensures that any pending statistics updates are written to persistent storage
|
|
80
|
+
*/
|
|
81
|
+
flushStatisticsToStorage(): Promise<void>;
|
|
77
82
|
/**
|
|
78
83
|
* Create default statistics data
|
|
79
84
|
* @returns Default statistics data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/baseStorageAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"baseStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/baseStorageAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { GraphVerb, HNSWNoun, StatisticsData } from '../../coreTypes.js';
|
|
6
6
|
import { BaseStorage } from '../baseStorage.js';
|
|
7
|
-
/**
|
|
8
|
-
* Type alias for HNSWNoun to make the code more readable
|
|
9
|
-
*/
|
|
10
|
-
type HNSWNoun_internal = HNSWNoun;
|
|
11
|
-
/**
|
|
12
|
-
* Type alias for GraphVerb to make the code more readable
|
|
13
|
-
*/
|
|
14
|
-
type Verb = GraphVerb;
|
|
15
7
|
/**
|
|
16
8
|
* In-memory storage adapter
|
|
17
9
|
* Uses Maps to store data in memory
|
|
@@ -30,21 +22,21 @@ export declare class MemoryStorage extends BaseStorage {
|
|
|
30
22
|
/**
|
|
31
23
|
* Save a noun to storage
|
|
32
24
|
*/
|
|
33
|
-
protected saveNoun_internal(noun:
|
|
25
|
+
protected saveNoun_internal(noun: HNSWNoun): Promise<void>;
|
|
34
26
|
/**
|
|
35
27
|
* Get a noun from storage
|
|
36
28
|
*/
|
|
37
|
-
protected getNoun_internal(id: string): Promise<
|
|
29
|
+
protected getNoun_internal(id: string): Promise<HNSWNoun | null>;
|
|
38
30
|
/**
|
|
39
31
|
* Get all nouns from storage
|
|
40
32
|
*/
|
|
41
|
-
protected getAllNouns_internal(): Promise<
|
|
33
|
+
protected getAllNouns_internal(): Promise<HNSWNoun[]>;
|
|
42
34
|
/**
|
|
43
35
|
* Get nouns by noun type
|
|
44
36
|
* @param nounType The noun type to filter by
|
|
45
37
|
* @returns Promise that resolves to an array of nouns of the specified noun type
|
|
46
38
|
*/
|
|
47
|
-
protected getNounsByNounType_internal(nounType: string): Promise<
|
|
39
|
+
protected getNounsByNounType_internal(nounType: string): Promise<HNSWNoun[]>;
|
|
48
40
|
/**
|
|
49
41
|
* Delete a noun from storage
|
|
50
42
|
*/
|
|
@@ -52,27 +44,27 @@ export declare class MemoryStorage extends BaseStorage {
|
|
|
52
44
|
/**
|
|
53
45
|
* Save a verb to storage
|
|
54
46
|
*/
|
|
55
|
-
protected saveVerb_internal(verb:
|
|
47
|
+
protected saveVerb_internal(verb: GraphVerb): Promise<void>;
|
|
56
48
|
/**
|
|
57
49
|
* Get a verb from storage
|
|
58
50
|
*/
|
|
59
|
-
protected getVerb_internal(id: string): Promise<
|
|
51
|
+
protected getVerb_internal(id: string): Promise<GraphVerb | null>;
|
|
60
52
|
/**
|
|
61
53
|
* Get all verbs from storage
|
|
62
54
|
*/
|
|
63
|
-
protected getAllVerbs_internal(): Promise<
|
|
55
|
+
protected getAllVerbs_internal(): Promise<GraphVerb[]>;
|
|
64
56
|
/**
|
|
65
57
|
* Get verbs by source
|
|
66
58
|
*/
|
|
67
|
-
protected getVerbsBySource_internal(sourceId: string): Promise<
|
|
59
|
+
protected getVerbsBySource_internal(sourceId: string): Promise<GraphVerb[]>;
|
|
68
60
|
/**
|
|
69
61
|
* Get verbs by target
|
|
70
62
|
*/
|
|
71
|
-
protected getVerbsByTarget_internal(targetId: string): Promise<
|
|
63
|
+
protected getVerbsByTarget_internal(targetId: string): Promise<GraphVerb[]>;
|
|
72
64
|
/**
|
|
73
65
|
* Get verbs by type
|
|
74
66
|
*/
|
|
75
|
-
protected getVerbsByType_internal(type: string): Promise<
|
|
67
|
+
protected getVerbsByType_internal(type: string): Promise<GraphVerb[]>;
|
|
76
68
|
/**
|
|
77
69
|
* Delete a verb from storage
|
|
78
70
|
*/
|
|
@@ -109,4 +101,3 @@ export declare class MemoryStorage extends BaseStorage {
|
|
|
109
101
|
*/
|
|
110
102
|
protected getStatisticsData(): Promise<StatisticsData | null>;
|
|
111
103
|
}
|
|
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,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAA;
|
|
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;AAI/D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAA8B;;IAMhD;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;OAEG;cACa,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhE;;OAEG;cACa,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwBtE;;OAEG;cACa,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuB3D;;;;OAIG;cACa,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA6BlF;;OAEG;cACa,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;OAEG;cACa,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjE;;OAEG;cACa,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA8CvE;;OAEG;cACa,oBAAoB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA6C5D;;OAEG;cACa,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKjF;;OAEG;cACa,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKjF;;OAEG;cACa,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK3E;;OAEG;cACa,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D;;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;IAe7E;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAiBpE"}
|
package/dist/unified.js
CHANGED
|
@@ -5405,6 +5405,18 @@ class BaseStorageAdapter {
|
|
|
5405
5405
|
// Schedule a batch update instead of saving immediately
|
|
5406
5406
|
this.scheduleBatchUpdate();
|
|
5407
5407
|
}
|
|
5408
|
+
/**
|
|
5409
|
+
* Force an immediate flush of statistics to storage
|
|
5410
|
+
* This ensures that any pending statistics updates are written to persistent storage
|
|
5411
|
+
*/
|
|
5412
|
+
async flushStatisticsToStorage() {
|
|
5413
|
+
// If there are no statistics in cache or they haven't been modified, nothing to flush
|
|
5414
|
+
if (!this.statisticsCache || !this.statisticsModified) {
|
|
5415
|
+
return;
|
|
5416
|
+
}
|
|
5417
|
+
// Call the protected flushStatistics method to immediately write to storage
|
|
5418
|
+
await this.flushStatistics();
|
|
5419
|
+
}
|
|
5408
5420
|
/**
|
|
5409
5421
|
* Create default statistics data
|
|
5410
5422
|
* @returns Default statistics data
|
|
@@ -5549,6 +5561,7 @@ class BaseStorage extends BaseStorageAdapter {
|
|
|
5549
5561
|
* Memory Storage Adapter
|
|
5550
5562
|
* In-memory storage adapter for environments where persistent storage is not available or needed
|
|
5551
5563
|
*/
|
|
5564
|
+
// No type aliases needed - using the original types directly
|
|
5552
5565
|
/**
|
|
5553
5566
|
* In-memory storage adapter
|
|
5554
5567
|
* Uses Maps to store data in memory
|
|
@@ -12144,6 +12157,19 @@ class BrainyData {
|
|
|
12144
12157
|
}
|
|
12145
12158
|
return nounCount;
|
|
12146
12159
|
}
|
|
12160
|
+
/**
|
|
12161
|
+
* Force an immediate flush of statistics to storage
|
|
12162
|
+
* This ensures that any pending statistics updates are written to persistent storage
|
|
12163
|
+
* @returns Promise that resolves when the statistics have been flushed
|
|
12164
|
+
*/
|
|
12165
|
+
async flushStatistics() {
|
|
12166
|
+
await this.ensureInitialized();
|
|
12167
|
+
if (!this.storage) {
|
|
12168
|
+
throw new Error('Storage not initialized');
|
|
12169
|
+
}
|
|
12170
|
+
// Call the flushStatisticsToStorage method on the storage adapter
|
|
12171
|
+
await this.storage.flushStatisticsToStorage();
|
|
12172
|
+
}
|
|
12147
12173
|
/**
|
|
12148
12174
|
* Get statistics about the current state of the database
|
|
12149
12175
|
* @param options Additional options for retrieving statistics
|
|
@@ -12725,6 +12751,16 @@ class BrainyData {
|
|
|
12725
12751
|
*/
|
|
12726
12752
|
async shutDown() {
|
|
12727
12753
|
try {
|
|
12754
|
+
// Flush statistics to ensure they're saved before shutting down
|
|
12755
|
+
if (this.storage && this.isInitialized) {
|
|
12756
|
+
try {
|
|
12757
|
+
await this.flushStatistics();
|
|
12758
|
+
}
|
|
12759
|
+
catch (statsError) {
|
|
12760
|
+
console.warn('Failed to flush statistics during shutdown:', statsError);
|
|
12761
|
+
// Continue with shutdown even if statistics flush fails
|
|
12762
|
+
}
|
|
12763
|
+
}
|
|
12728
12764
|
// Disconnect from remote server if connected
|
|
12729
12765
|
if (this.isConnectedToRemoteServer()) {
|
|
12730
12766
|
await this.disconnectFromRemoteServer();
|