agentic-flow 3.4.4 → 3.5.1

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 (48) hide show
  1. package/.agents/skills/agentic-flow-ecosystem/SKILL.md +6 -1
  2. package/.claude/skills/agentic-flow-ecosystem/skill.md +7 -1
  3. package/CHANGELOG.md +19 -0
  4. package/README.md +36 -1
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/config/claudeFlow.d.ts +1 -1
  7. package/dist/core/attention-native.d.ts +45 -28
  8. package/dist/core/attention-native.d.ts.map +1 -1
  9. package/dist/core/attention-native.js +131 -84
  10. package/dist/core/attention-native.js.map +1 -1
  11. package/dist/integrations/index.d.ts +2 -0
  12. package/dist/integrations/index.d.ts.map +1 -1
  13. package/dist/integrations/index.js +1 -0
  14. package/dist/integrations/index.js.map +1 -1
  15. package/dist/integrations/task-schedule.d.ts +51 -0
  16. package/dist/integrations/task-schedule.d.ts.map +1 -0
  17. package/dist/integrations/task-schedule.js +222 -0
  18. package/dist/integrations/task-schedule.js.map +1 -0
  19. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  20. package/dist/mcp/claudeFlowSdkServer.js +2 -1
  21. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  22. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +2 -1
  23. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -1
  24. package/dist/mcp/fastmcp/servers/http-sse.d.ts.map +1 -1
  25. package/dist/mcp/fastmcp/servers/http-sse.js +2 -1
  26. package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -1
  27. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +2 -1
  28. package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -1
  29. package/dist/mcp/fastmcp/servers/stdio-full.js +2 -1
  30. package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -1
  31. package/dist/mcp/mcp-policy.js +1 -1
  32. package/dist/mcp/mcp-policy.js.map +1 -1
  33. package/dist/mcp/standalone-stdio.js +2 -1
  34. package/dist/mcp/standalone-stdio.js.map +1 -1
  35. package/dist/mcp/tools/ecosystem-tools.d.ts +5 -1
  36. package/dist/mcp/tools/ecosystem-tools.d.ts.map +1 -1
  37. package/dist/mcp/tools/ecosystem-tools.js +30 -1
  38. package/dist/mcp/tools/ecosystem-tools.js.map +1 -1
  39. package/dist/optimizations/configuration-tuning.d.ts +1 -1
  40. package/dist/utils/package-version.d.ts +2 -0
  41. package/dist/utils/package-version.d.ts.map +1 -1
  42. package/dist/utils/package-version.js +4 -0
  43. package/dist/utils/package-version.js.map +1 -1
  44. package/package.json +17 -66
  45. package/dist/core/agentdb-wrapper.d.ts +0 -149
  46. package/dist/core/agentdb-wrapper.d.ts.map +0 -1
  47. package/dist/core/agentdb-wrapper.js +0 -394
  48. package/dist/core/agentdb-wrapper.js.map +0 -1
@@ -14,6 +14,7 @@ import { realpathSync } from 'fs';
14
14
  import { fileURLToPath } from 'url';
15
15
  import { createMcpHttpAuthenticate, resolveMcpHttpAuth, DEFAULT_MCP_HTTP_PORT, } from '../auth/http-auth.js';
16
16
  import { toAgentSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';
17
+ import { mcpServerVersion } from '../../../utils/package-version.js';
17
18
  // Security: All shell-outs use execFileSync with argv arrays (shell: false) to
18
19
  // prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce
19
20
  // execSync with template-string interpolation here.
@@ -23,7 +24,7 @@ console.error('📦 Loading agentic-flow tools');
23
24
  const httpAuth = resolveMcpHttpAuth();
24
25
  const server = new FastMCP({
25
26
  name: 'agentic-flow-http',
26
- version: '1.1.12',
27
+ version: mcpServerVersion(),
27
28
  authenticate: createMcpHttpAuthenticate(httpAuth)
28
29
  });
29
30
  // Tool: Run agentic-flow agent
@@ -1 +1 @@
1
- {"version":3,"file":"http-sse.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-sse.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// FastMCP server with HTTP/SSE transport - All agentic-flow tools\n// Accessible via HTTP at http://127.0.0.1:8080/mcp\n// SSE endpoint at http://127.0.0.1:8080/sse\n//\n// Access control: binds AGENTIC_FLOW_MCP_HOST (default 127.0.0.1) and requires\n// AGENTIC_FLOW_MCP_TOKEN as a bearer token (generated and printed once when\n// unset). Browser origins must be listed in AGENTIC_FLOW_MCP_ALLOWED_ORIGINS.\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { realpathSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport {\n createMcpHttpAuthenticate,\n resolveMcpHttpAuth,\n DEFAULT_MCP_HTTP_PORT,\n} from '../auth/http-auth.js';\nimport { toAgentSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (HTTP/SSE transport)...');\nconsole.error('📦 Loading agentic-flow tools');\n\nconst httpAuth = resolveMcpHttpAuth();\n\nconst server = new FastMCP({\n name: 'agentic-flow-http',\n version: '1.1.12',\n authenticate: createMcpHttpAuthenticate(httpAuth)\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, Gemini, 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 (timeout) args.push('--timeout', String(timeout));\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 {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n agent,\n provider: provider || 'anthropic',\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n agent,\n error: error.message,\n stderr: error.stderr?.toString(),\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: List all agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents (66+ total)',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\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 if (format === 'detailed') {\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n }\n\n // Parse agent list\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({\n name: match[1],\n description: match[2].trim(),\n category: currentCategory\n });\n }\n }\n }\n\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n count: agents.length,\n agents: format === 'json' ? agents : agents.map(a => a.name),\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent with specified name, description, and system prompt',\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 { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // Convert to kebab-case; name and category must be slugs under .claude/agents\n const agentName = toAgentSlug(name);\n const agentsDir = resolveAgentDir(category || 'custom');\n\n if (!existsSync(agentsDir)) {\n mkdirSync(agentsDir, { recursive: true });\n }\n\n const markdown = `# ${name}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${tools && tools.length > 0 ? `## Tools\\n${tools.map(t => `- ${t}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${agentName} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Created: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${agentName}.md`);\n if (existsSync(filePath)) {\n throw new Error(`Agent '${agentName}' already exists at ${filePath}`);\n }\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n agent: agentName,\n category: category || 'custom',\n filePath,\n message: `Agent '${agentName}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: Get agent info\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including source, description, 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 // Use execFileSync with array args to prevent shell injection from user-supplied `name`\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\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',\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: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\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)',\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')\n .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', '--priority', priority];\n if (max_cost) args.push('--max-cost', String(max_cost));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\nconsole.error('✅ Registered 6 tools successfully');\n\nexport interface HttpSseServerHandle {\n host: string;\n port: number;\n token: string;\n stop: () => Promise<void>;\n}\n\n/** Start the HTTP/SSE transport. Port defaults to AGENTIC_FLOW_MCP_PORT or 8080. */\nexport async function startHttpSseServer(\n port: number = Number(process.env.AGENTIC_FLOW_MCP_PORT) || DEFAULT_MCP_HTTP_PORT,\n host: string = httpAuth.host\n): Promise<HttpSseServerHandle> {\n await server.start({\n transportType: 'httpStream',\n httpStream: { port, host }\n });\n\n const base = `http://${host.includes(':') ? `[${host}]` : host}:${port}`;\n console.error('✅ Agentic-Flow MCP Server running!');\n console.error(`📡 HTTP endpoint: ${base}/mcp`);\n console.error(`📡 SSE endpoint: ${base}/sse`);\n console.error(`💊 Health check: ${base}/health`);\n if (httpAuth.generated) {\n console.error('🔑 No AGENTIC_FLOW_MCP_TOKEN set; generated one for this run:');\n console.error(` Authorization: Bearer ${httpAuth.token}`);\n }\n if (httpAuth.allowedOrigins.size === 0) {\n console.error('🌐 Browser origins: none allowed (set AGENTIC_FLOW_MCP_ALLOWED_ORIGINS)');\n }\n\n return { host, port, token: httpAuth.token, stop: () => server.stop() };\n}\n\nfunction isMainModule(): boolean {\n if (!process.argv[1]) return false;\n try {\n return realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n console.error('🌐 Starting HTTP/SSE transport...');\n startHttpSseServer().catch((error) => {\n console.error('❌ Failed to start HTTP/SSE server:', error);\n process.exit(1);\n });\n}\n"]}
1
+ {"version":3,"file":"http-sse.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-sse.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// FastMCP server with HTTP/SSE transport - All agentic-flow tools\n// Accessible via HTTP at http://127.0.0.1:8080/mcp\n// SSE endpoint at http://127.0.0.1:8080/sse\n//\n// Access control: binds AGENTIC_FLOW_MCP_HOST (default 127.0.0.1) and requires\n// AGENTIC_FLOW_MCP_TOKEN as a bearer token (generated and printed once when\n// unset). Browser origins must be listed in AGENTIC_FLOW_MCP_ALLOWED_ORIGINS.\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { realpathSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport {\n createMcpHttpAuthenticate,\n resolveMcpHttpAuth,\n DEFAULT_MCP_HTTP_PORT,\n} from '../auth/http-auth.js';\nimport { toAgentSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';\nimport { mcpServerVersion } from '../../../utils/package-version.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (HTTP/SSE transport)...');\nconsole.error('📦 Loading agentic-flow tools');\n\nconst httpAuth = resolveMcpHttpAuth();\n\nconst server = new FastMCP({\n name: 'agentic-flow-http',\n version: mcpServerVersion(),\n authenticate: createMcpHttpAuthenticate(httpAuth)\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, Gemini, 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 (timeout) args.push('--timeout', String(timeout));\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 {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n agent,\n provider: provider || 'anthropic',\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n agent,\n error: error.message,\n stderr: error.stderr?.toString(),\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: List all agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents (66+ total)',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\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 if (format === 'detailed') {\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n }\n\n // Parse agent list\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({\n name: match[1],\n description: match[2].trim(),\n category: currentCategory\n });\n }\n }\n }\n\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n count: agents.length,\n agents: format === 'json' ? agents : agents.map(a => a.name),\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent with specified name, description, and system prompt',\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 { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // Convert to kebab-case; name and category must be slugs under .claude/agents\n const agentName = toAgentSlug(name);\n const agentsDir = resolveAgentDir(category || 'custom');\n\n if (!existsSync(agentsDir)) {\n mkdirSync(agentsDir, { recursive: true });\n }\n\n const markdown = `# ${name}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${tools && tools.length > 0 ? `## Tools\\n${tools.map(t => `- ${t}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${agentName} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Created: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${agentName}.md`);\n if (existsSync(filePath)) {\n throw new Error(`Agent '${agentName}' already exists at ${filePath}`);\n }\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: true,\n agent: agentName,\n category: category || 'custom',\n filePath,\n message: `Agent '${agentName}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2)\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\n// Tool: Get agent info\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including source, description, 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 // Use execFileSync with array args to prevent shell injection from user-supplied `name`\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\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',\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: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\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)',\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')\n .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', '--priority', priority];\n if (max_cost) args.push('--max-cost', String(max_cost));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000\n });\n\n return {\n content: [{\n type: 'text',\n text: result\n }]\n };\n } catch (error: any) {\n return {\n content: [{\n type: 'text',\n text: JSON.stringify({\n success: false,\n error: error.message,\n timestamp: new Date().toISOString()\n }, null, 2)\n }],\n isError: true\n };\n }\n }\n});\n\nconsole.error('✅ Registered 6 tools successfully');\n\nexport interface HttpSseServerHandle {\n host: string;\n port: number;\n token: string;\n stop: () => Promise<void>;\n}\n\n/** Start the HTTP/SSE transport. Port defaults to AGENTIC_FLOW_MCP_PORT or 8080. */\nexport async function startHttpSseServer(\n port: number = Number(process.env.AGENTIC_FLOW_MCP_PORT) || DEFAULT_MCP_HTTP_PORT,\n host: string = httpAuth.host\n): Promise<HttpSseServerHandle> {\n await server.start({\n transportType: 'httpStream',\n httpStream: { port, host }\n });\n\n const base = `http://${host.includes(':') ? `[${host}]` : host}:${port}`;\n console.error('✅ Agentic-Flow MCP Server running!');\n console.error(`📡 HTTP endpoint: ${base}/mcp`);\n console.error(`📡 SSE endpoint: ${base}/sse`);\n console.error(`💊 Health check: ${base}/health`);\n if (httpAuth.generated) {\n console.error('🔑 No AGENTIC_FLOW_MCP_TOKEN set; generated one for this run:');\n console.error(` Authorization: Bearer ${httpAuth.token}`);\n }\n if (httpAuth.allowedOrigins.size === 0) {\n console.error('🌐 Browser origins: none allowed (set AGENTIC_FLOW_MCP_ALLOWED_ORIGINS)');\n }\n\n return { host, port, token: httpAuth.token, stop: () => server.stop() };\n}\n\nfunction isMainModule(): boolean {\n if (!process.argv[1]) return false;\n try {\n return realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n console.error('🌐 Starting HTTP/SSE transport...');\n startHttpSseServer().catch((error) => {\n console.error('❌ Failed to start HTTP/SSE server:', error);\n process.exit(1);\n });\n}\n"]}
@@ -5,6 +5,7 @@ import { FastMCP } from 'fastmcp';
5
5
  import { z } from 'zod';
6
6
  import { execFileSync } from 'child_process';
7
7
  import { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';
8
+ import { mcpServerVersion } from '../../../utils/package-version.js';
8
9
  // Security: All shell-outs use execFileSync with argv arrays (shell: false) to
9
10
  // prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce
10
11
  // execSync with template-string interpolation here.
@@ -14,7 +15,7 @@ console.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');
14
15
  // Create server
15
16
  const server = new FastMCP({
16
17
  name: 'fastmcp-stdio-full',
17
- version: '1.0.0'
18
+ version: mcpServerVersion()
18
19
  });
19
20
  // Tool 1: Memory Store
20
21
  server.addTool({
@@ -1 +1 @@
1
- {"version":3,"file":"http-streaming-updated.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-streaming-updated.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// Full FastMCP server with stdio transport - All 11 claude-flow-sdk tools\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting FastMCP Full Server (stdio transport)...');\nconsole.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');\n\n// Create server\nconst server = new FastMCP({\n name: 'fastmcp-stdio-full',\n version: '1.0.0'\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory with wildcard support',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards like * and ?)'),\n namespace: z.string().optional().describe('Memory namespace to search in (searches all if not specified)'),\n limit: z.number().positive().optional().default(10).describe('Maximum number of results to return (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'Limit must be between 1 and 100' })\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n limit,\n results: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology and strategy',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star'])\n .describe('Swarm topology: mesh (peer-to-peer), hierarchical (tree), ring (circular), star (centralized)'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents in the swarm (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'maxAgents must be between 1 and 100' }),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced')\n .describe('Agent distribution strategy: balanced (equal), specialized (role-based), adaptive (dynamic)')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n message: 'Swarm initialized successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm with specified type and capabilities',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type: researcher (data gathering), coder (implementation), analyst (analysis), optimizer (performance), coordinator (orchestration)'),\n capabilities: z.array(z.string()).optional()\n .describe('Specific capabilities for the agent (e.g., [\"python\", \"testing\", \"documentation\"])'),\n name: z.string().optional().describe('Custom agent name/identifier')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities: capabilities || [],\n name: name || `${type}-${Date.now()}`,\n message: 'Agent spawned successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm with specified strategy and priority',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions for the swarm to execute'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive')\n .describe('Execution strategy: parallel (simultaneous), sequential (ordered), adaptive (dynamic based on task)'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium')\n .describe('Task priority level: low, medium, high, or critical'),\n maxAgents: z.number().positive().optional().describe('Maximum number of agents to use for this task (1-10)')\n .refine((val) => !val || (val >= 1 && val <= 10), { message: 'maxAgents must be between 1 and 10' })\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents: maxAgents || 'auto',\n message: 'Task orchestrated successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\n// Tool 7: Agent Execute\nserver.addTool({\n name: 'agent_execute',\n description: 'Execute a specific agent with a task (equivalent to --agent CLI command)',\n parameters: z.object({\n agent: z.string().describe('Agent name to execute'),\n task: z.string().describe('Task description'),\n stream: z.boolean().optional().default(false).describe('Enable streaming output')\n }),\n execute: async ({ agent, task, stream }) => {\n try {\n const args = ['agentic-flow', '--agent', agent, '--task', task];\n if (stream) args.push('--stream');\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100),\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool 8: Agent Parallel\nserver.addTool({\n name: 'agent_parallel',\n description: 'Run parallel mode with 3 agents (research, code review, data analysis)',\n parameters: z.object({\n topic: z.string().optional().describe('Research topic'),\n diff: z.string().optional().describe('Code diff for review'),\n dataset: z.string().optional().describe('Dataset hint'),\n streaming: z.boolean().optional().default(false).describe('Enable streaming')\n }),\n execute: async ({ topic, diff, dataset, streaming }) => {\n try {\n const env = {\n ...process.env,\n ...(topic && { TOPIC: topic }),\n ...(diff && { DIFF: diff }),\n ...(dataset && { DATASET: dataset }),\n ...(streaming && { ENABLE_STREAMING: 'true' })\n };\n const result = execFileSync('npx', ['agentic-flow'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000, env });\n\n return JSON.stringify({\n success: true,\n mode: 'parallel',\n agents: ['research', 'code_review', 'data'],\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to run parallel mode: ${error.message}`);\n }\n }\n});\n\n// Tool 9: Agent List\nserver.addTool({\n name: 'agent_list',\n description: 'List all available agents',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\n try {\n const result = execFileSync('npx', ['agentic-flow', '--list'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 5 * 1024 * 1024, timeout: 30000 });\n\n if (format === 'detailed') {\n return result;\n }\n\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({ name: match[1], description: match[2].trim(), category: currentCategory });\n }\n }\n }\n\n return JSON.stringify({\n success: true,\n count: agents.length,\n agents,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool 10: Add Custom Agent\nserver.addTool({\n name: 'agent_add',\n description: 'Add a new custom agent defined in markdown',\n parameters: z.object({\n name: z.string().describe('Agent name (kebab-case)'),\n description: z.string().describe('Agent description'),\n systemPrompt: z.string().describe('System prompt'),\n category: z.string().optional().default('custom').describe('Category'),\n capabilities: z.array(z.string()).optional().describe('Capabilities')\n }),\n execute: async ({ name, description, systemPrompt, category, capabilities }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // name and category become path segments: slugs only, kept under .claude/agents\n assertSlug(name, 'agent name');\n const agentsDir = resolveAgentDir(category || 'custom');\n if (!existsSync(agentsDir)) mkdirSync(agentsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${capabilities && capabilities.length > 0 ? `## Capabilities\\n${capabilities.map(c => `- ${c}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${name} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Agent '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n agent: name,\n category: category || 'custom',\n filePath,\n message: `Agent '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add agent: ${error.message}`);\n }\n }\n});\n\n// Tool 11: Add Custom Command\nserver.addTool({\n name: 'command_add',\n description: 'Add a new custom command defined in markdown',\n parameters: z.object({\n name: z.string().describe('Command name (kebab-case)'),\n description: z.string().describe('Command description'),\n usage: z.string().describe('Usage example'),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string(),\n required: z.boolean(),\n description: z.string()\n })).optional().describe('Parameters'),\n examples: z.array(z.string()).optional().describe('Examples')\n }),\n execute: async ({ name, description, usage, parameters, examples }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n assertSlug(name, 'command name');\n const commandsDir = join(process.cwd(), '.claude', 'commands');\n if (!existsSync(commandsDir)) mkdirSync(commandsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')} Command\n\n## Description\n${description}\n\n## Usage\n\\`\\`\\`bash\n${usage}\n\\`\\`\\`\n\n${parameters && parameters.length > 0 ? `## Parameters\\n| Name | Type | Required | Description |\\n|------|------|----------|-------------|\\n${parameters.map(p => `| \\`${p.name}\\` | ${p.type} | ${p.required ? 'Yes' : 'No'} | ${p.description} |`).join('\\n')}\\n` : ''}\n\n${examples && examples.length > 0 ? `## Examples\\n\\n${examples.map((ex, i) => `### Example ${i + 1}\\n\\`\\`\\`bash\\n${ex}\\n\\`\\`\\`\\n`).join('\\n')}` : ''}\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(commandsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Command '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n command: name,\n filePath,\n message: `Command '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add command: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 11 tools successfully');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP Full Server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"file":"http-streaming-updated.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-streaming-updated.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// Full FastMCP server with stdio transport - All 11 claude-flow-sdk tools\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';\nimport { mcpServerVersion } from '../../../utils/package-version.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting FastMCP Full Server (stdio transport)...');\nconsole.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');\n\n// Create server\nconst server = new FastMCP({\n name: 'fastmcp-stdio-full',\n version: mcpServerVersion()\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory with wildcard support',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards like * and ?)'),\n namespace: z.string().optional().describe('Memory namespace to search in (searches all if not specified)'),\n limit: z.number().positive().optional().default(10).describe('Maximum number of results to return (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'Limit must be between 1 and 100' })\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n limit,\n results: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology and strategy',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star'])\n .describe('Swarm topology: mesh (peer-to-peer), hierarchical (tree), ring (circular), star (centralized)'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents in the swarm (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'maxAgents must be between 1 and 100' }),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced')\n .describe('Agent distribution strategy: balanced (equal), specialized (role-based), adaptive (dynamic)')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n message: 'Swarm initialized successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm with specified type and capabilities',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type: researcher (data gathering), coder (implementation), analyst (analysis), optimizer (performance), coordinator (orchestration)'),\n capabilities: z.array(z.string()).optional()\n .describe('Specific capabilities for the agent (e.g., [\"python\", \"testing\", \"documentation\"])'),\n name: z.string().optional().describe('Custom agent name/identifier')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities: capabilities || [],\n name: name || `${type}-${Date.now()}`,\n message: 'Agent spawned successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm with specified strategy and priority',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions for the swarm to execute'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive')\n .describe('Execution strategy: parallel (simultaneous), sequential (ordered), adaptive (dynamic based on task)'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium')\n .describe('Task priority level: low, medium, high, or critical'),\n maxAgents: z.number().positive().optional().describe('Maximum number of agents to use for this task (1-10)')\n .refine((val) => !val || (val >= 1 && val <= 10), { message: 'maxAgents must be between 1 and 10' })\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents: maxAgents || 'auto',\n message: 'Task orchestrated successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\n// Tool 7: Agent Execute\nserver.addTool({\n name: 'agent_execute',\n description: 'Execute a specific agent with a task (equivalent to --agent CLI command)',\n parameters: z.object({\n agent: z.string().describe('Agent name to execute'),\n task: z.string().describe('Task description'),\n stream: z.boolean().optional().default(false).describe('Enable streaming output')\n }),\n execute: async ({ agent, task, stream }) => {\n try {\n const args = ['agentic-flow', '--agent', agent, '--task', task];\n if (stream) args.push('--stream');\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100),\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool 8: Agent Parallel\nserver.addTool({\n name: 'agent_parallel',\n description: 'Run parallel mode with 3 agents (research, code review, data analysis)',\n parameters: z.object({\n topic: z.string().optional().describe('Research topic'),\n diff: z.string().optional().describe('Code diff for review'),\n dataset: z.string().optional().describe('Dataset hint'),\n streaming: z.boolean().optional().default(false).describe('Enable streaming')\n }),\n execute: async ({ topic, diff, dataset, streaming }) => {\n try {\n const env = {\n ...process.env,\n ...(topic && { TOPIC: topic }),\n ...(diff && { DIFF: diff }),\n ...(dataset && { DATASET: dataset }),\n ...(streaming && { ENABLE_STREAMING: 'true' })\n };\n const result = execFileSync('npx', ['agentic-flow'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000, env });\n\n return JSON.stringify({\n success: true,\n mode: 'parallel',\n agents: ['research', 'code_review', 'data'],\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to run parallel mode: ${error.message}`);\n }\n }\n});\n\n// Tool 9: Agent List\nserver.addTool({\n name: 'agent_list',\n description: 'List all available agents',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\n try {\n const result = execFileSync('npx', ['agentic-flow', '--list'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 5 * 1024 * 1024, timeout: 30000 });\n\n if (format === 'detailed') {\n return result;\n }\n\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({ name: match[1], description: match[2].trim(), category: currentCategory });\n }\n }\n }\n\n return JSON.stringify({\n success: true,\n count: agents.length,\n agents,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool 10: Add Custom Agent\nserver.addTool({\n name: 'agent_add',\n description: 'Add a new custom agent defined in markdown',\n parameters: z.object({\n name: z.string().describe('Agent name (kebab-case)'),\n description: z.string().describe('Agent description'),\n systemPrompt: z.string().describe('System prompt'),\n category: z.string().optional().default('custom').describe('Category'),\n capabilities: z.array(z.string()).optional().describe('Capabilities')\n }),\n execute: async ({ name, description, systemPrompt, category, capabilities }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // name and category become path segments: slugs only, kept under .claude/agents\n assertSlug(name, 'agent name');\n const agentsDir = resolveAgentDir(category || 'custom');\n if (!existsSync(agentsDir)) mkdirSync(agentsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${capabilities && capabilities.length > 0 ? `## Capabilities\\n${capabilities.map(c => `- ${c}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${name} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Agent '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n agent: name,\n category: category || 'custom',\n filePath,\n message: `Agent '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add agent: ${error.message}`);\n }\n }\n});\n\n// Tool 11: Add Custom Command\nserver.addTool({\n name: 'command_add',\n description: 'Add a new custom command defined in markdown',\n parameters: z.object({\n name: z.string().describe('Command name (kebab-case)'),\n description: z.string().describe('Command description'),\n usage: z.string().describe('Usage example'),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string(),\n required: z.boolean(),\n description: z.string()\n })).optional().describe('Parameters'),\n examples: z.array(z.string()).optional().describe('Examples')\n }),\n execute: async ({ name, description, usage, parameters, examples }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n assertSlug(name, 'command name');\n const commandsDir = join(process.cwd(), '.claude', 'commands');\n if (!existsSync(commandsDir)) mkdirSync(commandsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')} Command\n\n## Description\n${description}\n\n## Usage\n\\`\\`\\`bash\n${usage}\n\\`\\`\\`\n\n${parameters && parameters.length > 0 ? `## Parameters\\n| Name | Type | Required | Description |\\n|------|------|----------|-------------|\\n${parameters.map(p => `| \\`${p.name}\\` | ${p.type} | ${p.required ? 'Yes' : 'No'} | ${p.description} |`).join('\\n')}\\n` : ''}\n\n${examples && examples.length > 0 ? `## Examples\\n\\n${examples.map((ex, i) => `### Example ${i + 1}\\n\\`\\`\\`bash\\n${ex}\\n\\`\\`\\`\\n`).join('\\n')}` : ''}\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(commandsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Command '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n command: name,\n filePath,\n message: `Command '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add command: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 11 tools successfully');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP Full Server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -5,6 +5,7 @@ import { FastMCP } from 'fastmcp';
5
5
  import { z } from 'zod';
6
6
  import { execFileSync } from 'child_process';
7
7
  import { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';
8
+ import { mcpServerVersion } from '../../../utils/package-version.js';
8
9
  // Security: All shell-outs use execFileSync with argv arrays (shell: false) to
9
10
  // prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce
10
11
  // execSync with template-string interpolation here.
@@ -14,7 +15,7 @@ console.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');
14
15
  // Create server
15
16
  const server = new FastMCP({
16
17
  name: 'fastmcp-stdio-full',
17
- version: '1.0.0'
18
+ version: mcpServerVersion()
18
19
  });
19
20
  // Tool 1: Memory Store
20
21
  server.addTool({
@@ -1 +1 @@
1
- {"version":3,"file":"stdio-full.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/stdio-full.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// Full FastMCP server with stdio transport - All 11 claude-flow-sdk tools\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting FastMCP Full Server (stdio transport)...');\nconsole.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');\n\n// Create server\nconst server = new FastMCP({\n name: 'fastmcp-stdio-full',\n version: '1.0.0'\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory with wildcard support',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards like * and ?)'),\n namespace: z.string().optional().describe('Memory namespace to search in (searches all if not specified)'),\n limit: z.number().positive().optional().default(10).describe('Maximum number of results to return (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'Limit must be between 1 and 100' })\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n limit,\n results: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology and strategy',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star'])\n .describe('Swarm topology: mesh (peer-to-peer), hierarchical (tree), ring (circular), star (centralized)'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents in the swarm (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'maxAgents must be between 1 and 100' }),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced')\n .describe('Agent distribution strategy: balanced (equal), specialized (role-based), adaptive (dynamic)')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n message: 'Swarm initialized successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm with specified type and capabilities',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type: researcher (data gathering), coder (implementation), analyst (analysis), optimizer (performance), coordinator (orchestration)'),\n capabilities: z.array(z.string()).optional()\n .describe('Specific capabilities for the agent (e.g., [\"python\", \"testing\", \"documentation\"])'),\n name: z.string().optional().describe('Custom agent name/identifier')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities: capabilities || [],\n name: name || `${type}-${Date.now()}`,\n message: 'Agent spawned successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm with specified strategy and priority',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions for the swarm to execute'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive')\n .describe('Execution strategy: parallel (simultaneous), sequential (ordered), adaptive (dynamic based on task)'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium')\n .describe('Task priority level: low, medium, high, or critical'),\n maxAgents: z.number().positive().optional().describe('Maximum number of agents to use for this task (1-10)')\n .refine((val) => !val || (val >= 1 && val <= 10), { message: 'maxAgents must be between 1 and 10' })\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents: maxAgents || 'auto',\n message: 'Task orchestrated successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\n// Tool 7: Agent Execute\nserver.addTool({\n name: 'agent_execute',\n description: 'Execute a specific agent with a task (equivalent to --agent CLI command)',\n parameters: z.object({\n agent: z.string().describe('Agent name to execute'),\n task: z.string().describe('Task description'),\n stream: z.boolean().optional().default(false).describe('Enable streaming output')\n }),\n execute: async ({ agent, task, stream }) => {\n try {\n const args = ['agentic-flow', '--agent', agent, '--task', task];\n if (stream) args.push('--stream');\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100),\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool 8: Agent Parallel\nserver.addTool({\n name: 'agent_parallel',\n description: 'Run parallel mode with 3 agents (research, code review, data analysis)',\n parameters: z.object({\n topic: z.string().optional().describe('Research topic'),\n diff: z.string().optional().describe('Code diff for review'),\n dataset: z.string().optional().describe('Dataset hint'),\n streaming: z.boolean().optional().default(false).describe('Enable streaming')\n }),\n execute: async ({ topic, diff, dataset, streaming }) => {\n try {\n const env = {\n ...process.env,\n ...(topic && { TOPIC: topic }),\n ...(diff && { DIFF: diff }),\n ...(dataset && { DATASET: dataset }),\n ...(streaming && { ENABLE_STREAMING: 'true' })\n };\n const result = execFileSync('npx', ['agentic-flow'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000, env });\n\n return JSON.stringify({\n success: true,\n mode: 'parallel',\n agents: ['research', 'code_review', 'data'],\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to run parallel mode: ${error.message}`);\n }\n }\n});\n\n// Tool 9: Agent List\nserver.addTool({\n name: 'agent_list',\n description: 'List all available agents',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\n try {\n const result = execFileSync('npx', ['agentic-flow', '--list'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 5 * 1024 * 1024, timeout: 30000 });\n\n if (format === 'detailed') {\n return result;\n }\n\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({ name: match[1], description: match[2].trim(), category: currentCategory });\n }\n }\n }\n\n return JSON.stringify({\n success: true,\n count: agents.length,\n agents,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool 10: Add Custom Agent\nserver.addTool({\n name: 'agent_add',\n description: 'Add a new custom agent defined in markdown',\n parameters: z.object({\n name: z.string().describe('Agent name (kebab-case)'),\n description: z.string().describe('Agent description'),\n systemPrompt: z.string().describe('System prompt'),\n category: z.string().optional().default('custom').describe('Category'),\n capabilities: z.array(z.string()).optional().describe('Capabilities')\n }),\n execute: async ({ name, description, systemPrompt, category, capabilities }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // name and category become path segments: slugs only, kept under .claude/agents\n assertSlug(name, 'agent name');\n const agentsDir = resolveAgentDir(category || 'custom');\n if (!existsSync(agentsDir)) mkdirSync(agentsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${capabilities && capabilities.length > 0 ? `## Capabilities\\n${capabilities.map(c => `- ${c}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${name} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Agent '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n agent: name,\n category: category || 'custom',\n filePath,\n message: `Agent '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add agent: ${error.message}`);\n }\n }\n});\n\n// Tool 11: Add Custom Command\nserver.addTool({\n name: 'command_add',\n description: 'Add a new custom command defined in markdown',\n parameters: z.object({\n name: z.string().describe('Command name (kebab-case)'),\n description: z.string().describe('Command description'),\n usage: z.string().describe('Usage example'),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string(),\n required: z.boolean(),\n description: z.string()\n })).optional().describe('Parameters'),\n examples: z.array(z.string()).optional().describe('Examples')\n }),\n execute: async ({ name, description, usage, parameters, examples }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n assertSlug(name, 'command name');\n const commandsDir = join(process.cwd(), '.claude', 'commands');\n if (!existsSync(commandsDir)) mkdirSync(commandsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')} Command\n\n## Description\n${description}\n\n## Usage\n\\`\\`\\`bash\n${usage}\n\\`\\`\\`\n\n${parameters && parameters.length > 0 ? `## Parameters\\n| Name | Type | Required | Description |\\n|------|------|----------|-------------|\\n${parameters.map(p => `| \\`${p.name}\\` | ${p.type} | ${p.required ? 'Yes' : 'No'} | ${p.description} |`).join('\\n')}\\n` : ''}\n\n${examples && examples.length > 0 ? `## Examples\\n\\n${examples.map((ex, i) => `### Example ${i + 1}\\n\\`\\`\\`bash\\n${ex}\\n\\`\\`\\`\\n`).join('\\n')}` : ''}\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(commandsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Command '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n command: name,\n filePath,\n message: `Command '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add command: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 11 tools successfully');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP Full Server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"file":"stdio-full.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/stdio-full.ts"],"names":[],"mappings":";AACA,+HAA+H;AAC/H,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,+EAA+E;AAC/E,gFAAgF;AAChF,oDAAoD;AACpD,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;AAEhD,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACtE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAEvE,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC;IACzB,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,gBAAgB,EAAE;CAC5B,CAAC,CAAC;AAEH,uBAAuB;AACvB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,oEAAoE;IACjF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAChF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAC1E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YAC5F,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YAEhG,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,GAAG;gBACH,SAAS;gBACT,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,GAAG;gBACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,4BAA4B;aACtC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,yCAAyC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACjF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CACzB,KAAK,EACL,CAAC,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAC1E,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CACrE,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,GAAG;gBACH,SAAS;gBACT,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,wBAAwB;AACxB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oEAAoE;IACjF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACvF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC1G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;aACxG,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;KAC3F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YAE/G,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,SAAS,EAAE,SAAS,IAAI,KAAK;gBAC7B,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,qBAAqB;AACrB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,qEAAqE;IAClF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aACvD,QAAQ,CAAC,+FAA+F,CAAC;QAC5G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;aAC7G,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;QAC9F,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;aACrF,QAAQ,CAAC,6FAA6F,CAAC;KAC3G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CACzB,KAAK,EACL,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,EACzH,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CACrE,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,sBAAsB;AACtB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,qEAAqE;IAClF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;aACzE,QAAQ,CAAC,2IAA2I,CAAC;QACxJ,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,oFAAoF,CAAC;QACjG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACrE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrE,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YAE/G,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,YAAY,EAAE,YAAY,IAAI,EAAE;gBAChC,IAAI,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;gBACrC,OAAO,EAAE,4BAA4B;gBACrC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2BAA2B;AAC3B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kFAAkF;IAC/F,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAC7F,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;aACpF,QAAQ,CAAC,qGAAqG,CAAC;QAClH,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aACjF,QAAQ,CAAC,qDAAqD,CAAC;QAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;aACzG,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;KACvG,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAChH,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhI,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,SAAS,IAAI,MAAM;gBAC9B,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,wBAAwB;AACxB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,0EAA0E;IACvF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAClF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhI,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC5B,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,yBAAyB;AACzB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,wEAAwE;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACvD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC9E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG;gBACV,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBACpC,GAAG,CAAC,SAAS,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;aAC/C,CAAC;YACF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAEjJ,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC;gBAC3C,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,qBAAqB;AACrB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2BAA2B;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;KAC9E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEpJ,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpD,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjD,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBACpD,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,MAAM;gBACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,4CAA4C;IACzD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KACtE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtC,gFAAgF;YAChF,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEtE,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;EAGpG,WAAW;;;EAGX,YAAY;;EAEZ,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;2BAIxF,IAAI;;;;cAIjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACrC,CAAC;YAEI,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;YAE5E,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,QAAQ;gBACR,OAAO,EAAE,UAAU,IAAI,wBAAwB;gBAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8CAA8C;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC3C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC9D,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1E,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;EAGpG,WAAW;;;;EAIX,KAAK;;;EAGL,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sGAAsG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;EAEtQ,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;cAGtI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACrC,CAAC;YAEI,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;YAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;YAE9E,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,QAAQ;gBACR,OAAO,EAAE,YAAY,IAAI,wBAAwB;gBACjD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACpD,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAEhD,6BAA6B;AAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjD,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","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// Full FastMCP server with stdio transport - All 11 claude-flow-sdk tools\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { assertSlug, resolveAgentDir, resolveWithin } from '../../../utils/path-safety.js';\nimport { mcpServerVersion } from '../../../utils/package-version.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.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\nconsole.error('🚀 Starting FastMCP Full Server (stdio transport)...');\nconsole.error('📦 Loading 11 tools: memory (3), swarm (3), agent (5)');\n\n// Create server\nconst server = new FastMCP({\n name: 'fastmcp-stdio-full',\n version: mcpServerVersion()\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory with wildcard support',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards like * and ?)'),\n namespace: z.string().optional().describe('Memory namespace to search in (searches all if not specified)'),\n limit: z.number().positive().optional().default(10).describe('Maximum number of results to return (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'Limit must be between 1 and 100' })\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n limit,\n results: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology and strategy',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star'])\n .describe('Swarm topology: mesh (peer-to-peer), hierarchical (tree), ring (circular), star (centralized)'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents in the swarm (1-100)')\n .refine((val) => val >= 1 && val <= 100, { message: 'maxAgents must be between 1 and 100' }),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced')\n .describe('Agent distribution strategy: balanced (equal), specialized (role-based), adaptive (dynamic)')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n message: 'Swarm initialized successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm with specified type and capabilities',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type: researcher (data gathering), coder (implementation), analyst (analysis), optimizer (performance), coordinator (orchestration)'),\n capabilities: z.array(z.string()).optional()\n .describe('Specific capabilities for the agent (e.g., [\"python\", \"testing\", \"documentation\"])'),\n name: z.string().optional().describe('Custom agent name/identifier')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities: capabilities || [],\n name: name || `${type}-${Date.now()}`,\n message: 'Agent spawned successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm with specified strategy and priority',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions for the swarm to execute'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive')\n .describe('Execution strategy: parallel (simultaneous), sequential (ordered), adaptive (dynamic based on task)'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium')\n .describe('Task priority level: low, medium, high, or critical'),\n maxAgents: z.number().positive().optional().describe('Maximum number of agents to use for this task (1-10)')\n .refine((val) => !val || (val >= 1 && val <= 10), { message: 'maxAgents must be between 1 and 10' })\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents: maxAgents || 'auto',\n message: 'Task orchestrated successfully',\n details: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\n// Tool 7: Agent Execute\nserver.addTool({\n name: 'agent_execute',\n description: 'Execute a specific agent with a task (equivalent to --agent CLI command)',\n parameters: z.object({\n agent: z.string().describe('Agent name to execute'),\n task: z.string().describe('Task description'),\n stream: z.boolean().optional().default(false).describe('Enable streaming output')\n }),\n execute: async ({ agent, task, stream }) => {\n try {\n const args = ['agentic-flow', '--agent', agent, '--task', task];\n if (stream) args.push('--stream');\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100),\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool 8: Agent Parallel\nserver.addTool({\n name: 'agent_parallel',\n description: 'Run parallel mode with 3 agents (research, code review, data analysis)',\n parameters: z.object({\n topic: z.string().optional().describe('Research topic'),\n diff: z.string().optional().describe('Code diff for review'),\n dataset: z.string().optional().describe('Dataset hint'),\n streaming: z.boolean().optional().default(false).describe('Enable streaming')\n }),\n execute: async ({ topic, diff, dataset, streaming }) => {\n try {\n const env = {\n ...process.env,\n ...(topic && { TOPIC: topic }),\n ...(diff && { DIFF: diff }),\n ...(dataset && { DATASET: dataset }),\n ...(streaming && { ENABLE_STREAMING: 'true' })\n };\n const result = execFileSync('npx', ['agentic-flow'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000, env });\n\n return JSON.stringify({\n success: true,\n mode: 'parallel',\n agents: ['research', 'code_review', 'data'],\n output: result,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to run parallel mode: ${error.message}`);\n }\n }\n});\n\n// Tool 9: Agent List\nserver.addTool({\n name: 'agent_list',\n description: 'List all available agents',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary')\n }),\n execute: async ({ format }) => {\n try {\n const result = execFileSync('npx', ['agentic-flow', '--list'], { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 5 * 1024 * 1024, timeout: 30000 });\n\n if (format === 'detailed') {\n return result;\n }\n\n const agents: any[] = [];\n const lines = result.split('\\n');\n let currentCategory = '';\n\n for (const line of lines) {\n if (line.includes(':') && line.trim().endsWith(':')) {\n currentCategory = line.replace(':', '').trim();\n } else if (line.trim().startsWith('•') || /^\\s{2,}\\w/.test(line)) {\n const match = line.match(/^\\s*[•\\s]*(\\S+)\\s+(.+)$/);\n if (match) {\n agents.push({ name: match[1], description: match[2].trim(), category: currentCategory });\n }\n }\n }\n\n return JSON.stringify({\n success: true,\n count: agents.length,\n agents,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool 10: Add Custom Agent\nserver.addTool({\n name: 'agent_add',\n description: 'Add a new custom agent defined in markdown',\n parameters: z.object({\n name: z.string().describe('Agent name (kebab-case)'),\n description: z.string().describe('Agent description'),\n systemPrompt: z.string().describe('System prompt'),\n category: z.string().optional().default('custom').describe('Category'),\n capabilities: z.array(z.string()).optional().describe('Capabilities')\n }),\n execute: async ({ name, description, systemPrompt, category, capabilities }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n // name and category become path segments: slugs only, kept under .claude/agents\n assertSlug(name, 'agent name');\n const agentsDir = resolveAgentDir(category || 'custom');\n if (!existsSync(agentsDir)) mkdirSync(agentsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}\n\n## Description\n${description}\n\n## System Prompt\n${systemPrompt}\n\n${capabilities && capabilities.length > 0 ? `## Capabilities\\n${capabilities.map(c => `- ${c}`).join('\\n')}\\n` : ''}\n\n## Usage\n\\`\\`\\`bash\nnpx agentic-flow --agent ${name} --task \"Your task\"\n\\`\\`\\`\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(agentsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Agent '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n agent: name,\n category: category || 'custom',\n filePath,\n message: `Agent '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add agent: ${error.message}`);\n }\n }\n});\n\n// Tool 11: Add Custom Command\nserver.addTool({\n name: 'command_add',\n description: 'Add a new custom command defined in markdown',\n parameters: z.object({\n name: z.string().describe('Command name (kebab-case)'),\n description: z.string().describe('Command description'),\n usage: z.string().describe('Usage example'),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string(),\n required: z.boolean(),\n description: z.string()\n })).optional().describe('Parameters'),\n examples: z.array(z.string()).optional().describe('Examples')\n }),\n execute: async ({ name, description, usage, parameters, examples }) => {\n try {\n const { writeFileSync, existsSync, mkdirSync } = await import('fs');\n const { join } = await import('path');\n\n assertSlug(name, 'command name');\n const commandsDir = join(process.cwd(), '.claude', 'commands');\n if (!existsSync(commandsDir)) mkdirSync(commandsDir, { recursive: true });\n\n const markdown = `# ${name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')} Command\n\n## Description\n${description}\n\n## Usage\n\\`\\`\\`bash\n${usage}\n\\`\\`\\`\n\n${parameters && parameters.length > 0 ? `## Parameters\\n| Name | Type | Required | Description |\\n|------|------|----------|-------------|\\n${parameters.map(p => `| \\`${p.name}\\` | ${p.type} | ${p.required ? 'Yes' : 'No'} | ${p.description} |`).join('\\n')}\\n` : ''}\n\n${examples && examples.length > 0 ? `## Examples\\n\\n${examples.map((ex, i) => `### Example ${i + 1}\\n\\`\\`\\`bash\\n${ex}\\n\\`\\`\\`\\n`).join('\\n')}` : ''}\n\n---\n*Generated: ${new Date().toISOString()}*\n`;\n\n const filePath = resolveWithin(commandsDir, `${name}.md`);\n if (existsSync(filePath)) throw new Error(`Command '${name}' already exists`);\n\n writeFileSync(filePath, markdown, 'utf8');\n\n return JSON.stringify({\n success: true,\n command: name,\n filePath,\n message: `Command '${name}' created successfully`,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to add command: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 11 tools successfully');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP Full Server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -4,7 +4,7 @@ const READONLY = [
4
4
  /^harness_(capabilities|manifest|verify)$/,
5
5
  /_(stats|get_profile|list_profiles|benchmark)$/,
6
6
  // Ecosystem tools: pure computations over their arguments, no side effects.
7
- /^(ecosystem_status|swarm_partition_tasks|sublinear_solve|sublinear_pagerank|prompt_injection_scan)$/,
7
+ /^(ecosystem_status|swarm_partition_tasks|swarm_schedule_tasks|sublinear_solve|sublinear_pagerank|prompt_injection_scan)$/,
8
8
  ];
9
9
  const RETRIEVAL = [...READONLY, /search$/, /context$/];
10
10
  const LEARNING = [...RETRIEVAL, /^agentic_flow_agent$/, /^agentdb_pattern_store$/, /^sona_/];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-policy.js","sourceRoot":"","sources":["../../src/mcp/mcp-policy.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG;IACf,0DAA0D;IAC1D,gDAAgD;IAChD,0CAA0C;IAC1C,+CAA+C;IAC/C,4EAA4E;IAC5E,qGAAqG;CACtG,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAE7F,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,MAAM,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC;IACpC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAgE;IAEhE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,OAAgE;IAEhE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAsB,EAAE,EAAE;QAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC,CAAiB,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["export type McpProfile = 'readonly' | 'retrieval' | 'learning' | 'admin';\n\nconst READONLY = [\n /^agentic_flow_(list|list_all|agent_info|check_conflicts)/,\n /^agentdb_(stats|pattern_search|pattern_stats)$/,\n /^harness_(capabilities|manifest|verify)$/,\n /_(stats|get_profile|list_profiles|benchmark)$/,\n // Ecosystem tools: pure computations over their arguments, no side effects.\n /^(ecosystem_status|swarm_partition_tasks|sublinear_solve|sublinear_pagerank|prompt_injection_scan)$/,\n];\nconst RETRIEVAL = [...READONLY, /search$/, /context$/];\nconst LEARNING = [...RETRIEVAL, /^agentic_flow_agent$/, /^agentdb_pattern_store$/, /^sona_/];\n\nexport function parseMcpProfile(value: string | undefined): McpProfile {\n const profile = value ?? 'readonly';\n if (!['readonly', 'retrieval', 'learning', 'admin'].includes(profile)) {\n throw new Error(`invalid MCP profile: ${profile}`);\n }\n return profile as McpProfile;\n}\n\nexport function isMcpToolAllowed(\n name: string,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): boolean {\n if (name === 'harness_repair') {\n return options.profile === 'admin' && options.allowDarwinExecution === true;\n }\n if (options.profile === 'admin') return true;\n const rules = options.profile === 'learning' ? LEARNING :\n options.profile === 'retrieval' ? RETRIEVAL : READONLY;\n return rules.some((rule) => rule.test(name));\n}\n\nexport function installMcpPolicy<T extends { addTool: (tool: { name: string }) => unknown }>(\n server: T,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): T {\n const addTool = server.addTool.bind(server);\n server.addTool = ((tool: { name: string }) => {\n if (isMcpToolAllowed(tool.name, options)) return addTool(tool);\n return undefined;\n }) as T['addTool'];\n return server;\n}\n"]}
1
+ {"version":3,"file":"mcp-policy.js","sourceRoot":"","sources":["../../src/mcp/mcp-policy.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG;IACf,0DAA0D;IAC1D,gDAAgD;IAChD,0CAA0C;IAC1C,+CAA+C;IAC/C,4EAA4E;IAC5E,0HAA0H;CAC3H,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAE7F,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,MAAM,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC;IACpC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAgE;IAEhE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,OAAgE;IAEhE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAsB,EAAE,EAAE;QAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC,CAAiB,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["export type McpProfile = 'readonly' | 'retrieval' | 'learning' | 'admin';\n\nconst READONLY = [\n /^agentic_flow_(list|list_all|agent_info|check_conflicts)/,\n /^agentdb_(stats|pattern_search|pattern_stats)$/,\n /^harness_(capabilities|manifest|verify)$/,\n /_(stats|get_profile|list_profiles|benchmark)$/,\n // Ecosystem tools: pure computations over their arguments, no side effects.\n /^(ecosystem_status|swarm_partition_tasks|swarm_schedule_tasks|sublinear_solve|sublinear_pagerank|prompt_injection_scan)$/,\n];\nconst RETRIEVAL = [...READONLY, /search$/, /context$/];\nconst LEARNING = [...RETRIEVAL, /^agentic_flow_agent$/, /^agentdb_pattern_store$/, /^sona_/];\n\nexport function parseMcpProfile(value: string | undefined): McpProfile {\n const profile = value ?? 'readonly';\n if (!['readonly', 'retrieval', 'learning', 'admin'].includes(profile)) {\n throw new Error(`invalid MCP profile: ${profile}`);\n }\n return profile as McpProfile;\n}\n\nexport function isMcpToolAllowed(\n name: string,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): boolean {\n if (name === 'harness_repair') {\n return options.profile === 'admin' && options.allowDarwinExecution === true;\n }\n if (options.profile === 'admin') return true;\n const rules = options.profile === 'learning' ? LEARNING :\n options.profile === 'retrieval' ? RETRIEVAL : READONLY;\n return rules.some((rule) => rule.test(name));\n}\n\nexport function installMcpPolicy<T extends { addTool: (tool: { name: string }) => unknown }>(\n server: T,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): T {\n const addTool = server.addTool.bind(server);\n server.addTool = ((tool: { name: string }) => {\n if (isMcpToolAllowed(tool.name, options)) return addTool(tool);\n return undefined;\n }) as T['addTool'];\n return server;\n}\n"]}