agentic-flow 2.0.1-alpha.12 → 2.0.1-alpha.14

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.
Files changed (27) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/commands/hooks.d.ts.map +1 -1
  4. package/dist/cli/commands/hooks.js +6 -1
  5. package/dist/cli/commands/hooks.js.map +1 -1
  6. package/dist/intelligence/EmbeddingService.d.ts +95 -0
  7. package/dist/intelligence/EmbeddingService.d.ts.map +1 -0
  8. package/dist/intelligence/EmbeddingService.js +297 -0
  9. package/dist/intelligence/EmbeddingService.js.map +1 -0
  10. package/dist/intelligence/IntelligenceStore.d.ts +168 -0
  11. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -0
  12. package/dist/intelligence/IntelligenceStore.js +364 -0
  13. package/dist/intelligence/IntelligenceStore.js.map +1 -0
  14. package/dist/intelligence/embedding-benchmark.d.ts +7 -0
  15. package/dist/intelligence/embedding-benchmark.d.ts.map +1 -0
  16. package/dist/intelligence/embedding-benchmark.js +151 -0
  17. package/dist/intelligence/embedding-benchmark.js.map +1 -0
  18. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts +13 -0
  19. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts.map +1 -1
  20. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +48 -21
  21. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  22. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.d.ts.map +1 -1
  23. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js +8 -0
  24. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js.map +1 -1
  25. package/package.json +3 -1
  26. package/wasm/reasoningbank/reasoningbank_wasm_bg.js +2 -2
  27. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
@@ -5,34 +5,43 @@
5
5
  * - @ruvector/sona: Micro-LoRA, EWC++, ReasoningBank, Trajectories
6
6
  * - @ruvector/attention: MoE, Flash, Hyperbolic, Graph attention
7
7
  * - ruvector core: HNSW indexing (150x faster search)
8
+ *
9
+ * Persistence: SQLite-based storage for cross-platform compatibility
8
10
  */
9
11
  import { createIntelligenceLayer, IntelligencePresets, } from '../../../../intelligence/index.js';
10
- // Singleton instance
12
+ import { getIntelligenceStore } from '../../../../intelligence/IntelligenceStore.js';
13
+ import { getEmbeddingService } from '../../../../intelligence/EmbeddingService.js';
14
+ // Singleton instances
11
15
  let intelligenceInstance = null;
16
+ let storeInstance = null;
12
17
  let initPromise = null;
13
18
  // Consistent dimension for SONA (must match hiddenDim = embeddingDim)
14
19
  // Using 128 for ultra-fast performance (~0.05ms per operation)
15
20
  const INTELLIGENCE_DIM = 128;
16
- // Active trajectories (trajectoryId -> metadata)
21
+ // Active trajectories in memory (for fast access, backed by SQLite)
17
22
  const activeTrajectories = new Map();
18
- // Simple embedding function (hash-based for speed)
19
- function simpleEmbed(text, dim = INTELLIGENCE_DIM) {
20
- const embedding = new Array(dim).fill(0);
21
- const words = text.toLowerCase().split(/\s+/);
22
- for (const word of words) {
23
- for (let i = 0; i < word.length; i++) {
24
- const idx = (word.charCodeAt(i) * (i + 1)) % dim;
25
- embedding[idx] += 1;
26
- }
23
+ /**
24
+ * Get the SQLite store singleton
25
+ */
26
+ export function getStore() {
27
+ if (!storeInstance) {
28
+ storeInstance = getIntelligenceStore();
27
29
  }
28
- // Normalize
29
- const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
30
- if (magnitude > 0) {
31
- for (let i = 0; i < embedding.length; i++) {
32
- embedding[i] /= magnitude;
33
- }
30
+ return storeInstance;
31
+ }
32
+ // Get embedding service singleton
33
+ let embeddingServiceInstance = null;
34
+ function getEmbeddingServiceInstance() {
35
+ if (!embeddingServiceInstance) {
36
+ embeddingServiceInstance = getEmbeddingService();
34
37
  }
35
- return embedding;
38
+ return embeddingServiceInstance;
39
+ }
40
+ // Simple embedding function (uses EmbeddingService with caching)
41
+ function simpleEmbed(text, dim = INTELLIGENCE_DIM) {
42
+ const service = getEmbeddingServiceInstance();
43
+ const embedding = service.simpleEmbed(text, dim);
44
+ return Array.from(embedding);
36
45
  }
37
46
  /**
38
47
  * Get or create the RuVectorIntelligence singleton
@@ -123,6 +132,9 @@ export async function routeTaskIntelligent(task, context) {
123
132
  usedSona: false,
124
133
  };
125
134
  const latencyMs = performance.now() - startTime;
135
+ // Record routing in SQLite for persistence
136
+ const store = getStore();
137
+ store.recordRouting(task, bestResult.agentId, Math.min(0.95, bestResult.confidence), Math.round(latencyMs));
126
138
  return {
127
139
  agent: bestResult.agentId,
128
140
  confidence: Math.min(0.95, bestResult.confidence),
@@ -142,6 +154,7 @@ export async function routeTaskIntelligent(task, context) {
142
154
  */
143
155
  export async function beginTaskTrajectory(task, agent) {
144
156
  const intelligence = await getIntelligence();
157
+ const store = getStore();
145
158
  // Get task embedding
146
159
  const embedding = simpleEmbed(task);
147
160
  // Start trajectory in SONA
@@ -154,12 +167,15 @@ export async function beginTaskTrajectory(task, agent) {
154
167
  };
155
168
  }
156
169
  const trajectoryId = result.value;
157
- // Track metadata
170
+ // Persist to SQLite
171
+ const dbId = store.startTrajectory(task, agent);
172
+ // Track metadata in memory (for fast access)
158
173
  activeTrajectories.set(trajectoryId, {
159
174
  taskDescription: task,
160
175
  startTime: Date.now(),
161
176
  agent,
162
177
  steps: 0,
178
+ dbId,
163
179
  });
164
180
  return { trajectoryId, success: true };
165
181
  }
@@ -168,9 +184,12 @@ export async function beginTaskTrajectory(task, agent) {
168
184
  */
169
185
  export async function recordTrajectoryStep(trajectoryId, action, reward, context) {
170
186
  const intelligence = await getIntelligence();
187
+ const store = getStore();
171
188
  const meta = activeTrajectories.get(trajectoryId);
172
189
  if (meta) {
173
190
  meta.steps++;
191
+ // Persist step to SQLite
192
+ store.addTrajectoryStep(meta.dbId);
174
193
  // Generate activations from context
175
194
  const activations = new Array(256).fill(0).map(() => Math.random() * 0.1);
176
195
  // Attention weights (8 heads)
@@ -183,10 +202,14 @@ export async function recordTrajectoryStep(trajectoryId, action, reward, context
183
202
  */
184
203
  export async function endTaskTrajectory(trajectoryId, success, quality = 0.8) {
185
204
  const intelligence = await getIntelligence();
205
+ const store = getStore();
186
206
  const meta = activeTrajectories.get(trajectoryId);
187
207
  if (!meta) {
188
208
  return null;
189
209
  }
210
+ // Persist to SQLite
211
+ const outcome_type = success ? 'success' : 'failure';
212
+ store.endTrajectory(meta.dbId, outcome_type, { quality, steps: meta.steps });
190
213
  // End trajectory and trigger learning
191
214
  const outcome = intelligence.endTrajectory(trajectoryId, success, quality);
192
215
  // Clean up
@@ -232,22 +255,26 @@ export async function findSimilarPatterns(task, topK = 5) {
232
255
  * Get intelligence stats for monitoring
233
256
  */
234
257
  export async function getIntelligenceStats() {
258
+ const store = getStore();
259
+ const persistedStats = store.getSummary();
235
260
  if (!intelligenceInstance) {
236
261
  return {
237
262
  initialized: false,
238
263
  features: [],
239
- trajectoryCount: 0,
264
+ trajectoryCount: persistedStats.trajectories,
240
265
  activeTrajectories: 0,
241
266
  learningEnabled: false,
267
+ persistedStats,
242
268
  };
243
269
  }
244
270
  const stats = intelligenceInstance.getStats();
245
271
  return {
246
272
  initialized: true,
247
273
  features: ['sona', 'micro-lora', 'hnsw', 'moe-attention'],
248
- trajectoryCount: stats.totalTrajectories || 0,
274
+ trajectoryCount: persistedStats.trajectories || stats.totalTrajectories || 0,
249
275
  activeTrajectories: activeTrajectories.size,
250
276
  learningEnabled: intelligenceInstance.isEnabled(),
277
+ persistedStats,
251
278
  };
252
279
  }
253
280
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"intelligence-bridge.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Intelligence Bridge - Connects hooks to RuVectorIntelligence layer\n *\n * This bridges the gap between hook tools and the full RuVector ecosystem:\n * - @ruvector/sona: Micro-LoRA, EWC++, ReasoningBank, Trajectories\n * - @ruvector/attention: MoE, Flash, Hyperbolic, Graph attention\n * - ruvector core: HNSW indexing (150x faster search)\n */\n\nimport {\n RuVectorIntelligence,\n createIntelligenceLayer,\n IntelligencePresets,\n type AgentRoutingResult,\n type Trajectory,\n type LearningOutcome,\n} from '../../../../intelligence/index.js';\n\n// Singleton instance\nlet intelligenceInstance: RuVectorIntelligence | null = null;\nlet initPromise: Promise<void> | null = null;\n\n// Consistent dimension for SONA (must match hiddenDim = embeddingDim)\n// Using 128 for ultra-fast performance (~0.05ms per operation)\nconst INTELLIGENCE_DIM = 128;\n\n// Active trajectories (trajectoryId -> metadata)\nconst activeTrajectories = new Map<number, {\n taskDescription: string;\n startTime: number;\n agent: string;\n steps: number;\n}>();\n\n// Simple embedding function (hash-based for speed)\nfunction simpleEmbed(text: string, dim: number = INTELLIGENCE_DIM): number[] {\n const embedding = new Array(dim).fill(0);\n const words = text.toLowerCase().split(/\\s+/);\n\n for (const word of words) {\n for (let i = 0; i < word.length; i++) {\n const idx = (word.charCodeAt(i) * (i + 1)) % dim;\n embedding[idx] += 1;\n }\n }\n\n // Normalize\n const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));\n if (magnitude > 0) {\n for (let i = 0; i < embedding.length; i++) {\n embedding[i] /= magnitude;\n }\n }\n\n return embedding;\n}\n\n/**\n * Get or create the RuVectorIntelligence singleton\n */\nexport async function getIntelligence(): Promise<RuVectorIntelligence> {\n if (intelligenceInstance) {\n return intelligenceInstance;\n }\n\n if (!initPromise) {\n initPromise = initializeIntelligence();\n }\n\n await initPromise;\n return intelligenceInstance!;\n}\n\n/**\n * Initialize the intelligence layer with optimal settings\n */\nasync function initializeIntelligence(): Promise<void> {\n try {\n // Use fast preset with consistent dimensions\n // SONA requires embeddingDim == hiddenDim\n intelligenceInstance = createIntelligenceLayer({\n ...IntelligencePresets.fast,\n hiddenDim: INTELLIGENCE_DIM,\n embeddingDim: INTELLIGENCE_DIM, // Must match hiddenDim for SONA\n enableSona: true,\n enableTrajectories: true,\n enableHnsw: false, // Disable HNSW for now (API compatibility issue)\n });\n\n // Register common agent types with correct dimension\n const agents = [\n 'coder', 'researcher', 'analyst', 'optimizer', 'coordinator',\n 'typescript-developer', 'rust-developer', 'python-developer',\n 'test-engineer', 'documentation-specialist', 'security-specialist',\n 'frontend-developer', 'backend-developer', 'devops-engineer'\n ];\n\n for (const agent of agents) {\n const embedding = simpleEmbed(`agent ${agent} specialist expert`, INTELLIGENCE_DIM);\n await intelligenceInstance.registerAgent(agent, embedding);\n }\n\n console.log('[IntelligenceBridge] RuVector intelligence layer initialized');\n console.log('[IntelligenceBridge] Features: Micro-LoRA, MoE Attention');\n } catch (error) {\n console.warn('[IntelligenceBridge] Failed to initialize full intelligence, using fallback:', error);\n // Create with minimal config if packages aren't available\n intelligenceInstance = createIntelligenceLayer({\n hiddenDim: INTELLIGENCE_DIM,\n embeddingDim: INTELLIGENCE_DIM,\n enableSona: false,\n enableHnsw: false,\n });\n }\n}\n\n/**\n * Route a task using SONA + MoE Attention + HNSW\n *\n * This replaces the simple keyword-based routing with:\n * 1. HNSW for O(log n) candidate retrieval\n * 2. Micro-LoRA transformation (~0.05ms)\n * 3. MoE attention-based ranking\n */\nexport async function routeTaskIntelligent(\n task: string,\n context?: {\n file?: string;\n recentFiles?: string[];\n errorContext?: string;\n }\n): Promise<{\n agent: string;\n confidence: number;\n routingResults: AgentRoutingResult[];\n latencyMs: number;\n usedFeatures: string[];\n}> {\n const startTime = performance.now();\n const intelligence = await getIntelligence();\n const usedFeatures: string[] = [];\n\n // Build context string\n let contextString = task;\n if (context?.file) {\n contextString += ` [file: ${context.file}]`;\n }\n if (context?.errorContext) {\n contextString += ` [error: ${context.errorContext}]`;\n }\n\n // Get task embedding with consistent dimension\n const embedding = simpleEmbed(contextString, INTELLIGENCE_DIM);\n usedFeatures.push('sona-embedding');\n\n // Route using full intelligence stack\n const routingResults = await intelligence.routeTask(embedding);\n usedFeatures.push('hnsw-search', 'moe-attention');\n\n // Select best agent\n const bestResult = routingResults[0] || {\n agentId: 'coder',\n confidence: 0.5,\n attentionWeights: new Float32Array(0),\n latencyMs: 0,\n usedHnsw: false,\n usedSona: false,\n };\n\n const latencyMs = performance.now() - startTime;\n\n return {\n agent: bestResult.agentId,\n confidence: Math.min(0.95, bestResult.confidence),\n routingResults,\n latencyMs,\n usedFeatures,\n };\n}\n\n/**\n * Begin a trajectory for learning from task execution\n *\n * Trajectories track:\n * - Task context and embeddings\n * - Agent actions and decisions\n * - Attention patterns at each step\n * - Final outcomes for reinforcement\n */\nexport async function beginTaskTrajectory(\n task: string,\n agent: string\n): Promise<{ trajectoryId: number; success: boolean; error?: string }> {\n const intelligence = await getIntelligence();\n\n // Get task embedding\n const embedding = simpleEmbed(task);\n\n // Start trajectory in SONA\n const result = intelligence.beginTrajectory(task, embedding);\n\n if (!result.success || result.value === undefined) {\n return {\n trajectoryId: -1,\n success: false,\n error: result.error || 'Failed to begin trajectory',\n };\n }\n\n const trajectoryId = result.value;\n\n // Track metadata\n activeTrajectories.set(trajectoryId, {\n taskDescription: task,\n startTime: Date.now(),\n agent,\n steps: 0,\n });\n\n return { trajectoryId, success: true };\n}\n\n/**\n * Record a step in the trajectory\n */\nexport async function recordTrajectoryStep(\n trajectoryId: number,\n action: string,\n reward: number,\n context?: {\n file?: string;\n errorFixed?: boolean;\n testPassed?: boolean;\n }\n): Promise<void> {\n const intelligence = await getIntelligence();\n const meta = activeTrajectories.get(trajectoryId);\n\n if (meta) {\n meta.steps++;\n\n // Generate activations from context\n const activations = new Array(256).fill(0).map(() => Math.random() * 0.1);\n\n // Attention weights (8 heads)\n const attentionWeights = new Array(8).fill(0.125);\n\n intelligence.addTrajectoryStep(\n trajectoryId,\n action,\n reward,\n activations,\n attentionWeights\n );\n }\n}\n\n/**\n * End a trajectory and get learning outcome\n */\nexport async function endTaskTrajectory(\n trajectoryId: number,\n success: boolean,\n quality: number = 0.8\n): Promise<LearningOutcome | null> {\n const intelligence = await getIntelligence();\n const meta = activeTrajectories.get(trajectoryId);\n\n if (!meta) {\n return null;\n }\n\n // End trajectory and trigger learning\n const outcome = intelligence.endTrajectory(trajectoryId, success, quality);\n\n // Clean up\n activeTrajectories.delete(trajectoryId);\n\n return outcome;\n}\n\n/**\n * Store a pattern by registering it as an agent-like entity\n */\nexport async function storePattern(\n task: string,\n resolution: string,\n reward: number\n): Promise<void> {\n const intelligence = await getIntelligence();\n\n // Get embedding for the task\n const embedding = simpleEmbed(`${task} ${resolution}`);\n\n // Register as a pattern (using agent registration for storage)\n const patternId = `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n await intelligence.registerAgent(patternId, embedding, {\n task,\n resolution,\n reward,\n timestamp: new Date().toISOString(),\n });\n}\n\n/**\n * Find similar patterns using routing\n */\nexport async function findSimilarPatterns(\n task: string,\n topK: number = 5\n): Promise<Array<{\n task: string;\n resolution: string;\n reward: number;\n similarity: number;\n}>> {\n const intelligence = await getIntelligence();\n\n // Get query embedding\n const embedding = simpleEmbed(task);\n\n // Search using routing (which uses HNSW internally)\n const results = await intelligence.routeTask(embedding, undefined, topK);\n\n // Filter for pattern results (those with pattern- prefix)\n return results\n .filter(r => r.agentId.startsWith('pattern-'))\n .map(r => ({\n task: task,\n resolution: r.agentId,\n reward: r.confidence,\n similarity: r.confidence,\n }));\n}\n\n/**\n * Get intelligence stats for monitoring\n */\nexport async function getIntelligenceStats(): Promise<{\n initialized: boolean;\n features: string[];\n trajectoryCount: number;\n activeTrajectories: number;\n learningEnabled: boolean;\n}> {\n if (!intelligenceInstance) {\n return {\n initialized: false,\n features: [],\n trajectoryCount: 0,\n activeTrajectories: 0,\n learningEnabled: false,\n };\n }\n\n const stats = intelligenceInstance.getStats();\n\n return {\n initialized: true,\n features: ['sona', 'micro-lora', 'hnsw', 'moe-attention'],\n trajectoryCount: stats.totalTrajectories || 0,\n activeTrajectories: activeTrajectories.size,\n learningEnabled: intelligenceInstance.isEnabled(),\n };\n}\n\n/**\n * Force a learning cycle (useful for batch learning)\n */\nexport async function forceLearningCycle(): Promise<string> {\n const intelligence = await getIntelligence();\n return intelligence.forceLearning();\n}\n\n/**\n * Compute attention-weighted similarity for advanced routing\n */\nexport async function computeAttentionSimilarity(\n query: Float32Array,\n candidates: Float32Array[]\n): Promise<number[]> {\n const intelligence = await getIntelligence();\n\n // Use async attention for ranking\n const result = await intelligence.computeAttentionAsync(query, candidates, candidates);\n\n return Array.from(result);\n}\n\n// Export types\nexport type { AgentRoutingResult, Trajectory, LearningOutcome };\n"]}
1
+ {"version":3,"file":"intelligence-bridge.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Intelligence Bridge - Connects hooks to RuVectorIntelligence layer\n *\n * This bridges the gap between hook tools and the full RuVector ecosystem:\n * - @ruvector/sona: Micro-LoRA, EWC++, ReasoningBank, Trajectories\n * - @ruvector/attention: MoE, Flash, Hyperbolic, Graph attention\n * - ruvector core: HNSW indexing (150x faster search)\n *\n * Persistence: SQLite-based storage for cross-platform compatibility\n */\n\nimport {\n RuVectorIntelligence,\n createIntelligenceLayer,\n IntelligencePresets,\n type AgentRoutingResult,\n type Trajectory,\n type LearningOutcome,\n} from '../../../../intelligence/index.js';\n\nimport { getIntelligenceStore, type IntelligenceStore } from '../../../../intelligence/IntelligenceStore.js';\nimport { getEmbeddingService, type EmbeddingService } from '../../../../intelligence/EmbeddingService.js';\n\n// Singleton instances\nlet intelligenceInstance: RuVectorIntelligence | null = null;\nlet storeInstance: IntelligenceStore | null = null;\nlet initPromise: Promise<void> | null = null;\n\n// Consistent dimension for SONA (must match hiddenDim = embeddingDim)\n// Using 128 for ultra-fast performance (~0.05ms per operation)\nconst INTELLIGENCE_DIM = 128;\n\n// Active trajectories in memory (for fast access, backed by SQLite)\nconst activeTrajectories = new Map<number, {\n taskDescription: string;\n startTime: number;\n agent: string;\n steps: number;\n dbId: number; // SQLite row ID\n}>();\n\n/**\n * Get the SQLite store singleton\n */\nexport function getStore(): IntelligenceStore {\n if (!storeInstance) {\n storeInstance = getIntelligenceStore();\n }\n return storeInstance;\n}\n\n// Get embedding service singleton\nlet embeddingServiceInstance: EmbeddingService | null = null;\n\nfunction getEmbeddingServiceInstance(): EmbeddingService {\n if (!embeddingServiceInstance) {\n embeddingServiceInstance = getEmbeddingService();\n }\n return embeddingServiceInstance;\n}\n\n// Simple embedding function (uses EmbeddingService with caching)\nfunction simpleEmbed(text: string, dim: number = INTELLIGENCE_DIM): number[] {\n const service = getEmbeddingServiceInstance();\n const embedding = service.simpleEmbed(text, dim);\n return Array.from(embedding);\n}\n\n/**\n * Get or create the RuVectorIntelligence singleton\n */\nexport async function getIntelligence(): Promise<RuVectorIntelligence> {\n if (intelligenceInstance) {\n return intelligenceInstance;\n }\n\n if (!initPromise) {\n initPromise = initializeIntelligence();\n }\n\n await initPromise;\n return intelligenceInstance!;\n}\n\n/**\n * Initialize the intelligence layer with optimal settings\n */\nasync function initializeIntelligence(): Promise<void> {\n try {\n // Use fast preset with consistent dimensions\n // SONA requires embeddingDim == hiddenDim\n intelligenceInstance = createIntelligenceLayer({\n ...IntelligencePresets.fast,\n hiddenDim: INTELLIGENCE_DIM,\n embeddingDim: INTELLIGENCE_DIM, // Must match hiddenDim for SONA\n enableSona: true,\n enableTrajectories: true,\n enableHnsw: false, // Disable HNSW for now (API compatibility issue)\n });\n\n // Register common agent types with correct dimension\n const agents = [\n 'coder', 'researcher', 'analyst', 'optimizer', 'coordinator',\n 'typescript-developer', 'rust-developer', 'python-developer',\n 'test-engineer', 'documentation-specialist', 'security-specialist',\n 'frontend-developer', 'backend-developer', 'devops-engineer'\n ];\n\n for (const agent of agents) {\n const embedding = simpleEmbed(`agent ${agent} specialist expert`, INTELLIGENCE_DIM);\n await intelligenceInstance.registerAgent(agent, embedding);\n }\n\n console.log('[IntelligenceBridge] RuVector intelligence layer initialized');\n console.log('[IntelligenceBridge] Features: Micro-LoRA, MoE Attention');\n } catch (error) {\n console.warn('[IntelligenceBridge] Failed to initialize full intelligence, using fallback:', error);\n // Create with minimal config if packages aren't available\n intelligenceInstance = createIntelligenceLayer({\n hiddenDim: INTELLIGENCE_DIM,\n embeddingDim: INTELLIGENCE_DIM,\n enableSona: false,\n enableHnsw: false,\n });\n }\n}\n\n/**\n * Route a task using SONA + MoE Attention + HNSW\n *\n * This replaces the simple keyword-based routing with:\n * 1. HNSW for O(log n) candidate retrieval\n * 2. Micro-LoRA transformation (~0.05ms)\n * 3. MoE attention-based ranking\n */\nexport async function routeTaskIntelligent(\n task: string,\n context?: {\n file?: string;\n recentFiles?: string[];\n errorContext?: string;\n }\n): Promise<{\n agent: string;\n confidence: number;\n routingResults: AgentRoutingResult[];\n latencyMs: number;\n usedFeatures: string[];\n}> {\n const startTime = performance.now();\n const intelligence = await getIntelligence();\n const usedFeatures: string[] = [];\n\n // Build context string\n let contextString = task;\n if (context?.file) {\n contextString += ` [file: ${context.file}]`;\n }\n if (context?.errorContext) {\n contextString += ` [error: ${context.errorContext}]`;\n }\n\n // Get task embedding with consistent dimension\n const embedding = simpleEmbed(contextString, INTELLIGENCE_DIM);\n usedFeatures.push('sona-embedding');\n\n // Route using full intelligence stack\n const routingResults = await intelligence.routeTask(embedding);\n usedFeatures.push('hnsw-search', 'moe-attention');\n\n // Select best agent\n const bestResult = routingResults[0] || {\n agentId: 'coder',\n confidence: 0.5,\n attentionWeights: new Float32Array(0),\n latencyMs: 0,\n usedHnsw: false,\n usedSona: false,\n };\n\n const latencyMs = performance.now() - startTime;\n\n // Record routing in SQLite for persistence\n const store = getStore();\n store.recordRouting(\n task,\n bestResult.agentId,\n Math.min(0.95, bestResult.confidence),\n Math.round(latencyMs)\n );\n\n return {\n agent: bestResult.agentId,\n confidence: Math.min(0.95, bestResult.confidence),\n routingResults,\n latencyMs,\n usedFeatures,\n };\n}\n\n/**\n * Begin a trajectory for learning from task execution\n *\n * Trajectories track:\n * - Task context and embeddings\n * - Agent actions and decisions\n * - Attention patterns at each step\n * - Final outcomes for reinforcement\n */\nexport async function beginTaskTrajectory(\n task: string,\n agent: string\n): Promise<{ trajectoryId: number; success: boolean; error?: string }> {\n const intelligence = await getIntelligence();\n const store = getStore();\n\n // Get task embedding\n const embedding = simpleEmbed(task);\n\n // Start trajectory in SONA\n const result = intelligence.beginTrajectory(task, embedding);\n\n if (!result.success || result.value === undefined) {\n return {\n trajectoryId: -1,\n success: false,\n error: result.error || 'Failed to begin trajectory',\n };\n }\n\n const trajectoryId = result.value;\n\n // Persist to SQLite\n const dbId = store.startTrajectory(task, agent);\n\n // Track metadata in memory (for fast access)\n activeTrajectories.set(trajectoryId, {\n taskDescription: task,\n startTime: Date.now(),\n agent,\n steps: 0,\n dbId,\n });\n\n return { trajectoryId, success: true };\n}\n\n/**\n * Record a step in the trajectory\n */\nexport async function recordTrajectoryStep(\n trajectoryId: number,\n action: string,\n reward: number,\n context?: {\n file?: string;\n errorFixed?: boolean;\n testPassed?: boolean;\n }\n): Promise<void> {\n const intelligence = await getIntelligence();\n const store = getStore();\n const meta = activeTrajectories.get(trajectoryId);\n\n if (meta) {\n meta.steps++;\n\n // Persist step to SQLite\n store.addTrajectoryStep(meta.dbId);\n\n // Generate activations from context\n const activations = new Array(256).fill(0).map(() => Math.random() * 0.1);\n\n // Attention weights (8 heads)\n const attentionWeights = new Array(8).fill(0.125);\n\n intelligence.addTrajectoryStep(\n trajectoryId,\n action,\n reward,\n activations,\n attentionWeights\n );\n }\n}\n\n/**\n * End a trajectory and get learning outcome\n */\nexport async function endTaskTrajectory(\n trajectoryId: number,\n success: boolean,\n quality: number = 0.8\n): Promise<LearningOutcome | null> {\n const intelligence = await getIntelligence();\n const store = getStore();\n const meta = activeTrajectories.get(trajectoryId);\n\n if (!meta) {\n return null;\n }\n\n // Persist to SQLite\n const outcome_type = success ? 'success' : 'failure';\n store.endTrajectory(meta.dbId, outcome_type, { quality, steps: meta.steps });\n\n // End trajectory and trigger learning\n const outcome = intelligence.endTrajectory(trajectoryId, success, quality);\n\n // Clean up\n activeTrajectories.delete(trajectoryId);\n\n return outcome;\n}\n\n/**\n * Store a pattern by registering it as an agent-like entity\n */\nexport async function storePattern(\n task: string,\n resolution: string,\n reward: number\n): Promise<void> {\n const intelligence = await getIntelligence();\n\n // Get embedding for the task\n const embedding = simpleEmbed(`${task} ${resolution}`);\n\n // Register as a pattern (using agent registration for storage)\n const patternId = `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n await intelligence.registerAgent(patternId, embedding, {\n task,\n resolution,\n reward,\n timestamp: new Date().toISOString(),\n });\n}\n\n/**\n * Find similar patterns using routing\n */\nexport async function findSimilarPatterns(\n task: string,\n topK: number = 5\n): Promise<Array<{\n task: string;\n resolution: string;\n reward: number;\n similarity: number;\n}>> {\n const intelligence = await getIntelligence();\n\n // Get query embedding\n const embedding = simpleEmbed(task);\n\n // Search using routing (which uses HNSW internally)\n const results = await intelligence.routeTask(embedding, undefined, topK);\n\n // Filter for pattern results (those with pattern- prefix)\n return results\n .filter(r => r.agentId.startsWith('pattern-'))\n .map(r => ({\n task: task,\n resolution: r.agentId,\n reward: r.confidence,\n similarity: r.confidence,\n }));\n}\n\n/**\n * Get intelligence stats for monitoring\n */\nexport async function getIntelligenceStats(): Promise<{\n initialized: boolean;\n features: string[];\n trajectoryCount: number;\n activeTrajectories: number;\n learningEnabled: boolean;\n persistedStats?: {\n trajectories: number;\n routings: number;\n patterns: number;\n operations: number;\n };\n}> {\n const store = getStore();\n const persistedStats = store.getSummary();\n\n if (!intelligenceInstance) {\n return {\n initialized: false,\n features: [],\n trajectoryCount: persistedStats.trajectories,\n activeTrajectories: 0,\n learningEnabled: false,\n persistedStats,\n };\n }\n\n const stats = intelligenceInstance.getStats();\n\n return {\n initialized: true,\n features: ['sona', 'micro-lora', 'hnsw', 'moe-attention'],\n trajectoryCount: persistedStats.trajectories || stats.totalTrajectories || 0,\n activeTrajectories: activeTrajectories.size,\n learningEnabled: intelligenceInstance.isEnabled(),\n persistedStats,\n };\n}\n\n/**\n * Force a learning cycle (useful for batch learning)\n */\nexport async function forceLearningCycle(): Promise<string> {\n const intelligence = await getIntelligence();\n return intelligence.forceLearning();\n}\n\n/**\n * Compute attention-weighted similarity for advanced routing\n */\nexport async function computeAttentionSimilarity(\n query: Float32Array,\n candidates: Float32Array[]\n): Promise<number[]> {\n const intelligence = await getIntelligence();\n\n // Use async attention for ranking\n const result = await intelligence.computeAttentionAsync(query, candidates, candidates);\n\n return Array.from(result);\n}\n\n// Export types\nexport type { AgentRoutingResult, Trajectory, LearningOutcome };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"intelligence-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAc3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,cA0C7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,cAuC5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,cAiC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,cAiC1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,cAqC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAgDnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cA8BnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,cA0DvC,CAAC;AAGF,eAAO,MAAM,iBAAiB,kBAU7B,CAAC"}
1
+ {"version":3,"file":"intelligence-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAc3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,cA0C7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,cAuC5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,cAiC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,cAiC1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,cAqC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cA8BnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,cA0DvC,CAAC;AAGF,eAAO,MAAM,iBAAiB,kBAU7B,CAAC"}
@@ -294,6 +294,14 @@ export const intelligenceStatsTool = {
294
294
  speedup: '150x vs brute-force',
295
295
  },
296
296
  },
297
+ persistence: {
298
+ enabled: true,
299
+ backend: 'sqlite',
300
+ trajectories: stats.persistedStats?.trajectories ?? 0,
301
+ routings: stats.persistedStats?.routings ?? 0,
302
+ patterns: stats.persistedStats?.patterns ?? 0,
303
+ operations: stats.persistedStats?.operations ?? 0,
304
+ },
297
305
  latencyMs: Date.now() - startTime,
298
306
  timestamp: new Date().toISOString(),
299
307
  };
@@ -1 +1 @@
1
- {"version":3,"file":"intelligence-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Intelligence MCP Tools - Expose RuVector Intelligence via MCP\n *\n * These tools provide direct access to the full RuVector ecosystem:\n * - @ruvector/sona: Micro-LoRA (~0.05ms), EWC++, Trajectory tracking\n * - @ruvector/attention: MoE, Flash, Hyperbolic, Graph attention\n * - ruvector core: HNSW indexing (150x faster than brute force)\n *\n * Available both as MCP tools AND CLI hooks.\n */\n\nimport { z } from 'zod';\nimport type { ToolDefinition } from '../../types/index.js';\nimport {\n getIntelligence,\n routeTaskIntelligent,\n beginTaskTrajectory,\n recordTrajectoryStep,\n endTaskTrajectory,\n storePattern,\n findSimilarPatterns,\n getIntelligenceStats,\n forceLearningCycle,\n computeAttentionSimilarity,\n} from './intelligence-bridge.js';\n\n/**\n * Intelligence Route Tool\n * Route tasks using SONA Micro-LoRA + MoE Attention + HNSW indexing\n */\nexport const intelligenceRouteTool: ToolDefinition = {\n name: 'intelligence_route',\n description: 'Route task using RuVector intelligence: SONA Micro-LoRA (~0.05ms) + MoE attention + HNSW (150x faster)',\n parameters: z.object({\n task: z.string().describe('Task description to route'),\n file: z.string().optional().describe('Optional file context'),\n errorContext: z.string().optional().describe('Optional error context for debugging tasks'),\n topK: z.number().optional().default(5).describe('Number of agent candidates to return'),\n }),\n execute: async ({ task, file, errorContext, topK }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const result = await routeTaskIntelligent(task, {\n file,\n errorContext,\n });\n\n return {\n success: true,\n agent: result.agent,\n confidence: result.confidence,\n alternatives: result.routingResults.slice(1, topK).map(r => ({\n agent: r.agentId,\n confidence: r.confidence,\n })),\n features: result.usedFeatures,\n latencyMs: result.latencyMs,\n engine: 'ruvector-sona-moe-hnsw',\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory Start Tool\n * Begin trajectory tracking for learning from task execution\n */\nexport const intelligenceTrajectoryStartTool: ToolDefinition = {\n name: 'intelligence_trajectory_start',\n description: 'Begin SONA trajectory for learning from task execution. Returns trajectoryId for tracking.',\n parameters: z.object({\n task: z.string().describe('Task description'),\n agent: z.string().describe('Agent executing the task'),\n context: z.string().optional().describe('Additional context'),\n }),\n execute: async ({ task, agent, context }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const fullTask = context ? `${task} [context: ${context}]` : task;\n const result = await beginTaskTrajectory(fullTask, agent);\n\n if (!result.success) {\n return {\n success: false,\n error: result.error || 'Failed to start trajectory',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n\n return {\n success: true,\n trajectoryId: result.trajectoryId,\n message: `Trajectory ${result.trajectoryId} started for agent ${agent}`,\n trackingEnabled: true,\n features: ['micro-lora', 'ewc++', 'attention-patterns'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory Step Tool\n * Record intermediate steps during task execution\n */\nexport const intelligenceTrajectoryStepTool: ToolDefinition = {\n name: 'intelligence_trajectory_step',\n description: 'Record a step in the trajectory for reinforcement learning',\n parameters: z.object({\n trajectoryId: z.number().describe('Trajectory ID from trajectory_start'),\n action: z.string().describe('Action taken (e.g., \"edit-file\", \"run-test\")'),\n reward: z.number().min(-1).max(1).describe('Reward signal (-1 to 1)'),\n file: z.string().optional().describe('File involved'),\n errorFixed: z.boolean().optional().describe('Whether an error was fixed'),\n testPassed: z.boolean().optional().describe('Whether tests passed'),\n }),\n execute: async ({ trajectoryId, action, reward, file, errorFixed, testPassed }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n await recordTrajectoryStep(trajectoryId, action, reward, {\n file,\n errorFixed,\n testPassed,\n });\n\n return {\n success: true,\n trajectoryId,\n action,\n reward,\n message: `Step recorded: ${action} with reward ${reward}`,\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory End Tool\n * Complete trajectory and trigger learning with EWC++\n */\nexport const intelligenceTrajectoryEndTool: ToolDefinition = {\n name: 'intelligence_trajectory_end',\n description: 'End trajectory, trigger SONA learning with EWC++ (prevents catastrophic forgetting)',\n parameters: z.object({\n trajectoryId: z.number().describe('Trajectory ID from trajectory_start'),\n success: z.boolean().describe('Whether the task was successful'),\n quality: z.number().min(0).max(1).optional().default(0.8).describe('Quality score (0-1)'),\n }),\n execute: async ({ trajectoryId, success, quality }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const outcome = await endTaskTrajectory(trajectoryId, success, quality);\n\n return {\n success: true,\n trajectoryId,\n taskSuccess: success,\n quality,\n learningOutcome: outcome,\n features: ['micro-lora-update', 'ewc++-consolidation', 'reasoning-bank-storage'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Pattern Store Tool\n * Store successful patterns in ReasoningBank for future retrieval\n */\nexport const intelligencePatternStoreTool: ToolDefinition = {\n name: 'intelligence_pattern_store',\n description: 'Store pattern in ReasoningBank (HNSW-indexed, ~0.1ms retrieval)',\n parameters: z.object({\n task: z.string().describe('Task description'),\n resolution: z.string().describe('How the task was resolved'),\n reward: z.number().min(0).max(1).describe('Success score (0-1)'),\n tags: z.array(z.string()).optional().describe('Optional tags for categorization'),\n }),\n execute: async ({ task, resolution, reward, tags }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n await storePattern(task, resolution, reward);\n\n return {\n success: true,\n message: `Pattern stored: \"${task.slice(0, 50)}...\"`,\n reward,\n indexed: true,\n retrieval: 'hnsw-150x-faster',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Pattern Search Tool\n * Find similar patterns using HNSW (150x faster than brute force)\n */\nexport const intelligencePatternSearchTool: ToolDefinition = {\n name: 'intelligence_pattern_search',\n description: 'Search ReasoningBank for similar patterns using HNSW (150x faster)',\n parameters: z.object({\n query: z.string().describe('Query to search for similar patterns'),\n topK: z.number().optional().default(5).describe('Number of results to return'),\n minReward: z.number().min(0).max(1).optional().describe('Minimum reward filter'),\n }),\n execute: async ({ query, topK, minReward }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n let patterns = await findSimilarPatterns(query, topK);\n\n // Filter by minimum reward if specified\n if (minReward !== undefined) {\n patterns = patterns.filter(p => p.reward >= minReward);\n }\n\n return {\n success: true,\n query: query.slice(0, 50),\n patterns,\n count: patterns.length,\n searchEngine: 'hnsw-150x-faster',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Intelligence Stats Tool\n * Get statistics about the intelligence layer\n */\nexport const intelligenceStatsTool: ToolDefinition = {\n name: 'intelligence_stats',\n description: 'Get RuVector intelligence layer statistics: SONA, HNSW, attention metrics',\n parameters: z.object({}),\n execute: async (_, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n // Initialize intelligence FIRST, then get stats\n const intelligence = await getIntelligence();\n const fullStats = intelligence.getStats();\n const stats = await getIntelligenceStats();\n\n return {\n success: true,\n stats: {\n ...stats,\n ...fullStats,\n },\n features: {\n sona: {\n enabled: stats.features?.includes('sona') ?? false,\n microLora: 'rank-1 (~0.05ms)',\n baseLora: 'rank-8',\n ewcLambda: 1000.0,\n },\n attention: {\n type: 'moe',\n experts: 4,\n topK: 2,\n },\n hnsw: {\n enabled: stats.features?.includes('hnsw') ?? false,\n speedup: '150x vs brute-force',\n },\n },\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Force Learning Tool\n * Trigger an immediate learning cycle\n */\nexport const intelligenceLearnTool: ToolDefinition = {\n name: 'intelligence_learn',\n description: 'Force immediate SONA learning cycle with EWC++ consolidation',\n parameters: z.object({\n reason: z.string().optional().describe('Reason for forcing learning'),\n }),\n execute: async ({ reason }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const result = await forceLearningCycle();\n\n return {\n success: true,\n message: 'Learning cycle completed',\n result,\n reason: reason || 'manual trigger',\n features: ['micro-lora-batch', 'ewc++-consolidation', 'pattern-distillation'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Attention Compute Tool\n * Compute attention-weighted similarity using MoE/Flash/Hyperbolic\n */\nexport const intelligenceAttentionTool: ToolDefinition = {\n name: 'intelligence_attention',\n description: 'Compute attention-weighted similarity using MoE/Flash/Hyperbolic attention',\n parameters: z.object({\n query: z.string().describe('Query text'),\n candidates: z.array(z.string()).describe('Candidate texts to score'),\n attentionType: z.enum(['moe', 'flash', 'hyperbolic', 'graph', 'dual']).optional().default('moe')\n .describe('Attention mechanism type'),\n }),\n execute: async ({ query, candidates, attentionType }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n // Simple embedding function\n const embed = (text: string): Float32Array => {\n const arr = new Float32Array(64);\n const words = text.toLowerCase().split(/\\s+/);\n for (const word of words) {\n for (let i = 0; i < word.length; i++) {\n const idx = (word.charCodeAt(i) * (i + 1)) % 64;\n arr[idx] += 1;\n }\n }\n // Normalize\n const mag = Math.sqrt(arr.reduce((sum, v) => sum + v * v, 0));\n if (mag > 0) {\n for (let i = 0; i < arr.length; i++) arr[i] /= mag;\n }\n return arr;\n };\n\n const queryEmbed = embed(query);\n const candidateEmbeds = candidates.map(c => embed(c));\n\n const scores = await computeAttentionSimilarity(queryEmbed, candidateEmbeds);\n\n const results = candidates.map((c, i) => ({\n text: c.slice(0, 50),\n score: scores[i] || 0,\n })).sort((a, b) => b.score - a.score);\n\n return {\n success: true,\n query: query.slice(0, 50),\n attentionType,\n results,\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n// Export all intelligence tools\nexport const intelligenceTools = [\n intelligenceRouteTool,\n intelligenceTrajectoryStartTool,\n intelligenceTrajectoryStepTool,\n intelligenceTrajectoryEndTool,\n intelligencePatternStoreTool,\n intelligencePatternSearchTool,\n intelligenceStatsTool,\n intelligenceLearnTool,\n intelligenceAttentionTool,\n];\n"]}
1
+ {"version":3,"file":"intelligence-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/intelligence-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Intelligence MCP Tools - Expose RuVector Intelligence via MCP\n *\n * These tools provide direct access to the full RuVector ecosystem:\n * - @ruvector/sona: Micro-LoRA (~0.05ms), EWC++, Trajectory tracking\n * - @ruvector/attention: MoE, Flash, Hyperbolic, Graph attention\n * - ruvector core: HNSW indexing (150x faster than brute force)\n *\n * Available both as MCP tools AND CLI hooks.\n */\n\nimport { z } from 'zod';\nimport type { ToolDefinition } from '../../types/index.js';\nimport {\n getIntelligence,\n routeTaskIntelligent,\n beginTaskTrajectory,\n recordTrajectoryStep,\n endTaskTrajectory,\n storePattern,\n findSimilarPatterns,\n getIntelligenceStats,\n forceLearningCycle,\n computeAttentionSimilarity,\n} from './intelligence-bridge.js';\n\n/**\n * Intelligence Route Tool\n * Route tasks using SONA Micro-LoRA + MoE Attention + HNSW indexing\n */\nexport const intelligenceRouteTool: ToolDefinition = {\n name: 'intelligence_route',\n description: 'Route task using RuVector intelligence: SONA Micro-LoRA (~0.05ms) + MoE attention + HNSW (150x faster)',\n parameters: z.object({\n task: z.string().describe('Task description to route'),\n file: z.string().optional().describe('Optional file context'),\n errorContext: z.string().optional().describe('Optional error context for debugging tasks'),\n topK: z.number().optional().default(5).describe('Number of agent candidates to return'),\n }),\n execute: async ({ task, file, errorContext, topK }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const result = await routeTaskIntelligent(task, {\n file,\n errorContext,\n });\n\n return {\n success: true,\n agent: result.agent,\n confidence: result.confidence,\n alternatives: result.routingResults.slice(1, topK).map(r => ({\n agent: r.agentId,\n confidence: r.confidence,\n })),\n features: result.usedFeatures,\n latencyMs: result.latencyMs,\n engine: 'ruvector-sona-moe-hnsw',\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory Start Tool\n * Begin trajectory tracking for learning from task execution\n */\nexport const intelligenceTrajectoryStartTool: ToolDefinition = {\n name: 'intelligence_trajectory_start',\n description: 'Begin SONA trajectory for learning from task execution. Returns trajectoryId for tracking.',\n parameters: z.object({\n task: z.string().describe('Task description'),\n agent: z.string().describe('Agent executing the task'),\n context: z.string().optional().describe('Additional context'),\n }),\n execute: async ({ task, agent, context }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const fullTask = context ? `${task} [context: ${context}]` : task;\n const result = await beginTaskTrajectory(fullTask, agent);\n\n if (!result.success) {\n return {\n success: false,\n error: result.error || 'Failed to start trajectory',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n\n return {\n success: true,\n trajectoryId: result.trajectoryId,\n message: `Trajectory ${result.trajectoryId} started for agent ${agent}`,\n trackingEnabled: true,\n features: ['micro-lora', 'ewc++', 'attention-patterns'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory Step Tool\n * Record intermediate steps during task execution\n */\nexport const intelligenceTrajectoryStepTool: ToolDefinition = {\n name: 'intelligence_trajectory_step',\n description: 'Record a step in the trajectory for reinforcement learning',\n parameters: z.object({\n trajectoryId: z.number().describe('Trajectory ID from trajectory_start'),\n action: z.string().describe('Action taken (e.g., \"edit-file\", \"run-test\")'),\n reward: z.number().min(-1).max(1).describe('Reward signal (-1 to 1)'),\n file: z.string().optional().describe('File involved'),\n errorFixed: z.boolean().optional().describe('Whether an error was fixed'),\n testPassed: z.boolean().optional().describe('Whether tests passed'),\n }),\n execute: async ({ trajectoryId, action, reward, file, errorFixed, testPassed }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n await recordTrajectoryStep(trajectoryId, action, reward, {\n file,\n errorFixed,\n testPassed,\n });\n\n return {\n success: true,\n trajectoryId,\n action,\n reward,\n message: `Step recorded: ${action} with reward ${reward}`,\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Trajectory End Tool\n * Complete trajectory and trigger learning with EWC++\n */\nexport const intelligenceTrajectoryEndTool: ToolDefinition = {\n name: 'intelligence_trajectory_end',\n description: 'End trajectory, trigger SONA learning with EWC++ (prevents catastrophic forgetting)',\n parameters: z.object({\n trajectoryId: z.number().describe('Trajectory ID from trajectory_start'),\n success: z.boolean().describe('Whether the task was successful'),\n quality: z.number().min(0).max(1).optional().default(0.8).describe('Quality score (0-1)'),\n }),\n execute: async ({ trajectoryId, success, quality }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const outcome = await endTaskTrajectory(trajectoryId, success, quality);\n\n return {\n success: true,\n trajectoryId,\n taskSuccess: success,\n quality,\n learningOutcome: outcome,\n features: ['micro-lora-update', 'ewc++-consolidation', 'reasoning-bank-storage'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Pattern Store Tool\n * Store successful patterns in ReasoningBank for future retrieval\n */\nexport const intelligencePatternStoreTool: ToolDefinition = {\n name: 'intelligence_pattern_store',\n description: 'Store pattern in ReasoningBank (HNSW-indexed, ~0.1ms retrieval)',\n parameters: z.object({\n task: z.string().describe('Task description'),\n resolution: z.string().describe('How the task was resolved'),\n reward: z.number().min(0).max(1).describe('Success score (0-1)'),\n tags: z.array(z.string()).optional().describe('Optional tags for categorization'),\n }),\n execute: async ({ task, resolution, reward, tags }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n await storePattern(task, resolution, reward);\n\n return {\n success: true,\n message: `Pattern stored: \"${task.slice(0, 50)}...\"`,\n reward,\n indexed: true,\n retrieval: 'hnsw-150x-faster',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Pattern Search Tool\n * Find similar patterns using HNSW (150x faster than brute force)\n */\nexport const intelligencePatternSearchTool: ToolDefinition = {\n name: 'intelligence_pattern_search',\n description: 'Search ReasoningBank for similar patterns using HNSW (150x faster)',\n parameters: z.object({\n query: z.string().describe('Query to search for similar patterns'),\n topK: z.number().optional().default(5).describe('Number of results to return'),\n minReward: z.number().min(0).max(1).optional().describe('Minimum reward filter'),\n }),\n execute: async ({ query, topK, minReward }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n let patterns = await findSimilarPatterns(query, topK);\n\n // Filter by minimum reward if specified\n if (minReward !== undefined) {\n patterns = patterns.filter(p => p.reward >= minReward);\n }\n\n return {\n success: true,\n query: query.slice(0, 50),\n patterns,\n count: patterns.length,\n searchEngine: 'hnsw-150x-faster',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Intelligence Stats Tool\n * Get statistics about the intelligence layer\n */\nexport const intelligenceStatsTool: ToolDefinition = {\n name: 'intelligence_stats',\n description: 'Get RuVector intelligence layer statistics: SONA, HNSW, attention metrics',\n parameters: z.object({}),\n execute: async (_, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n // Initialize intelligence FIRST, then get stats\n const intelligence = await getIntelligence();\n const fullStats = intelligence.getStats();\n const stats = await getIntelligenceStats();\n\n return {\n success: true,\n stats: {\n ...stats,\n ...fullStats,\n },\n features: {\n sona: {\n enabled: stats.features?.includes('sona') ?? false,\n microLora: 'rank-1 (~0.05ms)',\n baseLora: 'rank-8',\n ewcLambda: 1000.0,\n },\n attention: {\n type: 'moe',\n experts: 4,\n topK: 2,\n },\n hnsw: {\n enabled: stats.features?.includes('hnsw') ?? false,\n speedup: '150x vs brute-force',\n },\n },\n persistence: {\n enabled: true,\n backend: 'sqlite',\n trajectories: stats.persistedStats?.trajectories ?? 0,\n routings: stats.persistedStats?.routings ?? 0,\n patterns: stats.persistedStats?.patterns ?? 0,\n operations: stats.persistedStats?.operations ?? 0,\n },\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Force Learning Tool\n * Trigger an immediate learning cycle\n */\nexport const intelligenceLearnTool: ToolDefinition = {\n name: 'intelligence_learn',\n description: 'Force immediate SONA learning cycle with EWC++ consolidation',\n parameters: z.object({\n reason: z.string().optional().describe('Reason for forcing learning'),\n }),\n execute: async ({ reason }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n const result = await forceLearningCycle();\n\n return {\n success: true,\n message: 'Learning cycle completed',\n result,\n reason: reason || 'manual trigger',\n features: ['micro-lora-batch', 'ewc++-consolidation', 'pattern-distillation'],\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n/**\n * Attention Compute Tool\n * Compute attention-weighted similarity using MoE/Flash/Hyperbolic\n */\nexport const intelligenceAttentionTool: ToolDefinition = {\n name: 'intelligence_attention',\n description: 'Compute attention-weighted similarity using MoE/Flash/Hyperbolic attention',\n parameters: z.object({\n query: z.string().describe('Query text'),\n candidates: z.array(z.string()).describe('Candidate texts to score'),\n attentionType: z.enum(['moe', 'flash', 'hyperbolic', 'graph', 'dual']).optional().default('moe')\n .describe('Attention mechanism type'),\n }),\n execute: async ({ query, candidates, attentionType }, { onProgress }) => {\n const startTime = Date.now();\n\n try {\n // Simple embedding function\n const embed = (text: string): Float32Array => {\n const arr = new Float32Array(64);\n const words = text.toLowerCase().split(/\\s+/);\n for (const word of words) {\n for (let i = 0; i < word.length; i++) {\n const idx = (word.charCodeAt(i) * (i + 1)) % 64;\n arr[idx] += 1;\n }\n }\n // Normalize\n const mag = Math.sqrt(arr.reduce((sum, v) => sum + v * v, 0));\n if (mag > 0) {\n for (let i = 0; i < arr.length; i++) arr[i] /= mag;\n }\n return arr;\n };\n\n const queryEmbed = embed(query);\n const candidateEmbeds = candidates.map(c => embed(c));\n\n const scores = await computeAttentionSimilarity(queryEmbed, candidateEmbeds);\n\n const results = candidates.map((c, i) => ({\n text: c.slice(0, 50),\n score: scores[i] || 0,\n })).sort((a, b) => b.score - a.score);\n\n return {\n success: true,\n query: query.slice(0, 50),\n attentionType,\n results,\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n latencyMs: Date.now() - startTime,\n timestamp: new Date().toISOString(),\n };\n }\n },\n};\n\n// Export all intelligence tools\nexport const intelligenceTools = [\n intelligenceRouteTool,\n intelligenceTrajectoryStartTool,\n intelligenceTrajectoryStepTool,\n intelligenceTrajectoryEndTool,\n intelligencePatternStoreTool,\n intelligencePatternSearchTool,\n intelligenceStatsTool,\n intelligenceLearnTool,\n intelligenceAttentionTool,\n];\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-flow",
3
- "version": "2.0.1-alpha.12",
3
+ "version": "2.0.1-alpha.14",
4
4
  "description": "Production-ready AI agent orchestration platform with 66 specialized agents, 213 MCP tools, ReasoningBank learning memory, and autonomous multi-agent swarms. Built by @ruvnet with Claude Agent SDK, neural networks, memory persistence, GitHub integration, and distributed consensus protocols.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -157,7 +157,9 @@
157
157
  "express": "^5.1.0",
158
158
  "fastmcp": "^3.19.0",
159
159
  "http-proxy-middleware": "^3.0.5",
160
+ "onnxruntime-node": "^1.23.2",
160
161
  "ruvector": "^0.1.53",
162
+ "ruvector-onnx-embeddings-wasm": "^0.1.1",
161
163
  "tiktoken": "^1.0.22",
162
164
  "ulid": "^3.0.1",
163
165
  "ws": "^8.18.3",
@@ -258,7 +258,7 @@ export function log(message) {
258
258
  wasm.log(ptr0, len0);
259
259
  }
260
260
 
261
- function __wbg_adapter_4(arg0, arg1, arg2) {
261
+ function __wbg_adapter_6(arg0, arg1, arg2) {
262
262
  wasm.__wbindgen_export_5(arg0, arg1, addHeapObject(arg2));
263
263
  }
264
264
 
@@ -540,7 +540,7 @@ export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
540
540
 
541
541
  export function __wbindgen_cast_8eb6fd44e7238d11(arg0, arg1) {
542
542
  // Cast intrinsic for `Closure(Closure { dtor_idx: 62, function: Function { arguments: [Externref], shim_idx: 63, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
543
- const ret = makeMutClosure(arg0, arg1, 62, __wbg_adapter_4);
543
+ const ret = makeMutClosure(arg0, arg1, 62, __wbg_adapter_6);
544
544
  return addHeapObject(ret);
545
545
  };
546
546