@soulcraft/brainy 5.3.6 → 5.5.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 (50) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +4 -3
  3. package/dist/augmentations/display/fieldPatterns.js +3 -3
  4. package/dist/augmentations/display/intelligentComputation.js +0 -2
  5. package/dist/augmentations/typeMatching/brainyTypes.js +6 -8
  6. package/dist/brainy.d.ts +61 -0
  7. package/dist/brainy.js +180 -24
  8. package/dist/cortex/neuralImport.js +0 -1
  9. package/dist/importers/SmartExcelImporter.js +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/neural/embeddedKeywordEmbeddings.d.ts +1 -1
  12. package/dist/neural/embeddedKeywordEmbeddings.js +56 -56
  13. package/dist/neural/embeddedTypeEmbeddings.d.ts +3 -3
  14. package/dist/neural/embeddedTypeEmbeddings.js +14 -14
  15. package/dist/neural/entityExtractor.js +2 -2
  16. package/dist/neural/relationshipConfidence.js +1 -1
  17. package/dist/neural/signals/VerbContextSignal.js +6 -6
  18. package/dist/neural/signals/VerbExactMatchSignal.js +9 -9
  19. package/dist/neural/signals/VerbPatternSignal.js +5 -5
  20. package/dist/query/typeAwareQueryPlanner.js +2 -3
  21. package/dist/storage/adapters/azureBlobStorage.d.ts +13 -64
  22. package/dist/storage/adapters/azureBlobStorage.js +78 -388
  23. package/dist/storage/adapters/fileSystemStorage.d.ts +12 -78
  24. package/dist/storage/adapters/fileSystemStorage.js +49 -395
  25. package/dist/storage/adapters/gcsStorage.d.ts +13 -134
  26. package/dist/storage/adapters/gcsStorage.js +79 -557
  27. package/dist/storage/adapters/historicalStorageAdapter.d.ts +181 -0
  28. package/dist/storage/adapters/historicalStorageAdapter.js +332 -0
  29. package/dist/storage/adapters/memoryStorage.d.ts +4 -113
  30. package/dist/storage/adapters/memoryStorage.js +34 -471
  31. package/dist/storage/adapters/opfsStorage.d.ts +14 -127
  32. package/dist/storage/adapters/opfsStorage.js +44 -693
  33. package/dist/storage/adapters/r2Storage.d.ts +8 -41
  34. package/dist/storage/adapters/r2Storage.js +49 -237
  35. package/dist/storage/adapters/s3CompatibleStorage.d.ts +13 -111
  36. package/dist/storage/adapters/s3CompatibleStorage.js +77 -596
  37. package/dist/storage/baseStorage.d.ts +78 -38
  38. package/dist/storage/baseStorage.js +692 -23
  39. package/dist/storage/cow/BlobStorage.d.ts +2 -2
  40. package/dist/storage/cow/BlobStorage.js +4 -4
  41. package/dist/storage/storageFactory.d.ts +2 -3
  42. package/dist/storage/storageFactory.js +114 -66
  43. package/dist/types/graphTypes.d.ts +588 -230
  44. package/dist/types/graphTypes.js +683 -248
  45. package/dist/types/typeMigration.d.ts +95 -0
  46. package/dist/types/typeMigration.js +141 -0
  47. package/dist/utils/intelligentTypeMapper.js +2 -2
  48. package/dist/utils/metadataIndex.js +6 -6
  49. package/dist/vfs/types.d.ts +6 -2
  50. package/package.json +2 -2
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Type Migration Utilities for Stage 3 Taxonomy (v6.0.0)
3
+ *
4
+ * Provides migration helpers for code using removed types from v5.x
5
+ *
6
+ * ## Removed Types
7
+ *
8
+ * ### Nouns (2 removed):
9
+ * - `user` → merged into `person`
10
+ * - `topic` → merged into `concept`
11
+ *
12
+ * ### Verbs (4 removed):
13
+ * - `succeeds` → use inverse of `precedes`
14
+ * - `belongsTo` → use inverse of `owns`
15
+ * - `createdBy` → use inverse of `creates`
16
+ * - `supervises` → use inverse of `reportsTo`
17
+ */
18
+ import { NounType, VerbType } from './graphTypes.js';
19
+ /**
20
+ * Migration mapping for removed noun types
21
+ */
22
+ export declare const REMOVED_NOUN_TYPES: {
23
+ readonly user: "person";
24
+ readonly topic: "concept";
25
+ };
26
+ /**
27
+ * Migration mapping for removed verb types
28
+ * Note: Some verbs should use inverse relationships in Stage 3
29
+ */
30
+ export declare const REMOVED_VERB_TYPES: {
31
+ readonly succeeds: "precedes";
32
+ readonly belongsTo: "owns";
33
+ readonly createdBy: "creates";
34
+ readonly supervises: "reportsTo";
35
+ };
36
+ /**
37
+ * Check if a type was removed in Stage 3
38
+ */
39
+ export declare function isRemovedNounType(type: string): type is keyof typeof REMOVED_NOUN_TYPES;
40
+ /**
41
+ * Check if a verb type was removed in Stage 3
42
+ */
43
+ export declare function isRemovedVerbType(type: string): type is keyof typeof REMOVED_VERB_TYPES;
44
+ /**
45
+ * Migrate a noun type from v5.x to v6.0 Stage 3
46
+ * Returns the migrated type or the original if no migration needed
47
+ */
48
+ export declare function migrateNounType(type: string): NounType;
49
+ /**
50
+ * Migrate a verb type from v5.x to v6.0 Stage 3
51
+ * Returns the migrated type or the original if no migration needed
52
+ *
53
+ * WARNING: Some verbs require inverting source/target relationships!
54
+ * See VERB_REQUIRES_INVERSION for details.
55
+ */
56
+ export declare function migrateVerbType(type: string): VerbType;
57
+ /**
58
+ * Verbs that require inverting source/target when migrating
59
+ *
60
+ * Example:
61
+ * - Old: `A createdBy B` → New: `B creates A`
62
+ * - Old: `A belongsTo B` → New: `B owns A`
63
+ * - Old: `A supervises B` → New: `B reportsTo A`
64
+ * - Old: `A succeeds B` → New: `B precedes A`
65
+ */
66
+ export declare const VERB_REQUIRES_INVERSION: Set<string>;
67
+ /**
68
+ * Check if a verb type requires inverting source/target during migration
69
+ */
70
+ export declare function requiresInversion(oldVerbType: string): boolean;
71
+ /**
72
+ * Migrate a relationship, handling source/target inversion if needed
73
+ *
74
+ * @returns Object with migrated verb and potentially inverted source/target
75
+ */
76
+ export declare function migrateRelationship(params: {
77
+ verb: string;
78
+ source: string;
79
+ target: string;
80
+ }): {
81
+ verb: VerbType;
82
+ source: string;
83
+ target: string;
84
+ inverted: boolean;
85
+ };
86
+ /**
87
+ * Stage 3 Type Compatibility Check
88
+ * Helps developers identify code that needs updating for v6.0
89
+ */
90
+ export declare function checkTypeCompatibility(nounTypes: string[], verbTypes: string[]): {
91
+ valid: boolean;
92
+ removedNouns: string[];
93
+ removedVerbs: string[];
94
+ warnings: string[];
95
+ };
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Type Migration Utilities for Stage 3 Taxonomy (v6.0.0)
3
+ *
4
+ * Provides migration helpers for code using removed types from v5.x
5
+ *
6
+ * ## Removed Types
7
+ *
8
+ * ### Nouns (2 removed):
9
+ * - `user` → merged into `person`
10
+ * - `topic` → merged into `concept`
11
+ *
12
+ * ### Verbs (4 removed):
13
+ * - `succeeds` → use inverse of `precedes`
14
+ * - `belongsTo` → use inverse of `owns`
15
+ * - `createdBy` → use inverse of `creates`
16
+ * - `supervises` → use inverse of `reportsTo`
17
+ */
18
+ import { NounType, VerbType } from './graphTypes.js';
19
+ /**
20
+ * Migration mapping for removed noun types
21
+ */
22
+ export const REMOVED_NOUN_TYPES = {
23
+ user: NounType.Person,
24
+ topic: NounType.Concept
25
+ };
26
+ /**
27
+ * Migration mapping for removed verb types
28
+ * Note: Some verbs should use inverse relationships in Stage 3
29
+ */
30
+ export const REMOVED_VERB_TYPES = {
31
+ succeeds: VerbType.Precedes, // Use with inverted source/target
32
+ belongsTo: VerbType.Owns, // Use with inverted source/target
33
+ createdBy: VerbType.Creates, // Use with inverted source/target
34
+ supervises: VerbType.ReportsTo // Use with inverted source/target
35
+ };
36
+ /**
37
+ * Check if a type was removed in Stage 3
38
+ */
39
+ export function isRemovedNounType(type) {
40
+ return type in REMOVED_NOUN_TYPES;
41
+ }
42
+ /**
43
+ * Check if a verb type was removed in Stage 3
44
+ */
45
+ export function isRemovedVerbType(type) {
46
+ return type in REMOVED_VERB_TYPES;
47
+ }
48
+ /**
49
+ * Migrate a noun type from v5.x to v6.0 Stage 3
50
+ * Returns the migrated type or the original if no migration needed
51
+ */
52
+ export function migrateNounType(type) {
53
+ if (isRemovedNounType(type)) {
54
+ console.warn(`⚠️ NounType "${type}" was removed in v6.0. Migrating to "${REMOVED_NOUN_TYPES[type]}"`);
55
+ return REMOVED_NOUN_TYPES[type];
56
+ }
57
+ return type;
58
+ }
59
+ /**
60
+ * Migrate a verb type from v5.x to v6.0 Stage 3
61
+ * Returns the migrated type or the original if no migration needed
62
+ *
63
+ * WARNING: Some verbs require inverting source/target relationships!
64
+ * See VERB_REQUIRES_INVERSION for details.
65
+ */
66
+ export function migrateVerbType(type) {
67
+ if (isRemovedVerbType(type)) {
68
+ console.warn(`⚠️ VerbType "${type}" was removed in v6.0. Migrating to "${REMOVED_VERB_TYPES[type]}" (may require source/target inversion)`);
69
+ return REMOVED_VERB_TYPES[type];
70
+ }
71
+ return type;
72
+ }
73
+ /**
74
+ * Verbs that require inverting source/target when migrating
75
+ *
76
+ * Example:
77
+ * - Old: `A createdBy B` → New: `B creates A`
78
+ * - Old: `A belongsTo B` → New: `B owns A`
79
+ * - Old: `A supervises B` → New: `B reportsTo A`
80
+ * - Old: `A succeeds B` → New: `B precedes A`
81
+ */
82
+ export const VERB_REQUIRES_INVERSION = new Set([
83
+ 'succeeds',
84
+ 'belongsTo',
85
+ 'createdBy',
86
+ 'supervises'
87
+ ]);
88
+ /**
89
+ * Check if a verb type requires inverting source/target during migration
90
+ */
91
+ export function requiresInversion(oldVerbType) {
92
+ return VERB_REQUIRES_INVERSION.has(oldVerbType);
93
+ }
94
+ /**
95
+ * Migrate a relationship, handling source/target inversion if needed
96
+ *
97
+ * @returns Object with migrated verb and potentially inverted source/target
98
+ */
99
+ export function migrateRelationship(params) {
100
+ const verb = migrateVerbType(params.verb);
101
+ const inverted = requiresInversion(params.verb);
102
+ if (inverted) {
103
+ return {
104
+ verb,
105
+ source: params.target, // Swap source and target
106
+ target: params.source,
107
+ inverted: true
108
+ };
109
+ }
110
+ return {
111
+ verb,
112
+ source: params.source,
113
+ target: params.target,
114
+ inverted: false
115
+ };
116
+ }
117
+ /**
118
+ * Stage 3 Type Compatibility Check
119
+ * Helps developers identify code that needs updating for v6.0
120
+ */
121
+ export function checkTypeCompatibility(nounTypes, verbTypes) {
122
+ const removedNouns = nounTypes.filter(isRemovedNounType);
123
+ const removedVerbs = verbTypes.filter(isRemovedVerbType);
124
+ const warnings = [];
125
+ if (removedNouns.length > 0) {
126
+ warnings.push(`Found ${removedNouns.length} removed noun type(s): ${removedNouns.join(', ')}. ` +
127
+ `These were merged in Stage 3. Use Person instead of User, Concept instead of Topic.`);
128
+ }
129
+ if (removedVerbs.length > 0) {
130
+ warnings.push(`Found ${removedVerbs.length} removed verb type(s): ${removedVerbs.join(', ')}. ` +
131
+ `These require using inverse relationships in Stage 3. ` +
132
+ `Example: "A createdBy B" becomes "B creates A".`);
133
+ }
134
+ return {
135
+ valid: removedNouns.length === 0 && removedVerbs.length === 0,
136
+ removedNouns,
137
+ removedVerbs,
138
+ warnings
139
+ };
140
+ }
141
+ //# sourceMappingURL=typeMigration.js.map
@@ -189,7 +189,7 @@ export class IntelligentTypeMapper {
189
189
  'references': VerbType.References,
190
190
  'cites': VerbType.References,
191
191
  'before': VerbType.Precedes,
192
- 'after': VerbType.Succeeds,
192
+ 'after': VerbType.Precedes,
193
193
  'causes': VerbType.Causes,
194
194
  'needs': VerbType.Requires,
195
195
  'requires': VerbType.Requires,
@@ -198,7 +198,7 @@ export class IntelligentTypeMapper {
198
198
  'changes': VerbType.Modifies,
199
199
  'updates': VerbType.Modifies,
200
200
  'owns': VerbType.Owns,
201
- 'ownedBy': VerbType.BelongsTo, // Use BelongsTo for reverse ownership
201
+ 'ownedBy': VerbType.Owns, // Use BelongsTo for reverse ownership
202
202
  'uses': VerbType.Uses,
203
203
  'usedBy': VerbType.Uses // Same relationship, just interpret direction
204
204
  };
@@ -29,13 +29,13 @@ export class MetadataIndexManager {
29
29
  // Type-Field Affinity Tracking for intelligent NLP
30
30
  this.typeFieldAffinity = new Map(); // nounType -> field -> count
31
31
  this.totalEntitiesByType = new Map(); // nounType -> total count
32
- // Phase 1b: Fixed-size type tracking (99.76% memory reduction vs Maps)
32
+ // Phase 1b: Fixed-size type tracking (Stage 3 CANONICAL: 99.2% memory reduction vs Maps)
33
33
  // Uint32Array provides O(1) access via type enum index
34
- // 31 noun types × 4 bytes = 124 bytes (vs ~15KB with Map overhead)
35
- // 40 verb types × 4 bytes = 160 bytes (vs ~20KB with Map overhead)
36
- // Total: 284 bytes (vs ~35KB) = 99.2% memory reduction
37
- this.entityCountsByTypeFixed = new Uint32Array(NOUN_TYPE_COUNT); // 124 bytes
38
- this.verbCountsByTypeFixed = new Uint32Array(VERB_TYPE_COUNT); // 160 bytes
34
+ // 42 noun types × 4 bytes = 168 bytes (vs ~20KB with Map overhead)
35
+ // 127 verb types × 4 bytes = 508 bytes (vs ~62KB with Map overhead)
36
+ // Total: 676 bytes (vs ~85KB) = 99.2% memory reduction
37
+ this.entityCountsByTypeFixed = new Uint32Array(NOUN_TYPE_COUNT); // 168 bytes (Stage 3 CANONICAL: 42 types)
38
+ this.verbCountsByTypeFixed = new Uint32Array(VERB_TYPE_COUNT); // 508 bytes (Stage 3 CANONICAL: 127 types)
39
39
  // File locking for concurrent write protection (prevents race conditions)
40
40
  this.activeLocks = new Map();
41
41
  this.lockPromises = new Map();
@@ -166,6 +166,10 @@ export interface ReaddirOptions {
166
166
  sort?: 'name' | 'size' | 'modified' | 'created';
167
167
  order?: 'asc' | 'desc';
168
168
  }
169
+ export interface StatOptions {
170
+ }
171
+ export interface ExistsOptions {
172
+ }
169
173
  export interface CopyOptions {
170
174
  overwrite?: boolean;
171
175
  preserveTimestamps?: boolean;
@@ -299,9 +303,9 @@ export interface IVirtualFileSystem {
299
303
  parent: VFSEntity | null;
300
304
  stats: VFSStats;
301
305
  }>;
302
- stat(path: string): Promise<VFSStats>;
306
+ stat(path: string, options?: StatOptions): Promise<VFSStats>;
303
307
  lstat(path: string): Promise<VFSStats>;
304
- exists(path: string): Promise<boolean>;
308
+ exists(path: string, options?: ExistsOptions): Promise<boolean>;
305
309
  chmod(path: string, mode: number): Promise<void>;
306
310
  chown(path: string, uid: number, gid: number): Promise<void>;
307
311
  utimes(path: string, atime: Date, mtime: Date): Promise<void>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soulcraft/brainy",
3
- "version": "5.3.6",
4
- "description": "Universal Knowledge Protocol™ - World's first Triple Intelligence database unifying vector, graph, and document search in one API. 31 nouns × 40 verbs for infinite expressiveness.",
3
+ "version": "5.5.0",
4
+ "description": "Universal Knowledge Protocol™ - World's first Triple Intelligence database unifying vector, graph, and document search in one API. Stage 3 CANONICAL: 42 nouns × 127 verbs covering 96-97% of all human knowledge.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",