@soulcraft/brainy 3.50.2 → 4.0.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/CHANGELOG.md +201 -0
- package/README.md +358 -658
- package/dist/api/ConfigAPI.js +56 -19
- package/dist/api/DataAPI.js +24 -18
- package/dist/augmentations/storageAugmentations.d.ts +24 -0
- package/dist/augmentations/storageAugmentations.js +22 -0
- package/dist/brainy.js +32 -9
- package/dist/cli/commands/core.d.ts +20 -10
- package/dist/cli/commands/core.js +384 -82
- package/dist/cli/commands/import.d.ts +41 -0
- package/dist/cli/commands/import.js +456 -0
- package/dist/cli/commands/insights.d.ts +34 -0
- package/dist/cli/commands/insights.js +300 -0
- package/dist/cli/commands/neural.d.ts +6 -12
- package/dist/cli/commands/neural.js +113 -10
- package/dist/cli/commands/nlp.d.ts +28 -0
- package/dist/cli/commands/nlp.js +246 -0
- package/dist/cli/commands/storage.d.ts +64 -0
- package/dist/cli/commands/storage.js +730 -0
- package/dist/cli/index.js +210 -24
- package/dist/coreTypes.d.ts +206 -34
- package/dist/distributed/configManager.js +8 -6
- package/dist/distributed/shardMigration.js +2 -0
- package/dist/distributed/storageDiscovery.js +6 -4
- package/dist/embeddings/EmbeddingManager.d.ts +2 -2
- package/dist/embeddings/EmbeddingManager.js +5 -1
- package/dist/graph/lsm/LSMTree.js +32 -20
- package/dist/hnsw/typeAwareHNSWIndex.js +6 -2
- package/dist/storage/adapters/azureBlobStorage.d.ts +545 -0
- package/dist/storage/adapters/azureBlobStorage.js +1809 -0
- package/dist/storage/adapters/baseStorageAdapter.d.ts +16 -13
- package/dist/storage/adapters/fileSystemStorage.d.ts +21 -9
- package/dist/storage/adapters/fileSystemStorage.js +204 -127
- package/dist/storage/adapters/gcsStorage.d.ts +119 -9
- package/dist/storage/adapters/gcsStorage.js +317 -62
- package/dist/storage/adapters/memoryStorage.d.ts +30 -18
- package/dist/storage/adapters/memoryStorage.js +99 -94
- package/dist/storage/adapters/opfsStorage.d.ts +48 -10
- package/dist/storage/adapters/opfsStorage.js +201 -80
- package/dist/storage/adapters/r2Storage.d.ts +12 -5
- package/dist/storage/adapters/r2Storage.js +63 -15
- package/dist/storage/adapters/s3CompatibleStorage.d.ts +164 -17
- package/dist/storage/adapters/s3CompatibleStorage.js +472 -80
- package/dist/storage/adapters/typeAwareStorageAdapter.d.ts +38 -6
- package/dist/storage/adapters/typeAwareStorageAdapter.js +218 -39
- package/dist/storage/baseStorage.d.ts +41 -38
- package/dist/storage/baseStorage.js +110 -134
- package/dist/storage/storageFactory.d.ts +29 -2
- package/dist/storage/storageFactory.js +30 -1
- package/dist/utils/entityIdMapper.js +5 -2
- package/dist/utils/fieldTypeInference.js +8 -1
- package/dist/utils/metadataFilter.d.ts +3 -2
- package/dist/utils/metadataFilter.js +1 -0
- package/dist/utils/metadataIndex.js +2 -0
- package/dist/utils/metadataIndexChunking.js +9 -4
- package/dist/utils/periodicCleanup.js +1 -0
- package/package.json +3 -1
|
@@ -2,26 +2,29 @@
|
|
|
2
2
|
* Base Storage Adapter
|
|
3
3
|
* Provides common functionality for all storage adapters, including statistics tracking
|
|
4
4
|
*/
|
|
5
|
-
import { StatisticsData, StorageAdapter, HNSWNoun,
|
|
5
|
+
import { StatisticsData, StorageAdapter, HNSWNoun, HNSWVerb, HNSWNounWithMetadata, HNSWVerbWithMetadata, NounMetadata, VerbMetadata } from '../../coreTypes.js';
|
|
6
6
|
/**
|
|
7
7
|
* Base class for storage adapters that implements statistics tracking
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
10
10
|
abstract init(): Promise<void>;
|
|
11
11
|
abstract saveNoun(noun: HNSWNoun): Promise<void>;
|
|
12
|
-
abstract
|
|
13
|
-
abstract
|
|
12
|
+
abstract saveNounMetadata(id: string, metadata: NounMetadata): Promise<void>;
|
|
13
|
+
abstract deleteNounMetadata(id: string): Promise<void>;
|
|
14
|
+
abstract getNoun(id: string): Promise<HNSWNounWithMetadata | null>;
|
|
15
|
+
abstract getNounsByNounType(nounType: string): Promise<HNSWNounWithMetadata[]>;
|
|
14
16
|
abstract deleteNoun(id: string): Promise<void>;
|
|
15
|
-
abstract saveVerb(verb:
|
|
16
|
-
abstract
|
|
17
|
-
abstract
|
|
18
|
-
abstract
|
|
19
|
-
abstract
|
|
17
|
+
abstract saveVerb(verb: HNSWVerb): Promise<void>;
|
|
18
|
+
abstract saveVerbMetadata(id: string, metadata: VerbMetadata): Promise<void>;
|
|
19
|
+
abstract deleteVerbMetadata(id: string): Promise<void>;
|
|
20
|
+
abstract getVerb(id: string): Promise<HNSWVerbWithMetadata | null>;
|
|
21
|
+
abstract getVerbsBySource(sourceId: string): Promise<HNSWVerbWithMetadata[]>;
|
|
22
|
+
abstract getVerbsByTarget(targetId: string): Promise<HNSWVerbWithMetadata[]>;
|
|
23
|
+
abstract getVerbsByType(type: string): Promise<HNSWVerbWithMetadata[]>;
|
|
20
24
|
abstract deleteVerb(id: string): Promise<void>;
|
|
21
25
|
abstract saveMetadata(id: string, metadata: any): Promise<void>;
|
|
22
26
|
abstract getMetadata(id: string): Promise<any | null>;
|
|
23
27
|
abstract getNounMetadata(id: string): Promise<any | null>;
|
|
24
|
-
abstract saveVerbMetadata(id: string, metadata: any): Promise<void>;
|
|
25
28
|
abstract getVerbMetadata(id: string): Promise<any | null>;
|
|
26
29
|
abstract getNounVector(id: string): Promise<number[] | null>;
|
|
27
30
|
abstract saveHNSWData(nounId: string, hnswData: {
|
|
@@ -64,7 +67,7 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
|
64
67
|
metadata?: Record<string, any>;
|
|
65
68
|
};
|
|
66
69
|
}): Promise<{
|
|
67
|
-
items:
|
|
70
|
+
items: HNSWNounWithMetadata[];
|
|
68
71
|
totalCount?: number;
|
|
69
72
|
hasMore: boolean;
|
|
70
73
|
nextCursor?: string;
|
|
@@ -88,7 +91,7 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
|
88
91
|
metadata?: Record<string, any>;
|
|
89
92
|
};
|
|
90
93
|
}): Promise<{
|
|
91
|
-
items:
|
|
94
|
+
items: HNSWVerbWithMetadata[];
|
|
92
95
|
totalCount?: number;
|
|
93
96
|
hasMore: boolean;
|
|
94
97
|
nextCursor?: string;
|
|
@@ -108,7 +111,7 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
|
108
111
|
metadata?: Record<string, any>;
|
|
109
112
|
};
|
|
110
113
|
}): Promise<{
|
|
111
|
-
items:
|
|
114
|
+
items: HNSWNounWithMetadata[];
|
|
112
115
|
totalCount?: number;
|
|
113
116
|
hasMore: boolean;
|
|
114
117
|
nextCursor?: string;
|
|
@@ -130,7 +133,7 @@ export declare abstract class BaseStorageAdapter implements StorageAdapter {
|
|
|
130
133
|
metadata?: Record<string, any>;
|
|
131
134
|
};
|
|
132
135
|
}): Promise<{
|
|
133
|
-
items:
|
|
136
|
+
items: HNSWVerbWithMetadata[];
|
|
134
137
|
totalCount?: number;
|
|
135
138
|
hasMore: boolean;
|
|
136
139
|
nextCursor?: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* File System Storage Adapter
|
|
3
3
|
* File system storage adapter for Node.js environments
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { HNSWNoun, HNSWVerb, HNSWNounWithMetadata, HNSWVerbWithMetadata, StatisticsData } from '../../coreTypes.js';
|
|
6
6
|
import { BaseStorage } from '../baseStorage.js';
|
|
7
7
|
type HNSWNode = HNSWNoun;
|
|
8
8
|
type Edge = HNSWVerb;
|
|
@@ -28,11 +28,17 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
28
28
|
private activeLocks;
|
|
29
29
|
private lockTimers;
|
|
30
30
|
private allTimers;
|
|
31
|
+
private compressionEnabled;
|
|
32
|
+
private compressionLevel;
|
|
31
33
|
/**
|
|
32
34
|
* Initialize the storage adapter
|
|
33
35
|
* @param rootDirectory The root directory for storage
|
|
36
|
+
* @param options Optional configuration
|
|
34
37
|
*/
|
|
35
|
-
constructor(rootDirectory: string
|
|
38
|
+
constructor(rootDirectory: string, options?: {
|
|
39
|
+
compression?: boolean;
|
|
40
|
+
compressionLevel?: number;
|
|
41
|
+
});
|
|
36
42
|
/**
|
|
37
43
|
* Initialize the storage adapter
|
|
38
44
|
*/
|
|
@@ -103,22 +109,26 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
103
109
|
/**
|
|
104
110
|
* Primitive operation: Write object to path
|
|
105
111
|
* All metadata operations use this internally via base class routing
|
|
112
|
+
* v4.0.0: Supports gzip compression for 60-80% disk savings
|
|
106
113
|
*/
|
|
107
114
|
protected writeObjectToPath(pathStr: string, data: any): Promise<void>;
|
|
108
115
|
/**
|
|
109
116
|
* Primitive operation: Read object from path
|
|
110
117
|
* All metadata operations use this internally via base class routing
|
|
111
118
|
* Enhanced error handling for corrupted metadata files (Bug #3 mitigation)
|
|
119
|
+
* v4.0.0: Supports reading both compressed (.gz) and uncompressed files for backward compatibility
|
|
112
120
|
*/
|
|
113
121
|
protected readObjectFromPath(pathStr: string): Promise<any | null>;
|
|
114
122
|
/**
|
|
115
123
|
* Primitive operation: Delete object from path
|
|
116
124
|
* All metadata operations use this internally via base class routing
|
|
125
|
+
* v4.0.0: Deletes both compressed and uncompressed versions (for cleanup)
|
|
117
126
|
*/
|
|
118
127
|
protected deleteObjectFromPath(pathStr: string): Promise<void>;
|
|
119
128
|
/**
|
|
120
129
|
* Primitive operation: List objects under path prefix
|
|
121
130
|
* All metadata operations use this internally via base class routing
|
|
131
|
+
* v4.0.0: Handles both .json and .json.gz files, normalizes paths
|
|
122
132
|
*/
|
|
123
133
|
protected listObjectsUnderPath(prefix: string): Promise<string[]>;
|
|
124
134
|
/**
|
|
@@ -135,7 +145,7 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
135
145
|
cursor?: string;
|
|
136
146
|
filter?: any;
|
|
137
147
|
}): Promise<{
|
|
138
|
-
items:
|
|
148
|
+
items: HNSWNounWithMetadata[];
|
|
139
149
|
totalCount: number;
|
|
140
150
|
hasMore: boolean;
|
|
141
151
|
nextCursor?: string;
|
|
@@ -167,7 +177,8 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
167
177
|
protected saveNoun_internal(noun: HNSWNoun): Promise<void>;
|
|
168
178
|
/**
|
|
169
179
|
* Get a noun from storage (internal implementation)
|
|
170
|
-
*
|
|
180
|
+
* v4.0.0: Returns ONLY vector data (no metadata field)
|
|
181
|
+
* Base class combines with metadata via getNoun() -> HNSWNounWithMetadata
|
|
171
182
|
*/
|
|
172
183
|
protected getNoun_internal(id: string): Promise<HNSWNoun | null>;
|
|
173
184
|
/**
|
|
@@ -184,21 +195,22 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
184
195
|
protected saveVerb_internal(verb: HNSWVerb): Promise<void>;
|
|
185
196
|
/**
|
|
186
197
|
* Get a verb from storage (internal implementation)
|
|
187
|
-
*
|
|
198
|
+
* v4.0.0: Returns ONLY vector + core relational fields (no metadata field)
|
|
199
|
+
* Base class combines with metadata via getVerb() -> HNSWVerbWithMetadata
|
|
188
200
|
*/
|
|
189
201
|
protected getVerb_internal(id: string): Promise<HNSWVerb | null>;
|
|
190
202
|
/**
|
|
191
203
|
* Get verbs by source
|
|
192
204
|
*/
|
|
193
|
-
protected getVerbsBySource_internal(sourceId: string): Promise<
|
|
205
|
+
protected getVerbsBySource_internal(sourceId: string): Promise<HNSWVerbWithMetadata[]>;
|
|
194
206
|
/**
|
|
195
207
|
* Get verbs by target
|
|
196
208
|
*/
|
|
197
|
-
protected getVerbsByTarget_internal(targetId: string): Promise<
|
|
209
|
+
protected getVerbsByTarget_internal(targetId: string): Promise<HNSWVerbWithMetadata[]>;
|
|
198
210
|
/**
|
|
199
211
|
* Get verbs by type
|
|
200
212
|
*/
|
|
201
|
-
protected getVerbsByType_internal(type: string): Promise<
|
|
213
|
+
protected getVerbsByType_internal(type: string): Promise<HNSWVerbWithMetadata[]>;
|
|
202
214
|
/**
|
|
203
215
|
* Get verbs with pagination
|
|
204
216
|
* This method reads verb files from the filesystem and returns them with pagination
|
|
@@ -214,7 +226,7 @@ export declare class FileSystemStorage extends BaseStorage {
|
|
|
214
226
|
metadata?: Record<string, any>;
|
|
215
227
|
};
|
|
216
228
|
}): Promise<{
|
|
217
|
-
items:
|
|
229
|
+
items: HNSWVerbWithMetadata[];
|
|
218
230
|
totalCount?: number;
|
|
219
231
|
hasMore: boolean;
|
|
220
232
|
nextCursor?: string;
|