agentic-flow 2.0.1-alpha.2 → 2.0.1-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +352 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentdb/controllers/EmbeddingService.d.ts +37 -0
- package/dist/agentdb/controllers/EmbeddingService.d.ts.map +1 -0
- package/dist/agentdb/controllers/EmbeddingService.js +1 -0
- package/dist/agentdb/controllers/EmbeddingService.js.map +1 -0
- package/dist/billing/mcp/tools.d.ts.map +1 -1
- package/dist/billing/mcp/tools.js +2 -0
- package/dist/billing/mcp/tools.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts +18 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +755 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli-proxy.d.ts +1 -1
- package/dist/cli-proxy.d.ts.map +1 -1
- package/dist/cli-proxy.js +28 -1
- package/dist/cli-proxy.js.map +1 -1
- package/dist/core/agentdb-fast.js +3 -3
- package/dist/core/agentdb-fast.js.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.js +32 -17
- package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
- package/dist/core/attention-native.d.ts +1 -0
- package/dist/core/attention-native.d.ts.map +1 -1
- package/dist/core/attention-native.js +6 -1
- package/dist/core/attention-native.js.map +1 -1
- package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
- package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
- package/dist/intelligence/EmbeddingCache.d.ts +112 -0
- package/dist/intelligence/EmbeddingCache.d.ts.map +1 -0
- package/dist/intelligence/EmbeddingCache.js +624 -0
- package/dist/intelligence/EmbeddingCache.js.map +1 -0
- package/dist/intelligence/EmbeddingService.d.ts +380 -0
- package/dist/intelligence/EmbeddingService.d.ts.map +1 -0
- package/dist/intelligence/EmbeddingService.js +1484 -0
- package/dist/intelligence/EmbeddingService.js.map +1 -0
- package/dist/intelligence/IntelligenceStore.d.ts +168 -0
- package/dist/intelligence/IntelligenceStore.d.ts.map +1 -0
- package/dist/intelligence/IntelligenceStore.js +364 -0
- package/dist/intelligence/IntelligenceStore.js.map +1 -0
- package/dist/intelligence/RuVectorIntelligence.d.ts +362 -0
- package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -0
- package/dist/intelligence/RuVectorIntelligence.js +853 -0
- package/dist/intelligence/RuVectorIntelligence.js.map +1 -0
- package/dist/intelligence/embedding-benchmark.d.ts +7 -0
- package/dist/intelligence/embedding-benchmark.d.ts.map +1 -0
- package/dist/intelligence/embedding-benchmark.js +155 -0
- package/dist/intelligence/embedding-benchmark.js.map +1 -0
- package/dist/intelligence/index.d.ts +14 -0
- package/dist/intelligence/index.d.ts.map +1 -0
- package/dist/intelligence/index.js +14 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/llm/RuvLLMOrchestrator.d.ts +184 -0
- package/dist/llm/RuvLLMOrchestrator.d.ts.map +1 -0
- package/dist/llm/RuvLLMOrchestrator.js +442 -0
- package/dist/llm/RuvLLMOrchestrator.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +8 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +86 -21
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/servers/hooks-server.d.ts +15 -0
- package/dist/mcp/fastmcp/servers/hooks-server.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/hooks-server.js +63 -0
- package/dist/mcp/fastmcp/servers/hooks-server.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/benchmark.d.ts +20 -0
- package/dist/mcp/fastmcp/tools/hooks/benchmark.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/benchmark.js +110 -0
- package/dist/mcp/fastmcp/tools/hooks/benchmark.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/build-agents.d.ts +7 -0
- package/dist/mcp/fastmcp/tools/hooks/build-agents.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/build-agents.js +276 -0
- package/dist/mcp/fastmcp/tools/hooks/build-agents.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/explain.d.ts +6 -0
- package/dist/mcp/fastmcp/tools/hooks/explain.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/explain.js +164 -0
- package/dist/mcp/fastmcp/tools/hooks/explain.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/index.d.ts +28 -0
- package/dist/mcp/fastmcp/tools/hooks/index.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/index.js +59 -0
- package/dist/mcp/fastmcp/tools/hooks/index.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts +307 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +714 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.d.ts +58 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js +425 -0
- package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/metrics.d.ts +6 -0
- package/dist/mcp/fastmcp/tools/hooks/metrics.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/metrics.js +137 -0
- package/dist/mcp/fastmcp/tools/hooks/metrics.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/post-command.d.ts +7 -0
- package/dist/mcp/fastmcp/tools/hooks/post-command.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/post-command.js +91 -0
- package/dist/mcp/fastmcp/tools/hooks/post-command.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/post-edit.d.ts +12 -0
- package/dist/mcp/fastmcp/tools/hooks/post-edit.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/post-edit.js +146 -0
- package/dist/mcp/fastmcp/tools/hooks/post-edit.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-command.d.ts +7 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-command.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-command.js +70 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-command.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-edit.d.ts +14 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-edit.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-edit.js +121 -0
- package/dist/mcp/fastmcp/tools/hooks/pre-edit.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts +7 -0
- package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js +171 -0
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/route.d.ts +12 -0
- package/dist/mcp/fastmcp/tools/hooks/route.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/route.js +267 -0
- package/dist/mcp/fastmcp/tools/hooks/route.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/shared.d.ts +46 -0
- package/dist/mcp/fastmcp/tools/hooks/shared.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/shared.js +159 -0
- package/dist/mcp/fastmcp/tools/hooks/shared.js.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/transfer.d.ts +7 -0
- package/dist/mcp/fastmcp/tools/hooks/transfer.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/hooks/transfer.js +151 -0
- package/dist/mcp/fastmcp/tools/hooks/transfer.js.map +1 -0
- package/dist/mcp/tools/agent-booster-tools.d.ts +10 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
- package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
- package/dist/mcp/tools/sona-tools.js +15 -3
- package/dist/mcp/tools/sona-tools.js.map +1 -1
- package/dist/memory/SharedMemoryPool.d.ts +16 -3
- package/dist/memory/SharedMemoryPool.d.ts.map +1 -1
- package/dist/memory/SharedMemoryPool.js +33 -1
- package/dist/memory/SharedMemoryPool.js.map +1 -1
- package/dist/middleware/auth.middleware.d.ts +114 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +222 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
- package/dist/optimizations/agent-booster-migration.js.map +1 -1
- package/dist/proxy/anthropic-to-gemini.d.ts.map +1 -1
- package/dist/proxy/anthropic-to-gemini.js.map +1 -1
- package/dist/proxy/anthropic-to-openrouter.d.ts.map +1 -1
- package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
- package/dist/proxy/anthropic-to-requesty.d.ts.map +1 -1
- package/dist/proxy/anthropic-to-requesty.js.map +1 -1
- package/dist/proxy/quic-proxy.d.ts +0 -1
- package/dist/proxy/quic-proxy.d.ts.map +1 -1
- package/dist/proxy/quic-proxy.js +2 -1
- package/dist/proxy/quic-proxy.js.map +1 -1
- package/dist/reasoningbank/AdvancedMemory.d.ts.map +1 -1
- package/dist/reasoningbank/AdvancedMemory.js +12 -1
- package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
- package/dist/reasoningbank/HybridBackend.d.ts +9 -0
- package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
- package/dist/reasoningbank/HybridBackend.js +48 -4
- package/dist/reasoningbank/HybridBackend.js.map +1 -1
- package/dist/reasoningbank/backend-selector.d.ts +1 -1
- package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
- package/dist/reasoningbank/backend-selector.js.map +1 -1
- package/dist/reasoningbank/index-new.d.ts +0 -6
- package/dist/reasoningbank/index-new.d.ts.map +1 -1
- package/dist/reasoningbank/index-new.js +9 -7
- package/dist/reasoningbank/index-new.js.map +1 -1
- package/dist/reasoningbank/index.d.ts +1 -6
- package/dist/reasoningbank/index.d.ts.map +1 -1
- package/dist/reasoningbank/index.js +10 -7
- package/dist/reasoningbank/index.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +3 -1
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/routing/CircuitBreakerRouter.d.ts +187 -0
- package/dist/routing/CircuitBreakerRouter.d.ts.map +1 -0
- package/dist/routing/CircuitBreakerRouter.js +460 -0
- package/dist/routing/CircuitBreakerRouter.js.map +1 -0
- package/dist/routing/SemanticRouter.d.ts +164 -0
- package/dist/routing/SemanticRouter.d.ts.map +1 -0
- package/dist/routing/SemanticRouter.js +291 -0
- package/dist/routing/SemanticRouter.js.map +1 -0
- package/dist/routing/index.d.ts +12 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +10 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/services/embedding-service.d.ts.map +1 -1
- package/dist/services/embedding-service.js +5 -2
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/sona-agent-training.js +1 -1
- package/dist/services/sona-agent-training.js.map +1 -1
- package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
- package/dist/services/sona-agentdb-integration.js +10 -5
- package/dist/services/sona-agentdb-integration.js.map +1 -1
- package/dist/services/sona-service.d.ts +6 -6
- package/dist/services/sona-service.d.ts.map +1 -1
- package/dist/services/sona-service.js +3 -1
- package/dist/services/sona-service.js.map +1 -1
- package/dist/utils/agentdb-runtime-patch.d.ts +1 -0
- package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -1
- package/dist/utils/agentdb-runtime-patch.js +97 -2
- package/dist/utils/agentdb-runtime-patch.js.map +1 -1
- package/dist/utils/audit-logger.d.ts +115 -0
- package/dist/utils/audit-logger.d.ts.map +1 -0
- package/dist/utils/audit-logger.js +228 -0
- package/dist/utils/audit-logger.js.map +1 -0
- package/dist/utils/cli.d.ts +1 -1
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +5 -0
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/input-validator.d.ts +116 -0
- package/dist/utils/input-validator.d.ts.map +1 -0
- package/dist/utils/input-validator.js +299 -0
- package/dist/utils/input-validator.js.map +1 -0
- package/dist/utils/rate-limiter.js +2 -2
- package/dist/utils/rate-limiter.js.map +1 -1
- package/package.json +14 -3
- package/scripts/postinstall.js +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuVectorIntelligence.js","sourceRoot":"","sources":["../../src/intelligence/RuVectorIntelligence.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * RuVector Unified Intelligence Layer\n *\n * Integrates the FULL power of RuVector ecosystem:\n *\n * @ruvector/sona - Self-Learning:\n * - Micro-LoRA: Ultra-fast rank-1/2 adaptations (~0.1ms)\n * - Base-LoRA: Deeper pattern adaptations\n * - EWC++: Elastic Weight Consolidation (catastrophic forgetting prevention)\n * - ReasoningBank: Pattern storage/retrieval via findPatterns\n * - Trajectory tracking: Learn from execution paths\n *\n * @ruvector/attention - Advanced Attention:\n * - MultiHeadAttention: Standard transformer attention\n * - FlashAttention: Memory-efficient O(n) attention\n * - HyperbolicAttention: Poincaré ball geometry for hierarchies\n * - MoEAttention: Mixture of Experts routing\n * - GraphRoPeAttention: Graph + Rotary Position Embeddings\n * - EdgeFeaturedAttention: Edge-aware graph attention\n * - DualSpaceAttention: Euclidean + Hyperbolic hybrid\n *\n * @ruvector/core - Vector Database:\n * - HNSW indexing: 150x faster than brute force\n * - Real vector similarity search\n * - Cosine/Euclidean/Dot product distance\n *\n * Performance:\n * - Micro-LoRA adaptation: ~0.1ms\n * - FlashAttention: O(n) complexity vs O(n²)\n * - HNSW search: O(log n) vs O(n)\n * - Background learning: Non-blocking\n */\n\n// Import from @ruvector/sona\nimport { SonaEngine, type JsSonaConfig, type JsLearnedPattern } from '@ruvector/sona';\n\n// Import from @ruvector/attention\nimport {\n MultiHeadAttention,\n FlashAttention,\n HyperbolicAttention,\n MoEAttention,\n GraphRoPeAttention,\n DualSpaceAttention,\n // Training (simplified - only AdamOptimizer needed)\n AdamOptimizer,\n // Utilities\n computeAttentionAsync,\n computeFlashAttentionAsync,\n computeHyperbolicAttentionAsync,\n // Hyperbolic math\n poincareDistance,\n projectToPoincareBall,\n // Types\n type MoEConfig,\n AttentionType,\n} from '@ruvector/attention';\n\n// Import from ruvector core (for HNSW)\nimport ruvector from 'ruvector';\n\n/**\n * Intelligence Layer Configuration\n */\nexport interface RuVectorIntelligenceConfig {\n /** Embedding dimension (default: 384 for all-MiniLM-L6-v2) */\n embeddingDim?: number;\n\n /** Hidden dimension for SONA (default: 256) */\n hiddenDim?: number;\n\n /** Enable SONA self-learning (default: true) */\n enableSona?: boolean;\n\n /** SONA configuration */\n sonaConfig?: Partial<JsSonaConfig>;\n\n /** Attention type for agent routing (default: 'moe') */\n attentionType?: 'multi_head' | 'flash' | 'hyperbolic' | 'moe' | 'graph' | 'dual';\n\n /** Number of attention heads (default: 8) */\n numHeads?: number;\n\n /** Number of MoE experts (default: 4) */\n numExperts?: number;\n\n /** Top-K experts to use (default: 2) */\n topK?: number;\n\n /** Hyperbolic curvature for hierarchical structures (default: 1.0) */\n curvature?: number;\n\n /** Enable HNSW vector index (default: true) */\n enableHnsw?: boolean;\n\n /** HNSW M parameter - connections per node (default: 16) */\n hnswM?: number;\n\n /** HNSW ef_construction (default: 200) */\n hnswEfConstruction?: number;\n\n /** Enable trajectory tracking (default: true) */\n enableTrajectories?: boolean;\n\n /** Quality threshold for learning (default: 0.5) */\n qualityThreshold?: number;\n\n /** Background learning interval in ms (default: 60000 = 1 min) */\n backgroundIntervalMs?: number;\n\n /** Maximum trajectories to keep in memory (default: 1000, LRU eviction) */\n maxTrajectories?: number;\n\n /** Trajectory TTL in ms (default: 1800000 = 30 min) */\n trajectoryTTLMs?: number;\n\n /** Maximum agent embeddings to cache (default: 500, LRU eviction) */\n maxAgentEmbeddings?: number;\n}\n\n/**\n * Trajectory for learning\n */\nexport interface Trajectory {\n id: number;\n query: string;\n embedding: number[];\n steps: TrajectoryStep[];\n route?: string;\n contexts: string[];\n startTime: number;\n}\n\nexport interface TrajectoryStep {\n action: string;\n activations: number[];\n attentionWeights: number[];\n reward: number;\n timestamp: number;\n}\n\n/**\n * Agent routing result\n */\nexport interface AgentRoutingResult {\n agentId: string;\n confidence: number;\n attentionWeights: Float32Array;\n expertWeights?: number[];\n latencyMs: number;\n usedHnsw: boolean;\n usedSona: boolean;\n}\n\n/**\n * Learning outcome\n */\nexport interface LearningOutcome {\n trajectoryId: number;\n success: boolean;\n quality: number;\n patternsLearned: number;\n adaptations: {\n microLora: boolean;\n baseLora: boolean;\n ewc: boolean;\n };\n}\n\n/**\n * RuVector Unified Intelligence Layer\n *\n * Combines SONA self-learning, advanced attention mechanisms,\n * and HNSW vector search for intelligent agent orchestration.\n */\n/**\n * Result wrapper for operations that can fail\n */\nexport interface OperationResult<T> {\n success: boolean;\n value?: T;\n error?: string;\n}\n\nexport class RuVectorIntelligence {\n private config: Required<RuVectorIntelligenceConfig>;\n private initialized = false;\n private initPromise: Promise<void> | null = null;\n\n // SONA Engine for self-learning\n private sona: SonaEngine | null = null;\n\n // Attention mechanisms\n private multiHeadAttention: MultiHeadAttention | null = null;\n private flashAttention: FlashAttention | null = null;\n private hyperbolicAttention: HyperbolicAttention | null = null;\n private moeAttention: MoEAttention | null = null;\n private graphAttention: GraphRoPeAttention | null = null;\n private dualSpaceAttention: DualSpaceAttention | null = null;\n\n // Training (simplified - removed unused scheduler/loss)\n private optimizer: AdamOptimizer | null = null;\n\n // HNSW index for vector search\n private hnswIndex: any = null;\n\n // Active trajectories with LRU tracking\n private trajectories: Map<number, Trajectory> = new Map();\n private trajectoryAccessOrder: number[] = []; // For LRU eviction\n private nextTrajectoryId = 0;\n\n // Agent embeddings with LRU tracking\n private agentEmbeddings: Map<string, Float32Array> = new Map();\n private agentAccessOrder: string[] = []; // For LRU eviction\n\n // Background learning timer\n private learningTimer: NodeJS.Timeout | null = null;\n\n // Cleanup timer for stale trajectories\n private cleanupTimer: NodeJS.Timeout | null = null;\n\n // Statistics\n private stats = {\n totalRoutings: 0,\n totalTrajectories: 0,\n totalLearningCycles: 0,\n avgRoutingLatencyMs: 0,\n patternsLearned: 0,\n hnswQueries: 0,\n sonaAdaptations: 0,\n evictedTrajectories: 0,\n evictedAgents: 0,\n };\n\n constructor(config?: RuVectorIntelligenceConfig) {\n this.config = {\n embeddingDim: config?.embeddingDim ?? 384,\n hiddenDim: config?.hiddenDim ?? 256,\n enableSona: config?.enableSona ?? true,\n sonaConfig: config?.sonaConfig ?? {},\n attentionType: config?.attentionType ?? 'moe',\n numHeads: config?.numHeads ?? 8,\n numExperts: config?.numExperts ?? 4,\n topK: config?.topK ?? 2,\n curvature: config?.curvature ?? 1.0,\n enableHnsw: config?.enableHnsw ?? true,\n hnswM: config?.hnswM ?? 16,\n hnswEfConstruction: config?.hnswEfConstruction ?? 200,\n enableTrajectories: config?.enableTrajectories ?? true,\n qualityThreshold: config?.qualityThreshold ?? 0.5,\n backgroundIntervalMs: config?.backgroundIntervalMs ?? 60000,\n // Memory limits with LRU eviction\n maxTrajectories: config?.maxTrajectories ?? 1000,\n trajectoryTTLMs: config?.trajectoryTTLMs ?? 1800000, // 30 min\n maxAgentEmbeddings: config?.maxAgentEmbeddings ?? 500,\n };\n\n // Initialize asynchronously to avoid race conditions\n this.initPromise = this.initializeAsync();\n }\n\n /**\n * Wait for initialization to complete\n */\n async waitForInit(): Promise<void> {\n if (this.initPromise) {\n await this.initPromise;\n }\n }\n\n /**\n * Initialize all components (async to avoid race conditions)\n */\n private async initializeAsync(): Promise<void> {\n if (this.initialized) return;\n\n const dim = this.config.embeddingDim;\n\n // Initialize SONA Engine\n if (this.config.enableSona) {\n try {\n // Ensure all values are explicitly defined (no undefined values)\n const sonaConfig: JsSonaConfig = {\n hiddenDim: this.config.hiddenDim ?? 256,\n embeddingDim: dim ?? 384,\n microLoraRank: 1, // Ultra-fast rank-1\n baseLoraRank: 8,\n microLoraLr: 0.001,\n baseLoraLr: 0.0001,\n ewcLambda: 1000.0, // EWC++ regularization\n patternClusters: 50,\n trajectoryCapacity: 10000,\n qualityThreshold: this.config.qualityThreshold ?? 0.5, // Ensure defined\n enableSimd: true,\n // Only spread defined values from sonaConfig\n ...(this.config.sonaConfig && Object.fromEntries(\n Object.entries(this.config.sonaConfig).filter(([, v]) => v !== undefined)\n )),\n };\n\n this.sona = SonaEngine.withConfig(sonaConfig);\n } catch (err) {\n console.warn('[RuVectorIntelligence] SONA init failed, using fallback:', err);\n this.sona = null;\n }\n }\n\n // Initialize attention mechanisms based on type\n try {\n switch (this.config.attentionType) {\n case 'multi_head':\n this.multiHeadAttention = new MultiHeadAttention(dim, this.config.numHeads ?? 8);\n break;\n\n case 'flash':\n this.flashAttention = new FlashAttention(dim);\n break;\n\n case 'hyperbolic':\n this.hyperbolicAttention = new HyperbolicAttention(dim, this.config.curvature ?? 1.0);\n break;\n\n case 'moe':\n const moeConfig: MoEConfig = {\n dim,\n numExperts: this.config.numExperts ?? 4,\n topK: this.config.topK ?? 2,\n };\n this.moeAttention = new MoEAttention(moeConfig);\n break;\n\n case 'graph':\n this.graphAttention = new GraphRoPeAttention(dim, 10000);\n break;\n\n case 'dual':\n this.dualSpaceAttention = new DualSpaceAttention(\n dim,\n this.config.curvature ?? 1.0,\n 0.5, // Euclidean weight\n 0.5 // Hyperbolic weight\n );\n break;\n }\n } catch (err) {\n console.warn('[RuVectorIntelligence] Attention init failed, using fallback:', err);\n }\n\n // Initialize training components (simplified - only optimizer needed)\n try {\n // AdamOptimizer requires: learning_rate, beta1, beta2, epsilon\n this.optimizer = new AdamOptimizer(0.001, 0.9, 0.999, 1e-8);\n } catch (err) {\n console.warn('[RuVectorIntelligence] Optimizer init failed:', err);\n }\n\n // Initialize HNSW index\n if (this.config.enableHnsw) {\n try {\n this.initializeHnsw();\n } catch (err) {\n console.warn('[RuVectorIntelligence] HNSW init failed:', err);\n }\n }\n\n // Start background learning\n if (this.config.enableSona) {\n this.startBackgroundLearning();\n }\n\n // Start cleanup timer for stale trajectories\n this.startCleanupTimer();\n\n this.initialized = true;\n }\n\n /**\n * Start cleanup timer for stale trajectories\n */\n private startCleanupTimer(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n }\n\n // Run cleanup every 5 minutes\n this.cleanupTimer = setInterval(() => {\n this.cleanupStaleTrajectories();\n }, 300000);\n }\n\n /**\n * Clean up trajectories older than TTL\n */\n private cleanupStaleTrajectories(): void {\n const now = Date.now();\n const ttl = this.config.trajectoryTTLMs;\n\n for (const [id, trajectory] of this.trajectories) {\n if (now - trajectory.startTime > ttl) {\n this.trajectories.delete(id);\n this.trajectoryAccessOrder = this.trajectoryAccessOrder.filter(t => t !== id);\n this.stats.evictedTrajectories++;\n }\n }\n }\n\n /**\n * LRU eviction for trajectories when limit exceeded\n */\n private evictOldestTrajectory(): void {\n if (this.trajectoryAccessOrder.length === 0) return;\n\n const oldestId = this.trajectoryAccessOrder.shift()!;\n this.trajectories.delete(oldestId);\n this.stats.evictedTrajectories++;\n }\n\n /**\n * LRU eviction for agent embeddings when limit exceeded\n */\n private evictOldestAgent(): void {\n if (this.agentAccessOrder.length === 0) return;\n\n const oldestId = this.agentAccessOrder.shift()!;\n this.agentEmbeddings.delete(oldestId);\n this.stats.evictedAgents++;\n }\n\n /**\n * Update LRU access order for trajectory\n */\n private touchTrajectory(id: number): void {\n const idx = this.trajectoryAccessOrder.indexOf(id);\n if (idx !== -1) {\n this.trajectoryAccessOrder.splice(idx, 1);\n }\n this.trajectoryAccessOrder.push(id);\n }\n\n /**\n * Update LRU access order for agent\n */\n private touchAgent(id: string): void {\n const idx = this.agentAccessOrder.indexOf(id);\n if (idx !== -1) {\n this.agentAccessOrder.splice(idx, 1);\n }\n this.agentAccessOrder.push(id);\n }\n\n /**\n * Initialize HNSW index for fast vector search\n */\n private initializeHnsw(): void {\n try {\n // Use ruvector core HNSW\n this.hnswIndex = new ruvector.HnswIndex({\n dim: this.config.embeddingDim,\n m: this.config.hnswM,\n efConstruction: this.config.hnswEfConstruction,\n distance: 'cosine',\n });\n } catch (error) {\n console.warn('HNSW initialization failed, falling back to brute force:', error);\n this.hnswIndex = null;\n }\n }\n\n /**\n * Register an agent with its embedding\n *\n * @param agentId - Unique agent identifier\n * @param embedding - Agent's semantic embedding\n * @param metadata - Optional metadata\n * @returns Operation result indicating success/failure\n */\n async registerAgent(\n agentId: string,\n embedding: number[] | Float32Array,\n metadata?: Record<string, any>\n ): Promise<OperationResult<void>> {\n await this.waitForInit();\n\n try {\n const embeddingArray = embedding instanceof Float32Array\n ? embedding\n : new Float32Array(embedding);\n\n // LRU eviction if at capacity\n while (this.agentEmbeddings.size >= this.config.maxAgentEmbeddings) {\n this.evictOldestAgent();\n }\n\n // Store in cache and update LRU order\n this.agentEmbeddings.set(agentId, embeddingArray);\n this.touchAgent(agentId);\n\n // Add to HNSW index\n if (this.hnswIndex) {\n try {\n await this.hnswIndex.add(agentId, embeddingArray);\n } catch (error) {\n console.warn(`Failed to add agent ${agentId} to HNSW:`, error);\n }\n }\n\n return { success: true };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Route a task to the best agent using full intelligence stack\n *\n * Uses:\n * - HNSW for fast candidate retrieval\n * - Attention mechanism for ranking\n * - SONA for adaptive learning\n *\n * @param taskEmbedding - Task's semantic embedding\n * @param candidates - Optional candidate agent IDs\n * @param topK - Number of results\n */\n async routeTask(\n taskEmbedding: number[] | Float32Array,\n candidates?: string[],\n topK: number = 5\n ): Promise<AgentRoutingResult[]> {\n const startTime = performance.now();\n const query = taskEmbedding instanceof Float32Array\n ? taskEmbedding\n : new Float32Array(taskEmbedding);\n\n let results: AgentRoutingResult[] = [];\n let usedHnsw = false;\n let usedSona = false;\n\n // Step 1: Get candidates via HNSW (150x faster than brute force)\n let candidateAgents: Array<{ id: string; embedding: Float32Array; score: number }> = [];\n\n if (this.hnswIndex && this.agentEmbeddings.size > 10) {\n try {\n const hnswResults = await this.hnswIndex.search(query, Math.min(topK * 2, 20));\n candidateAgents = hnswResults.map((r: any) => ({\n id: r.id,\n embedding: this.agentEmbeddings.get(r.id)!,\n score: r.score,\n }));\n usedHnsw = true;\n this.stats.hnswQueries++;\n } catch (error) {\n // Fallback to all agents\n }\n }\n\n // Fallback: use provided candidates or all agents\n if (candidateAgents.length === 0) {\n const agentIds = candidates || Array.from(this.agentEmbeddings.keys());\n candidateAgents = agentIds\n .filter(id => this.agentEmbeddings.has(id))\n .map(id => ({\n id,\n embedding: this.agentEmbeddings.get(id)!,\n score: 0,\n }));\n }\n\n if (candidateAgents.length === 0) {\n return [];\n }\n\n // Step 2: Apply SONA Micro-LoRA transformation (~0.1ms)\n let transformedQuery = query;\n if (this.sona) {\n try {\n const loraResult = this.sona.applyMicroLora(Array.from(query));\n transformedQuery = new Float32Array(loraResult);\n usedSona = true;\n this.stats.sonaAdaptations++;\n } catch (error) {\n // Use original query\n }\n }\n\n // Step 3: Compute attention scores\n const keys = candidateAgents.map(c => c.embedding);\n const values = candidateAgents.map(c => c.embedding);\n\n let attentionOutput: Float32Array;\n let expertWeights: number[] | undefined;\n\n switch (this.config.attentionType) {\n case 'moe':\n if (this.moeAttention) {\n attentionOutput = this.moeAttention.compute(transformedQuery, keys, values);\n // MoE provides expert routing weights\n expertWeights = Array.from(attentionOutput.slice(0, this.config.numExperts));\n } else {\n attentionOutput = this.computeFallbackAttention(transformedQuery, keys, values);\n }\n break;\n\n case 'flash':\n if (this.flashAttention) {\n attentionOutput = this.flashAttention.compute(transformedQuery, keys, values);\n } else {\n attentionOutput = this.computeFallbackAttention(transformedQuery, keys, values);\n }\n break;\n\n case 'hyperbolic':\n if (this.hyperbolicAttention) {\n attentionOutput = this.hyperbolicAttention.compute(transformedQuery, keys, values);\n } else {\n attentionOutput = this.computeFallbackAttention(transformedQuery, keys, values);\n }\n break;\n\n case 'dual':\n if (this.dualSpaceAttention) {\n attentionOutput = this.dualSpaceAttention.compute(transformedQuery, keys, values);\n } else {\n attentionOutput = this.computeFallbackAttention(transformedQuery, keys, values);\n }\n break;\n\n default:\n if (this.multiHeadAttention) {\n attentionOutput = this.multiHeadAttention.compute(transformedQuery, keys, values);\n } else {\n attentionOutput = this.computeFallbackAttention(transformedQuery, keys, values);\n }\n }\n\n // Step 4: Compute similarity scores for ranking\n const scores = candidateAgents.map((agent, i) => {\n // Combine HNSW score with attention-weighted score\n const attentionScore = this.cosineSimilarity(\n attentionOutput,\n agent.embedding\n );\n const hnswScore = agent.score || 0;\n\n // Weighted combination\n const finalScore = usedHnsw\n ? 0.3 * hnswScore + 0.7 * attentionScore\n : attentionScore;\n\n return {\n agentId: agent.id,\n confidence: finalScore,\n attentionWeights: attentionOutput,\n expertWeights,\n latencyMs: 0,\n usedHnsw,\n usedSona,\n };\n });\n\n // Sort by confidence\n results = scores\n .sort((a, b) => b.confidence - a.confidence)\n .slice(0, topK);\n\n // Update latency\n const latencyMs = performance.now() - startTime;\n results.forEach(r => (r.latencyMs = latencyMs));\n\n // Update stats\n this.stats.totalRoutings++;\n this.stats.avgRoutingLatencyMs =\n (this.stats.avgRoutingLatencyMs * (this.stats.totalRoutings - 1) + latencyMs) /\n this.stats.totalRoutings;\n\n return results;\n }\n\n /**\n * Fallback attention using dot product\n */\n private computeFallbackAttention(\n query: Float32Array,\n keys: Float32Array[],\n values: Float32Array[]\n ): Float32Array {\n const dim = query.length;\n const result = new Float32Array(dim);\n let totalWeight = 0;\n\n for (let i = 0; i < keys.length; i++) {\n const similarity = this.cosineSimilarity(query, keys[i]);\n const weight = Math.exp(similarity * 10); // Temperature scaling\n totalWeight += weight;\n\n for (let j = 0; j < dim; j++) {\n result[j] += weight * values[i][j];\n }\n }\n\n // Normalize\n if (totalWeight > 0) {\n for (let j = 0; j < dim; j++) {\n result[j] /= totalWeight;\n }\n }\n\n return result;\n }\n\n /**\n * Cosine similarity between two vectors\n */\n private cosineSimilarity(a: Float32Array, b: Float32Array): number {\n let dot = 0;\n let normA = 0;\n let normB = 0;\n\n for (let i = 0; i < a.length; i++) {\n dot += a[i] * b[i];\n normA += a[i] * a[i];\n normB += b[i] * b[i];\n }\n\n const norm = Math.sqrt(normA) * Math.sqrt(normB);\n return norm > 0 ? dot / norm : 0;\n }\n\n // ==========================================================================\n // Trajectory Learning (SONA)\n // ==========================================================================\n\n /**\n * Begin a new trajectory for learning\n *\n * @param query - The task query\n * @param embedding - Query embedding\n * @returns Operation result with trajectory ID\n */\n beginTrajectory(query: string, embedding: number[]): OperationResult<number> {\n if (!this.config.enableTrajectories) {\n return {\n success: false,\n error: 'Trajectories are disabled in config',\n };\n }\n\n if (!this.sona) {\n return {\n success: false,\n error: 'SONA engine not initialized',\n };\n }\n\n try {\n // LRU eviction if at capacity\n while (this.trajectories.size >= this.config.maxTrajectories) {\n this.evictOldestTrajectory();\n }\n\n const trajectoryId = this.nextTrajectoryId++;\n\n // Start SONA trajectory\n const sonaId = this.sona.beginTrajectory(embedding);\n\n // Store local trajectory\n this.trajectories.set(trajectoryId, {\n id: sonaId,\n query,\n embedding,\n steps: [],\n contexts: [],\n startTime: Date.now(),\n });\n\n // Update LRU order\n this.touchTrajectory(trajectoryId);\n\n this.stats.totalTrajectories++;\n return { success: true, value: trajectoryId };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Add a step to trajectory\n *\n * @param trajectoryId - Trajectory ID from beginTrajectory\n * @param action - Action taken (e.g., agent selected)\n * @param reward - Reward for this step (0-1)\n * @param activations - Optional activations\n * @param attentionWeights - Optional attention weights\n */\n addTrajectoryStep(\n trajectoryId: number,\n action: string,\n reward: number,\n activations?: number[],\n attentionWeights?: number[]\n ): void {\n const trajectory = this.trajectories.get(trajectoryId);\n if (!trajectory || !this.sona) {\n return;\n }\n\n const step: TrajectoryStep = {\n action,\n activations: activations || new Array(this.config.hiddenDim).fill(0),\n attentionWeights: attentionWeights || new Array(this.config.numHeads).fill(0),\n reward,\n timestamp: Date.now(),\n };\n\n trajectory.steps.push(step);\n\n // Add to SONA\n this.sona.addTrajectoryStep(\n trajectory.id,\n step.activations,\n step.attentionWeights,\n reward\n );\n }\n\n /**\n * Set the route (agent selected) for trajectory\n */\n setTrajectoryRoute(trajectoryId: number, route: string): void {\n const trajectory = this.trajectories.get(trajectoryId);\n if (!trajectory || !this.sona) {\n return;\n }\n\n trajectory.route = route;\n this.sona.setTrajectoryRoute(trajectory.id, route);\n }\n\n /**\n * Add context to trajectory\n */\n addTrajectoryContext(trajectoryId: number, contextId: string): void {\n const trajectory = this.trajectories.get(trajectoryId);\n if (!trajectory || !this.sona) {\n return;\n }\n\n trajectory.contexts.push(contextId);\n this.sona.addTrajectoryContext(trajectory.id, contextId);\n }\n\n /**\n * End trajectory and submit for learning\n *\n * @param trajectoryId - Trajectory ID\n * @param success - Whether the task succeeded\n * @param quality - Quality score (0-1)\n * @returns Learning outcome\n */\n endTrajectory(\n trajectoryId: number,\n success: boolean,\n quality: number\n ): LearningOutcome {\n const trajectory = this.trajectories.get(trajectoryId);\n if (!trajectory || !this.sona) {\n return {\n trajectoryId,\n success,\n quality,\n patternsLearned: 0,\n adaptations: { microLora: false, baseLora: false, ewc: false },\n };\n }\n\n // End SONA trajectory\n this.sona.endTrajectory(trajectory.id, quality);\n\n // Cleanup\n this.trajectories.delete(trajectoryId);\n\n return {\n trajectoryId,\n success,\n quality,\n patternsLearned: quality >= this.config.qualityThreshold ? 1 : 0,\n adaptations: {\n microLora: true, // Micro-LoRA always adapts\n baseLora: quality >= 0.7, // Base-LoRA for high quality\n ewc: quality >= 0.8, // EWC++ for very high quality\n },\n };\n }\n\n // ==========================================================================\n // Pattern Retrieval (ReasoningBank)\n // ==========================================================================\n\n /**\n * Find similar learned patterns\n *\n * Uses SONA's ReasoningBank for pattern retrieval\n *\n * @param embedding - Query embedding\n * @param k - Number of patterns to return\n */\n findPatterns(embedding: number[], k: number = 5): JsLearnedPattern[] {\n if (!this.sona) {\n return [];\n }\n\n return this.sona.findPatterns(embedding, k);\n }\n\n /**\n * Force a learning cycle\n */\n forceLearning(): string {\n if (!this.sona) {\n return 'SONA not enabled';\n }\n\n const result = this.sona.forceLearn();\n this.stats.totalLearningCycles++;\n return result;\n }\n\n // ==========================================================================\n // Background Learning\n // ==========================================================================\n\n /**\n * Start background learning timer\n */\n private startBackgroundLearning(): void {\n if (this.learningTimer) {\n clearInterval(this.learningTimer);\n }\n\n this.learningTimer = setInterval(() => {\n if (this.sona) {\n const result = this.sona.tick();\n if (result) {\n this.stats.totalLearningCycles++;\n this.stats.patternsLearned = this.getPatternsCount();\n }\n }\n }, this.config.backgroundIntervalMs);\n }\n\n /**\n * Get patterns count from SONA stats\n */\n private getPatternsCount(): number {\n if (!this.sona) return 0;\n\n try {\n const stats = JSON.parse(this.sona.getStats());\n return stats.patterns_count || 0;\n } catch {\n return 0;\n }\n }\n\n // ==========================================================================\n // Async Attention (for large batches)\n // ==========================================================================\n\n /**\n * Compute attention asynchronously\n *\n * Useful for large batches or when non-blocking is required\n */\n async computeAttentionAsync(\n query: Float32Array,\n keys: Float32Array[],\n values: Float32Array[],\n type?: 'flash' | 'hyperbolic' | 'standard'\n ): Promise<Float32Array> {\n switch (type) {\n case 'flash':\n return computeFlashAttentionAsync(query, keys, values);\n\n case 'hyperbolic':\n return computeHyperbolicAttentionAsync(\n query,\n keys,\n values,\n this.config.curvature\n );\n\n default:\n return computeAttentionAsync(query, keys, values, AttentionType.MultiHead);\n }\n }\n\n // ==========================================================================\n // Hyperbolic Operations (for hierarchical structures)\n // ==========================================================================\n\n /**\n * Compute Poincaré distance between two embeddings\n *\n * Useful for hierarchical agent structures\n */\n poincareDistance(a: Float32Array, b: Float32Array): number {\n return poincareDistance(a, b, this.config.curvature);\n }\n\n /**\n * Project embedding to Poincaré ball\n */\n projectToPoincare(embedding: Float32Array): Float32Array {\n return projectToPoincareBall(embedding, this.config.curvature);\n }\n\n // ==========================================================================\n // Statistics & Status\n // ==========================================================================\n\n /**\n * Get intelligence layer statistics\n */\n getStats(): typeof this.stats & { sonaStats?: any } {\n let sonaStats: any = null;\n\n if (this.sona) {\n try {\n sonaStats = JSON.parse(this.sona.getStats());\n } catch {}\n }\n\n return {\n ...this.stats,\n sonaStats,\n };\n }\n\n /**\n * Enable/disable the intelligence layer\n */\n setEnabled(enabled: boolean): void {\n if (this.sona) {\n this.sona.setEnabled(enabled);\n }\n }\n\n /**\n * Check if enabled\n */\n isEnabled(): boolean {\n return this.sona?.isEnabled() ?? false;\n }\n\n /**\n * Cleanup resources\n */\n dispose(): void {\n if (this.learningTimer) {\n clearInterval(this.learningTimer);\n this.learningTimer = null;\n }\n\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n\n // Flush SONA\n if (this.sona) {\n this.sona.flush();\n }\n\n // Clear caches and LRU tracking\n this.trajectories.clear();\n this.trajectoryAccessOrder = [];\n this.agentEmbeddings.clear();\n this.agentAccessOrder = [];\n }\n}\n\n/**\n * Create a default intelligence layer\n */\nexport function createIntelligenceLayer(\n config?: RuVectorIntelligenceConfig\n): RuVectorIntelligence {\n return new RuVectorIntelligence(config);\n}\n\n/**\n * Presets for common configurations\n */\nexport const IntelligencePresets = {\n /** Fast routing with MoE and minimal learning */\n fast: {\n attentionType: 'moe' as const,\n numExperts: 4,\n topK: 2,\n enableTrajectories: false,\n backgroundIntervalMs: 300000, // 5 min\n },\n\n /** Balanced performance and learning */\n balanced: {\n attentionType: 'moe' as const,\n numExperts: 4,\n topK: 2,\n enableTrajectories: true,\n backgroundIntervalMs: 60000, // 1 min\n qualityThreshold: 0.5,\n },\n\n /** Maximum learning for development */\n learning: {\n attentionType: 'dual' as const,\n enableTrajectories: true,\n backgroundIntervalMs: 30000, // 30 sec\n qualityThreshold: 0.3,\n sonaConfig: {\n microLoraRank: 2,\n baseLoraRank: 16,\n trajectoryCapacity: 50000,\n },\n },\n\n /** Hierarchical structures (Poincaré geometry) */\n hierarchical: {\n attentionType: 'hyperbolic' as const,\n curvature: 1.0,\n enableTrajectories: true,\n },\n\n /** Graph-based reasoning */\n graph: {\n attentionType: 'graph' as const,\n enableTrajectories: true,\n },\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-benchmark.d.ts","sourceRoot":"","sources":["../../src/intelligence/embedding-benchmark.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Benchmark - Compare simple vs ONNX embeddings
|
|
3
|
+
*
|
|
4
|
+
* Run with: npx ts-node src/intelligence/embedding-benchmark.ts
|
|
5
|
+
*/
|
|
6
|
+
import { getEmbeddingService, EmbeddingService } from './EmbeddingService.js';
|
|
7
|
+
const TEST_TEXTS = [
|
|
8
|
+
'Fix a bug in the authentication system',
|
|
9
|
+
'Implement user login functionality',
|
|
10
|
+
'Write unit tests for the API',
|
|
11
|
+
'Refactor the database layer',
|
|
12
|
+
'Optimize memory usage',
|
|
13
|
+
'Add dark mode to the UI',
|
|
14
|
+
'Deploy to production',
|
|
15
|
+
'Review pull request',
|
|
16
|
+
'Document the API endpoints',
|
|
17
|
+
'Set up CI/CD pipeline',
|
|
18
|
+
];
|
|
19
|
+
const SEMANTIC_PAIRS = [
|
|
20
|
+
{ a: 'I love dogs', b: 'I adore puppies', expected: 'high' },
|
|
21
|
+
{ a: 'Fix authentication bug', b: 'Repair login issue', expected: 'high' },
|
|
22
|
+
{ a: 'Write unit tests', b: 'Create test cases', expected: 'high' },
|
|
23
|
+
{ a: 'Deploy to production', b: 'The weather is nice', expected: 'low' },
|
|
24
|
+
{ a: 'Fix bug', b: 'Add feature', expected: 'medium' },
|
|
25
|
+
{ a: 'Machine learning', b: 'Artificial intelligence', expected: 'high' },
|
|
26
|
+
{ a: 'Pizza recipe', b: 'Quantum physics', expected: 'low' },
|
|
27
|
+
];
|
|
28
|
+
async function runBenchmark() {
|
|
29
|
+
console.log('='.repeat(60));
|
|
30
|
+
console.log('Embedding Benchmark: Simple vs ONNX');
|
|
31
|
+
console.log('='.repeat(60));
|
|
32
|
+
// Benchmark Simple Embeddings
|
|
33
|
+
console.log('\n--- Simple Embeddings ---');
|
|
34
|
+
process.env.AGENTIC_FLOW_EMBEDDINGS = 'simple';
|
|
35
|
+
EmbeddingService.reset();
|
|
36
|
+
const simpleService = getEmbeddingService();
|
|
37
|
+
const simpleResults = await benchmarkService(simpleService, 'simple');
|
|
38
|
+
// Benchmark ONNX Embeddings
|
|
39
|
+
console.log('\n--- ONNX Embeddings ---');
|
|
40
|
+
process.env.AGENTIC_FLOW_EMBEDDINGS = 'onnx';
|
|
41
|
+
EmbeddingService.reset();
|
|
42
|
+
const onnxService = getEmbeddingService();
|
|
43
|
+
const onnxResults = await benchmarkService(onnxService, 'onnx');
|
|
44
|
+
// Summary
|
|
45
|
+
console.log('\n' + '='.repeat(60));
|
|
46
|
+
console.log('SUMMARY');
|
|
47
|
+
console.log('='.repeat(60));
|
|
48
|
+
console.log(`
|
|
49
|
+
| Metric | Simple | ONNX |
|
|
50
|
+
|-----------------------|-------------|-------------|
|
|
51
|
+
| Avg Latency (cold) | ${simpleResults.avgColdLatency.toFixed(2)}ms | ${onnxResults.avgColdLatency.toFixed(2)}ms |
|
|
52
|
+
| Avg Latency (warm) | ${simpleResults.avgWarmLatency.toFixed(2)}ms | ${onnxResults.avgWarmLatency.toFixed(2)}ms |
|
|
53
|
+
| Batch 10 texts | ${simpleResults.batchLatency.toFixed(2)}ms | ${onnxResults.batchLatency.toFixed(2)}ms |
|
|
54
|
+
| Dimension | ${simpleResults.dimension} | ${onnxResults.dimension} |
|
|
55
|
+
| Semantic Accuracy | ${simpleResults.semanticAccuracy}% | ${onnxResults.semanticAccuracy}% |
|
|
56
|
+
`);
|
|
57
|
+
console.log('\nSemantic Similarity Comparison:');
|
|
58
|
+
console.log('-'.repeat(60));
|
|
59
|
+
for (let i = 0; i < SEMANTIC_PAIRS.length; i++) {
|
|
60
|
+
const pair = SEMANTIC_PAIRS[i];
|
|
61
|
+
console.log(`"${pair.a}" vs "${pair.b}"`);
|
|
62
|
+
console.log(` Expected: ${pair.expected}`);
|
|
63
|
+
console.log(` Simple: ${simpleResults.similarities[i].toFixed(3)}`);
|
|
64
|
+
console.log(` ONNX: ${onnxResults.similarities[i].toFixed(3)}`);
|
|
65
|
+
console.log();
|
|
66
|
+
}
|
|
67
|
+
// Recommendation
|
|
68
|
+
console.log('='.repeat(60));
|
|
69
|
+
console.log('RECOMMENDATION');
|
|
70
|
+
console.log('='.repeat(60));
|
|
71
|
+
if (onnxResults.semanticAccuracy > simpleResults.semanticAccuracy + 20) {
|
|
72
|
+
console.log(`
|
|
73
|
+
ONNX embeddings provide significantly better semantic accuracy
|
|
74
|
+
(${onnxResults.semanticAccuracy}% vs ${simpleResults.semanticAccuracy}%).
|
|
75
|
+
|
|
76
|
+
For tasks requiring semantic understanding (routing, pattern matching),
|
|
77
|
+
use ONNX embeddings:
|
|
78
|
+
|
|
79
|
+
export AGENTIC_FLOW_EMBEDDINGS=onnx
|
|
80
|
+
|
|
81
|
+
Note: First embedding takes ~${(onnxResults.avgColdLatency / 1000).toFixed(1)}s (model loading).
|
|
82
|
+
Subsequent embeddings: ~${onnxResults.avgWarmLatency.toFixed(1)}ms.
|
|
83
|
+
`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.log(`
|
|
87
|
+
Simple embeddings are sufficient for your use case.
|
|
88
|
+
Semantic accuracy difference is minimal.
|
|
89
|
+
|
|
90
|
+
Keep using simple embeddings for maximum speed:
|
|
91
|
+
|
|
92
|
+
export AGENTIC_FLOW_EMBEDDINGS=simple
|
|
93
|
+
`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function benchmarkService(service, name) {
|
|
97
|
+
// Cold start (first embedding, includes model loading for ONNX)
|
|
98
|
+
console.log(`\n[${name}] Cold start embedding...`);
|
|
99
|
+
const coldStart = performance.now();
|
|
100
|
+
await service.embed(TEST_TEXTS[0]);
|
|
101
|
+
const coldLatency = performance.now() - coldStart;
|
|
102
|
+
console.log(` Cold latency: ${coldLatency.toFixed(2)}ms`);
|
|
103
|
+
// Warm embeddings
|
|
104
|
+
console.log(`[${name}] Warm embeddings (${TEST_TEXTS.length} texts)...`);
|
|
105
|
+
service.clearCache();
|
|
106
|
+
const warmStart = performance.now();
|
|
107
|
+
for (const text of TEST_TEXTS) {
|
|
108
|
+
await service.embed(text);
|
|
109
|
+
}
|
|
110
|
+
const warmTotalLatency = performance.now() - warmStart;
|
|
111
|
+
const avgWarmLatency = warmTotalLatency / TEST_TEXTS.length;
|
|
112
|
+
console.log(` Total: ${warmTotalLatency.toFixed(2)}ms, Avg: ${avgWarmLatency.toFixed(2)}ms`);
|
|
113
|
+
// Batch embedding
|
|
114
|
+
console.log(`[${name}] Batch embedding (10 texts)...`);
|
|
115
|
+
service.clearCache();
|
|
116
|
+
const batchStart = performance.now();
|
|
117
|
+
await service.embedBatch(TEST_TEXTS);
|
|
118
|
+
const batchLatency = performance.now() - batchStart;
|
|
119
|
+
const batchPerText = batchLatency / TEST_TEXTS.length;
|
|
120
|
+
console.log(` Batch latency: ${batchLatency.toFixed(2)}ms (${batchPerText.toFixed(2)}ms per text)`);
|
|
121
|
+
// Compare batch vs sequential
|
|
122
|
+
const speedup = avgWarmLatency > 0 ? avgWarmLatency / batchPerText : 0;
|
|
123
|
+
console.log(` Batch speedup: ${speedup.toFixed(1)}x vs sequential`);
|
|
124
|
+
// Semantic similarity tests
|
|
125
|
+
console.log(`[${name}] Semantic similarity tests...`);
|
|
126
|
+
const similarities = [];
|
|
127
|
+
let correctCount = 0;
|
|
128
|
+
for (const pair of SEMANTIC_PAIRS) {
|
|
129
|
+
const sim = await service.similarity(pair.a, pair.b);
|
|
130
|
+
similarities.push(sim);
|
|
131
|
+
// For ONNX (semantic), use proper thresholds
|
|
132
|
+
// For simple (hash-based), it will score incorrectly on unrelated pairs
|
|
133
|
+
const isCorrect = (pair.expected === 'high' && sim > 0.5) ||
|
|
134
|
+
(pair.expected === 'medium' && sim >= 0.2 && sim <= 0.6) ||
|
|
135
|
+
(pair.expected === 'low' && sim < 0.3);
|
|
136
|
+
if (isCorrect)
|
|
137
|
+
correctCount++;
|
|
138
|
+
console.log(` "${pair.a.substring(0, 20)}..." vs "${pair.b.substring(0, 20)}...": ${sim.toFixed(3)} (expected: ${pair.expected})`);
|
|
139
|
+
}
|
|
140
|
+
const semanticAccuracy = Math.round((correctCount / SEMANTIC_PAIRS.length) * 100);
|
|
141
|
+
console.log(` Semantic accuracy: ${semanticAccuracy}%`);
|
|
142
|
+
const stats = service.getStats();
|
|
143
|
+
console.log(` Model: ${stats.modelName || 'N/A'}, SIMD: ${stats.simdAvailable ?? 'N/A'}`);
|
|
144
|
+
return {
|
|
145
|
+
avgColdLatency: coldLatency,
|
|
146
|
+
avgWarmLatency,
|
|
147
|
+
batchLatency,
|
|
148
|
+
dimension: stats.dimension,
|
|
149
|
+
semanticAccuracy,
|
|
150
|
+
similarities,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// Run if executed directly
|
|
154
|
+
runBenchmark().catch(console.error);
|
|
155
|
+
//# sourceMappingURL=embedding-benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-benchmark.js","sourceRoot":"","sources":["../../src/intelligence/embedding-benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding Benchmark - Compare simple vs ONNX embeddings\n *\n * Run with: npx ts-node src/intelligence/embedding-benchmark.ts\n */\n\nimport { getEmbeddingService, EmbeddingService } from './EmbeddingService.js';\n\nconst TEST_TEXTS = [\n 'Fix a bug in the authentication system',\n 'Implement user login functionality',\n 'Write unit tests for the API',\n 'Refactor the database layer',\n 'Optimize memory usage',\n 'Add dark mode to the UI',\n 'Deploy to production',\n 'Review pull request',\n 'Document the API endpoints',\n 'Set up CI/CD pipeline',\n];\n\nconst SEMANTIC_PAIRS = [\n { a: 'I love dogs', b: 'I adore puppies', expected: 'high' },\n { a: 'Fix authentication bug', b: 'Repair login issue', expected: 'high' },\n { a: 'Write unit tests', b: 'Create test cases', expected: 'high' },\n { a: 'Deploy to production', b: 'The weather is nice', expected: 'low' },\n { a: 'Fix bug', b: 'Add feature', expected: 'medium' },\n { a: 'Machine learning', b: 'Artificial intelligence', expected: 'high' },\n { a: 'Pizza recipe', b: 'Quantum physics', expected: 'low' },\n];\n\nasync function runBenchmark() {\n console.log('='.repeat(60));\n console.log('Embedding Benchmark: Simple vs ONNX');\n console.log('='.repeat(60));\n\n // Benchmark Simple Embeddings\n console.log('\\n--- Simple Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'simple';\n EmbeddingService.reset();\n\n const simpleService = getEmbeddingService();\n const simpleResults = await benchmarkService(simpleService, 'simple');\n\n // Benchmark ONNX Embeddings\n console.log('\\n--- ONNX Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'onnx';\n EmbeddingService.reset();\n\n const onnxService = getEmbeddingService();\n const onnxResults = await benchmarkService(onnxService, 'onnx');\n\n // Summary\n console.log('\\n' + '='.repeat(60));\n console.log('SUMMARY');\n console.log('='.repeat(60));\n\n console.log(`\n| Metric | Simple | ONNX |\n|-----------------------|-------------|-------------|\n| Avg Latency (cold) | ${simpleResults.avgColdLatency.toFixed(2)}ms | ${onnxResults.avgColdLatency.toFixed(2)}ms |\n| Avg Latency (warm) | ${simpleResults.avgWarmLatency.toFixed(2)}ms | ${onnxResults.avgWarmLatency.toFixed(2)}ms |\n| Batch 10 texts | ${simpleResults.batchLatency.toFixed(2)}ms | ${onnxResults.batchLatency.toFixed(2)}ms |\n| Dimension | ${simpleResults.dimension} | ${onnxResults.dimension} |\n| Semantic Accuracy | ${simpleResults.semanticAccuracy}% | ${onnxResults.semanticAccuracy}% |\n`);\n\n console.log('\\nSemantic Similarity Comparison:');\n console.log('-'.repeat(60));\n for (let i = 0; i < SEMANTIC_PAIRS.length; i++) {\n const pair = SEMANTIC_PAIRS[i];\n console.log(`\"${pair.a}\" vs \"${pair.b}\"`);\n console.log(` Expected: ${pair.expected}`);\n console.log(` Simple: ${simpleResults.similarities[i].toFixed(3)}`);\n console.log(` ONNX: ${onnxResults.similarities[i].toFixed(3)}`);\n console.log();\n }\n\n // Recommendation\n console.log('='.repeat(60));\n console.log('RECOMMENDATION');\n console.log('='.repeat(60));\n\n if (onnxResults.semanticAccuracy > simpleResults.semanticAccuracy + 20) {\n console.log(`\nONNX embeddings provide significantly better semantic accuracy\n(${onnxResults.semanticAccuracy}% vs ${simpleResults.semanticAccuracy}%).\n\nFor tasks requiring semantic understanding (routing, pattern matching),\nuse ONNX embeddings:\n\n export AGENTIC_FLOW_EMBEDDINGS=onnx\n\nNote: First embedding takes ~${(onnxResults.avgColdLatency / 1000).toFixed(1)}s (model loading).\nSubsequent embeddings: ~${onnxResults.avgWarmLatency.toFixed(1)}ms.\n`);\n } else {\n console.log(`\nSimple embeddings are sufficient for your use case.\nSemantic accuracy difference is minimal.\n\nKeep using simple embeddings for maximum speed:\n\n export AGENTIC_FLOW_EMBEDDINGS=simple\n`);\n }\n}\n\nasync function benchmarkService(\n service: EmbeddingService,\n name: string\n): Promise<{\n avgColdLatency: number;\n avgWarmLatency: number;\n batchLatency: number;\n dimension: number;\n semanticAccuracy: number;\n similarities: number[];\n}> {\n // Cold start (first embedding, includes model loading for ONNX)\n console.log(`\\n[${name}] Cold start embedding...`);\n const coldStart = performance.now();\n await service.embed(TEST_TEXTS[0]);\n const coldLatency = performance.now() - coldStart;\n console.log(` Cold latency: ${coldLatency.toFixed(2)}ms`);\n\n // Warm embeddings\n console.log(`[${name}] Warm embeddings (${TEST_TEXTS.length} texts)...`);\n service.clearCache();\n const warmStart = performance.now();\n for (const text of TEST_TEXTS) {\n await service.embed(text);\n }\n const warmTotalLatency = performance.now() - warmStart;\n const avgWarmLatency = warmTotalLatency / TEST_TEXTS.length;\n console.log(` Total: ${warmTotalLatency.toFixed(2)}ms, Avg: ${avgWarmLatency.toFixed(2)}ms`);\n\n // Batch embedding\n console.log(`[${name}] Batch embedding (10 texts)...`);\n service.clearCache();\n const batchStart = performance.now();\n await service.embedBatch(TEST_TEXTS);\n const batchLatency = performance.now() - batchStart;\n const batchPerText = batchLatency / TEST_TEXTS.length;\n console.log(` Batch latency: ${batchLatency.toFixed(2)}ms (${batchPerText.toFixed(2)}ms per text)`);\n\n // Compare batch vs sequential\n const speedup = avgWarmLatency > 0 ? avgWarmLatency / batchPerText : 0;\n console.log(` Batch speedup: ${speedup.toFixed(1)}x vs sequential`);\n\n // Semantic similarity tests\n console.log(`[${name}] Semantic similarity tests...`);\n const similarities: number[] = [];\n let correctCount = 0;\n\n for (const pair of SEMANTIC_PAIRS) {\n const sim = await service.similarity(pair.a, pair.b);\n similarities.push(sim);\n\n // For ONNX (semantic), use proper thresholds\n // For simple (hash-based), it will score incorrectly on unrelated pairs\n const isCorrect =\n (pair.expected === 'high' && sim > 0.5) ||\n (pair.expected === 'medium' && sim >= 0.2 && sim <= 0.6) ||\n (pair.expected === 'low' && sim < 0.3);\n\n if (isCorrect) correctCount++;\n\n console.log(` \"${pair.a.substring(0, 20)}...\" vs \"${pair.b.substring(0, 20)}...\": ${sim.toFixed(3)} (expected: ${pair.expected})`);\n }\n\n const semanticAccuracy = Math.round((correctCount / SEMANTIC_PAIRS.length) * 100);\n console.log(` Semantic accuracy: ${semanticAccuracy}%`);\n\n const stats = service.getStats();\n console.log(` Model: ${stats.modelName || 'N/A'}, SIMD: ${stats.simdAvailable ?? 'N/A'}`);\n\n return {\n avgColdLatency: coldLatency,\n avgWarmLatency,\n batchLatency,\n dimension: stats.dimension,\n semanticAccuracy,\n similarities,\n };\n}\n\n// Run if executed directly\nrunBenchmark().catch(console.error);\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuVector Intelligence Layer - Unified Exports
|
|
3
|
+
*
|
|
4
|
+
* Exposes the full power of RuVector ecosystem:
|
|
5
|
+
*
|
|
6
|
+
* Features Used:
|
|
7
|
+
* - @ruvector/sona: Micro-LoRA, Base-LoRA, EWC++, ReasoningBank, Trajectories
|
|
8
|
+
* - @ruvector/attention: Multi-head, Flash, Hyperbolic, MoE, Graph, DualSpace
|
|
9
|
+
* - ruvector core: HNSW indexing, vector similarity search
|
|
10
|
+
*/
|
|
11
|
+
export { RuVectorIntelligence, createIntelligenceLayer, IntelligencePresets, type RuVectorIntelligenceConfig, type Trajectory, type TrajectoryStep, type AgentRoutingResult, type LearningOutcome, type OperationResult, } from './RuVectorIntelligence.js';
|
|
12
|
+
export type { JsSonaConfig as SonaConfig, JsLearnedPattern as LearnedPattern, } from '@ruvector/sona';
|
|
13
|
+
export { AttentionType, type MoEConfig, } from '@ruvector/attention';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/intelligence/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,YAAY,IAAI,UAAU,EAC1B,gBAAgB,IAAI,cAAc,GACnC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,aAAa,EACb,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuVector Intelligence Layer - Unified Exports
|
|
3
|
+
*
|
|
4
|
+
* Exposes the full power of RuVector ecosystem:
|
|
5
|
+
*
|
|
6
|
+
* Features Used:
|
|
7
|
+
* - @ruvector/sona: Micro-LoRA, Base-LoRA, EWC++, ReasoningBank, Trajectories
|
|
8
|
+
* - @ruvector/attention: Multi-head, Flash, Hyperbolic, MoE, Graph, DualSpace
|
|
9
|
+
* - ruvector core: HNSW indexing, vector similarity search
|
|
10
|
+
*/
|
|
11
|
+
export { RuVectorIntelligence, createIntelligenceLayer, IntelligencePresets, } from './RuVectorIntelligence.js';
|
|
12
|
+
// Re-export attention types
|
|
13
|
+
export { AttentionType, } from '@ruvector/attention';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intelligence/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GAOpB,MAAM,2BAA2B,CAAC;AAQnC,4BAA4B;AAC5B,OAAO,EACL,aAAa,GAEd,MAAM,qBAAqB,CAAC","sourcesContent":["/**\n * RuVector Intelligence Layer - Unified Exports\n *\n * Exposes the full power of RuVector ecosystem:\n *\n * Features Used:\n * - @ruvector/sona: Micro-LoRA, Base-LoRA, EWC++, ReasoningBank, Trajectories\n * - @ruvector/attention: Multi-head, Flash, Hyperbolic, MoE, Graph, DualSpace\n * - ruvector core: HNSW indexing, vector similarity search\n */\n\nexport {\n RuVectorIntelligence,\n createIntelligenceLayer,\n IntelligencePresets,\n type RuVectorIntelligenceConfig,\n type Trajectory,\n type TrajectoryStep,\n type AgentRoutingResult,\n type LearningOutcome,\n type OperationResult,\n} from './RuVectorIntelligence.js';\n\n// Re-export key types from @ruvector/sona\nexport type {\n JsSonaConfig as SonaConfig,\n JsLearnedPattern as LearnedPattern,\n} from '@ruvector/sona';\n\n// Re-export attention types\nexport {\n AttentionType,\n type MoEConfig,\n} from '@ruvector/attention';\n"]}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuvLLM Orchestrator - Self-Learning Multi-Agent Orchestration
|
|
3
|
+
*
|
|
4
|
+
* Integrates:
|
|
5
|
+
* - TRM (Tiny Recursive Models) for multi-step reasoning
|
|
6
|
+
* - SONA (Self-Optimizing Neural Architecture) for adaptive learning
|
|
7
|
+
* - FastGRNN routing for intelligent agent selection
|
|
8
|
+
* - ReasoningBank for pattern storage and retrieval
|
|
9
|
+
*
|
|
10
|
+
* Performance:
|
|
11
|
+
* - 2-4x faster inference than standard transformers
|
|
12
|
+
* - <100ms latency for agent routing decisions
|
|
13
|
+
* - Adaptive learning from agent execution outcomes
|
|
14
|
+
*/
|
|
15
|
+
import type { ReasoningBank } from 'agentdb';
|
|
16
|
+
import type { EmbeddingService } from 'agentdb';
|
|
17
|
+
export interface TRMConfig {
|
|
18
|
+
maxDepth?: number;
|
|
19
|
+
beamWidth?: number;
|
|
20
|
+
temperature?: number;
|
|
21
|
+
minConfidence?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface SONAConfig {
|
|
24
|
+
learningRate?: number;
|
|
25
|
+
adaptationThreshold?: number;
|
|
26
|
+
enableAutoTuning?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface AgentSelectionResult {
|
|
29
|
+
agentType: string;
|
|
30
|
+
confidence: number;
|
|
31
|
+
reasoning: string;
|
|
32
|
+
alternatives?: Array<{
|
|
33
|
+
agentType: string;
|
|
34
|
+
confidence: number;
|
|
35
|
+
}>;
|
|
36
|
+
metrics: {
|
|
37
|
+
inferenceTimeMs: number;
|
|
38
|
+
patternMatchScore: number;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface TaskDecomposition {
|
|
42
|
+
steps: Array<{
|
|
43
|
+
description: string;
|
|
44
|
+
estimatedComplexity: number;
|
|
45
|
+
suggestedAgent: string;
|
|
46
|
+
}>;
|
|
47
|
+
totalComplexity: number;
|
|
48
|
+
parallelizable: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface LearningOutcome {
|
|
51
|
+
taskType: string;
|
|
52
|
+
selectedAgent: string;
|
|
53
|
+
success: boolean;
|
|
54
|
+
reward: number;
|
|
55
|
+
latencyMs: number;
|
|
56
|
+
adaptedParameters?: Record<string, number>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* RuvLLM Orchestrator
|
|
60
|
+
*
|
|
61
|
+
* Provides self-learning orchestration capabilities:
|
|
62
|
+
* 1. Multi-step reasoning with TRM
|
|
63
|
+
* 2. Adaptive agent selection with SONA
|
|
64
|
+
* 3. Pattern-based learning with ReasoningBank
|
|
65
|
+
* 4. Fast routing with neural architecture search
|
|
66
|
+
*/
|
|
67
|
+
export declare class RuvLLMOrchestrator {
|
|
68
|
+
private reasoningBank;
|
|
69
|
+
private embedder;
|
|
70
|
+
private trmConfig;
|
|
71
|
+
private sonaConfig;
|
|
72
|
+
private agentPerformance;
|
|
73
|
+
private adaptiveWeights;
|
|
74
|
+
private reasoningCache;
|
|
75
|
+
constructor(reasoningBank: ReasoningBank, embedder: EmbeddingService, trmConfig?: TRMConfig, sonaConfig?: SONAConfig);
|
|
76
|
+
/**
|
|
77
|
+
* Select the best agent for a task using TRM + SONA
|
|
78
|
+
*
|
|
79
|
+
* Process:
|
|
80
|
+
* 1. Embed task description
|
|
81
|
+
* 2. Search ReasoningBank for similar patterns
|
|
82
|
+
* 3. Apply SONA adaptive weighting
|
|
83
|
+
* 4. Use FastGRNN for final routing decision
|
|
84
|
+
*
|
|
85
|
+
* @param taskDescription - Natural language task description
|
|
86
|
+
* @param context - Optional context information
|
|
87
|
+
* @returns Agent selection with confidence and reasoning
|
|
88
|
+
*/
|
|
89
|
+
selectAgent(taskDescription: string, context?: Record<string, any>): Promise<AgentSelectionResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Decompose complex task into steps using TRM
|
|
92
|
+
*
|
|
93
|
+
* Recursive reasoning:
|
|
94
|
+
* 1. Analyze task complexity
|
|
95
|
+
* 2. Identify sub-tasks
|
|
96
|
+
* 3. Assign agents to sub-tasks
|
|
97
|
+
* 4. Determine execution order (sequential/parallel)
|
|
98
|
+
*
|
|
99
|
+
* @param taskDescription - Task to decompose
|
|
100
|
+
* @param maxDepth - Maximum recursion depth
|
|
101
|
+
* @returns Task decomposition with steps and agent assignments
|
|
102
|
+
*/
|
|
103
|
+
decomposeTask(taskDescription: string, maxDepth?: number): Promise<TaskDecomposition>;
|
|
104
|
+
/**
|
|
105
|
+
* Record learning outcome and adapt SONA parameters
|
|
106
|
+
*
|
|
107
|
+
* SONA adaptation:
|
|
108
|
+
* 1. Update agent performance metrics
|
|
109
|
+
* 2. Adjust adaptive weights based on success/failure
|
|
110
|
+
* 3. Store pattern in ReasoningBank for future retrieval
|
|
111
|
+
* 4. Trigger auto-tuning if performance drops
|
|
112
|
+
*
|
|
113
|
+
* @param outcome - Learning outcome from agent execution
|
|
114
|
+
*/
|
|
115
|
+
recordOutcome(outcome: LearningOutcome): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Train GNN on accumulated patterns
|
|
118
|
+
*
|
|
119
|
+
* Triggers ReasoningBank GNN training with collected outcomes.
|
|
120
|
+
* Should be called periodically (e.g., after N executions).
|
|
121
|
+
*
|
|
122
|
+
* @param options - Training options
|
|
123
|
+
* @returns Training results
|
|
124
|
+
*/
|
|
125
|
+
trainGNN(options?: {
|
|
126
|
+
epochs?: number;
|
|
127
|
+
batchSize?: number;
|
|
128
|
+
}): Promise<{
|
|
129
|
+
epochs: number;
|
|
130
|
+
finalLoss: number;
|
|
131
|
+
}>;
|
|
132
|
+
/**
|
|
133
|
+
* Get orchestrator statistics
|
|
134
|
+
*
|
|
135
|
+
* @returns Performance metrics and agent statistics
|
|
136
|
+
*/
|
|
137
|
+
getStats(): {
|
|
138
|
+
totalExecutions: number;
|
|
139
|
+
agentPerformance: Array<{
|
|
140
|
+
agent: string;
|
|
141
|
+
successRate: number;
|
|
142
|
+
avgLatency: number;
|
|
143
|
+
uses: number;
|
|
144
|
+
}>;
|
|
145
|
+
cachedDecompositions: number;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Apply SONA adaptive weighting to patterns
|
|
149
|
+
*/
|
|
150
|
+
private applySONAWeighting;
|
|
151
|
+
/**
|
|
152
|
+
* Route task using FastGRNN (fast recurrent neural network)
|
|
153
|
+
*/
|
|
154
|
+
private routeWithFastGRNN;
|
|
155
|
+
/**
|
|
156
|
+
* Extract agent type from reasoning pattern
|
|
157
|
+
*/
|
|
158
|
+
private extractAgentFromPattern;
|
|
159
|
+
/**
|
|
160
|
+
* Infer agent from task type
|
|
161
|
+
*/
|
|
162
|
+
private inferAgentFromTaskType;
|
|
163
|
+
/**
|
|
164
|
+
* Fallback agent selection when no patterns found
|
|
165
|
+
*/
|
|
166
|
+
private fallbackAgentSelection;
|
|
167
|
+
/**
|
|
168
|
+
* Estimate task complexity (1-10 scale)
|
|
169
|
+
*/
|
|
170
|
+
private estimateComplexity;
|
|
171
|
+
/**
|
|
172
|
+
* Identify sub-tasks for decomposition
|
|
173
|
+
*/
|
|
174
|
+
private identifySubTasks;
|
|
175
|
+
/**
|
|
176
|
+
* Determine if steps can run in parallel
|
|
177
|
+
*/
|
|
178
|
+
private canRunInParallel;
|
|
179
|
+
/**
|
|
180
|
+
* Adapt SONA weights based on outcome
|
|
181
|
+
*/
|
|
182
|
+
private adaptSONAWeights;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=RuvLLMOrchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuvLLMOrchestrator.d.ts","sourceRoot":"","sources":["../../src/llm/RuvLLMOrchestrator.ts"],"names":[],"mappings":"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"}
|