brainy/src/types/distributedTypes.ts
David Snelling 9c87982a7d 🧠 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

236 lines
No EOL
4.3 KiB
TypeScript

/**
* 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
}