2025-09-24 17:31:48 -07:00
# Brainy Virtual Filesystem (VFS) 🗂️🧠
> Transform your filesystem into an intelligent knowledge graph where every file is a living entity with semantic understanding, relationships, and AI-powered organization.
2025-09-29 13:51:47 -07:00
## 📚 Complete VFS Documentation
2025-09-24 17:31:48 -07:00
2025-09-29 13:51:47 -07:00
**Essential guides to get started:**
- **[VFS Core ](VFS_CORE.md )** - Complete filesystem architecture and API
- **[Semantic VFS ](SEMANTIC_VFS.md )** - Multi-dimensional file access (6 semantic dimensions)
- **[Neural Extraction ](NEURAL_EXTRACTION.md )** - AI-powered concept and entity extraction
2026-06-11 14:51:00 -07:00
- **[Common Patterns ](COMMON_PATTERNS.md )** - Real-world use cases and code
2025-09-29 13:51:47 -07:00
- **[VFS API Guide ](VFS_API_GUIDE.md )** - Complete API reference
2025-09-24 17:31:48 -07:00
## What is Brainy VFS?
Brainy VFS is a revolutionary virtual filesystem that runs on top of Brainy's neural database. Unlike traditional filesystems that treat files as isolated bytes on disk, Brainy VFS treats every file as an intelligent entity that:
- **Understands its content** through AI-powered semantic analysis
- **Maintains relationships** with other files, concepts, and entities
- **Self-organizes** based on meaning and usage patterns
- **Enables semantic search** beyond simple filename matching
- **Connects to everything** - todos, concepts, people, projects, and more
## Quick Start
```javascript
import { VirtualFileSystem } from '@soulcraft/brainy/vfs '
// Initialize the VFS
const vfs = new VirtualFileSystem({
2026-01-27 15:38:21 -08:00
root: '/my-brain',
intelligent: true // Enable AI features
2025-09-24 17:31:48 -07:00
})
await vfs.init()
// Write a file - it automatically becomes intelligent
await vfs.writeFile('/projects/my-app/index.js',
2026-01-27 15:38:21 -08:00
'console.log("Hello, World!")')
2025-09-24 17:31:48 -07:00
// Find similar files using semantic search
const similar = await vfs.findSimilar('/projects/my-app/index.js')
// Search with natural language
const results = await vfs.search('files about authentication')
// Connect files to other entities
await vfs.addRelationship('/docs/spec.md', '/projects/my-app/', 'implements')
```
2026-01-27 15:38:21 -08:00
## ⚡ Performance
2025-11-18 15:44:48 -08:00
**75% Faster File Operations!** VFS now automatically benefits from brain.get() metadata-only optimization:
2026-01-27 15:38:21 -08:00
| Operation | Before | After | Speedup |
2025-11-18 15:44:48 -08:00
|-----------|------------------|-----------------|---------|
| `readFile()` | 53ms | ** ~13ms** | **75%** |
| `stat()` | 53ms | ** ~13ms** | **75%** |
| `readdir(100 files)` | 5.3s | ** ~1.3s** | **75%** |
**Zero configuration** - automatic optimization for all VFS operations!
2026-01-27 15:38:21 -08:00
VFS operations only need metadata (path, size, timestamps), not 384-dimensional vector embeddings. The optimization automatically uses metadata-only reads, saving 95% bandwidth and 76-81% time.
2025-11-18 15:44:48 -08:00
2025-09-24 17:31:48 -07:00
## Core Features
2025-09-26 10:17:59 -07:00
### 🆕 Tree Operations (Prevents Recursion Issues)
**NEW: Safe tree operations for building file explorers:**
- **`getDirectChildren(path)` ** - Returns only immediate children, never the parent
- **`getTreeStructure(path, options)` ** - Builds complete tree with recursion protection
- **`getDescendants(path, options)` ** - Gets all descendants efficiently
- **`inspect(path)` ** - Comprehensive info with parent, children, and stats
See [Building File Explorers Guide ](building-file-explorers.md ) for complete documentation on avoiding common recursion pitfalls.
## Core Features
2025-09-24 17:31:48 -07:00
### 📁 Full Filesystem API
All the operations you expect from a filesystem:
```javascript
// Basic file operations
await vfs.writeFile('/notes/idea.md', 'My brilliant idea')
const content = await vfs.readFile('/notes/idea.md')
await vfs.unlink('/temp/old.txt')
// Directory operations
await vfs.mkdir('/projects/new-project')
const files = await vfs.readdir('/projects')
await vfs.rmdir('/temp')
// File metadata
const stats = await vfs.stat('/photos/sunset.jpg')
await vfs.chmod('/scripts/deploy.sh', 0o755)
// Moving and copying
await vfs.rename('/draft.md', '/published.md')
await vfs.copy('/template.html', '/new-page.html')
```
### 🧠 Semantic Intelligence
Every file has a neural understanding:
```javascript
// Find files by meaning, not just name
const docs = await vfs.search('technical documentation for API endpoints')
// Find similar files
const similar = await vfs.findSimilar('/code/auth.js', {
2026-01-27 15:38:21 -08:00
limit: 5,
threshold: 0.8 // 80% similarity
2025-09-24 17:31:48 -07:00
})
// Get related files through the knowledge graph
const related = await vfs.getRelated('/proposal.pdf', {
2026-01-27 15:38:21 -08:00
depth: 2 // Include relationships of relationships
2025-09-24 17:31:48 -07:00
})
// Auto-organization suggestions
const suggestions = await vfs.suggestOrganization([
2026-01-27 15:38:21 -08:00
'/downloads/doc1.pdf',
'/downloads/image.jpg',
'/downloads/code.py'
2025-09-24 17:31:48 -07:00
])
// Returns: suggested folders and categorization
```
### 🔗 Rich Relationships
Files aren't isolated - they're connected:
```javascript
// Connect files with semantic relationships
await vfs.addRelationship('/spec.md', '/code/impl.js', 'implements')
await vfs.addRelationship('/test.js', '/code/impl.js', 'tests')
await vfs.addRelationship('/paper.pdf', '/notes/summary.md', 'summarizes')
// Query relationships
const connections = await vfs.getConnections('/code/impl.js')
// Returns: [{from: '/spec.md', type: 'implements'}, {from: '/test.js', type: 'tests'}]
// Traverse the graph
const implementations = await vfs.search('', {
2026-01-27 15:38:21 -08:00
connected: {
to: '/spec.md',
via: 'implements'
}
2025-09-24 17:31:48 -07:00
})
```
### 📝 Extended Metadata
Store anything alongside your files:
```javascript
// Add todos to files
await vfs.setTodos('/projects/app/index.js', [
2026-01-27 15:38:21 -08:00
{ task: 'Add error handling', priority: 'high', due: '2024-01-20' },
{ task: 'Optimize performance', priority: 'medium' }
2025-09-24 17:31:48 -07:00
])
// Set custom attributes
await vfs.setxattr('/report.pdf', 'project', 'Q4-Planning')
await vfs.setxattr('/photo.jpg', 'location', 'Paris, France')
await vfs.setxattr('/video.mp4', 'tags', ['tutorial', 'react', 'hooks'])
// Query by metadata
const urgent = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: { 'todos.priority': 'high' }
2025-09-24 17:31:48 -07:00
})
const parisPhotos = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: { location: 'Paris, France' }
2025-09-24 17:31:48 -07:00
})
```
2025-10-29 12:48:56 -07:00
### 🎯 Semantic Path Access
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
Access files through semantic dimensions (see [Semantic VFS ](./SEMANTIC_VFS.md )):
2025-09-24 17:31:48 -07:00
```javascript
2025-10-29 12:48:56 -07:00
// Query-based path access (current functionality)
const authFiles = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: { concepts: { contains: 'authentication' }}
2025-09-24 17:31:48 -07:00
})
2025-10-29 12:48:56 -07:00
// Find files by custom metadata
const recent = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: {
type: 'document',
modified: { greaterThan: Date.now() - 7*24*60*60*1000 }
}
2025-09-24 17:31:48 -07:00
})
2025-10-29 12:48:56 -07:00
// Find similar files
const similar = await vfs.findSimilar('/examples/good-code.js', {
2026-01-27 15:38:21 -08:00
threshold: 0.7
2025-09-24 17:31:48 -07:00
})
```
2025-10-29 12:48:56 -07:00
> **Note:** Virtual directories (persistent query-based folders) are planned for v2.0. See [ROADMAP](./ROADMAP.md).
2025-09-24 17:31:48 -07:00
## Real-World Examples
### 📚 Knowledge Management
```javascript
// Store a research paper with automatic analysis
await vfs.writeFile('/research/quantum-computing.pdf', pdfBuffer, {
2026-01-27 15:38:21 -08:00
metadata: {
authors: ['Dr. Alice Smith', 'Dr. Bob Jones'],
year: 2024,
topics: ['quantum', 'computing', 'algorithms'],
citations: 42
}
2025-09-24 17:31:48 -07:00
})
// Find all papers on similar topics
const related = await vfs.search('quantum algorithms', {
2026-01-27 15:38:21 -08:00
type: 'document',
where: { year: { $gte: 2020 } }
2025-09-24 17:31:48 -07:00
})
// Find papers that cite this one
const citations = await vfs.getConnections('/research/quantum-computing.pdf', {
2026-01-27 15:38:21 -08:00
type: 'cites',
direction: 'incoming'
2025-09-24 17:31:48 -07:00
})
```
### 💻 Code Intelligence
```javascript
// Write code that understands itself
await vfs.writeFile('/src/utils/auth.js', authCode)
// Automatically detects:
// - Programming language
// - Imported dependencies
// - Exported functions
// - Design patterns used
// Find all files that import this module
const importers = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: { dependencies: 'utils/auth.js' }
2025-09-24 17:31:48 -07:00
})
// Find test files for this code
const tests = await vfs.getRelated('/src/utils/auth.js', {
2026-01-27 15:38:21 -08:00
type: 'tests'
2025-09-24 17:31:48 -07:00
})
// Find similar implementations
const similar = await vfs.findSimilar('/src/utils/auth.js')
```
### 🎨 Digital Asset Management
```javascript
// Store media with rich metadata
await vfs.writeFile('/photos/sunset.jpg', imageBuffer, {
2026-01-27 15:38:21 -08:00
metadata: {
camera: 'Canon R5',
location: { lat: 37.7749, lng: -122.4194 },
tags: ['sunset', 'golden-gate', 'landscape'],
album: 'San Francisco 2024'
}
2025-09-24 17:31:48 -07:00
})
// Find similar images
const similar = await vfs.findSimilar('/photos/sunset.jpg')
// Find photos by location
const nearby = await vfs.search('', {
2026-01-27 15:38:21 -08:00
type: 'image',
where: {
'location.lat': { $between: [37.7, 37.8] },
'location.lng': { $between: [-122.5, -122.3] }
}
2025-09-24 17:31:48 -07:00
})
// Smart albums
await vfs.createVirtualDirectory('/albums/best-sunsets', {
2026-01-27 15:38:21 -08:00
query: 'sunset',
type: 'image',
where: { rating: { $gte: 4 } }
2025-09-24 17:31:48 -07:00
})
```
### 📋 Project Management
```javascript
// Connect everything in a project
const projectPath = '/projects/new-website'
// Add project files
await vfs.writeFile(`${projectPath}/README.md` , readmeContent)
await vfs.writeFile(`${projectPath}/src/index.js` , jsCode)
await vfs.writeFile(`${projectPath}/design.fig` , designFile)
// Add project metadata
await vfs.setxattr(projectPath, 'team', ['Alice', 'Bob', 'Charlie'])
await vfs.setxattr(projectPath, 'deadline', '2024-03-01')
await vfs.setxattr(projectPath, 'status', 'in-progress')
// Add todos to specific files
await vfs.setTodos(`${projectPath}/src/index.js` , [
2026-01-27 15:38:21 -08:00
{ task: 'Implement user authentication', assignee: 'Alice' },
{ task: 'Add error handling', assignee: 'Bob' }
2025-09-24 17:31:48 -07:00
])
// Find all files with pending todos
const pending = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: {
path: { $startsWith: projectPath },
'todos.status': 'pending'
}
2025-09-24 17:31:48 -07:00
})
// Find projects nearing deadline
const urgent = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: {
type: 'directory',
'deadline': { $lte: '2024-02-01' },
'status': 'in-progress'
}
2025-09-24 17:31:48 -07:00
})
```
## Advanced Features
refactor(8.0)!: remove distributed clustering subsystem — inert/orphaned, scale is single-process + native provider
The distributed-clustering subsystem never ran in production: it was inert,
orphaned dead code (faked consensus, stub replication, no live wiring, and it
did not interoperate with the 8.0 Db API). Brainy 8.0 is a single-process
library. Scale is single-process + the optional native provider
(@soulcraft/cortex, on-disk DiskANN to 10B+ vectors) + per-tenant pools +
horizontal read scaling (many reader processes, one writer).
Removed:
- src/distributed/ entirely (coordinator, shardManager, cacheSync,
readWriteSeparation, queryPlanner, healthMonitor, configManager,
hashPartitioner, shardMigration, domainDetector, storageDiscovery, http/network
transports). ReaderMode/HybridMode relocated to src/storage/operationalModes.ts
(slimmed to the live surface).
- src/types/distributedTypes.ts; config.distributed field + JSDoc;
coreTypes distributedConfig; memoryStorage distributedConfig persistence.
- DistributedRole enum + src/config/distributedPresets.ts and the orphaned
src/config/extensibleConfig.ts (config/augmentation registry built on removed
cloud adapters + distributed presets), plus their src/index.ts re-exports.
- 13 BRAINY_* cluster env vars; the storage setDistributedComponents hook;
enableDistributedSearch (dead config flag); the metadata partition field;
the distributed_ reserved key prefix.
- Orphaned src/storage/readOnlyOptimizations.ts (zero importers).
- Tests targeting the subsystem: distributed-demo, distributed-cluster helper,
distributed-transactions, sharding-transactions.
- Docs: EXTENDING_STORAGE.md (deleted); scrubbed distributed/cluster/Raft/
shard-manager/multi-node prose from v3-features, enterprise-for-everyone,
augmentations-actual, complete-feature-list, vfs/README, vfs/ROADMAP,
vfs/VFS_CORE, capacity-planning, transactions, MIGRATION-V3-TO-V4,
storage-architecture; reframed scale prose to the 8.0 model.
Kept: src/storage/sharding.ts (local-disk 256-bucket directory sharding via
getShardIdFromUuid — used live by baseStorage, unrelated to clustering);
the multi-process mode: 'reader' | 'writer' roles; semantic/HNSW clustering.
RELEASES.md: added a removed-surfaces row documenting the cut and the 8.0
scale model.
2026-06-15 10:37:39 -07:00
> **Note:** See [VFS ROADMAP](./ROADMAP.md) for planned advanced features like version history and more.
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
## Integration Possibilities
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
VFS can be integrated with existing applications. See [VFS ROADMAP ](./ROADMAP.md ) for planned integrations like Express.js middleware, VSCode extensions, and more.
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
**Current approach:** Use VFS directly via API for custom integrations.
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
## Performance Characteristics
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
Brainy VFS is designed for speed and scale:
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
**Tested at 1K-10K file scale:**
- **Sub-10ms latency** for basic operations (measured)
- **Intelligent caching** reduces repeated reads to < 5ms ( measured )
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
**PROJECTED at larger scales (not yet tested):**
- **Vector search** < 100ms for millions of files ( projected )
- **Streaming support** for files of any size (architecture supports, see [limitations in ROADMAP ](./ROADMAP.md ))
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
See tests in `tests/vfs/` for actual measured performance.
2025-09-24 17:31:48 -07:00
## Triple Intelligence Power 🧠⚡
Brainy VFS fully leverages Brainy's revolutionary Triple Intelligence system:
- **📊 Vector Intelligence**: Semantic understanding of file content
- **🗃️ Field Intelligence**: Rich metadata filtering and queries
- **🕸️ Graph Intelligence**: Relationship-based navigation and traversal
- **🔀 Adaptive Fusion**: Automatically combines all three for optimal results
**[Learn how VFS exploits Triple Intelligence → ](./TRIPLE_INTELLIGENCE.md )**
## Why Brainy VFS?
| Traditional Filesystem | Brainy VFS |
|------------------------|------------|
| Files are isolated bytes | Files are connected knowledge |
| Rigid folder hierarchy | Fluid, semantic organization |
| String-based search | AI-powered semantic search with Triple Intelligence |
| No content understanding | Deep content comprehension via vectors |
| Manual organization | Self-organizing with intelligent fusion |
| No relationships | Rich knowledge graph with traversal |
| Static metadata | Dynamic, queryable metadata with field intelligence |
refactor(8.0)!: remove distributed clustering subsystem — inert/orphaned, scale is single-process + native provider
The distributed-clustering subsystem never ran in production: it was inert,
orphaned dead code (faked consensus, stub replication, no live wiring, and it
did not interoperate with the 8.0 Db API). Brainy 8.0 is a single-process
library. Scale is single-process + the optional native provider
(@soulcraft/cortex, on-disk DiskANN to 10B+ vectors) + per-tenant pools +
horizontal read scaling (many reader processes, one writer).
Removed:
- src/distributed/ entirely (coordinator, shardManager, cacheSync,
readWriteSeparation, queryPlanner, healthMonitor, configManager,
hashPartitioner, shardMigration, domainDetector, storageDiscovery, http/network
transports). ReaderMode/HybridMode relocated to src/storage/operationalModes.ts
(slimmed to the live surface).
- src/types/distributedTypes.ts; config.distributed field + JSDoc;
coreTypes distributedConfig; memoryStorage distributedConfig persistence.
- DistributedRole enum + src/config/distributedPresets.ts and the orphaned
src/config/extensibleConfig.ts (config/augmentation registry built on removed
cloud adapters + distributed presets), plus their src/index.ts re-exports.
- 13 BRAINY_* cluster env vars; the storage setDistributedComponents hook;
enableDistributedSearch (dead config flag); the metadata partition field;
the distributed_ reserved key prefix.
- Orphaned src/storage/readOnlyOptimizations.ts (zero importers).
- Tests targeting the subsystem: distributed-demo, distributed-cluster helper,
distributed-transactions, sharding-transactions.
- Docs: EXTENDING_STORAGE.md (deleted); scrubbed distributed/cluster/Raft/
shard-manager/multi-node prose from v3-features, enterprise-for-everyone,
augmentations-actual, complete-feature-list, vfs/README, vfs/ROADMAP,
vfs/VFS_CORE, capacity-planning, transactions, MIGRATION-V3-TO-V4,
storage-architecture; reframed scale prose to the 8.0 model.
Kept: src/storage/sharding.ts (local-disk 256-bucket directory sharding via
getShardIdFromUuid — used live by baseStorage, unrelated to clustering);
the multi-process mode: 'reader' | 'writer' roles; semantic/HNSW clustering.
RELEASES.md: added a removed-surfaces row documenting the cut and the 8.0
scale model.
2026-06-15 10:37:39 -07:00
| Manual scaling | Horizontal read scaling — many readers, one writer |
2025-09-24 17:31:48 -07:00
## Installation
```bash
npm install @soulcraft/brainy
```
## Requirements
refactor(8.0)!: remove orphaned zero-config subsystem + dead cloud/progressive-init storage vestige
The old config-generation subsystem (src/config/ + autoConfiguration.ts) was
superseded during the 8.0 rework and never wired into init(): it emitted settings
for a partitioning subsystem that no longer exists and probed deleted cloud env
vars. The live zero-config path is inline — recall preset → HNSW knobs, storage
auto-detect, auto persistMode, container-memory-aware cache sizing.
The storage progressive-init / cloud-detection cluster was equally dead after the
cloud adapters were dropped: isCloudStorage() is permanently false (no overriders),
scheduleBackgroundInit/runBackgroundInit were never called (the latter an empty
body), initMode was never assigned, and Brainy.isFullyInitialized()/
awaitBackgroundInit() were always-trivial with zero callers. scheduleCountPersist()
collapses to its only-ever-taken immediate write-through path.
Removed:
- src/config/{index,zeroConfig,storageAutoConfig,modelAutoConfig,sharedConfigManager}.ts
- src/utils/autoConfiguration.ts + the inert BrainyZeroConfig export
- Brainy.isFullyInitialized()/awaitBackgroundInit() (+ BrainyInterface decls)
- InitMode type, isCloudStorage/detectCloudEnvironment/resolveInitMode,
scheduleBackgroundInit/runBackgroundInit/ensureValidatedForWrite and their state
- Dead cloud env-var probes (K_SERVICE/K_REVISION/AWS_LAMBDA_FUNCTION_NAME/
FUNCTIONS_TARGET/AZURE_FUNCTIONS_ENVIRONMENT)
Kept (verified live): production-detection logging (environment.ts), container-
memory cache sizing (memoryDetection/paramValidation), on-disk hash bucketing
(sharding.ts).
Docs: scrubbed deleted-subsystem references (JS quantization knobs, cloud/OPFS
adapters, partitioning, old zero-config API) across 14 files; deleted two wholly-
obsolete feature docs (complete-feature-list, v3-features); rewrote
architecture/zero-config for 8.0.
~3,700 LOC removed. Build clean; 1392 unit + 24 db-mvcc green.
2026-06-15 11:11:21 -07:00
- Node.js 22+ or Bun (server-only)
2025-09-24 17:31:48 -07:00
- Brainy 3.0+
## API Reference
See the [full API documentation ](./API.md ) for detailed method signatures and options.
## Examples
Check out the [examples directory ](../../examples/vfs ) for:
- Building a file explorer
- Creating a note-taking app
- Implementing a photo organizer
- Building a code intelligence system
## Architecture & Implementation
### Production-Ready Design
The VFS is built with production scalability in mind:
#### **Path Resolution System**
- **4-Layer Cache Hierarchy**: L1 Hot Paths (< 1ms ) → L2 Path Cache (< 5ms ) → L3 Parent Cache (< 10ms ) → L4 Graph Traversal (< 50ms )
- **Intelligent Cache Eviction**: LRU with usage tracking and TTL
- **Path Compression**: Frequently accessed deep paths get shortcut edges
#### **Storage Strategy**
```typescript
// Adaptive storage based on file size
2026-01-27 15:38:21 -08:00
< 100KB: Inline storage ( entity . data )
< 10MB: External reference ( S3 / R2 key )
> 10MB: Chunked storage (parallel chunks)
2025-09-24 17:31:48 -07:00
```
#### **Performance Metrics**
- **Path Resolution**: < 1ms for cached , < 50ms for cold paths
- **File Operations**: 100-1000 ops/sec depending on size
- **Directory Listing**: 200K entries/sec with pagination
- **Search**: < 100ms across millions of files
- **Concurrent Access**: Lock-free reads, optimistic writes
### Scaling to Millions
#### **How It Handles Scale**
1. **Hierarchical Caching**
2026-01-27 15:38:21 -08:00
- 100K+ path cache entries
- Parent-child relationship caching
- Hot path detection and optimization
2025-09-24 17:31:48 -07:00
refactor(8.0)!: remove distributed clustering subsystem — inert/orphaned, scale is single-process + native provider
The distributed-clustering subsystem never ran in production: it was inert,
orphaned dead code (faked consensus, stub replication, no live wiring, and it
did not interoperate with the 8.0 Db API). Brainy 8.0 is a single-process
library. Scale is single-process + the optional native provider
(@soulcraft/cortex, on-disk DiskANN to 10B+ vectors) + per-tenant pools +
horizontal read scaling (many reader processes, one writer).
Removed:
- src/distributed/ entirely (coordinator, shardManager, cacheSync,
readWriteSeparation, queryPlanner, healthMonitor, configManager,
hashPartitioner, shardMigration, domainDetector, storageDiscovery, http/network
transports). ReaderMode/HybridMode relocated to src/storage/operationalModes.ts
(slimmed to the live surface).
- src/types/distributedTypes.ts; config.distributed field + JSDoc;
coreTypes distributedConfig; memoryStorage distributedConfig persistence.
- DistributedRole enum + src/config/distributedPresets.ts and the orphaned
src/config/extensibleConfig.ts (config/augmentation registry built on removed
cloud adapters + distributed presets), plus their src/index.ts re-exports.
- 13 BRAINY_* cluster env vars; the storage setDistributedComponents hook;
enableDistributedSearch (dead config flag); the metadata partition field;
the distributed_ reserved key prefix.
- Orphaned src/storage/readOnlyOptimizations.ts (zero importers).
- Tests targeting the subsystem: distributed-demo, distributed-cluster helper,
distributed-transactions, sharding-transactions.
- Docs: EXTENDING_STORAGE.md (deleted); scrubbed distributed/cluster/Raft/
shard-manager/multi-node prose from v3-features, enterprise-for-everyone,
augmentations-actual, complete-feature-list, vfs/README, vfs/ROADMAP,
vfs/VFS_CORE, capacity-planning, transactions, MIGRATION-V3-TO-V4,
storage-architecture; reframed scale prose to the 8.0 model.
Kept: src/storage/sharding.ts (local-disk 256-bucket directory sharding via
getShardIdFromUuid — used live by baseStorage, unrelated to clustering);
the multi-process mode: 'reader' | 'writer' roles; semantic/HNSW clustering.
RELEASES.md: added a removed-surfaces row documenting the cut and the 8.0
scale model.
2026-06-15 10:37:39 -07:00
2. **Horizontal Read Scaling**
- On-disk store partitioned into 256 hex directory buckets
- Many reader processes against one shared store
- Single writer keeps the store consistent
2025-09-24 17:31:48 -07:00
3. **Intelligent Indexing**
2026-01-27 15:38:21 -08:00
- Compound indexes on (parent, name)
- Vector indexes for semantic search
- Graph indexes for relationships
2025-09-24 17:31:48 -07:00
4. **Streaming Everything**
2026-01-27 15:38:21 -08:00
- Large files never fully in memory
- Progressive loading
- Chunked transfers
2025-09-24 17:31:48 -07:00
### Real Production Scenarios
#### **1. CI/CD Pipeline Storage**
Store build artifacts with automatic relationships:
```javascript
// Store build output with metadata
await vfs.writeFile('/builds/v1.2.3/app.js', buildOutput, {
2026-01-27 15:38:21 -08:00
metadata: {
commit: 'abc123',
branch: 'main',
timestamp: Date.now(),
tests: 'passing',
coverage: 0.92
}
2025-09-24 17:31:48 -07:00
})
// Find all builds for a commit
const builds = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: { commit: 'abc123' }
2025-09-24 17:31:48 -07:00
})
// Get latest passing build
const latest = await vfs.search('', {
2026-01-27 15:38:21 -08:00
where: {
branch: 'main',
tests: 'passing'
},
sort: 'modified',
order: 'desc',
limit: 1
2025-09-24 17:31:48 -07:00
})
```
#### **2. Multi-Tenant SaaS Platform**
Isolate customer data with semantic understanding:
```javascript
// Each tenant gets their own root
const tenantVfs = new VirtualFileSystem({
2026-01-27 15:38:21 -08:00
root: `/tenants/${tenantId}` ,
service: tenantId // Isolate at Brainy level too
2025-09-24 17:31:48 -07:00
})
// Tenant uploads document
await tenantVfs.writeFile('/documents/contract.pdf', pdfBuffer)
// Cross-tenant analytics (admin only)
const adminVfs = new VirtualFileSystem({ root: '/tenants' })
const stats = await adminVfs.search('contract', {
2026-01-27 15:38:21 -08:00
recursive: true,
aggregations: {
byTenant: { field: 'service' },
byType: { field: 'mimeType' }
}
2025-09-24 17:31:48 -07:00
})
```
#### **3. Machine Learning Pipeline**
Connect datasets, models, and results:
```javascript
// Store training data
await vfs.writeFile('/datasets/train.csv', csvData, {
2026-01-27 15:38:21 -08:00
metadata: {
samples: 100000,
features: 50,
labels: 10
}
2025-09-24 17:31:48 -07:00
})
// Store trained model
await vfs.writeFile('/models/v1/model.pkl', modelBuffer, {
2026-01-27 15:38:21 -08:00
metadata: {
algorithm: 'random-forest',
accuracy: 0.95,
trainedOn: '/datasets/train.csv',
hyperparameters: { trees: 100, depth: 10 }
}
2025-09-24 17:31:48 -07:00
})
// Connect model to its training data
await vfs.addRelationship(
2026-01-27 15:38:21 -08:00
'/models/v1/model.pkl',
'/datasets/train.csv',
'trained-on'
2025-09-24 17:31:48 -07:00
)
// Find best model for a dataset
const models = await vfs.search('', {
2026-01-27 15:38:21 -08:00
connected: {
to: '/datasets/train.csv',
via: 'trained-on'
},
sort: 'accuracy',
order: 'desc'
2025-09-24 17:31:48 -07:00
})
```
#### **4. Content Management System**
Intelligent content organization:
```javascript
// Auto-organize uploads
vfs.on('file:added', async (path) => {
2026-01-27 15:38:21 -08:00
if (path.startsWith('/uploads/')) {
const file = await vfs.getEntity(path)
2025-09-24 17:31:48 -07:00
2026-01-27 15:38:21 -08:00
// Auto-categorize by AI
const category = await detectCategory(file)
const newPath = `/content/${category}/${file.metadata.name}`
2025-09-24 17:31:48 -07:00
2026-01-27 15:38:21 -08:00
await vfs.move(path, newPath)
2025-09-24 17:31:48 -07:00
2026-01-27 15:38:21 -08:00
// Auto-tag
const tags = await extractTags(file)
await vfs.setxattr(newPath, 'tags', tags)
2025-09-24 17:31:48 -07:00
2026-01-27 15:38:21 -08:00
// Find related content
const related = await vfs.findSimilar(newPath, {
limit: 5,
threshold: 0.8
})
2025-09-24 17:31:48 -07:00
2026-01-27 15:38:21 -08:00
// Create relationships
for (const rel of related) {
await vfs.addRelationship(newPath, rel.path, 'related-to')
}
}
2025-09-24 17:31:48 -07:00
})
```
2025-10-29 12:48:56 -07:00
### Monitoring & Operations (Planned)
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
> **Note:** Production monitoring features are planned for v1.1. See [ROADMAP](./ROADMAP.md).
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
> **Note:** Backup & Recovery features are planned for v1.2. See [ROADMAP](./ROADMAP.md).
2025-09-24 17:31:48 -07:00
### Deployment Options
#### **Standalone Mode**
```javascript
const vfs = new VirtualFileSystem()
2026-01-27 15:38:21 -08:00
await vfs.init() // Uses in-memory storage
2025-09-24 17:31:48 -07:00
```
#### **Local Persistence**
```javascript
const vfs = new VirtualFileSystem()
await vfs.init({
2026-01-27 15:38:21 -08:00
storage: 'filesystem',
dataDir: '/var/lib/brainy-vfs'
2025-09-24 17:31:48 -07:00
})
```
#### **Cloud Native**
```javascript
const vfs = new VirtualFileSystem()
await vfs.init({
2026-01-27 15:38:21 -08:00
storage: 's3',
bucket: 'my-vfs-data',
region: 'us-west-2'
2025-09-24 17:31:48 -07:00
})
```
2025-10-29 12:48:56 -07:00
## Roadmap & Future Features
2025-09-24 17:31:48 -07:00
2025-10-29 12:48:56 -07:00
See [VFS ROADMAP ](./ROADMAP.md ) for planned features including:
- Enhanced streaming support (v1.1)
- Version history (v1.2)
- AI-powered automation (v2.0)
- FUSE driver (v2.0 research)
- And more community-requested features
2025-09-24 17:31:48 -07:00
## Contributing
We welcome contributions! See [CONTRIBUTING.md ](../../CONTRIBUTING.md )
## License
MIT - Part of the Brainy project
---
*Transform your filesystem into a brain. Production-ready, infinitely scalable, impossibly intelligent.* 🧠🚀