brainy/src/types/distributedTypes.ts

236 lines
4.3 KiB
TypeScript
Raw Normal View History

🧠 Brainy 2.0.0 - Zero-Configuration AI Database with Triple Intelligence™ MAJOR RELEASE: Complete evolution of Brainy with groundbreaking features and performance. 🎯 KEY FEATURES: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Triple Intelligence™ Engine - Unified Vector + Metadata + Graph search - O(log n) performance on all operations - 3ms average search latency at any scale ✨ API Consolidation - 15+ search methods → 2 clean APIs - search() for vector similarity - find() for natural language queries ✨ Natural Language Processing - 220+ pre-computed NLP patterns - Instant context understanding - "Show me recent React components with tests" ✨ Zero Configuration - Works instantly, no setup required - Built-in embedding models (no API keys) - Smart defaults for everything - Automatic optimization ✨ Enterprise Features (Free for Everyone) - Scales to 10M+ items - Write-Ahead Logging (WAL) for durability - Distributed architecture with sharding - Read/write separation - Connection pooling & request deduplication - Built-in monitoring & health checks ✨ Universal Compatibility - Node.js, Browser, Edge Workers - 4 Storage Adapters (Memory, FileSystem, OPFS, S3) - TypeScript with full type safety - Worker-based embeddings 📦 WHAT'S INCLUDED: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Core AI Database with HNSW indexing • 19 Production-ready augmentations • Universal Memory Manager • Complete CLI with all commands • Brain Cloud integration (soulcraft.com) • Comprehensive documentation • 52 test files with 400+ tests • Migration guide from 1.x 📊 PERFORMANCE: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Initialize: 450ms (24MB memory) • Search: 3ms average (up to 10M items) • Metadata Filter: 0.8ms (O(log n)) • Bulk Import: 2.3s per 1000 items • Production Scale: 5.8ms at 10M items 🔧 TECHNICAL IMPROVEMENTS: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • TypeScript compilation: 153 errors → 0 • Memory usage: 200MB → 24MB baseline • Circular dependencies resolved • Worker thread communication fixed • Storage adapter consistency • Request coalescing for 3x performance 🛠️ CLI FEATURES: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • brainy add - Smart data ingestion • brainy find - Natural language search • brainy search - Vector similarity • brainy chat - AI conversation mode • brainy cloud - Brain Cloud integration • brainy augment - Manage extensions • 100% API compatibility 📚 DOCUMENTATION: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Professional README with examples • Quick Start guide (5 minutes) • Enterprise Features guide • Migration guide from 1.x • API reference • Architecture documentation 🌟 USE CASES: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • AI memory layer for chatbots • Semantic document search • Code intelligence platforms • Knowledge management systems • Real-time recommendation engines • Customer support automation MIT License - Enterprise features included free for everyone. No premium tiers, no paywalls, no limits. Built with ❤️ by the Brainy community. Visit https://soulcraft.com for Brain Cloud integration.
2025-08-26 12:32:21 -07:00
/**
* Distributed types for Brainy
* Defines types for distributed operations across multiple instances
*/
export type InstanceRole = 'reader' | 'writer' | 'hybrid'
export type PartitionStrategy = 'hash' | 'semantic' | 'manual'
export interface DistributedConfig {
/**
* Enable distributed mode
* Can be boolean for auto-detection or specific configuration
*/
enabled?: boolean | 'auto'
/**
* Role of this instance in the distributed system
* - reader: Read-only access, optimized for queries
* - writer: Write-focused, handles data ingestion
* - hybrid: Can both read and write (requires coordination)
*/
role?: InstanceRole
/**
* Unique identifier for this instance
* Auto-generated if not provided
*/
instanceId?: string
/**
* Path to shared configuration file in S3
* Default: '_brainy/config.json'
*/
configPath?: string
/**
* Heartbeat interval in milliseconds
* Default: 30000 (30 seconds)
*/
heartbeatInterval?: number
/**
* Config check interval in milliseconds
* Default: 10000 (10 seconds)
*/
configCheckInterval?: number
/**
* Instance timeout in milliseconds
* Instances not seen for this duration are considered dead
* Default: 60000 (60 seconds)
*/
instanceTimeout?: number
}
export interface SharedConfig {
/**
* Configuration version for compatibility checking
*/
version: number
/**
* Last update timestamp
*/
updated: string
/**
* Global settings that must be consistent across all instances
*/
settings: {
/**
* Partitioning strategy
* - hash: Deterministic hash-based partitioning (recommended for multi-writer)
* - semantic: Group similar vectors (single writer only)
* - manual: Explicit partition assignment
*/
partitionStrategy: PartitionStrategy
/**
* Number of partitions (for hash strategy)
*/
partitionCount: number
/**
* Embedding model name (must be consistent)
*/
embeddingModel: string
/**
* Vector dimensions
*/
dimensions: number
/**
* Distance metric
*/
distanceMetric: 'cosine' | 'euclidean' | 'manhattan'
/**
* HNSW parameters (must be consistent for index compatibility)
*/
hnswParams?: {
M: number
efConstruction: number
maxElements?: number
}
}
/**
* Active instances in the distributed system
*/
instances: {
[instanceId: string]: InstanceInfo
}
/**
* Partition assignments (for manual strategy)
*/
partitionAssignments?: {
[instanceId: string]: string[]
}
}
export interface InstanceInfo {
/**
* Instance role
*/
role: InstanceRole
/**
* Instance status
*/
status: 'active' | 'inactive' | 'unhealthy'
/**
* Last heartbeat timestamp
*/
lastHeartbeat: string
/**
* Optional endpoint for health checks
*/
endpoint?: string
/**
* Instance metrics
*/
metrics?: {
vectorCount?: number
cacheHitRate?: number
memoryUsage?: number
cpuUsage?: number
}
/**
* Assigned partitions (for manual assignment)
*/
assignedPartitions?: string[]
/**
* Preferred partitions (for affinity)
*/
preferredPartitions?: number[]
}
export interface DomainMetadata {
/**
* Domain identifier for logical data separation
*/
domain?: string
/**
* Additional domain-specific metadata
*/
domainMetadata?: Record<string, any>
}
export interface CacheStrategy {
/**
* Percentage of memory allocated to hot cache (0-1)
*/
hotCacheRatio: number
/**
* Enable aggressive prefetching
*/
prefetchAggressive?: boolean
/**
* Cache time-to-live in milliseconds
*/
ttl?: number
/**
* Enable compression to trade CPU for memory
*/
compressionEnabled?: boolean
/**
* Write buffer size for batching
*/
writeBufferSize?: number
/**
* Enable write batching
*/
batchWrites?: boolean
/**
* Adaptive caching based on workload
*/
adaptive?: boolean
}
export interface OperationalMode {
/**
* Whether this mode can read
*/
canRead: boolean
/**
* Whether this mode can write
*/
canWrite: boolean
/**
* Whether this mode can delete
*/
canDelete: boolean
/**
* Cache strategy for this mode
*/
cacheStrategy: CacheStrategy
}