agentic-flow 2.0.13 → 2.1.0
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 +87 -0
- package/README.md +376 -186
- package/dist/.tsbuildinfo +1 -1
- package/dist/agent-booster/index.d.ts +14 -0
- package/dist/agent-booster/index.d.ts.map +1 -0
- package/dist/agent-booster/index.js +25 -0
- package/dist/agent-booster/index.js.map +1 -0
- package/dist/agents/directApiAgent.d.ts.map +1 -1
- package/dist/agents/directApiAgent.js +37 -19
- package/dist/agents/directApiAgent.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +4 -1
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/mcp-manager.js +13 -6
- package/dist/cli/mcp-manager.js.map +1 -1
- package/dist/harness/provenance.d.ts +72 -0
- package/dist/harness/provenance.d.ts.map +1 -0
- package/dist/harness/provenance.js +92 -0
- package/dist/harness/provenance.js.map +1 -0
- package/dist/intelligence/EmbeddingService.js +3 -3
- package/dist/intelligence/EmbeddingService.js.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.js +5 -3
- package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +76 -29
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +27 -22
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -1
- package/dist/mcp/fastmcp/servers/http-sse.js +31 -20
- package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -1
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js +33 -32
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -1
- package/dist/mcp/fastmcp/servers/poc-stdio.js +10 -11
- package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -1
- package/dist/mcp/fastmcp/servers/stdio-full.js +33 -32
- package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/execute.js +8 -5
- package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/list.js +4 -2
- package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/parallel.js +4 -2
- package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js +11 -3
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +9 -5
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -1
- package/dist/mcp/standalone-stdio.js +76 -57
- package/dist/mcp/standalone-stdio.js.map +1 -1
- package/dist/mcp/tools/harness-tools.d.ts +28 -0
- package/dist/mcp/tools/harness-tools.d.ts.map +1 -0
- package/dist/mcp/tools/harness-tools.js +90 -0
- package/dist/mcp/tools/harness-tools.js.map +1 -0
- package/dist/optimizations/configuration-tuning.d.ts +1 -1
- package/dist/reasoningbank/utils/embeddings.d.ts +0 -6
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
- package/dist/reasoningbank/utils/embeddings.js +9 -43
- package/dist/reasoningbank/utils/embeddings.js.map +1 -1
- package/dist/repair/cli.d.ts +24 -0
- package/dist/repair/cli.d.ts.map +1 -0
- package/dist/repair/cli.js +69 -0
- package/dist/repair/cli.js.map +1 -0
- package/dist/repair/darwin-repair.d.ts +80 -0
- package/dist/repair/darwin-repair.d.ts.map +1 -0
- package/dist/repair/darwin-repair.js +81 -0
- package/dist/repair/darwin-repair.js.map +1 -0
- package/dist/router/cost-optimal-router.d.ts +89 -0
- package/dist/router/cost-optimal-router.d.ts.map +1 -0
- package/dist/router/cost-optimal-router.js +94 -0
- package/dist/router/cost-optimal-router.js.map +1 -0
- package/dist/router/providers/onnx-local-optimized.d.ts +1 -10
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
- package/dist/router/providers/onnx-local-optimized.js +9 -10
- package/dist/router/providers/onnx-local-optimized.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts +0 -9
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +7 -22
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/router/router.d.ts +29 -0
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +83 -0
- package/dist/router/router.js.map +1 -1
- package/dist/router/types.d.ts +1 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js.map +1 -1
- package/dist/sdk/plugins.d.ts +6 -6
- package/dist/sdk/plugins.d.ts.map +1 -1
- package/dist/sdk/plugins.js +37 -0
- package/dist/sdk/plugins.js.map +1 -1
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -0
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/quic-loader.d.ts +250 -0
- package/dist/transport/quic-loader.d.ts.map +1 -0
- package/dist/transport/quic-loader.js +507 -0
- package/dist/transport/quic-loader.js.map +1 -0
- package/dist/utils/agentBoosterPreprocessor.js +16 -22
- package/dist/utils/agentBoosterPreprocessor.js.map +1 -1
- package/package.json +21 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execSync } from 'child_process';\nimport { resolve } from 'path';\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build command with all parameters\n let cmd = `npx --yes agentic-flow --agent \"${agent}\" --task \"${task}\"`;\n\n // Provider & Model\n if (model) cmd += ` --model \"${model}\"`;\n if (provider) cmd += ` --provider ${provider}`;\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) cmd += ' --stream';\n if (temperature !== undefined) cmd += ` --temperature ${temperature}`;\n if (maxTokens) cmd += ` --max-tokens ${maxTokens}`;\n\n // Directories\n if (agentsDir) cmd += ` --agents-dir \"${agentsDir}\"`;\n\n // Output\n if (outputFormat) cmd += ` --output ${outputFormat}`;\n if (verbose) cmd += ' --verbose';\n\n // Execution\n if (retryOnError) cmd += ' --retry';\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n // Use npx to run agentic-flow from npm registry\n const cmd = `npx --yes agentic-flow --list`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n let cmd = `npx --yes agentic-flow agent create --name \"${name}\" --description \"${description}\" --prompt \"${systemPrompt}\"`;\n if (category && category !== 'custom') cmd += ` --category \"${category}\"`;\n if (tools && tools.length > 0) cmd += ` --tools \"${tools.join(',')}\"`;\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const cmd = `npx --yes agentic-flow agent list ${format || 'summary'}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const cmd = `npx --yes agentic-flow agent info \"${name}\"`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const cmd = `npx --yes agentic-flow agent conflicts`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n let cmd = `npx --yes agentic-flow --agent \"${agent}\" --task \"${task}\" --optimize`;\n\n if (priority && priority !== 'balanced') {\n cmd += ` --priority ${priority}`;\n }\n\n if (max_cost) {\n cmd += ` --max-cost ${max_cost}`;\n }\n\n // Add dry-run to just get recommendation without execution\n cmd += ' --help'; // This will show the optimization without running\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [_, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const cmd = `npx agentdb db stats`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const args = [\n sessionId,\n `\"${task}\"`,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) args.push(`\"${critique}\"`);\n if (input) args.push(`\"${input}\"`);\n if (output) args.push(`\"${output}\"`);\n if (latencyMs !== undefined) args.push(latencyMs.toString());\n if (tokensUsed !== undefined) args.push(tokensUsed.toString());\n\n const cmd = `npx agentdb reflexion store ${args.join(' ')}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const args = [`\"${task}\"`, (k || 5).toString()];\n\n if (minReward !== undefined) args.push(minReward.toString());\n if (onlyFailures) args.push('true', 'false');\n else if (onlySuccesses) args.push('false', 'true');\n\n const cmd = `npx agentdb reflexion retrieve ${args.join(' ')}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const cmd = `npx agentdb reflexion critique-summary \"${task}\" ${k || 5}`;\n const result = execSync(cmd, {\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
|
|
1
|
+
{"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { registerHarnessTools } from './tools/harness-tools.js';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here — every prior occurrence in\n// this file was an injection sink reachable through MCP tool arguments.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\n// ADR-075: harness evolution/repair + provenance tools (harness_repair,\n// harness_manifest, harness_verify).\nregisterHarnessTools(server as unknown as Parameters<typeof registerHarnessTools>[0]);\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build argv (NOT a shell string) — every user-supplied value stays a\n // separate argv element and cannot be reinterpreted by the shell.\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task];\n\n // Provider & Model\n if (model) args.push('--model', model);\n if (provider) args.push('--provider', provider);\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) args.push('--stream');\n if (temperature !== undefined) args.push('--temperature', String(temperature));\n if (maxTokens) args.push('--max-tokens', String(maxTokens));\n\n // Directories\n if (agentsDir) args.push('--agents-dir', agentsDir);\n\n // Output\n if (outputFormat) args.push('--output', outputFormat);\n if (verbose) args.push('--verbose');\n\n // Execution\n if (retryOnError) args.push('--retry');\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', '--list'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n const args: string[] = [\n '--yes', 'agentic-flow', 'agent', 'create',\n '--name', name,\n '--description', description,\n '--prompt', systemPrompt\n ];\n if (category && category !== 'custom') args.push('--category', category);\n if (tools && tools.length > 0) args.push('--tools', tools.join(','));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'list', format || 'summary'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'conflicts'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task, '--optimize'];\n\n if (priority && priority !== 'balanced') {\n args.push('--priority', priority);\n }\n\n if (max_cost) {\n args.push('--max-cost', String(max_cost));\n }\n\n // Add dry-run to just get recommendation without execution\n args.push('--help'); // This will show the optimization without running\n\n execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['agentdb', 'db', 'stats'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const cliArgs: string[] = [\n 'agentdb', 'reflexion', 'store',\n sessionId,\n task,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) cliArgs.push(critique);\n if (input) cliArgs.push(input);\n if (output) cliArgs.push(output);\n if (latencyMs !== undefined) cliArgs.push(latencyMs.toString());\n if (tokensUsed !== undefined) cliArgs.push(tokensUsed.toString());\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const cliArgs: string[] = ['agentdb', 'reflexion', 'retrieve', task, (k || 5).toString()];\n\n if (minReward !== undefined) cliArgs.push(minReward.toString());\n if (onlyFailures) cliArgs.push('true', 'false');\n else if (onlySuccesses) cliArgs.push('false', 'true');\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const result = execFileSync('npx', ['agentdb', 'reflexion', 'critique-summary', task, String(k || 5)], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness MCP tools (ADR-075, Track A): expose Darwin harness evolution/repair
|
|
3
|
+
* and provenance over MCP, mirroring the orchestration-side `metaharness_*` tools
|
|
4
|
+
* already present in claude-flow.
|
|
5
|
+
*
|
|
6
|
+
* Each tool validates its own args with its zod schema (so `execute` can be
|
|
7
|
+
* unit-tested by calling it with a plain object), and returns a JSON string —
|
|
8
|
+
* the FastMCP content convention used elsewhere in this server.
|
|
9
|
+
*
|
|
10
|
+
* @see docs/adr/ADR-075-metaharness-harness-evolution-and-provenance.md
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/** Minimal FastMCP-compatible tool descriptor (subset we use + test). */
|
|
14
|
+
export interface HarnessTool {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
parameters: z.ZodTypeAny;
|
|
18
|
+
execute: (args: unknown) => Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
export declare const harnessRepairTool: HarnessTool;
|
|
21
|
+
export declare const harnessManifestTool: HarnessTool;
|
|
22
|
+
export declare const harnessVerifyTool: HarnessTool;
|
|
23
|
+
export declare const HARNESS_TOOLS: readonly HarnessTool[];
|
|
24
|
+
/** Register all harness tools on a FastMCP-compatible server. */
|
|
25
|
+
export declare function registerHarnessTools(server: {
|
|
26
|
+
addTool: (tool: HarnessTool) => void;
|
|
27
|
+
}): void;
|
|
28
|
+
//# sourceMappingURL=harness-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAaD,eAAO,MAAM,iBAAiB,EAAE,WA6B/B,CAAC;AAOF,eAAO,MAAM,mBAAmB,EAAE,WASjC,CAAC;AAgBF,eAAO,MAAM,iBAAiB,EAAE,WAS/B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAgE,CAAC;AAEjH,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CAAE,GAAG,IAAI,CAE3F"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness MCP tools (ADR-075, Track A): expose Darwin harness evolution/repair
|
|
3
|
+
* and provenance over MCP, mirroring the orchestration-side `metaharness_*` tools
|
|
4
|
+
* already present in claude-flow.
|
|
5
|
+
*
|
|
6
|
+
* Each tool validates its own args with its zod schema (so `execute` can be
|
|
7
|
+
* unit-tested by calling it with a plain object), and returns a JSON string —
|
|
8
|
+
* the FastMCP content convention used elsewhere in this server.
|
|
9
|
+
*
|
|
10
|
+
* @see docs/adr/ADR-075-metaharness-harness-evolution-and-provenance.md
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { repair } from '../../repair/darwin-repair.js';
|
|
14
|
+
import { buildManifest, verifySignedManifest } from '../../harness/provenance.js';
|
|
15
|
+
const repairParams = z.object({
|
|
16
|
+
repoRoot: z.string().describe('Path to the repo to evolve/repair'),
|
|
17
|
+
generations: z.number().int().positive().optional().describe('Generations to run (default 3)'),
|
|
18
|
+
children: z.number().int().positive().optional().describe('Children per parent per generation (default 4)'),
|
|
19
|
+
seed: z.number().int().optional().describe('Deterministic seed (default 0)'),
|
|
20
|
+
sandboxMode: z
|
|
21
|
+
.enum(['real', 'mock', 'agent'])
|
|
22
|
+
.optional()
|
|
23
|
+
.describe("Evaluation substrate: 'real' (test-driven, default), 'mock' (deterministic/Docker-free), 'agent'"),
|
|
24
|
+
});
|
|
25
|
+
export const harnessRepairTool = {
|
|
26
|
+
name: 'harness_repair',
|
|
27
|
+
description: 'Evolve/repair a repo with Darwin Mode (ADR-074): freeze the model, evolve the harness; keep only variants that measurably improve under a frozen scorer + safety gate. Default sandbox "real" gates on the repo tests; "mock" is deterministic and Docker-free.',
|
|
28
|
+
parameters: repairParams,
|
|
29
|
+
execute: async (raw) => {
|
|
30
|
+
const a = repairParams.parse(raw);
|
|
31
|
+
const res = await repair({
|
|
32
|
+
repoRoot: a.repoRoot,
|
|
33
|
+
generations: a.generations,
|
|
34
|
+
childrenPerGeneration: a.children,
|
|
35
|
+
seed: a.seed,
|
|
36
|
+
sandboxMode: a.sandboxMode,
|
|
37
|
+
});
|
|
38
|
+
return JSON.stringify({
|
|
39
|
+
improved: res.improved,
|
|
40
|
+
winnerId: res.winnerId,
|
|
41
|
+
winnerLineage: res.winnerLineage,
|
|
42
|
+
baselineScore: res.baselineScore,
|
|
43
|
+
winnerScore: res.winnerScore,
|
|
44
|
+
deltaOverBaseline: res.deltaOverBaseline,
|
|
45
|
+
generations: res.generations,
|
|
46
|
+
variantsEvaluated: res.variantsEvaluated,
|
|
47
|
+
}, null, 2);
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
const manifestParams = z.object({
|
|
51
|
+
files: z.array(z.string()).min(1).describe('Files to include in the provenance manifest'),
|
|
52
|
+
createdAt: z.string().optional().describe('Optional ISO timestamp to embed in the manifest'),
|
|
53
|
+
});
|
|
54
|
+
export const harnessManifestTool = {
|
|
55
|
+
name: 'harness_manifest',
|
|
56
|
+
description: 'Build a provenance manifest (sha256 per file) over harness/agent config files (ADR-075). Sign it locally with the agentic-flow/harness provenance API to produce an Ed25519 witness.',
|
|
57
|
+
parameters: manifestParams,
|
|
58
|
+
execute: async (raw) => {
|
|
59
|
+
const a = manifestParams.parse(raw);
|
|
60
|
+
return JSON.stringify(buildManifest(a.files, { createdAt: a.createdAt }), null, 2);
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
const signedManifestSchema = z.object({
|
|
64
|
+
manifest: z.object({
|
|
65
|
+
version: z.literal(1),
|
|
66
|
+
createdAt: z.string().optional(),
|
|
67
|
+
entries: z.array(z.object({ path: z.string(), sha256: z.string() })),
|
|
68
|
+
}),
|
|
69
|
+
signature: z.string(),
|
|
70
|
+
publicKey: z.string(),
|
|
71
|
+
});
|
|
72
|
+
const verifyParams = z.object({
|
|
73
|
+
signed: signedManifestSchema.describe('A signed manifest bundle { manifest, signature, publicKey }'),
|
|
74
|
+
});
|
|
75
|
+
export const harnessVerifyTool = {
|
|
76
|
+
name: 'harness_verify',
|
|
77
|
+
description: 'Verify a signed harness manifest (Ed25519) and report on-disk drift vs the signed digests (ADR-075). Returns { signatureValid, filesIntact, drift }.',
|
|
78
|
+
parameters: verifyParams,
|
|
79
|
+
execute: async (raw) => {
|
|
80
|
+
const a = verifyParams.parse(raw);
|
|
81
|
+
return JSON.stringify(verifySignedManifest(a.signed), null, 2);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
export const HARNESS_TOOLS = [harnessRepairTool, harnessManifestTool, harnessVerifyTool];
|
|
85
|
+
/** Register all harness tools on a FastMCP-compatible server. */
|
|
86
|
+
export function registerHarnessTools(server) {
|
|
87
|
+
for (const tool of HARNESS_TOOLS)
|
|
88
|
+
server.addTool(tool);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=harness-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Harness MCP tools (ADR-075, Track A): expose Darwin harness evolution/repair\n * and provenance over MCP, mirroring the orchestration-side `metaharness_*` tools\n * already present in claude-flow.\n *\n * Each tool validates its own args with its zod schema (so `execute` can be\n * unit-tested by calling it with a plain object), and returns a JSON string —\n * the FastMCP content convention used elsewhere in this server.\n *\n * @see docs/adr/ADR-075-metaharness-harness-evolution-and-provenance.md\n */\n\nimport { z } from 'zod';\nimport { repair } from '../../repair/darwin-repair.js';\nimport { buildManifest, verifySignedManifest, type SignedManifest } from '../../harness/provenance.js';\n\n/** Minimal FastMCP-compatible tool descriptor (subset we use + test). */\nexport interface HarnessTool {\n name: string;\n description: string;\n parameters: z.ZodTypeAny;\n execute: (args: unknown) => Promise<string>;\n}\n\nconst repairParams = z.object({\n repoRoot: z.string().describe('Path to the repo to evolve/repair'),\n generations: z.number().int().positive().optional().describe('Generations to run (default 3)'),\n children: z.number().int().positive().optional().describe('Children per parent per generation (default 4)'),\n seed: z.number().int().optional().describe('Deterministic seed (default 0)'),\n sandboxMode: z\n .enum(['real', 'mock', 'agent'])\n .optional()\n .describe(\"Evaluation substrate: 'real' (test-driven, default), 'mock' (deterministic/Docker-free), 'agent'\"),\n});\n\nexport const harnessRepairTool: HarnessTool = {\n name: 'harness_repair',\n description:\n 'Evolve/repair a repo with Darwin Mode (ADR-074): freeze the model, evolve the harness; keep only variants that measurably improve under a frozen scorer + safety gate. Default sandbox \"real\" gates on the repo tests; \"mock\" is deterministic and Docker-free.',\n parameters: repairParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = repairParams.parse(raw);\n const res = await repair({\n repoRoot: a.repoRoot,\n generations: a.generations,\n childrenPerGeneration: a.children,\n seed: a.seed,\n sandboxMode: a.sandboxMode,\n });\n return JSON.stringify(\n {\n improved: res.improved,\n winnerId: res.winnerId,\n winnerLineage: res.winnerLineage,\n baselineScore: res.baselineScore,\n winnerScore: res.winnerScore,\n deltaOverBaseline: res.deltaOverBaseline,\n generations: res.generations,\n variantsEvaluated: res.variantsEvaluated,\n },\n null,\n 2,\n );\n },\n};\n\nconst manifestParams = z.object({\n files: z.array(z.string()).min(1).describe('Files to include in the provenance manifest'),\n createdAt: z.string().optional().describe('Optional ISO timestamp to embed in the manifest'),\n});\n\nexport const harnessManifestTool: HarnessTool = {\n name: 'harness_manifest',\n description:\n 'Build a provenance manifest (sha256 per file) over harness/agent config files (ADR-075). Sign it locally with the agentic-flow/harness provenance API to produce an Ed25519 witness.',\n parameters: manifestParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = manifestParams.parse(raw);\n return JSON.stringify(buildManifest(a.files, { createdAt: a.createdAt }), null, 2);\n },\n};\n\nconst signedManifestSchema = z.object({\n manifest: z.object({\n version: z.literal(1),\n createdAt: z.string().optional(),\n entries: z.array(z.object({ path: z.string(), sha256: z.string() })),\n }),\n signature: z.string(),\n publicKey: z.string(),\n});\n\nconst verifyParams = z.object({\n signed: signedManifestSchema.describe('A signed manifest bundle { manifest, signature, publicKey }'),\n});\n\nexport const harnessVerifyTool: HarnessTool = {\n name: 'harness_verify',\n description:\n 'Verify a signed harness manifest (Ed25519) and report on-disk drift vs the signed digests (ADR-075). Returns { signatureValid, filesIntact, drift }.',\n parameters: verifyParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = verifyParams.parse(raw);\n return JSON.stringify(verifySignedManifest(a.signed as SignedManifest), null, 2);\n },\n};\n\nexport const HARNESS_TOOLS: readonly HarnessTool[] = [harnessRepairTool, harnessManifestTool, harnessVerifyTool];\n\n/** Register all harness tools on a FastMCP-compatible server. */\nexport function registerHarnessTools(server: { addTool: (tool: HarnessTool) => void }): void {\n for (const tool of HARNESS_TOOLS) server.addTool(tool);\n}\n"]}
|
|
@@ -122,7 +122,7 @@ export declare class ConfigurationTuning {
|
|
|
122
122
|
entries: number;
|
|
123
123
|
};
|
|
124
124
|
topology: {
|
|
125
|
-
mode: "
|
|
125
|
+
mode: "auto" | "mesh" | "hierarchical" | "ring" | "star";
|
|
126
126
|
changes: number;
|
|
127
127
|
improvement: string;
|
|
128
128
|
};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Embedding generation for semantic similarity
|
|
3
3
|
* Uses local transformers.js - no API key required!
|
|
4
|
-
*
|
|
5
|
-
* `@xenova/transformers` is an OPTIONAL dependency. The module is loaded
|
|
6
|
-
* dynamically inside `initializeEmbeddings()` so the rest of this file is
|
|
7
|
-
* importable even when transformers.js is absent (e.g. when consumers
|
|
8
|
-
* pass `npm install --omit=optional`). Code paths that don't call
|
|
9
|
-
* `computeEmbedding()` continue to work without ever loading the module.
|
|
10
4
|
*/
|
|
11
5
|
/**
|
|
12
6
|
* Compute embedding for text using local model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgEH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmE1E;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA+CD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Embedding generation for semantic similarity
|
|
3
3
|
* Uses local transformers.js - no API key required!
|
|
4
|
-
*
|
|
5
|
-
* `@xenova/transformers` is an OPTIONAL dependency. The module is loaded
|
|
6
|
-
* dynamically inside `initializeEmbeddings()` so the rest of this file is
|
|
7
|
-
* importable even when transformers.js is absent (e.g. when consumers
|
|
8
|
-
* pass `npm install --omit=optional`). Code paths that don't call
|
|
9
|
-
* `computeEmbedding()` continue to work without ever loading the module.
|
|
10
4
|
*/
|
|
5
|
+
import { pipeline, env } from '@xenova/transformers';
|
|
11
6
|
import { loadConfig } from './config.js';
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
let pipeline = null;
|
|
17
|
-
let env = null;
|
|
7
|
+
// Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)
|
|
8
|
+
// The native ONNX runtime causes "DefaultLogger not registered" errors in Node.js
|
|
9
|
+
env.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy
|
|
10
|
+
env.backends.onnx.wasm.numThreads = 1; // Single thread for stability
|
|
18
11
|
let embeddingPipeline = null;
|
|
19
12
|
let initializationPromise = null;
|
|
20
13
|
const embeddingCache = new Map();
|
|
@@ -44,38 +37,15 @@ async function initializeEmbeddings() {
|
|
|
44
37
|
}
|
|
45
38
|
// RACE CONDITION FIX: Create promise for concurrent callers to await
|
|
46
39
|
initializationPromise = (async () => {
|
|
47
|
-
// Optional-dep load: try to import @xenova/transformers. If absent,
|
|
48
|
-
// emit a clear warning and let callers fall back to hash-based embeddings.
|
|
49
|
-
if (!pipeline || !env) {
|
|
50
|
-
try {
|
|
51
|
-
const transformers = await import('@xenova/transformers');
|
|
52
|
-
pipeline = transformers.pipeline;
|
|
53
|
-
env = transformers.env;
|
|
54
|
-
// Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)
|
|
55
|
-
// The native ONNX runtime causes "DefaultLogger not registered" errors in Node.js
|
|
56
|
-
env.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy
|
|
57
|
-
env.backends.onnx.wasm.numThreads = 1; // Single thread for stability
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
console.warn('[Embeddings] @xenova/transformers not installed (optional dependency).');
|
|
61
|
-
console.warn('[Embeddings] Install with: npm install @xenova/transformers');
|
|
62
|
-
console.warn('[Embeddings] Falling back to hash-based embeddings');
|
|
63
|
-
initializationPromise = null;
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
40
|
console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');
|
|
68
41
|
console.log('[Embeddings] First run will download ~23MB model...');
|
|
69
42
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
embeddingPipeline = (await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { quantized: true } // Smaller, faster
|
|
73
|
-
));
|
|
43
|
+
embeddingPipeline = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { quantized: true } // Smaller, faster
|
|
44
|
+
);
|
|
74
45
|
console.log('[Embeddings] Local model ready! (384 dimensions)');
|
|
75
46
|
}
|
|
76
47
|
catch (error) {
|
|
77
|
-
|
|
78
|
-
console.error('[Embeddings] Failed to initialize:', msg);
|
|
48
|
+
console.error('[Embeddings] Failed to initialize:', error?.message || error);
|
|
79
49
|
console.warn('[Embeddings] Falling back to hash-based embeddings');
|
|
80
50
|
// Reset promise so retry is possible
|
|
81
51
|
initializationPromise = null;
|
|
@@ -103,14 +73,10 @@ export async function computeEmbedding(text) {
|
|
|
103
73
|
pooling: 'mean',
|
|
104
74
|
normalize: true
|
|
105
75
|
});
|
|
106
|
-
// output.data is a Tensor.data typed-array union; cast to a Float32-
|
|
107
|
-
// compatible source. The model is feature-extraction with normalize:true
|
|
108
|
-
// so the underlying buffer is always Float32 at runtime.
|
|
109
76
|
embedding = new Float32Array(output.data);
|
|
110
77
|
}
|
|
111
78
|
catch (error) {
|
|
112
|
-
|
|
113
|
-
console.error('[Embeddings] Generation failed:', msg);
|
|
79
|
+
console.error('[Embeddings] Generation failed:', error?.message || error);
|
|
114
80
|
embedding = hashEmbed(text, 384); // Fallback
|
|
115
81
|
}
|
|
116
82
|
}
|