brainy/src/index.ts

481 lines
9.9 KiB
TypeScript
Raw Normal View History

2025-06-24 11:41:30 -07:00
/**
feat: Simplify architecture with Cortex orchestrator and clear augmentation tiers ## Major Architecture Improvements ### Cortex Refactoring - Renamed AugmentationPipeline → Cortex for clarity - Cortex is now the central orchestrator (not an augmentation) - NeuralImport remains as the AI-powered SENSE augmentation - Clean brain metaphor: BrainyData → Cortex → Augmentations ### Four-Tier Augmentation System 1. **Built-in** (Free, MIT): Neural Import, basic storage, search 2. **Community** (Free, npm): Community-created augmentations 3. **Premium** ($49-299/mo): AI Memory, Agent Coordinator, Enterprise connectors 4. **Brain Cloud** ($19-99/mo): Managed service with all features ### Zero Configuration Philosophy - Everything works out of the box - no config needed - Automatic model detection and loading - Seamless integration between tiers - Brain Cloud connects with one command: `brainy cloud` ### Documentation Updates - Added PHILOSOPHY.md outlining design principles - Created AUGMENTATION_ARCHITECTURE.md with tier system - Added CLI_AUGMENTATION_GUIDE.md for augmentation management - Updated README to "sell first" with concrete use cases - Improved documentation organization in /docs ### Developer Experience - Backward compatibility maintained with exports - Clean, simple API surface - Interactive-by-default approach - Premium features integrate seamlessly ### Removed - Deleted demo directory and deploy workflow (moved to website) - Removed test wrapper scripts (bash 2>&1 bug workaround) This refactor makes Brainy incredibly powerful yet easy to use, with everything automated and no configuration required. The Brain Cloud augmentations (AI memory, sync, coordination) integrate seamlessly as our killer features.
2025-08-11 09:40:37 -07:00
* Brainy - Your AI-Powered Second Brain
* 🧠 A multi-dimensional database with vector, graph, and facet storage
*
* Core Components:
* - BrainyData: The brain (core database)
* - Cortex: The orchestrator (manages augmentations)
* - NeuralImport: AI-powered data understanding
* - Augmentations: Brain capabilities (plugins)
2025-06-24 11:41:30 -07:00
*/
// Export main BrainyData class and related types
import { BrainyData, BrainyDataConfig } from './brainyData.js'
2025-06-24 11:41:30 -07:00
export { BrainyData }
export type { BrainyDataConfig }
2025-06-24 11:41:30 -07:00
feat: Simplify architecture with Cortex orchestrator and clear augmentation tiers ## Major Architecture Improvements ### Cortex Refactoring - Renamed AugmentationPipeline → Cortex for clarity - Cortex is now the central orchestrator (not an augmentation) - NeuralImport remains as the AI-powered SENSE augmentation - Clean brain metaphor: BrainyData → Cortex → Augmentations ### Four-Tier Augmentation System 1. **Built-in** (Free, MIT): Neural Import, basic storage, search 2. **Community** (Free, npm): Community-created augmentations 3. **Premium** ($49-299/mo): AI Memory, Agent Coordinator, Enterprise connectors 4. **Brain Cloud** ($19-99/mo): Managed service with all features ### Zero Configuration Philosophy - Everything works out of the box - no config needed - Automatic model detection and loading - Seamless integration between tiers - Brain Cloud connects with one command: `brainy cloud` ### Documentation Updates - Added PHILOSOPHY.md outlining design principles - Created AUGMENTATION_ARCHITECTURE.md with tier system - Added CLI_AUGMENTATION_GUIDE.md for augmentation management - Updated README to "sell first" with concrete use cases - Improved documentation organization in /docs ### Developer Experience - Backward compatibility maintained with exports - Clean, simple API surface - Interactive-by-default approach - Premium features integrate seamlessly ### Removed - Deleted demo directory and deploy workflow (moved to website) - Removed test wrapper scripts (bash 2>&1 bug workaround) This refactor makes Brainy incredibly powerful yet easy to use, with everything automated and no configuration required. The Brain Cloud augmentations (AI memory, sync, coordination) integrate seamlessly as our killer features.
2025-08-11 09:40:37 -07:00
// Export Cortex (the orchestrator)
export {
Cortex,
cortex
} from './cortex.js'
// Export Neural Import (AI data understanding)
export { NeuralImport } from './cortex/neuralImport.js'
export type {
NeuralAnalysisResult,
DetectedEntity,
DetectedRelationship,
NeuralInsight,
NeuralImportOptions
} from './cortex/neuralImport.js'
// Augmentation types are already exported later in the file
2025-06-24 11:41:30 -07:00
// Export distance functions for convenience
import {
euclideanDistance,
cosineDistance,
manhattanDistance,
dotProductDistance,
getStatistics
2025-06-24 11:41:30 -07:00
} from './utils/index.js'
export {
euclideanDistance,
cosineDistance,
manhattanDistance,
dotProductDistance,
getStatistics
2025-06-24 11:41:30 -07:00
}
// Export embedding functionality
import {
UniversalSentenceEncoder,
feat\!: migrate from TensorFlow.js to Transformers.js with ONNX Runtime BREAKING CHANGE: Complete migration from TensorFlow.js to Transformers.js for embedding generation This is a major architectural change that replaces TensorFlow.js (USE model) with Transformers.js (all-MiniLM-L6-v2) for significantly improved performance and reduced complexity. Key Changes: - Replace TensorFlow.js Universal Sentence Encoder with Transformers.js all-MiniLM-L6-v2 - Reduce model size from 525MB to 87MB (83% reduction) - Reduce embedding dimensions from 512 to 384 (faster distance calculations) - Remove TensorFlow.js Float32Array patching (caused ONNX conflicts) - Implement smart bundled model detection for offline operation - Add explicit model download script for Docker deployments - Remove complex environment variables in favor of simple configuration - Update all distance functions to use optimized pure JavaScript - Remove TensorFlow-specific utilities and type definitions Performance Improvements: - Model loading: 5x faster (87MB vs 525MB) - Memory usage: 75% reduction (~200-400MB vs ~1.5GB) - Distance calculations: Faster pure JS vs GPU overhead for small vectors - Cold start performance: Significantly improved Files Changed: - Updated package.json: New dependencies, simplified scripts - Rewrote src/utils/embedding.ts: Complete Transformers.js implementation - Updated src/utils/distance.ts: Optimized JavaScript distance functions - Simplified src/setup.ts: Removed TensorFlow-specific patching - Simplified src/utils/textEncoding.ts: Only Node.js TextEncoder/Decoder patches - Deleted src/utils/robustModelLoader.ts: TensorFlow-specific loader - Deleted src/types/tensorflowTypes.ts: TensorFlow type definitions - Added scripts/download-models.cjs: Docker-compatible model downloader - Added comprehensive documentation: README.md, OFFLINE_MODELS.md, analysis docs Testing: - All 19 tests passing - Removed test mocking in favor of real implementation testing - Updated test environment for Transformers.js compatibility - Performance tests validate improved efficiency This migration resolves production issues with Docker egress limitations and provides a more robust, performant foundation for vector operations.
2025-08-05 19:29:59 -07:00
TransformerEmbedding,
createEmbeddingFunction,
feat\!: migrate from TensorFlow.js to Transformers.js with ONNX Runtime BREAKING CHANGE: Complete migration from TensorFlow.js to Transformers.js for embedding generation This is a major architectural change that replaces TensorFlow.js (USE model) with Transformers.js (all-MiniLM-L6-v2) for significantly improved performance and reduced complexity. Key Changes: - Replace TensorFlow.js Universal Sentence Encoder with Transformers.js all-MiniLM-L6-v2 - Reduce model size from 525MB to 87MB (83% reduction) - Reduce embedding dimensions from 512 to 384 (faster distance calculations) - Remove TensorFlow.js Float32Array patching (caused ONNX conflicts) - Implement smart bundled model detection for offline operation - Add explicit model download script for Docker deployments - Remove complex environment variables in favor of simple configuration - Update all distance functions to use optimized pure JavaScript - Remove TensorFlow-specific utilities and type definitions Performance Improvements: - Model loading: 5x faster (87MB vs 525MB) - Memory usage: 75% reduction (~200-400MB vs ~1.5GB) - Distance calculations: Faster pure JS vs GPU overhead for small vectors - Cold start performance: Significantly improved Files Changed: - Updated package.json: New dependencies, simplified scripts - Rewrote src/utils/embedding.ts: Complete Transformers.js implementation - Updated src/utils/distance.ts: Optimized JavaScript distance functions - Simplified src/setup.ts: Removed TensorFlow-specific patching - Simplified src/utils/textEncoding.ts: Only Node.js TextEncoder/Decoder patches - Deleted src/utils/robustModelLoader.ts: TensorFlow-specific loader - Deleted src/types/tensorflowTypes.ts: TensorFlow type definitions - Added scripts/download-models.cjs: Docker-compatible model downloader - Added comprehensive documentation: README.md, OFFLINE_MODELS.md, analysis docs Testing: - All 19 tests passing - Removed test mocking in favor of real implementation testing - Updated test environment for Transformers.js compatibility - Performance tests validate improved efficiency This migration resolves production issues with Docker egress limitations and provides a more robust, performant foundation for vector operations.
2025-08-05 19:29:59 -07:00
defaultEmbeddingFunction,
batchEmbed,
embeddingFunctions
2025-06-24 11:41:30 -07:00
} from './utils/embedding.js'
// Export worker utilities
import { executeInThread, cleanupWorkerPools } from './utils/workerUtils.js'
// Export logging utilities
import {
logger,
LogLevel,
configureLogger,
createModuleLogger
} from './utils/logger.js'
// Export BrainyChat for conversational AI
import { BrainyChat } from './chat/BrainyChat.js'
export { BrainyChat }
// Export Cortex CLI functionality - commented out for core MIT build
// export { Cortex } from './cortex/cortex.js'
// Export performance and optimization utilities
import {
getGlobalSocketManager,
AdaptiveSocketManager
} from './utils/adaptiveSocketManager.js'
import {
getGlobalBackpressure,
AdaptiveBackpressure
} from './utils/adaptiveBackpressure.js'
import {
getGlobalPerformanceMonitor,
PerformanceMonitor
} from './utils/performanceMonitor.js'
// Export environment utilities
import {
isBrowser,
isNode,
isWebWorker,
areWebWorkersAvailable,
areWorkerThreadsAvailable,
areWorkerThreadsAvailableSync,
isThreadingAvailable,
isThreadingAvailableAsync
} from './utils/environment.js'
2025-06-24 11:41:30 -07:00
export {
UniversalSentenceEncoder,
feat\!: migrate from TensorFlow.js to Transformers.js with ONNX Runtime BREAKING CHANGE: Complete migration from TensorFlow.js to Transformers.js for embedding generation This is a major architectural change that replaces TensorFlow.js (USE model) with Transformers.js (all-MiniLM-L6-v2) for significantly improved performance and reduced complexity. Key Changes: - Replace TensorFlow.js Universal Sentence Encoder with Transformers.js all-MiniLM-L6-v2 - Reduce model size from 525MB to 87MB (83% reduction) - Reduce embedding dimensions from 512 to 384 (faster distance calculations) - Remove TensorFlow.js Float32Array patching (caused ONNX conflicts) - Implement smart bundled model detection for offline operation - Add explicit model download script for Docker deployments - Remove complex environment variables in favor of simple configuration - Update all distance functions to use optimized pure JavaScript - Remove TensorFlow-specific utilities and type definitions Performance Improvements: - Model loading: 5x faster (87MB vs 525MB) - Memory usage: 75% reduction (~200-400MB vs ~1.5GB) - Distance calculations: Faster pure JS vs GPU overhead for small vectors - Cold start performance: Significantly improved Files Changed: - Updated package.json: New dependencies, simplified scripts - Rewrote src/utils/embedding.ts: Complete Transformers.js implementation - Updated src/utils/distance.ts: Optimized JavaScript distance functions - Simplified src/setup.ts: Removed TensorFlow-specific patching - Simplified src/utils/textEncoding.ts: Only Node.js TextEncoder/Decoder patches - Deleted src/utils/robustModelLoader.ts: TensorFlow-specific loader - Deleted src/types/tensorflowTypes.ts: TensorFlow type definitions - Added scripts/download-models.cjs: Docker-compatible model downloader - Added comprehensive documentation: README.md, OFFLINE_MODELS.md, analysis docs Testing: - All 19 tests passing - Removed test mocking in favor of real implementation testing - Updated test environment for Transformers.js compatibility - Performance tests validate improved efficiency This migration resolves production issues with Docker egress limitations and provides a more robust, performant foundation for vector operations.
2025-08-05 19:29:59 -07:00
TransformerEmbedding,
createEmbeddingFunction,
defaultEmbeddingFunction,
feat\!: migrate from TensorFlow.js to Transformers.js with ONNX Runtime BREAKING CHANGE: Complete migration from TensorFlow.js to Transformers.js for embedding generation This is a major architectural change that replaces TensorFlow.js (USE model) with Transformers.js (all-MiniLM-L6-v2) for significantly improved performance and reduced complexity. Key Changes: - Replace TensorFlow.js Universal Sentence Encoder with Transformers.js all-MiniLM-L6-v2 - Reduce model size from 525MB to 87MB (83% reduction) - Reduce embedding dimensions from 512 to 384 (faster distance calculations) - Remove TensorFlow.js Float32Array patching (caused ONNX conflicts) - Implement smart bundled model detection for offline operation - Add explicit model download script for Docker deployments - Remove complex environment variables in favor of simple configuration - Update all distance functions to use optimized pure JavaScript - Remove TensorFlow-specific utilities and type definitions Performance Improvements: - Model loading: 5x faster (87MB vs 525MB) - Memory usage: 75% reduction (~200-400MB vs ~1.5GB) - Distance calculations: Faster pure JS vs GPU overhead for small vectors - Cold start performance: Significantly improved Files Changed: - Updated package.json: New dependencies, simplified scripts - Rewrote src/utils/embedding.ts: Complete Transformers.js implementation - Updated src/utils/distance.ts: Optimized JavaScript distance functions - Simplified src/setup.ts: Removed TensorFlow-specific patching - Simplified src/utils/textEncoding.ts: Only Node.js TextEncoder/Decoder patches - Deleted src/utils/robustModelLoader.ts: TensorFlow-specific loader - Deleted src/types/tensorflowTypes.ts: TensorFlow type definitions - Added scripts/download-models.cjs: Docker-compatible model downloader - Added comprehensive documentation: README.md, OFFLINE_MODELS.md, analysis docs Testing: - All 19 tests passing - Removed test mocking in favor of real implementation testing - Updated test environment for Transformers.js compatibility - Performance tests validate improved efficiency This migration resolves production issues with Docker egress limitations and provides a more robust, performant foundation for vector operations.
2025-08-05 19:29:59 -07:00
batchEmbed,
embeddingFunctions,
// Worker utilities
executeInThread,
cleanupWorkerPools,
// Environment utilities
isBrowser,
isNode,
isWebWorker,
areWebWorkersAvailable,
areWorkerThreadsAvailable,
areWorkerThreadsAvailableSync,
isThreadingAvailable,
isThreadingAvailableAsync,
// Logging utilities
logger,
LogLevel,
configureLogger,
createModuleLogger,
// Performance and optimization utilities
getGlobalSocketManager,
AdaptiveSocketManager,
getGlobalBackpressure,
AdaptiveBackpressure,
getGlobalPerformanceMonitor,
PerformanceMonitor
2025-06-24 11:41:30 -07:00
}
// Export storage adapters
import {
OPFSStorage,
MemoryStorage,
R2Storage,
S3CompatibleStorage,
createStorage
} from './storage/storageFactory.js'
2025-06-24 11:41:30 -07:00
export {
OPFSStorage,
MemoryStorage,
R2Storage,
S3CompatibleStorage,
createStorage
2025-06-24 11:41:30 -07:00
}
// FileSystemStorage is exported separately to avoid browser build issues
export { FileSystemStorage } from './storage/adapters/fileSystemStorage.js'
2025-06-24 11:41:30 -07:00
// Export unified pipeline
import {
Pipeline,
pipeline,
augmentationPipeline,
ExecutionMode,
PipelineOptions,
PipelineResult,
createPipeline,
createStreamingPipeline,
StreamlinedExecutionMode,
StreamlinedPipelineOptions,
StreamlinedPipelineResult
2025-06-24 11:41:30 -07:00
} from './pipeline.js'
🚀 Brainy 1.0.0-rc.1 - Complete Unified API Implementation (#5) * feat: Complete Brainy 1.0 Great Cleanup 🎯 THE GREAT CLEANUP - Making Brainy Beautiful BREAKING CHANGES: - Removed addSmart() method (use add() - it's smart by default) - Removed duplicate Pipeline classes (consolidated into ONE Cortex) - Removed 40+ CLI commands (now just 5 clean commands) ✅ WHAT'S DONE: - Delete duplicate files: sequentialPipeline.ts, cortex-legacy.ts, serviceIntegration.ts - Consolidated into ONE Cortex class (the orchestrator) - Pipeline class now delegates to Cortex (backward compatibility) - Clean CLI: add, import, search, status, help (ONE way to do everything) - Interactive mode for beginners 📈 RESULTS: - 5 CLI commands (was 40+) - 1 Pipeline system (was 3+) - Clean, obvious naming - Beautiful user experience This achieves the vision: ONE way to do everything, elegant and powerful. * fix: Restore essential CLI commands and remove backward compatibility ✅ IMPROVEMENTS: - Remove Pipeline delegation complexity - Pipeline IS Cortex now - Restore essential commands: config, cloud, migrate - Keep core clean: add, import, search, status, help - Interactive help updated with all options 🎯 FINAL CLI (8 commands): - Core: add, import, search, status, help - Essential: config, cloud, migrate ✅ NO FUNCTIONALITY LOST: - Zero-config and dynamic adaptations intact - All storage adapters working - Premium Brain Cloud integration restored - Migration tools available Result: Perfect balance of simplicity and functionality * feat: Enhance status command with comprehensive statistics display ✨ ENHANCED STATUS COMMAND: - Full integration with brainyData.getStatistics() - Beautiful, organized display of all statistics - Three modes: default (comprehensive), --simple (quick), --verbose (raw JSON) 📊 STATISTICS DISPLAYED: - Core Database: items, nouns, verbs, documents - Storage Information: type, size, location - Performance Metrics: query times, cache hit rates - Vector Index: dimensions, vector count, index size - Memory Usage: heap, RSS breakdown - Active Augmentations: with descriptions - Configuration: with sensitive data hidden - Raw JSON option for developers 🎯 USAGE: - brainy status (comprehensive view) - brainy status --simple (quick overview) - brainy status --verbose (everything + raw JSON) Perfect for monitoring brain health and performance! * feat: Add per-service statistics and field discovery to CLI 🎯 ENHANCED STATISTICS DISPLAY: - Show per-service breakdown of nouns, verbs, metadata - Display serviceBreakdown from getStatistics() properly - Beautiful formatting for multi-service environments 🔍 FIELD DISCOVERY FOR ADVANCED SEARCH: - New section in 'brainy status' shows available filter fields - Added --fields option to search command - Usage examples provided for complex filtering - Integrates with getFilterFields() method 📊 USAGE EXAMPLES: - brainy status (shows per-service stats + available fields) - brainy search 'query' --fields (field discovery) - brainy search 'query' --filter '{"type":"person"}' (advanced filtering) Perfect for developers doing complex queries and multi-service deployments! * feat: Restore and enhance brainy chat with multi-model AI support 🎯 RESTORED CHAT FUNCTIONALITY: - Complete brainy chat command with rich options - Interactive mode with session management - Chat history search and session switching - Auto-discovery of previous sessions 🤖 MULTI-MODEL AI INTEGRATION: - Local models: Ollama/LLaMA (default) - OpenAI: GPT-3.5/GPT-4 support - Claude: Anthropic integration - Custom models: configurable base URLs 💬 RICH CHAT FEATURES: - Session management: list, switch, resume - History: view previous conversations - Search: find messages across all sessions - Context-aware: uses your brain data for responses 🔧 USAGE EXAMPLES: - brainy chat (interactive mode) - brainy chat 'question' (single message) - brainy chat --list (show sessions) - brainy chat --model openai --api-key sk-... (OpenAI) - brainy chat --model claude --api-key sk-ant-... (Claude) Perfect for talking to your data with any AI model! * feat: Complete Brainy 1.0.0-rc.1 unified API implementation - Implement 7 core unified API methods (add, search, import, addNoun, addVerb, update, delete) - Add universal encryption system with encryptData/decryptData methods - Add container deployment support with model preloading - Implement soft delete by default for better performance - Add searchVerbs() and getNounWithVerbs() for graph traversal - Reduce package size by 16% despite major feature additions - Create comprehensive CHANGELOG.md and MIGRATION.md - Consolidate CLI from 40+ to 9 clean commands - All scaling optimizations preserved and enhanced BREAKING CHANGES: - addSmart() method removed (use add() - smart by default) - CLI commands consolidated and renamed - Pipeline classes unified into single Cortex class This is the complete 1.0 release candidate with all planned features implemented and tested.
2025-08-14 11:27:22 -07:00
// Sequential pipeline removed - use unified pipeline instead
2025-06-24 11:41:30 -07:00
// Export augmentation factory
import {
createSenseAugmentation,
addWebSocketSupport,
executeAugmentation,
loadAugmentationModule,
AugmentationOptions
2025-06-24 11:41:30 -07:00
} from './augmentationFactory.js'
export {
// Unified pipeline exports
Pipeline,
pipeline,
augmentationPipeline,
ExecutionMode,
🚀 Brainy 1.0.0-rc.1 - Complete Unified API Implementation (#5) * feat: Complete Brainy 1.0 Great Cleanup 🎯 THE GREAT CLEANUP - Making Brainy Beautiful BREAKING CHANGES: - Removed addSmart() method (use add() - it's smart by default) - Removed duplicate Pipeline classes (consolidated into ONE Cortex) - Removed 40+ CLI commands (now just 5 clean commands) ✅ WHAT'S DONE: - Delete duplicate files: sequentialPipeline.ts, cortex-legacy.ts, serviceIntegration.ts - Consolidated into ONE Cortex class (the orchestrator) - Pipeline class now delegates to Cortex (backward compatibility) - Clean CLI: add, import, search, status, help (ONE way to do everything) - Interactive mode for beginners 📈 RESULTS: - 5 CLI commands (was 40+) - 1 Pipeline system (was 3+) - Clean, obvious naming - Beautiful user experience This achieves the vision: ONE way to do everything, elegant and powerful. * fix: Restore essential CLI commands and remove backward compatibility ✅ IMPROVEMENTS: - Remove Pipeline delegation complexity - Pipeline IS Cortex now - Restore essential commands: config, cloud, migrate - Keep core clean: add, import, search, status, help - Interactive help updated with all options 🎯 FINAL CLI (8 commands): - Core: add, import, search, status, help - Essential: config, cloud, migrate ✅ NO FUNCTIONALITY LOST: - Zero-config and dynamic adaptations intact - All storage adapters working - Premium Brain Cloud integration restored - Migration tools available Result: Perfect balance of simplicity and functionality * feat: Enhance status command with comprehensive statistics display ✨ ENHANCED STATUS COMMAND: - Full integration with brainyData.getStatistics() - Beautiful, organized display of all statistics - Three modes: default (comprehensive), --simple (quick), --verbose (raw JSON) 📊 STATISTICS DISPLAYED: - Core Database: items, nouns, verbs, documents - Storage Information: type, size, location - Performance Metrics: query times, cache hit rates - Vector Index: dimensions, vector count, index size - Memory Usage: heap, RSS breakdown - Active Augmentations: with descriptions - Configuration: with sensitive data hidden - Raw JSON option for developers 🎯 USAGE: - brainy status (comprehensive view) - brainy status --simple (quick overview) - brainy status --verbose (everything + raw JSON) Perfect for monitoring brain health and performance! * feat: Add per-service statistics and field discovery to CLI 🎯 ENHANCED STATISTICS DISPLAY: - Show per-service breakdown of nouns, verbs, metadata - Display serviceBreakdown from getStatistics() properly - Beautiful formatting for multi-service environments 🔍 FIELD DISCOVERY FOR ADVANCED SEARCH: - New section in 'brainy status' shows available filter fields - Added --fields option to search command - Usage examples provided for complex filtering - Integrates with getFilterFields() method 📊 USAGE EXAMPLES: - brainy status (shows per-service stats + available fields) - brainy search 'query' --fields (field discovery) - brainy search 'query' --filter '{"type":"person"}' (advanced filtering) Perfect for developers doing complex queries and multi-service deployments! * feat: Restore and enhance brainy chat with multi-model AI support 🎯 RESTORED CHAT FUNCTIONALITY: - Complete brainy chat command with rich options - Interactive mode with session management - Chat history search and session switching - Auto-discovery of previous sessions 🤖 MULTI-MODEL AI INTEGRATION: - Local models: Ollama/LLaMA (default) - OpenAI: GPT-3.5/GPT-4 support - Claude: Anthropic integration - Custom models: configurable base URLs 💬 RICH CHAT FEATURES: - Session management: list, switch, resume - History: view previous conversations - Search: find messages across all sessions - Context-aware: uses your brain data for responses 🔧 USAGE EXAMPLES: - brainy chat (interactive mode) - brainy chat 'question' (single message) - brainy chat --list (show sessions) - brainy chat --model openai --api-key sk-... (OpenAI) - brainy chat --model claude --api-key sk-ant-... (Claude) Perfect for talking to your data with any AI model! * feat: Complete Brainy 1.0.0-rc.1 unified API implementation - Implement 7 core unified API methods (add, search, import, addNoun, addVerb, update, delete) - Add universal encryption system with encryptData/decryptData methods - Add container deployment support with model preloading - Implement soft delete by default for better performance - Add searchVerbs() and getNounWithVerbs() for graph traversal - Reduce package size by 16% despite major feature additions - Create comprehensive CHANGELOG.md and MIGRATION.md - Consolidate CLI from 40+ to 9 clean commands - All scaling optimizations preserved and enhanced BREAKING CHANGES: - addSmart() method removed (use add() - smart by default) - CLI commands consolidated and renamed - Pipeline classes unified into single Cortex class This is the complete 1.0 release candidate with all planned features implemented and tested.
2025-08-14 11:27:22 -07:00
// Factory functions
createPipeline,
createStreamingPipeline,
StreamlinedExecutionMode,
// Augmentation factory exports
createSenseAugmentation,
addWebSocketSupport,
executeAugmentation,
loadAugmentationModule
2025-06-24 11:41:30 -07:00
}
export type {
PipelineOptions,
PipelineResult,
StreamlinedPipelineOptions,
StreamlinedPipelineResult,
AugmentationOptions
2025-06-24 11:41:30 -07:00
}
// Export augmentation registry for build-time loading
import {
availableAugmentations,
registerAugmentation,
initializeAugmentationPipeline,
setAugmentationEnabled,
getAugmentationsByType
2025-06-24 11:41:30 -07:00
} from './augmentationRegistry.js'
export {
availableAugmentations,
registerAugmentation,
initializeAugmentationPipeline,
setAugmentationEnabled,
getAugmentationsByType
2025-06-24 11:41:30 -07:00
}
// Export augmentation registry loader for build tools
import {
loadAugmentationsFromModules,
createAugmentationRegistryPlugin,
createAugmentationRegistryRollupPlugin
2025-06-24 11:41:30 -07:00
} from './augmentationRegistryLoader.js'
import type {
AugmentationRegistryLoaderOptions,
AugmentationLoadResult
2025-06-24 11:41:30 -07:00
} from './augmentationRegistryLoader.js'
export {
loadAugmentationsFromModules,
createAugmentationRegistryPlugin,
createAugmentationRegistryRollupPlugin
2025-06-24 11:41:30 -07:00
}
export type { AugmentationRegistryLoaderOptions, AugmentationLoadResult }
2025-06-24 11:41:30 -07:00
2025-06-24 11:41:30 -07:00
// Export augmentation implementations
import {
MemoryStorageAugmentation,
FileSystemStorageAugmentation,
OPFSStorageAugmentation,
createMemoryAugmentation
2025-06-24 11:41:30 -07:00
} from './augmentations/memoryAugmentations.js'
import {
WebSocketConduitAugmentation,
WebRTCConduitAugmentation,
createConduitAugmentation
2025-06-24 11:41:30 -07:00
} from './augmentations/conduitAugmentations.js'
import {
ServerSearchConduitAugmentation,
ServerSearchActivationAugmentation,
createServerSearchAugmentations
2025-06-24 11:41:30 -07:00
} from './augmentations/serverSearchAugmentations.js'
// Non-LLM exports
export {
MemoryStorageAugmentation,
FileSystemStorageAugmentation,
OPFSStorageAugmentation,
createMemoryAugmentation,
WebSocketConduitAugmentation,
WebRTCConduitAugmentation,
createConduitAugmentation,
ServerSearchConduitAugmentation,
ServerSearchActivationAugmentation,
createServerSearchAugmentations
2025-06-24 11:41:30 -07:00
}
// LLM augmentations are optional and not imported by default
// They can be imported directly from their module if needed:
// import { LLMCognitionAugmentation, LLMActivationAugmentation, createLLMAugmentations } from './augmentations/llmAugmentations.js'
// Export types
import type {
Vector,
VectorDocument,
SearchResult,
DistanceFunction,
EmbeddingFunction,
EmbeddingModel,
HNSWNoun,
HNSWVerb,
HNSWConfig,
StorageAdapter
2025-06-24 11:41:30 -07:00
} from './coreTypes.js'
// Export HNSW index and optimized version
import { HNSWIndex } from './hnsw/hnswIndex.js'
import {
HNSWIndexOptimized,
HNSWOptimizedConfig
} from './hnsw/hnswIndexOptimized.js'
2025-06-24 11:41:30 -07:00
export { HNSWIndex, HNSWIndexOptimized }
2025-06-24 11:41:30 -07:00
export type {
Vector,
VectorDocument,
SearchResult,
DistanceFunction,
EmbeddingFunction,
EmbeddingModel,
HNSWNoun,
HNSWVerb,
HNSWConfig,
HNSWOptimizedConfig,
StorageAdapter
2025-06-24 11:41:30 -07:00
}
// Export augmentation types
import type {
IAugmentation,
AugmentationResponse,
IWebSocketSupport,
ISenseAugmentation,
IConduitAugmentation,
ICognitionAugmentation,
IMemoryAugmentation,
IPerceptionAugmentation,
IDialogAugmentation,
IActivationAugmentation
2025-06-24 11:41:30 -07:00
} from './types/augmentations.js'
import { AugmentationType, BrainyAugmentations } from './types/augmentations.js'
2025-06-24 11:41:30 -07:00
export type { IAugmentation, AugmentationResponse, IWebSocketSupport }
2025-06-24 11:41:30 -07:00
export {
AugmentationType,
BrainyAugmentations,
ISenseAugmentation,
IConduitAugmentation,
ICognitionAugmentation,
IMemoryAugmentation,
IPerceptionAugmentation,
IDialogAugmentation,
IActivationAugmentation
2025-06-24 11:41:30 -07:00
}
// Export combined WebSocket augmentation interfaces
export type {
IWebSocketCognitionAugmentation,
IWebSocketSenseAugmentation,
IWebSocketPerceptionAugmentation,
IWebSocketActivationAugmentation,
IWebSocketDialogAugmentation,
IWebSocketConduitAugmentation,
IWebSocketMemoryAugmentation
2025-06-24 11:41:30 -07:00
} from './types/augmentations.js'
// Export graph types
import type {
GraphNoun,
GraphVerb,
EmbeddedGraphVerb,
Person,
Location,
Thing,
Event,
Concept,
Content,
Collection,
Organization,
Document,
Media,
File,
Message,
Dataset,
Product,
Service,
User,
Task,
Project,
Process,
State,
Role,
Topic,
Language,
Currency,
Measurement
2025-06-24 11:41:30 -07:00
} from './types/graphTypes.js'
import { NounType, VerbType } from './types/graphTypes.js'
2025-06-24 11:41:30 -07:00
export type {
GraphNoun,
GraphVerb,
EmbeddedGraphVerb,
Person,
Location,
Thing,
Event,
Concept,
Content,
Collection,
Organization,
Document,
Media,
File,
Message,
Dataset,
Product,
Service,
User,
Task,
Project,
Process,
State,
Role,
Topic,
Language,
Currency,
Measurement
2025-06-24 11:41:30 -07:00
}
// Export type utility functions
import { getNounTypes, getVerbTypes, getNounTypeMap, getVerbTypeMap } from './utils/typeUtils.js'
export {
NounType,
VerbType,
getNounTypes,
getVerbTypes,
getNounTypeMap,
getVerbTypeMap
}
2025-06-24 11:41:30 -07:00
// Export MCP (Model Control Protocol) components
import {
BrainyMCPAdapter,
MCPAugmentationToolset,
BrainyMCPService
2025-06-24 11:41:30 -07:00
} from './mcp/index.js' // Import from mcp/index.js
import {
MCPRequest,
MCPResponse,
MCPDataAccessRequest,
MCPToolExecutionRequest,
MCPSystemInfoRequest,
MCPAuthenticationRequest,
MCPRequestType,
MCPServiceOptions,
MCPTool,
MCP_VERSION
2025-06-24 11:41:30 -07:00
} from './types/mcpTypes.js'
export {
// MCP classes
BrainyMCPAdapter,
MCPAugmentationToolset,
BrainyMCPService,
// MCP types
MCPRequestType,
MCP_VERSION
2025-06-24 11:41:30 -07:00
}
export type {
MCPRequest,
MCPResponse,
MCPDataAccessRequest,
MCPToolExecutionRequest,
MCPSystemInfoRequest,
MCPAuthenticationRequest,
MCPServiceOptions,
MCPTool
2025-06-24 11:41:30 -07:00
}