@soulcraft/brainy 3.17.0 → 3.18.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 (38) hide show
  1. package/README.md +5 -6
  2. package/dist/augmentations/defaultAugmentations.d.ts +0 -1
  3. package/dist/augmentations/defaultAugmentations.js +0 -5
  4. package/dist/brainy.d.ts +46 -0
  5. package/dist/brainy.js +53 -0
  6. package/dist/neural/embeddedPatterns.d.ts +1 -1
  7. package/dist/neural/embeddedPatterns.js +1 -1
  8. package/dist/neural/naturalLanguageProcessor.js +0 -1
  9. package/dist/setup.js +0 -1
  10. package/dist/unified.js +0 -1
  11. package/dist/vfs/VirtualFileSystem.d.ts +6 -4
  12. package/dist/vfs/VirtualFileSystem.js +44 -21
  13. package/dist/vfs/index.d.ts +0 -5
  14. package/dist/vfs/index.js +0 -6
  15. package/dist/vfs/semantic/ProjectionRegistry.d.ts +84 -0
  16. package/dist/vfs/semantic/ProjectionRegistry.js +118 -0
  17. package/dist/vfs/semantic/ProjectionStrategy.d.ts +69 -0
  18. package/dist/vfs/semantic/ProjectionStrategy.js +40 -0
  19. package/dist/vfs/semantic/SemanticPathParser.d.ts +73 -0
  20. package/dist/vfs/semantic/SemanticPathParser.js +285 -0
  21. package/dist/vfs/semantic/SemanticPathResolver.d.ts +99 -0
  22. package/dist/vfs/semantic/SemanticPathResolver.js +242 -0
  23. package/dist/vfs/semantic/index.d.ts +17 -0
  24. package/dist/vfs/semantic/index.js +18 -0
  25. package/dist/vfs/semantic/projections/AuthorProjection.d.ts +35 -0
  26. package/dist/vfs/semantic/projections/AuthorProjection.js +74 -0
  27. package/dist/vfs/semantic/projections/ConceptProjection.d.ts +42 -0
  28. package/dist/vfs/semantic/projections/ConceptProjection.js +87 -0
  29. package/dist/vfs/semantic/projections/RelationshipProjection.d.ts +41 -0
  30. package/dist/vfs/semantic/projections/RelationshipProjection.js +101 -0
  31. package/dist/vfs/semantic/projections/SimilarityProjection.d.ts +36 -0
  32. package/dist/vfs/semantic/projections/SimilarityProjection.js +77 -0
  33. package/dist/vfs/semantic/projections/TagProjection.d.ts +34 -0
  34. package/dist/vfs/semantic/projections/TagProjection.js +73 -0
  35. package/dist/vfs/semantic/projections/TemporalProjection.d.ts +35 -0
  36. package/dist/vfs/semantic/projections/TemporalProjection.js +89 -0
  37. package/dist/vfs/types.d.ts +1 -8
  38. package/package.json +1 -1
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Similarity Projection Strategy
3
+ *
4
+ * Maps similarity-based paths to files with similar content
5
+ * Uses EXISTING HNSW Index for O(log n) vector similarity
6
+ */
7
+ import { Brainy } from '../../../brainy.js';
8
+ import { VirtualFileSystem } from '../../VirtualFileSystem.js';
9
+ import { FindParams } from '../../../types/brainy.types.js';
10
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
11
+ import { SimilarityValue } from '../SemanticPathParser.js';
12
+ /**
13
+ * Similarity Projection: /similar-to/<path>/threshold-N
14
+ *
15
+ * Uses EXISTING infrastructure:
16
+ * - Brainy.similar() for vector similarity (REAL - line 680 in brainy.ts)
17
+ * - HNSW Index for O(log n) nearest neighbor search (REAL)
18
+ * - Cosine similarity for scoring (REAL)
19
+ */
20
+ export declare class SimilarityProjection extends BaseProjectionStrategy {
21
+ readonly name = "similar";
22
+ /**
23
+ * Convert similarity value to Brainy FindParams
24
+ * Note: Similarity uses brain.similar(), not find(), but we provide this for consistency
25
+ */
26
+ toQuery(value: SimilarityValue, subpath?: string): FindParams;
27
+ /**
28
+ * Resolve similarity using REAL Brainy.similar()
29
+ * Uses HNSW Index for O(log n) vector search
30
+ */
31
+ resolve(brain: Brainy, vfs: VirtualFileSystem, value: SimilarityValue): Promise<string[]>;
32
+ /**
33
+ * Resolve path to entity ID
34
+ */
35
+ private resolvePathToId;
36
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Similarity Projection Strategy
3
+ *
4
+ * Maps similarity-based paths to files with similar content
5
+ * Uses EXISTING HNSW Index for O(log n) vector similarity
6
+ */
7
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
8
+ /**
9
+ * Similarity Projection: /similar-to/<path>/threshold-N
10
+ *
11
+ * Uses EXISTING infrastructure:
12
+ * - Brainy.similar() for vector similarity (REAL - line 680 in brainy.ts)
13
+ * - HNSW Index for O(log n) nearest neighbor search (REAL)
14
+ * - Cosine similarity for scoring (REAL)
15
+ */
16
+ export class SimilarityProjection extends BaseProjectionStrategy {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = 'similar';
20
+ }
21
+ /**
22
+ * Convert similarity value to Brainy FindParams
23
+ * Note: Similarity uses brain.similar(), not find(), but we provide this for consistency
24
+ */
25
+ toQuery(value, subpath) {
26
+ // This is informational - actual resolution uses brain.similar()
27
+ return {
28
+ where: {
29
+ vfsType: 'file'
30
+ },
31
+ near: {
32
+ id: value.targetPath,
33
+ threshold: value.threshold || 0.7
34
+ },
35
+ limit: 50
36
+ };
37
+ }
38
+ /**
39
+ * Resolve similarity using REAL Brainy.similar()
40
+ * Uses HNSW Index for O(log n) vector search
41
+ */
42
+ async resolve(brain, vfs, value) {
43
+ // Step 1: Resolve target path to entity ID
44
+ const targetId = await this.resolvePathToId(vfs, value.targetPath);
45
+ if (!targetId) {
46
+ return [];
47
+ }
48
+ // Step 2: Get target entity to use its vector
49
+ const targetEntity = await brain.get(targetId);
50
+ if (!targetEntity) {
51
+ return [];
52
+ }
53
+ // Step 3: Find similar entities using REAL HNSW search
54
+ // VERIFIED: brain.similar() exists at line 680 in brainy.ts
55
+ const results = await brain.similar({
56
+ to: targetEntity,
57
+ threshold: value.threshold || 0.7,
58
+ limit: 50,
59
+ where: { vfsType: 'file' } // Only files
60
+ });
61
+ // Extract IDs
62
+ return this.extractIds(results);
63
+ }
64
+ /**
65
+ * Resolve path to entity ID
66
+ */
67
+ async resolvePathToId(vfs, path) {
68
+ try {
69
+ // Use REAL VFS public method
70
+ return await vfs.resolvePath(path);
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ }
77
+ //# sourceMappingURL=SimilarityProjection.js.map
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Tag Projection Strategy
3
+ *
4
+ * Maps tag-based paths to files with those tags
5
+ * Uses EXISTING MetadataIndexManager for O(log n) queries
6
+ */
7
+ import { Brainy } from '../../../brainy.js';
8
+ import { VirtualFileSystem } from '../../VirtualFileSystem.js';
9
+ import { FindParams } from '../../../types/brainy.types.js';
10
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
11
+ import { VFSEntity } from '../../types.js';
12
+ /**
13
+ * Tag Projection: /by-tag/<tagName>/<subpath>
14
+ *
15
+ * Uses EXISTING infrastructure:
16
+ * - Brainy.find() with metadata filters (REAL)
17
+ * - MetadataIndexManager for O(log n) tag queries (REAL)
18
+ * - VFSMetadata.tags field (REAL - types.ts line 66)
19
+ */
20
+ export declare class TagProjection extends BaseProjectionStrategy {
21
+ readonly name = "tag";
22
+ /**
23
+ * Convert tag name to Brainy FindParams
24
+ */
25
+ toQuery(tagName: string, subpath?: string): FindParams;
26
+ /**
27
+ * Resolve tag to entity IDs using REAL Brainy.find()
28
+ */
29
+ resolve(brain: Brainy, vfs: VirtualFileSystem, tagName: string): Promise<string[]>;
30
+ /**
31
+ * List all files with tags
32
+ */
33
+ list(brain: Brainy, vfs: VirtualFileSystem, limit?: number): Promise<VFSEntity[]>;
34
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Tag Projection Strategy
3
+ *
4
+ * Maps tag-based paths to files with those tags
5
+ * Uses EXISTING MetadataIndexManager for O(log n) queries
6
+ */
7
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
8
+ /**
9
+ * Tag Projection: /by-tag/<tagName>/<subpath>
10
+ *
11
+ * Uses EXISTING infrastructure:
12
+ * - Brainy.find() with metadata filters (REAL)
13
+ * - MetadataIndexManager for O(log n) tag queries (REAL)
14
+ * - VFSMetadata.tags field (REAL - types.ts line 66)
15
+ */
16
+ export class TagProjection extends BaseProjectionStrategy {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = 'tag';
20
+ }
21
+ /**
22
+ * Convert tag name to Brainy FindParams
23
+ */
24
+ toQuery(tagName, subpath) {
25
+ const query = {
26
+ where: {
27
+ vfsType: 'file',
28
+ tags: { contains: tagName } // BFO operator for array contains
29
+ },
30
+ limit: 1000
31
+ };
32
+ // Filter by filename if subpath specified
33
+ if (subpath) {
34
+ query.where = {
35
+ ...query.where,
36
+ anyOf: [
37
+ { name: subpath },
38
+ { path: { endsWith: subpath } } // BFO operator
39
+ ]
40
+ };
41
+ }
42
+ return query;
43
+ }
44
+ /**
45
+ * Resolve tag to entity IDs using REAL Brainy.find()
46
+ */
47
+ async resolve(brain, vfs, tagName) {
48
+ // Use REAL Brainy metadata filtering
49
+ const results = await brain.find({
50
+ where: {
51
+ vfsType: 'file',
52
+ tags: { contains: tagName } // BFO operator
53
+ },
54
+ limit: 1000
55
+ });
56
+ return this.extractIds(results);
57
+ }
58
+ /**
59
+ * List all files with tags
60
+ */
61
+ async list(brain, vfs, limit = 100) {
62
+ // Get all files that have tags
63
+ const results = await brain.find({
64
+ where: {
65
+ vfsType: 'file',
66
+ tags: { exists: true } // BFO operator
67
+ },
68
+ limit
69
+ });
70
+ return results.map(r => r.entity);
71
+ }
72
+ }
73
+ //# sourceMappingURL=TagProjection.js.map
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Temporal Projection Strategy
3
+ *
4
+ * Maps time-based paths to files modified at that time
5
+ * Uses EXISTING MetadataIndexManager with range queries
6
+ */
7
+ import { Brainy } from '../../../brainy.js';
8
+ import { VirtualFileSystem } from '../../VirtualFileSystem.js';
9
+ import { FindParams } from '../../../types/brainy.types.js';
10
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
11
+ import { VFSEntity } from '../../types.js';
12
+ /**
13
+ * Temporal Projection: /as-of/<YYYY-MM-DD>/<subpath>
14
+ *
15
+ * Uses EXISTING infrastructure:
16
+ * - Brainy.find() with range queries (REAL)
17
+ * - MetadataIndexManager.$gte/$lte operators (REAL)
18
+ * - VFSMetadata.modified field (REAL - types.ts line 49)
19
+ */
20
+ export declare class TemporalProjection extends BaseProjectionStrategy {
21
+ readonly name = "time";
22
+ /**
23
+ * Convert date to Brainy FindParams with range query
24
+ */
25
+ toQuery(date: Date, subpath?: string): FindParams;
26
+ /**
27
+ * Resolve date to entity IDs using REAL Brainy.find()
28
+ * Uses MetadataIndexManager range queries for O(log n) performance
29
+ */
30
+ resolve(brain: Brainy, vfs: VirtualFileSystem, date: Date): Promise<string[]>;
31
+ /**
32
+ * List recently modified files
33
+ */
34
+ list(brain: Brainy, vfs: VirtualFileSystem, limit?: number): Promise<VFSEntity[]>;
35
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Temporal Projection Strategy
3
+ *
4
+ * Maps time-based paths to files modified at that time
5
+ * Uses EXISTING MetadataIndexManager with range queries
6
+ */
7
+ import { BaseProjectionStrategy } from '../ProjectionStrategy.js';
8
+ /**
9
+ * Temporal Projection: /as-of/<YYYY-MM-DD>/<subpath>
10
+ *
11
+ * Uses EXISTING infrastructure:
12
+ * - Brainy.find() with range queries (REAL)
13
+ * - MetadataIndexManager.$gte/$lte operators (REAL)
14
+ * - VFSMetadata.modified field (REAL - types.ts line 49)
15
+ */
16
+ export class TemporalProjection extends BaseProjectionStrategy {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = 'time';
20
+ }
21
+ /**
22
+ * Convert date to Brainy FindParams with range query
23
+ */
24
+ toQuery(date, subpath) {
25
+ // Get start and end of day (24-hour window)
26
+ const startOfDay = new Date(date);
27
+ startOfDay.setHours(0, 0, 0, 0);
28
+ const endOfDay = new Date(date);
29
+ endOfDay.setHours(23, 59, 59, 999);
30
+ const query = {
31
+ where: {
32
+ vfsType: 'file',
33
+ modified: {
34
+ greaterEqual: startOfDay.getTime(), // BFO operator
35
+ lessEqual: endOfDay.getTime() // BFO operator
36
+ }
37
+ },
38
+ limit: 1000
39
+ };
40
+ // Filter by filename if subpath specified
41
+ if (subpath) {
42
+ query.where = {
43
+ ...query.where,
44
+ anyOf: [
45
+ { name: subpath },
46
+ { path: { endsWith: subpath } } // BFO operator (not $regex)
47
+ ]
48
+ };
49
+ }
50
+ return query;
51
+ }
52
+ /**
53
+ * Resolve date to entity IDs using REAL Brainy.find()
54
+ * Uses MetadataIndexManager range queries for O(log n) performance
55
+ */
56
+ async resolve(brain, vfs, date) {
57
+ const startOfDay = new Date(date);
58
+ startOfDay.setHours(0, 0, 0, 0);
59
+ const endOfDay = new Date(date);
60
+ endOfDay.setHours(23, 59, 59, 999);
61
+ // Use REAL Brainy metadata filtering with range operators
62
+ const results = await brain.find({
63
+ where: {
64
+ vfsType: 'file',
65
+ modified: {
66
+ greaterEqual: startOfDay.getTime(), // BFO operator
67
+ lessEqual: endOfDay.getTime() // BFO operator
68
+ }
69
+ },
70
+ limit: 1000
71
+ });
72
+ return this.extractIds(results);
73
+ }
74
+ /**
75
+ * List recently modified files
76
+ */
77
+ async list(brain, vfs, limit = 100) {
78
+ const oneDayAgo = Date.now() - (24 * 60 * 60 * 1000);
79
+ const results = await brain.find({
80
+ where: {
81
+ vfsType: 'file',
82
+ modified: { greaterEqual: oneDayAgo } // BFO operator
83
+ },
84
+ limit
85
+ });
86
+ return results.map(r => r.entity);
87
+ }
88
+ }
89
+ //# sourceMappingURL=TemporalProjection.js.map
@@ -48,6 +48,7 @@ export interface VFSMetadata {
48
48
  name: string;
49
49
  confidence: number;
50
50
  }>;
51
+ conceptNames?: string[];
51
52
  todos?: VFSTodo[];
52
53
  dependencies?: string[];
53
54
  exports?: string[];
@@ -252,14 +253,6 @@ export interface VFSConfig {
252
253
  autoTag?: boolean;
253
254
  autoConcepts?: boolean;
254
255
  };
255
- knowledgeLayer?: {
256
- enabled?: boolean;
257
- eventRecording?: boolean;
258
- semanticVersioning?: boolean;
259
- persistentEntities?: boolean;
260
- concepts?: boolean;
261
- gitBridge?: boolean;
262
- };
263
256
  permissions?: {
264
257
  defaultFile?: number;
265
258
  defaultDirectory?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/brainy",
3
- "version": "3.17.0",
3
+ "version": "3.18.0",
4
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.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",