brainy/docs/augmentations
David Snelling a408d3799d feat: portable graph export()/import() (BackupData v1) on brain.data()
brain.data() now serializes part or all of a brain to a versioned, portable
JSON document (BackupData) and restores it — the path for partial backups,
cross-environment moves, and 7.x→8.0 migration.

- export(selector?, options?): select by ids, collection (+transitive Contains),
  connected neighbourhood, vfsPath subtree, predicate, or whole brain; structural
  and predicate selectors compose. Options: includeVectors, includeContent (VFS
  blobs), includeSystem, edges ('induced'|'incident'|'none').
- import(backup, options?): onConflict 'merge' (dedup-by-id) | 'replace' | 'skip';
  reembed 'auto' (re-embed from data when no vector carried) | 'never'; remapIds
  to clone a subgraph under fresh ids.
- BackupData v1: format/formatVersion/brainyVersion/createdAt/embedding/entities/
  relations/blobs?/danglingIds?/stats. Reserved fields (subtype, data, confidence,
  weight, service) top-level; metadata custom-only. Current-state, no generations.
- Replaces the prior flat-entity export() (dropped relations) with a graph-complete
  document. Distinct from brain.import(file) ingestion, which is unchanged.
- Export BackupData/BackupEntity/BackupRelation/ExportSelector/ExportOptions/
  ImportOptions/ImportResult/DataAPI from the package root. CLI `brainy export`
  now writes a BackupData document.

Guide: docs/guides/backup-and-export.md. Tests: tests/unit/api/data-backup.test.ts.
2026-06-16 15:57:57 -07:00
..
api-server.md feat: migrate embeddings to Candle WASM + remove semantic type inference 2026-01-06 12:52:34 -08:00
COMPLETE-REFERENCE.md fix: exclude __words__ keyword index from corruption detection and getStats() 2026-01-27 15:38:21 -08:00
CONFIGURATION.md fix: update all imports and references from BrainyData to Brainy 2025-09-30 17:09:15 -07:00
DEVELOPER-GUIDE.md fix: exclude __words__ keyword index from corruption detection and getStats() 2026-01-27 15:38:21 -08:00
EXAMPLES.md feat: portable graph export()/import() (BackupData v1) on brain.data() 2026-06-16 15:57:57 -07:00
FORMAT_HANDLERS.md feat: add ImageHandler with EXIF extraction and comprehensive MIME detection (v5.2.0) 2025-11-03 14:06:17 -08:00
README.md fix: update all imports and references from BrainyData to Brainy 2025-09-30 17:09:15 -07:00

Brainy Augmentations

Augmentations are the core extensibility mechanism in Brainy. They allow you to modify, enhance, and extend Brainy's behavior without changing the core code.

Core Principle: One Interface, Infinite Possibilities

Every augmentation implements the same simple BrainyAugmentation interface:

interface BrainyAugmentation {
  name: string
  timing: 'before' | 'after' | 'around' | 'replace'
  operations: string[]
  priority: number
  initialize(context): Promise<void>
  execute(operation, params, next): Promise<any>
}

This single interface can handle EVERYTHING - from adding AI capabilities to exposing APIs to replacing storage backends.

Available Augmentations

🧠 Data Processing

Augmentations that enhance how data is processed and stored.

Augmentation Description Timing Status
NeuralImportAugmentation AI-powered entity and relationship extraction before Production
EntityRegistryAugmentation High-performance entity deduplication before Production
BatchProcessingAugmentation Optimizes bulk operations around Production
IntelligentVerbScoringAugmentation Learns relationship importance over time after Production

🔌 External Connections (Synapses)

Connect Brainy to external services and data sources.

Augmentation Description Timing Status
NotionSynapse Sync with Notion databases after 📝 Example
SalesforceSynapse Connect to Salesforce CRM after 📝 Example
SlackSynapse Import Slack conversations after 📝 Example
GoogleDriveSynapse Sync Google Drive documents after 📝 Example

🌐 API Exposure

Expose Brainy through various protocols.

Augmentation Description Timing Status
APIServerAugmentation REST, WebSocket, and MCP server after Production
GraphQLAugmentation GraphQL API endpoint after 🚧 Planned
gRPCAugmentation gRPC service after 🚧 Planned

💾 Storage Backends

Replace or enhance the storage layer.

Augmentation Description Timing Status
S3StorageAugmentation Use S3 as storage backend replace 📝 Example
RedisAugmentation Redis caching layer around 📝 Example
PostgresAugmentation PostgreSQL persistence replace 📝 Example

🔄 Real-time & Sync

Handle real-time updates and synchronization.

Augmentation Description Timing Status
WebSocketConduitAugmentation WebSocket client connections after ⚠️ Legacy
ServerSearchAugmentation Connect to remote Brainy servers after ⚠️ Legacy
TeamCoordinationAugmentation Multi-agent synchronization after 📝 Example

🛡️ Infrastructure

Core infrastructure and reliability features.

Augmentation Description Timing Status
ConnectionPoolAugmentation Optimize cloud storage connections before Production
RequestDeduplicatorAugmentation Prevent duplicate concurrent requests before Production
TransactionAugmentation ACID transaction support around 🚧 Planned
CacheAugmentation Multi-level caching around Production

📊 Monitoring & Analytics

Track and analyze Brainy's behavior.

Augmentation Description Timing Status
MetricsAugmentation Prometheus metrics after 📝 Example
LoggingAugmentation Structured logging after 📝 Example
TracingAugmentation Distributed tracing around 🚧 Planned

🤖 AI & Chat

AI-powered interfaces and chat capabilities.

Augmentation Description Timing Status
ChatInterfaceAugmentation Natural language interface before 📝 Example
MCPAgentMemoryAugmentation AI agent memory via MCP after 📝 Example
LLMQueryAugmentation LLM-enhanced queries before 📝 Example

📈 Visualization

Visual representations of data.

Augmentation Description Timing Status
GraphVisualizationAugmentation Real-time graph visualization after 📝 Example
DashboardAugmentation Web-based dashboard after 🚧 Planned

Status Legend

  • Production: Fully implemented and tested
  • 📝 Example: Example implementation available
  • 🚧 Planned: On the roadmap
  • ⚠️ Legacy: Being replaced by newer augmentations

Using Augmentations

Zero-Config Approach

const brain = new Brainy()

// Just register augmentations - they work automatically!
brain.augmentations.register(new EntityRegistryAugmentation())
brain.augmentations.register(new APIServerAugmentation())

await brain.init()

With Configuration

const brain = new Brainy()

brain.augmentations.register(
  new APIServerAugmentation({
    port: 8080,
    auth: { required: true }
  })
)

await brain.init()

Creating Custom Augmentations

See Creating Custom Augmentations for a complete guide.

Quick example:

class MyAugmentation extends BaseAugmentation {
  readonly name = 'my-augmentation'
  readonly timing = 'after'
  readonly operations = ['add', 'search']
  readonly priority = 50
  
  async execute<T>(operation: string, params: any, next: () => Promise<T>): Promise<T> {
    console.log(`Before ${operation}`)
    const result = await next()
    console.log(`After ${operation}`)
    return result
  }
}

Augmentation Timing

before

Executes before the main operation. Used for:

  • Input validation
  • Data transformation
  • Authentication checks

after

Executes after the main operation. Used for:

  • Broadcasting updates
  • Syncing to external services
  • Logging and metrics

around

Wraps the main operation. Used for:

  • Transactions
  • Caching
  • Error handling

replace

Completely replaces the main operation. Used for:

  • Alternative storage backends
  • Mock implementations
  • Proxy operations

Priority System

Higher numbers execute first:

  • 100: Critical system operations
  • 50: Performance optimizations
  • 10: Enhancement features
  • 1: Optional features