agentic-flow 2.0.13 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/agents/directApiAgent.d.ts.map +1 -1
- package/dist/agents/directApiAgent.js +37 -19
- package/dist/agents/directApiAgent.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +4 -1
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/mcp-manager.js +13 -6
- package/dist/cli/mcp-manager.js.map +1 -1
- package/dist/intelligence/EmbeddingService.js +3 -3
- package/dist/intelligence/EmbeddingService.js.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.js +5 -3
- package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +76 -29
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +27 -22
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -1
- package/dist/mcp/fastmcp/servers/http-sse.js +31 -20
- package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -1
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js +33 -32
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -1
- package/dist/mcp/fastmcp/servers/poc-stdio.js +10 -11
- package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -1
- package/dist/mcp/fastmcp/servers/stdio-full.js +33 -32
- package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/execute.js +8 -5
- package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/list.js +4 -2
- package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/agent/parallel.js +4 -2
- package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js +11 -3
- package/dist/mcp/fastmcp/tools/hooks/pretrain.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +9 -5
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -1
- package/dist/mcp/standalone-stdio.js +72 -57
- package/dist/mcp/standalone-stdio.js.map +1 -1
- package/dist/reasoningbank/utils/embeddings.d.ts +0 -6
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
- package/dist/reasoningbank/utils/embeddings.js +9 -43
- package/dist/reasoningbank/utils/embeddings.js.map +1 -1
- package/dist/router/providers/onnx-local-optimized.d.ts +1 -10
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
- package/dist/router/providers/onnx-local-optimized.js +9 -10
- package/dist/router/providers/onnx-local-optimized.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts +0 -9
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +7 -22
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/sdk/plugins.d.ts +6 -6
- package/dist/sdk/plugins.d.ts.map +1 -1
- package/dist/sdk/plugins.js +37 -0
- package/dist/sdk/plugins.js.map +1 -1
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -0
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/quic-loader.d.ts +217 -0
- package/dist/transport/quic-loader.d.ts.map +1 -0
- package/dist/transport/quic-loader.js +412 -0
- package/dist/transport/quic-loader.js.map +1 -0
- package/dist/utils/agentBoosterPreprocessor.js +16 -22
- package/dist/utils/agentBoosterPreprocessor.js.map +1 -1
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pretrain.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/pretrain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Pretrain Hook - Analyze repository and bootstrap intelligence\n * Swarm-distributed when available, falls back to sequential\n */\n\nimport { z } from 'zod';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport { execSync } from 'child_process';\nimport type { ToolDefinition } from '../../types/index.js';\nimport {\n loadIntelligence,\n saveIntelligence,\n getAgentForFile,\n simpleEmbed,\n agentMapping\n} from './shared.js';\n\nexport const hookPretrainTool: ToolDefinition = {\n name: 'hook_pretrain',\n description: 'Analyze repository with swarm for intelligent patterns',\n parameters: z.object({\n depth: z.number().optional().default(100).describe('Git history depth'),\n incremental: z.boolean().optional().default(false).describe('Only analyze changes since last pretrain'),\n skipGit: z.boolean().optional().default(false).describe('Skip git history analysis'),\n skipFiles: z.boolean().optional().default(false).describe('Skip file structure analysis'),\n verbose: z.boolean().optional().default(false).describe('Show detailed progress')\n }),\n execute: async ({ depth, incremental, skipGit, skipFiles, verbose }, { onProgress }) => {\n const startTime = Date.now();\n const intel = loadIntelligence();\n const stats = { files: 0, patterns: 0, memories: 0, coedits: 0 };\n\n onProgress?.({ progress: 0, message: 'Starting pretrain analysis...' });\n\n // Phase 1: Analyze file structure\n if (!skipFiles) {\n onProgress?.({ progress: 0.1, message: 'Analyzing file structure...' });\n\n try {\n const filesOutput = execSync(\n 'git ls-files 2>/dev/null || find . -type f -not -path \"./.git/*\" -not -path \"./node_modules/*\" -not -path \"./target/*\" 2>/dev/null',\n { encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024 }\n );\n\n const files = filesOutput.trim().split('\\n').filter(f => f);\n\n for (const file of files) {\n stats.files++;\n const ext = path.extname(file);\n const agent = getAgentForFile(file);\n\n // Create Q-learning pattern\n const state = `edit:${ext || 'unknown'}`;\n if (!intel.patterns[state]) {\n intel.patterns[state] = {};\n }\n intel.patterns[state][agent] = (intel.patterns[state][agent] || 0) + 0.3;\n stats.patterns++;\n\n // Track directory patterns\n const dir = path.dirname(file);\n const dirParts = dir.split('/');\n if (dirParts[0] && !intel.dirPatterns[dirParts[0]]) {\n intel.dirPatterns[dirParts[0]] = agent;\n }\n }\n\n if (verbose) {\n console.log(`[Pretrain] Analyzed ${stats.files} files`);\n }\n } catch (e) {\n // Continue without file analysis\n }\n }\n\n // Phase 2: Analyze git history for co-edit patterns\n if (!skipGit) {\n onProgress?.({ progress: 0.4, message: 'Analyzing git history...' });\n\n try {\n const gitLog = execSync(\n `git log --name-only --pretty=format:\"COMMIT:%H\" -n ${depth} 2>/dev/null`,\n { encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024 }\n );\n\n const commits = gitLog.split('COMMIT:').filter(c => c.trim());\n const coEditMap: Record<string, number> = {};\n\n for (const commit of commits) {\n const lines = commit.trim().split('\\n').filter(l => l && !l.match(/^[a-f0-9]{40}$/));\n const files = lines.filter(f => f.trim());\n\n // Track co-edits\n for (let i = 0; i < files.length; i++) {\n for (let j = i + 1; j < files.length; j++) {\n const key = [files[i], files[j]].sort().join('|');\n coEditMap[key] = (coEditMap[key] || 0) + 1;\n }\n }\n }\n\n // Store strong co-edit patterns\n const strongPatterns = Object.entries(coEditMap)\n .filter(([, count]) => count >= 3)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, count] of strongPatterns.slice(0, 100)) {\n const [file1, file2] = key.split('|');\n if (!intel.sequences[file1]) {\n intel.sequences[file1] = [];\n }\n\n const existing = intel.sequences[file1].find(s => s.file === file2);\n if (existing) {\n existing.score += count;\n } else {\n intel.sequences[file1].push({ file: file2, score: count });\n }\n stats.coedits++;\n }\n\n if (verbose) {\n console.log(`[Pretrain] Found ${strongPatterns.length} co-edit patterns`);\n }\n } catch (e) {\n // Continue without git analysis\n }\n }\n\n // Phase 3: Create memories from important files\n onProgress?.({ progress: 0.7, message: 'Creating memories from key files...' });\n\n const importantFiles = [\n 'README.md', 'CLAUDE.md', 'package.json', 'Cargo.toml',\n 'pyproject.toml', 'go.mod', '.claude/settings.json', 'tsconfig.json'\n ];\n\n for (const filename of importantFiles) {\n const filePath = path.join(process.cwd(), filename);\n if (fs.existsSync(filePath)) {\n try {\n const content = fs.readFileSync(filePath, 'utf-8').slice(0, 2000);\n intel.memories.push({\n content: `[${filename}] ${content.replace(/\\n/g, ' ').slice(0, 500)}`,\n type: 'project',\n created: new Date().toISOString(),\n embedding: simpleEmbed(content)\n });\n stats.memories++;\n } catch (e) {\n // Skip unreadable files\n }\n }\n }\n\n // Phase 4: Build directory-agent mappings\n onProgress?.({ progress: 0.85, message: 'Building directory mappings...' });\n\n try {\n const dirs = execSync(\n 'find . -type d -maxdepth 2 -not -path \"./.git*\" -not -path \"./node_modules*\" 2>/dev/null || echo \".\"',\n { encoding: 'utf-8' }\n ).trim().split('\\n');\n\n for (const dir of dirs) {\n const name = path.basename(dir);\n if (['src', 'lib', 'core'].includes(name)) intel.dirPatterns[dir] = 'coder';\n else if (['test', 'tests', '__tests__', 'spec'].includes(name)) intel.dirPatterns[dir] = 'test-engineer';\n else if (['docs', 'documentation'].includes(name)) intel.dirPatterns[dir] = 'documentation-specialist';\n else if (['scripts', 'bin'].includes(name)) intel.dirPatterns[dir] = 'devops-engineer';\n else if (['components', 'views', 'pages'].includes(name)) intel.dirPatterns[dir] = 'frontend-developer';\n else if (['api', 'routes', 'handlers'].includes(name)) intel.dirPatterns[dir] = 'backend-developer';\n else if (['models', 'entities', 'schemas'].includes(name)) intel.dirPatterns[dir] = 'database-specialist';\n }\n } catch (e) {\n // Continue without directory analysis\n }\n\n // Save pretrain metadata\n intel.pretrained = {\n date: new Date().toISOString(),\n stats\n };\n\n // Save intelligence\n saveIntelligence(intel);\n\n onProgress?.({ progress: 1.0, message: 'Pretrain complete!' });\n\n const latency = Date.now() - startTime;\n\n return {\n success: true,\n filesAnalyzed: stats.files,\n patternsCreated: stats.patterns,\n memoriesStored: stats.memories,\n coEditsFound: stats.coedits,\n directoryMappings: Object.keys(intel.dirPatterns).length,\n latencyMs: latency,\n timestamp: new Date().toISOString()\n };\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"pretrain.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/hooks/pretrain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Pretrain Hook - Analyze repository and bootstrap intelligence\n * Swarm-distributed when available, falls back to sequential\n */\n\nimport { z } from 'zod';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport { execSync, execFileSync } from 'child_process';\nimport type { ToolDefinition } from '../../types/index.js';\nimport {\n loadIntelligence,\n saveIntelligence,\n getAgentForFile,\n simpleEmbed\n} from './shared.js';\n\nexport const hookPretrainTool: ToolDefinition = {\n name: 'hook_pretrain',\n description: 'Analyze repository with swarm for intelligent patterns',\n parameters: z.object({\n depth: z.number().optional().default(100).describe('Git history depth'),\n incremental: z.boolean().optional().default(false).describe('Only analyze changes since last pretrain'),\n skipGit: z.boolean().optional().default(false).describe('Skip git history analysis'),\n skipFiles: z.boolean().optional().default(false).describe('Skip file structure analysis'),\n verbose: z.boolean().optional().default(false).describe('Show detailed progress')\n }),\n execute: async ({ depth, incremental: _incremental, skipGit, skipFiles, verbose }, { onProgress }) => {\n const startTime = Date.now();\n const intel = loadIntelligence();\n const stats = { files: 0, patterns: 0, memories: 0, coedits: 0 };\n\n onProgress?.({ progress: 0, message: 'Starting pretrain analysis...' });\n\n // Phase 1: Analyze file structure\n if (!skipFiles) {\n onProgress?.({ progress: 0.1, message: 'Analyzing file structure...' });\n\n try {\n // Static command, no user input — shell is required for the `||` fallback\n // and `2>/dev/null` redirection. NOT a CWE-78 sink.\n const filesOutput = execSync(\n 'git ls-files 2>/dev/null || find . -type f -not -path \"./.git/*\" -not -path \"./node_modules/*\" -not -path \"./target/*\" 2>/dev/null',\n { encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024 }\n );\n\n const files = filesOutput.trim().split('\\n').filter(f => f);\n\n for (const file of files) {\n stats.files++;\n const ext = path.extname(file);\n const agent = getAgentForFile(file);\n\n // Create Q-learning pattern\n const state = `edit:${ext || 'unknown'}`;\n if (!intel.patterns[state]) {\n intel.patterns[state] = {};\n }\n intel.patterns[state][agent] = (intel.patterns[state][agent] || 0) + 0.3;\n stats.patterns++;\n\n // Track directory patterns\n const dir = path.dirname(file);\n const dirParts = dir.split('/');\n if (dirParts[0] && !intel.dirPatterns[dirParts[0]]) {\n intel.dirPatterns[dirParts[0]] = agent;\n }\n }\n\n if (verbose) {\n console.log(`[Pretrain] Analyzed ${stats.files} files`);\n }\n } catch (e) {\n // Continue without file analysis\n }\n }\n\n // Phase 2: Analyze git history for co-edit patterns\n if (!skipGit) {\n onProgress?.({ progress: 0.4, message: 'Analyzing git history...' });\n\n try {\n // Security (CWE-78): depth is z.number() validated, but use execFileSync\n // with argv to hard-prevent any future schema relaxation from becoming\n // an injection sink. Coerce to a positive integer explicitly.\n const safeDepth = Math.max(1, Math.floor(Number(depth) || 100));\n const gitLog = execFileSync(\n 'git',\n ['log', '--name-only', '--pretty=format:COMMIT:%H', '-n', String(safeDepth)],\n { shell: false, encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024, stdio: ['pipe', 'pipe', 'ignore'] }\n );\n\n const commits = gitLog.split('COMMIT:').filter(c => c.trim());\n const coEditMap: Record<string, number> = {};\n\n for (const commit of commits) {\n const lines = commit.trim().split('\\n').filter(l => l && !l.match(/^[a-f0-9]{40}$/));\n const files = lines.filter(f => f.trim());\n\n // Track co-edits\n for (let i = 0; i < files.length; i++) {\n for (let j = i + 1; j < files.length; j++) {\n const key = [files[i], files[j]].sort().join('|');\n coEditMap[key] = (coEditMap[key] || 0) + 1;\n }\n }\n }\n\n // Store strong co-edit patterns\n const strongPatterns = Object.entries(coEditMap)\n .filter(([, count]) => count >= 3)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, count] of strongPatterns.slice(0, 100)) {\n const [file1, file2] = key.split('|');\n if (!intel.sequences[file1]) {\n intel.sequences[file1] = [];\n }\n\n const existing = intel.sequences[file1].find(s => s.file === file2);\n if (existing) {\n existing.score += count;\n } else {\n intel.sequences[file1].push({ file: file2, score: count });\n }\n stats.coedits++;\n }\n\n if (verbose) {\n console.log(`[Pretrain] Found ${strongPatterns.length} co-edit patterns`);\n }\n } catch (e) {\n // Continue without git analysis\n }\n }\n\n // Phase 3: Create memories from important files\n onProgress?.({ progress: 0.7, message: 'Creating memories from key files...' });\n\n const importantFiles = [\n 'README.md', 'CLAUDE.md', 'package.json', 'Cargo.toml',\n 'pyproject.toml', 'go.mod', '.claude/settings.json', 'tsconfig.json'\n ];\n\n for (const filename of importantFiles) {\n const filePath = path.join(process.cwd(), filename);\n if (fs.existsSync(filePath)) {\n try {\n const content = fs.readFileSync(filePath, 'utf-8').slice(0, 2000);\n intel.memories.push({\n content: `[${filename}] ${content.replace(/\\n/g, ' ').slice(0, 500)}`,\n type: 'project',\n created: new Date().toISOString(),\n embedding: simpleEmbed(content)\n });\n stats.memories++;\n } catch (e) {\n // Skip unreadable files\n }\n }\n }\n\n // Phase 4: Build directory-agent mappings\n onProgress?.({ progress: 0.85, message: 'Building directory mappings...' });\n\n try {\n // Static command, no user input — shell required for `2>/dev/null || echo`.\n // NOT a CWE-78 sink.\n const dirs = execSync(\n 'find . -type d -maxdepth 2 -not -path \"./.git*\" -not -path \"./node_modules*\" 2>/dev/null || echo \".\"',\n { encoding: 'utf-8' }\n ).trim().split('\\n');\n\n for (const dir of dirs) {\n const name = path.basename(dir);\n if (['src', 'lib', 'core'].includes(name)) intel.dirPatterns[dir] = 'coder';\n else if (['test', 'tests', '__tests__', 'spec'].includes(name)) intel.dirPatterns[dir] = 'test-engineer';\n else if (['docs', 'documentation'].includes(name)) intel.dirPatterns[dir] = 'documentation-specialist';\n else if (['scripts', 'bin'].includes(name)) intel.dirPatterns[dir] = 'devops-engineer';\n else if (['components', 'views', 'pages'].includes(name)) intel.dirPatterns[dir] = 'frontend-developer';\n else if (['api', 'routes', 'handlers'].includes(name)) intel.dirPatterns[dir] = 'backend-developer';\n else if (['models', 'entities', 'schemas'].includes(name)) intel.dirPatterns[dir] = 'database-specialist';\n }\n } catch (e) {\n // Continue without directory analysis\n }\n\n // Save pretrain metadata\n intel.pretrained = {\n date: new Date().toISOString(),\n stats\n };\n\n // Save intelligence\n saveIntelligence(intel);\n\n onProgress?.({ progress: 1.0, message: 'Pretrain complete!' });\n\n const latency = Date.now() - startTime;\n\n return {\n success: true,\n filesAnalyzed: stats.files,\n patternsCreated: stats.patterns,\n memoriesStored: stats.memories,\n coEditsFound: stats.coedits,\n directoryMappings: Object.keys(intel.dirPatterns).length,\n latencyMs: latency,\n timestamp: new Date().toISOString()\n };\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/orchestrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/orchestrate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,eAAO,MAAM,mBAAmB,EAAE,cA8CjC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */
|
|
1
2
|
// Task orchestration tool implementation using FastMCP
|
|
2
3
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
4
|
+
import { execFileSync } from 'child_process';
|
|
4
5
|
export const taskOrchestrateTool = {
|
|
5
6
|
name: 'task_orchestrate',
|
|
6
7
|
description: 'Orchestrate a complex task across the swarm',
|
|
@@ -21,11 +22,14 @@ export const taskOrchestrateTool = {
|
|
|
21
22
|
.optional()
|
|
22
23
|
.describe('Maximum agents to use for this task')
|
|
23
24
|
}),
|
|
24
|
-
execute: async ({ task, strategy, priority, maxAgents }, { onProgress, auth }) => {
|
|
25
|
+
execute: async ({ task, strategy, priority, maxAgents }, { onProgress: _onProgress, auth }) => {
|
|
25
26
|
try {
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
// Security (CWE-78): use execFileSync with argv array; `task` is attacker-influenceable.
|
|
28
|
+
const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];
|
|
29
|
+
if (maxAgents)
|
|
30
|
+
args.push('--max-agents', String(maxAgents));
|
|
31
|
+
const result = execFileSync('npx', args, {
|
|
32
|
+
shell: false,
|
|
29
33
|
encoding: 'utf-8',
|
|
30
34
|
maxBuffer: 10 * 1024 * 1024
|
|
31
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/orchestrate.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/orchestrate.ts"],"names":[],"mappings":"AAAA,+HAA+H;AAC/H,uDAAuD;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,6CAA6C;IAC1D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;aACb,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;aACrD,QAAQ,EAAE;aACV,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CAAC,oBAAoB,CAAC;QACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;aACpD,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,eAAe,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;aAClB,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;KACnD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5F,IAAI,CAAC;YACH,yFAAyF;YACzF,MAAM,IAAI,GAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC1H,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;aAC5B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACJ,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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// Task orchestration tool implementation using FastMCP\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport type { ToolDefinition } from '../../types/index.js';\n\nexport const taskOrchestrateTool: ToolDefinition = {\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm',\n parameters: z.object({\n task: z.string()\n .min(1)\n .describe('Task description or instructions'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive'])\n .optional()\n .default('adaptive')\n .describe('Execution strategy'),\n priority: z.enum(['low', 'medium', 'high', 'critical'])\n .optional()\n .default('medium')\n .describe('Task priority'),\n maxAgents: z.number()\n .positive()\n .optional()\n .describe('Maximum agents to use for this task')\n }),\n execute: async ({ task, strategy, priority, maxAgents }, { onProgress: _onProgress, auth }) => {\n try {\n // Security (CWE-78): use execFileSync with argv array; `task` is attacker-influenceable.\n const args: string[] = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n\n const result = execFileSync('npx', args, {\n shell: false,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024\n });\n\n return {\n success: true,\n task,\n strategy,\n priority,\n maxAgents,\n result: result.trim(),\n userId: auth?.userId,\n timestamp: new Date().toISOString()\n };\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n};\n"]}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */
|
|
2
3
|
// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses
|
|
3
4
|
import { FastMCP } from 'fastmcp';
|
|
4
5
|
import { z } from 'zod';
|
|
5
|
-
import {
|
|
6
|
+
import { execFileSync } from 'child_process';
|
|
7
|
+
// Security: All shell-outs use execFileSync with argv arrays (shell: false) to
|
|
8
|
+
// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce
|
|
9
|
+
// execSync with template-string interpolation here — every prior occurrence in
|
|
10
|
+
// this file was an injection sink reachable through MCP tool arguments.
|
|
11
|
+
const NPX_EXEC_OPTS = { shell: false };
|
|
6
12
|
// Suppress FastMCP internal warnings for cleaner output
|
|
7
13
|
const originalConsoleWarn = console.warn;
|
|
8
14
|
console.warn = (...args) => {
|
|
@@ -49,13 +55,14 @@ server.addTool({
|
|
|
49
55
|
}),
|
|
50
56
|
execute: async ({ agent, task, model, provider, anthropicApiKey, openrouterApiKey, stream, temperature, maxTokens, agentsDir, outputFormat, verbose, timeout, retryOnError }) => {
|
|
51
57
|
try {
|
|
52
|
-
// Build
|
|
53
|
-
|
|
58
|
+
// Build argv (NOT a shell string) — every user-supplied value stays a
|
|
59
|
+
// separate argv element and cannot be reinterpreted by the shell.
|
|
60
|
+
const args = ['--yes', 'agentic-flow', '--agent', agent, '--task', task];
|
|
54
61
|
// Provider & Model
|
|
55
62
|
if (model)
|
|
56
|
-
|
|
63
|
+
args.push('--model', model);
|
|
57
64
|
if (provider)
|
|
58
|
-
|
|
65
|
+
args.push('--provider', provider);
|
|
59
66
|
// API Keys (set as env vars)
|
|
60
67
|
const env = { ...process.env };
|
|
61
68
|
if (anthropicApiKey)
|
|
@@ -64,23 +71,24 @@ server.addTool({
|
|
|
64
71
|
env.OPENROUTER_API_KEY = openrouterApiKey;
|
|
65
72
|
// Agent Behavior
|
|
66
73
|
if (stream)
|
|
67
|
-
|
|
74
|
+
args.push('--stream');
|
|
68
75
|
if (temperature !== undefined)
|
|
69
|
-
|
|
76
|
+
args.push('--temperature', String(temperature));
|
|
70
77
|
if (maxTokens)
|
|
71
|
-
|
|
78
|
+
args.push('--max-tokens', String(maxTokens));
|
|
72
79
|
// Directories
|
|
73
80
|
if (agentsDir)
|
|
74
|
-
|
|
81
|
+
args.push('--agents-dir', agentsDir);
|
|
75
82
|
// Output
|
|
76
83
|
if (outputFormat)
|
|
77
|
-
|
|
84
|
+
args.push('--output', outputFormat);
|
|
78
85
|
if (verbose)
|
|
79
|
-
|
|
86
|
+
args.push('--verbose');
|
|
80
87
|
// Execution
|
|
81
88
|
if (retryOnError)
|
|
82
|
-
|
|
83
|
-
const result =
|
|
89
|
+
args.push('--retry');
|
|
90
|
+
const result = execFileSync('npx', args, {
|
|
91
|
+
...NPX_EXEC_OPTS,
|
|
84
92
|
encoding: 'utf-8',
|
|
85
93
|
maxBuffer: 10 * 1024 * 1024,
|
|
86
94
|
timeout: timeout || 300000,
|
|
@@ -107,9 +115,8 @@ server.addTool({
|
|
|
107
115
|
parameters: z.object({}),
|
|
108
116
|
execute: async () => {
|
|
109
117
|
try {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const result = execSync(cmd, {
|
|
118
|
+
const result = execFileSync('npx', ['--yes', 'agentic-flow', '--list'], {
|
|
119
|
+
...NPX_EXEC_OPTS,
|
|
113
120
|
encoding: 'utf-8',
|
|
114
121
|
maxBuffer: 5 * 1024 * 1024,
|
|
115
122
|
timeout: 30000
|
|
@@ -137,12 +144,18 @@ server.addTool({
|
|
|
137
144
|
}),
|
|
138
145
|
execute: async ({ name, description, systemPrompt, category, tools }) => {
|
|
139
146
|
try {
|
|
140
|
-
|
|
147
|
+
const args = [
|
|
148
|
+
'--yes', 'agentic-flow', 'agent', 'create',
|
|
149
|
+
'--name', name,
|
|
150
|
+
'--description', description,
|
|
151
|
+
'--prompt', systemPrompt
|
|
152
|
+
];
|
|
141
153
|
if (category && category !== 'custom')
|
|
142
|
-
|
|
154
|
+
args.push('--category', category);
|
|
143
155
|
if (tools && tools.length > 0)
|
|
144
|
-
|
|
145
|
-
const result =
|
|
156
|
+
args.push('--tools', tools.join(','));
|
|
157
|
+
const result = execFileSync('npx', args, {
|
|
158
|
+
...NPX_EXEC_OPTS,
|
|
146
159
|
encoding: 'utf-8',
|
|
147
160
|
maxBuffer: 10 * 1024 * 1024,
|
|
148
161
|
timeout: 60000,
|
|
@@ -171,8 +184,8 @@ server.addTool({
|
|
|
171
184
|
}),
|
|
172
185
|
execute: async ({ format, filterSource }) => {
|
|
173
186
|
try {
|
|
174
|
-
const
|
|
175
|
-
|
|
187
|
+
const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'list', format || 'summary'], {
|
|
188
|
+
...NPX_EXEC_OPTS,
|
|
176
189
|
encoding: 'utf-8',
|
|
177
190
|
maxBuffer: 10 * 1024 * 1024,
|
|
178
191
|
timeout: 30000
|
|
@@ -209,8 +222,8 @@ server.addTool({
|
|
|
209
222
|
}),
|
|
210
223
|
execute: async ({ name }) => {
|
|
211
224
|
try {
|
|
212
|
-
const
|
|
213
|
-
|
|
225
|
+
const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {
|
|
226
|
+
...NPX_EXEC_OPTS,
|
|
214
227
|
encoding: 'utf-8',
|
|
215
228
|
maxBuffer: 10 * 1024 * 1024,
|
|
216
229
|
timeout: 30000
|
|
@@ -233,8 +246,8 @@ server.addTool({
|
|
|
233
246
|
parameters: z.object({}),
|
|
234
247
|
execute: async () => {
|
|
235
248
|
try {
|
|
236
|
-
const
|
|
237
|
-
|
|
249
|
+
const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'conflicts'], {
|
|
250
|
+
...NPX_EXEC_OPTS,
|
|
238
251
|
encoding: 'utf-8',
|
|
239
252
|
maxBuffer: 10 * 1024 * 1024,
|
|
240
253
|
timeout: 30000
|
|
@@ -261,16 +274,17 @@ server.addTool({
|
|
|
261
274
|
}),
|
|
262
275
|
execute: async ({ agent, task, priority, max_cost }) => {
|
|
263
276
|
try {
|
|
264
|
-
|
|
277
|
+
const args = ['--yes', 'agentic-flow', '--agent', agent, '--task', task, '--optimize'];
|
|
265
278
|
if (priority && priority !== 'balanced') {
|
|
266
|
-
|
|
279
|
+
args.push('--priority', priority);
|
|
267
280
|
}
|
|
268
281
|
if (max_cost) {
|
|
269
|
-
|
|
282
|
+
args.push('--max-cost', String(max_cost));
|
|
270
283
|
}
|
|
271
284
|
// Add dry-run to just get recommendation without execution
|
|
272
|
-
|
|
273
|
-
|
|
285
|
+
args.push('--help'); // This will show the optimization without running
|
|
286
|
+
execFileSync('npx', args, {
|
|
287
|
+
...NPX_EXEC_OPTS,
|
|
274
288
|
encoding: 'utf-8',
|
|
275
289
|
maxBuffer: 10 * 1024 * 1024,
|
|
276
290
|
timeout: 10000
|
|
@@ -323,8 +337,8 @@ server.addTool({
|
|
|
323
337
|
language = langMap[ext] || 'javascript';
|
|
324
338
|
}
|
|
325
339
|
// Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)
|
|
326
|
-
const
|
|
327
|
-
|
|
340
|
+
const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {
|
|
341
|
+
...NPX_EXEC_OPTS,
|
|
328
342
|
encoding: 'utf-8',
|
|
329
343
|
input: JSON.stringify({ code: originalCode, edit: code_edit }),
|
|
330
344
|
maxBuffer: 10 * 1024 * 1024,
|
|
@@ -404,8 +418,8 @@ server.addTool({
|
|
|
404
418
|
language = langMap[ext] || 'javascript';
|
|
405
419
|
}
|
|
406
420
|
// Apply edit
|
|
407
|
-
const
|
|
408
|
-
|
|
421
|
+
const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {
|
|
422
|
+
...NPX_EXEC_OPTS,
|
|
409
423
|
encoding: 'utf-8',
|
|
410
424
|
input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),
|
|
411
425
|
maxBuffer: 10 * 1024 * 1024,
|
|
@@ -464,7 +478,7 @@ server.addTool({
|
|
|
464
478
|
const edits = [];
|
|
465
479
|
let match;
|
|
466
480
|
while ((match = regex.exec(markdown)) !== null) {
|
|
467
|
-
const [
|
|
481
|
+
const [, language, filepath, instruction, code_edit] = match;
|
|
468
482
|
edits.push({
|
|
469
483
|
target_filepath: filepath.trim(),
|
|
470
484
|
instructions: instruction.trim(),
|
|
@@ -492,8 +506,8 @@ server.addTool({
|
|
|
492
506
|
};
|
|
493
507
|
language = langMap[ext] || 'javascript';
|
|
494
508
|
}
|
|
495
|
-
const
|
|
496
|
-
|
|
509
|
+
const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {
|
|
510
|
+
...NPX_EXEC_OPTS,
|
|
497
511
|
encoding: 'utf-8',
|
|
498
512
|
input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),
|
|
499
513
|
maxBuffer: 10 * 1024 * 1024,
|
|
@@ -543,8 +557,8 @@ server.addTool({
|
|
|
543
557
|
parameters: z.object({}),
|
|
544
558
|
execute: async () => {
|
|
545
559
|
try {
|
|
546
|
-
const
|
|
547
|
-
|
|
560
|
+
const result = execFileSync('npx', ['agentdb', 'db', 'stats'], {
|
|
561
|
+
...NPX_EXEC_OPTS,
|
|
548
562
|
encoding: 'utf-8',
|
|
549
563
|
maxBuffer: 5 * 1024 * 1024,
|
|
550
564
|
timeout: 10000
|
|
@@ -577,24 +591,25 @@ server.addTool({
|
|
|
577
591
|
}),
|
|
578
592
|
execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {
|
|
579
593
|
try {
|
|
580
|
-
const
|
|
594
|
+
const cliArgs = [
|
|
595
|
+
'agentdb', 'reflexion', 'store',
|
|
581
596
|
sessionId,
|
|
582
|
-
|
|
597
|
+
task,
|
|
583
598
|
reward.toString(),
|
|
584
599
|
success.toString()
|
|
585
600
|
];
|
|
586
601
|
if (critique)
|
|
587
|
-
|
|
602
|
+
cliArgs.push(critique);
|
|
588
603
|
if (input)
|
|
589
|
-
|
|
604
|
+
cliArgs.push(input);
|
|
590
605
|
if (output)
|
|
591
|
-
|
|
606
|
+
cliArgs.push(output);
|
|
592
607
|
if (latencyMs !== undefined)
|
|
593
|
-
|
|
608
|
+
cliArgs.push(latencyMs.toString());
|
|
594
609
|
if (tokensUsed !== undefined)
|
|
595
|
-
|
|
596
|
-
const
|
|
597
|
-
|
|
610
|
+
cliArgs.push(tokensUsed.toString());
|
|
611
|
+
const result = execFileSync('npx', cliArgs, {
|
|
612
|
+
...NPX_EXEC_OPTS,
|
|
598
613
|
encoding: 'utf-8',
|
|
599
614
|
maxBuffer: 10 * 1024 * 1024,
|
|
600
615
|
timeout: 30000
|
|
@@ -627,15 +642,15 @@ server.addTool({
|
|
|
627
642
|
}),
|
|
628
643
|
execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {
|
|
629
644
|
try {
|
|
630
|
-
const
|
|
645
|
+
const cliArgs = ['agentdb', 'reflexion', 'retrieve', task, (k || 5).toString()];
|
|
631
646
|
if (minReward !== undefined)
|
|
632
|
-
|
|
647
|
+
cliArgs.push(minReward.toString());
|
|
633
648
|
if (onlyFailures)
|
|
634
|
-
|
|
649
|
+
cliArgs.push('true', 'false');
|
|
635
650
|
else if (onlySuccesses)
|
|
636
|
-
|
|
637
|
-
const
|
|
638
|
-
|
|
651
|
+
cliArgs.push('false', 'true');
|
|
652
|
+
const result = execFileSync('npx', cliArgs, {
|
|
653
|
+
...NPX_EXEC_OPTS,
|
|
639
654
|
encoding: 'utf-8',
|
|
640
655
|
maxBuffer: 10 * 1024 * 1024,
|
|
641
656
|
timeout: 30000
|
|
@@ -668,8 +683,8 @@ server.addTool({
|
|
|
668
683
|
}),
|
|
669
684
|
execute: async ({ task, k }) => {
|
|
670
685
|
try {
|
|
671
|
-
const
|
|
672
|
-
|
|
686
|
+
const result = execFileSync('npx', ['agentdb', 'reflexion', 'critique-summary', task, String(k || 5)], {
|
|
687
|
+
...NPX_EXEC_OPTS,
|
|
673
688
|
encoding: 'utf-8',
|
|
674
689
|
maxBuffer: 10 * 1024 * 1024,
|
|
675
690
|
timeout: 30000
|