agentic-flow 3.3.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/config/claudeFlow.d.ts +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +3 -1
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.d.ts +29 -121
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.js +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.js.map +1 -1
- package/dist/mcp/sdk-tool-schema.d.ts +20 -0
- package/dist/mcp/sdk-tool-schema.d.ts.map +1 -0
- package/dist/mcp/sdk-tool-schema.js +31 -0
- package/dist/mcp/sdk-tool-schema.js.map +1 -0
- package/dist/optimizations/configuration-tuning.d.ts +1 -1
- package/dist/utils/agentdb-runtime-patch.js +2 -2
- package/dist/utils/agentdb-runtime-patch.js.map +1 -1
- package/package.json +8 -5
|
@@ -26,7 +26,7 @@ export declare function getMemoryConfig(agentName?: string): {
|
|
|
26
26
|
* Initialize swarm coordination for multi-agent tasks
|
|
27
27
|
*/
|
|
28
28
|
export declare function getSwarmConfig(topology?: ClaudeFlowConfig['coordinationTopology']): {
|
|
29
|
-
topology: "
|
|
29
|
+
topology: "mesh" | "hierarchical" | "ring" | "star";
|
|
30
30
|
maxAgents: number;
|
|
31
31
|
strategy: "balanced";
|
|
32
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeFlowSdkServer.d.ts","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claudeFlowSdkServer.d.ts","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"AAyEA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,yEAmc9B,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// In-SDK MCP server for claude-flow tools (no subprocess required)
|
|
2
|
-
import { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
import { createSdkMcpServer, tool as sdkTool } from '@anthropic-ai/claude-agent-sdk';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { readFileSync, writeFileSync } from 'fs';
|
|
5
5
|
import { extname } from 'path';
|
|
6
6
|
import { resolveInsideCwd } from '../utils/path-safety.js';
|
|
7
7
|
import { logger } from '../utils/logger.js';
|
|
8
8
|
import { execMemoryStore, execMemoryRetrieve, execMemorySearch, execAgentSpawn, safeExecNpx, } from '../utils/safe-exec.js';
|
|
9
|
+
import { withPortableDescriptions } from './sdk-tool-schema.js';
|
|
10
|
+
const tool = (name, description, inputSchema, handler) => sdkTool(name, description, withPortableDescriptions(inputSchema), handler);
|
|
9
11
|
let _AgentBooster = null;
|
|
10
12
|
async function loadAgentBooster() {
|
|
11
13
|
if (_AgentBooster)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeFlowSdkServer.js","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"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","sourcesContent":["// In-SDK MCP server for claude-flow tools (no subprocess required)\nimport { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';\nimport { z } from 'zod';\nimport { readFileSync, writeFileSync } from 'fs';\nimport { extname } from 'path';\nimport { resolveInsideCwd } from '../utils/path-safety.js';\nimport { logger } from '../utils/logger.js';\nimport {\n execMemoryStore,\n execMemoryRetrieve,\n execMemorySearch,\n execAgentSpawn,\n safeExecNpx,\n} from '../utils/safe-exec.js';\n\n// agent-booster is an optional sibling package — load it lazily so a missing\n// dep does not break top-level imports of agentic-flow (issue #102).\ntype AgentBoosterCtor = new (opts: { confidenceThreshold?: number }) => {\n apply(input: any): Promise<{\n success: boolean;\n output: string;\n latency: number;\n confidence: number;\n strategy: string;\n }>;\n};\n\nlet _AgentBooster: AgentBoosterCtor | null = null;\nasync function loadAgentBooster(): Promise<AgentBoosterCtor> {\n if (_AgentBooster) return _AgentBooster;\n try {\n const mod: any = await import('agent-booster');\n const ctor: AgentBoosterCtor | undefined =\n mod.AgentBooster ?? mod.default?.AgentBooster ?? mod.default;\n if (!ctor) {\n throw new Error(\"'agent-booster' loaded but does not export AgentBooster\");\n }\n _AgentBooster = ctor;\n return ctor;\n } catch (err: any) {\n throw new Error(\n `Agent Booster is unavailable (optional package 'agent-booster' not installed). ` +\n `Install it with: npm install agent-booster. Underlying: ${err?.message || err}`\n );\n }\n}\n\n/**\n * Validate a file path to prevent directory traversal.\n * Resolves to an absolute path and rejects paths that escape the working directory\n * (after following symlinks) or reference clearly sensitive locations.\n *\n * @param filePath - Caller-supplied file path\n * @returns Resolved absolute path\n * @throws Error if the path is unsafe\n */\nfunction validateFilePath(filePath: string): string {\n const resolved = resolveInsideCwd(filePath);\n\n // Block paths that are clearly sensitive system locations\n const blockedPrefixes = ['/etc/', '/proc/', '/sys/', '/dev/', '/root/'];\n for (const prefix of blockedPrefixes) {\n if (resolved.startsWith(prefix)) {\n throw new Error(`Access to path '${prefix}' is not permitted`);\n }\n }\n return resolved;\n}\n\n/**\n * Create an in-SDK MCP server that provides claude-flow memory and coordination tools\n * This runs in-process without spawning Claude Code CLI subprocess\n */\nexport const claudeFlowSdkServer = createSdkMcpServer({\n name: 'claude-flow-sdk',\n version: '1.0.0',\n\n tools: [\n // Memory storage tool\n tool(\n 'memory_store',\n 'Store a value in persistent memory with optional namespace and TTL',\n {\n key: z.string().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().optional().describe('Time-to-live in seconds'),\n },\n async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryStore\n execMemoryStore(key, value, namespace, ttl);\n\n logger.info('Memory stored successfully', { key });\n return {\n content: [\n {\n type: 'text',\n text: `✅ Stored successfully\\n📝 Key: ${key}\\n📦 Namespace: ${namespace}\\n💾 Size: ${value.length} bytes`,\n },\n ],\n };\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to store: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory retrieval tool\n tool(\n 'memory_retrieve',\n 'Retrieve a value from persistent memory',\n {\n key: z.string().describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n },\n async ({ key, namespace }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryRetrieve\n const result = execMemoryRetrieve(key, namespace);\n\n return {\n content: [\n {\n type: 'text',\n text: `✅ Retrieved:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to retrieve: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory search tool\n tool(\n 'memory_search',\n 'Search for keys matching a pattern in memory',\n {\n pattern: z.string().describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().optional().default(10).describe('Maximum results to return'),\n },\n async ({ pattern, namespace, limit }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemorySearch\n const result = execMemorySearch(pattern, namespace, limit);\n\n return {\n content: [\n {\n type: 'text',\n text: `🔍 Search results:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Search failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm initialization tool\n tool(\n 'swarm_init',\n 'Initialize a multi-agent swarm with specified topology',\n {\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().optional().default(8).describe('Maximum number of agents'),\n strategy: z\n .enum(['balanced', 'specialized', 'adaptive'])\n .optional()\n .default('balanced')\n .describe('Agent distribution strategy'),\n },\n async ({ topology, maxAgents, strategy }) => {\n try {\n // Use safe exec — topology and strategy come from z.enum() so are\n // already allowlisted, but execSwarmInit validates them again.\n // Pass a generated swarm ID so execSwarmInit is satisfied.\n const swarmId = `swarm-${Date.now()}`;\n const result = safeExecNpx('claude-flow@alpha', [\n 'swarm', 'init',\n '--topology', topology,\n '--max-agents', String(Math.min(Math.max(1, maxAgents), 100)),\n '--strategy', strategy,\n ]);\n\n return {\n content: [\n {\n type: 'text',\n text: `🚀 Swarm initialized:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Swarm init failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent spawn tool\n tool(\n 'agent_spawn',\n 'Spawn a new agent in the swarm',\n {\n type: z\n .enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name'),\n },\n async ({ type, capabilities, name }) => {\n try {\n // Use safe exec — type comes from z.enum() but execAgentSpawn re-validates\n // against VALIDATION_PATTERNS.agentType. The optional `name` is also\n // validated against agentName pattern inside execAgentSpawn.\n const agentName = name ?? `${type}-${Date.now()}`;\n const result = execAgentSpawn(agentName, type, undefined, capabilities);\n\n return {\n content: [\n {\n type: 'text',\n text: `🤖 Agent spawned:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent spawn failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Task orchestration tool\n tool(\n 'task_orchestrate',\n 'Orchestrate a complex task across the swarm',\n {\n task: z.string().describe('Task description or instructions'),\n strategy: z\n .enum(['parallel', 'sequential', 'adaptive'])\n .optional()\n .default('adaptive')\n .describe('Execution strategy'),\n priority: z\n .enum(['low', 'medium', 'high', 'critical'])\n .optional()\n .default('medium')\n .describe('Task priority'),\n maxAgents: z.number().optional().describe('Maximum agents to use for this task'),\n },\n async ({ task, strategy, priority, maxAgents }) => {\n try {\n // Use safe exec — task is passed as an array arg (no shell interpolation).\n // strategy and priority come from z.enum() and are re-validated inside\n // execTaskOrchestrate against VALIDATION_PATTERNS.\n const args = ['task', 'orchestrate', '--task', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents !== undefined) {\n args.push('--max-agents', String(Math.min(Math.max(1, maxAgents), 100)));\n }\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `⚡ Task orchestrated:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Task orchestration failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm status tool\n tool(\n 'swarm_status',\n 'Get current swarm status and metrics',\n {\n verbose: z.boolean().optional().default(false).describe('Include detailed metrics'),\n },\n async ({ verbose }) => {\n try {\n // verbose is a boolean from schema — no user string is interpolated into the command\n const args = ['swarm', 'status'];\n if (verbose) args.push('--verbose');\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `📊 Swarm status:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Status check failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Ultra-fast code editing\n tool(\n 'agent_booster_edit_file',\n \"Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster's local WASM engine.\",\n {\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('Description of what changes to make'),\n code_edit: z.string().describe('The new code or edit to apply'),\n language: z\n .string()\n .optional()\n .describe('Programming language (auto-detected if not provided)'),\n },\n async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n // Initialize Agent Booster (lazy load to keep top-level import safe)\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n\n // Validate and resolve the path before any file I/O to prevent traversal attacks\n const safePath = validateFilePath(target_filepath);\n\n // Read original file\n const originalCode = readFileSync(safePath, 'utf8');\n\n // Auto-detect language if not provided\n const lang = language || extname(safePath).slice(1);\n\n // Apply edit - use any cast for flexible signature\n const result = await booster.apply({\n code: originalCode,\n edit: code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: code_edit,\n code_edit,\n } as any);\n\n // Write if successful\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n }\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Edit Result:\\n` +\n `📁 File: ${safePath}\\n` +\n `✅ Success: ${result.success}\\n` +\n `⏱️ Latency: ${result.latency}ms\\n` +\n `🎯 Confidence: ${(result.confidence * 100).toFixed(1)}%\\n` +\n `🔧 Strategy: ${result.strategy}\\n` +\n `📊 Speedup: ~${Math.round(352 / result.latency)}x vs cloud APIs\\n` +\n `💰 Cost: $0 (vs ~$0.01 for cloud API)\\n\\n` +\n `${result.success ? '✨ Edit applied successfully!' : '❌ Edit failed - check confidence score'}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent Booster edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Batch editing\n tool(\n 'agent_booster_batch_edit',\n 'Apply multiple code edits in parallel using Agent Booster. Perfect for multi-file refactoring.',\n {\n edits: z\n .array(\n z.object({\n target_filepath: z.string(),\n instructions: z.string(),\n code_edit: z.string(),\n language: z.string().optional(),\n })\n )\n .describe('Array of edit operations to apply'),\n },\n async ({ edits }) => {\n try {\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n let successCount = 0;\n let totalLatency = 0;\n const results: string[] = [];\n\n for (const edit of edits) {\n // Validate path for each entry before any file I/O\n const safePath = validateFilePath(edit.target_filepath);\n const originalCode = readFileSync(safePath, 'utf8');\n const lang = edit.language || extname(safePath).slice(1);\n\n const result = await booster.apply({\n code: originalCode,\n edit: edit.code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: edit.code_edit,\n code_edit: edit.code_edit,\n } as any);\n\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n successCount++;\n }\n\n totalLatency += result.latency;\n results.push(\n ` ${result.success ? '✅' : '❌'} ${safePath} (${result.latency}ms, ${(result.confidence * 100).toFixed(0)}%)`\n );\n }\n\n const avgLatency = totalLatency / edits.length;\n const avgSpeedup = Math.round(352 / avgLatency);\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Batch Edit Results:\\n\\n` +\n `📊 Summary:\\n` +\n ` Total edits: ${edits.length}\\n` +\n ` Successful: ${successCount}\\n` +\n ` Failed: ${edits.length - successCount}\\n` +\n ` Total time: ${totalLatency.toFixed(1)}ms\\n` +\n ` Avg latency: ${avgLatency.toFixed(1)}ms\\n` +\n ` Avg speedup: ~${avgSpeedup}x vs cloud APIs\\n` +\n ` Cost savings: ~$${(edits.length * 0.01).toFixed(2)}\\n\\n` +\n `📁 Results:\\n${results.join('\\n')}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Batch edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n ],\n});\n"]}
|
|
1
|
+
{"version":3,"file":"claudeFlowSdkServer.js","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"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","sourcesContent":["// In-SDK MCP server for claude-flow tools (no subprocess required)\nimport { createSdkMcpServer, tool as sdkTool } from '@anthropic-ai/claude-agent-sdk';\nimport { z } from 'zod';\nimport { readFileSync, writeFileSync } from 'fs';\nimport { extname } from 'path';\nimport { resolveInsideCwd } from '../utils/path-safety.js';\nimport { logger } from '../utils/logger.js';\nimport {\n execMemoryStore,\n execMemoryRetrieve,\n execMemorySearch,\n execAgentSpawn,\n safeExecNpx,\n} from '../utils/safe-exec.js';\nimport { withPortableDescriptions } from './sdk-tool-schema.js';\n\nconst tool: typeof sdkTool = (name, description, inputSchema, handler) =>\n sdkTool(name, description, withPortableDescriptions(inputSchema), handler);\n\n// agent-booster is an optional sibling package — load it lazily so a missing\n// dep does not break top-level imports of agentic-flow (issue #102).\ntype AgentBoosterCtor = new (opts: { confidenceThreshold?: number }) => {\n apply(input: any): Promise<{\n success: boolean;\n output: string;\n latency: number;\n confidence: number;\n strategy: string;\n }>;\n};\n\nlet _AgentBooster: AgentBoosterCtor | null = null;\nasync function loadAgentBooster(): Promise<AgentBoosterCtor> {\n if (_AgentBooster) return _AgentBooster;\n try {\n const mod: any = await import('agent-booster');\n const ctor: AgentBoosterCtor | undefined =\n mod.AgentBooster ?? mod.default?.AgentBooster ?? mod.default;\n if (!ctor) {\n throw new Error(\"'agent-booster' loaded but does not export AgentBooster\");\n }\n _AgentBooster = ctor;\n return ctor;\n } catch (err: any) {\n throw new Error(\n `Agent Booster is unavailable (optional package 'agent-booster' not installed). ` +\n `Install it with: npm install agent-booster. Underlying: ${err?.message || err}`\n );\n }\n}\n\n/**\n * Validate a file path to prevent directory traversal.\n * Resolves to an absolute path and rejects paths that escape the working directory\n * (after following symlinks) or reference clearly sensitive locations.\n *\n * @param filePath - Caller-supplied file path\n * @returns Resolved absolute path\n * @throws Error if the path is unsafe\n */\nfunction validateFilePath(filePath: string): string {\n const resolved = resolveInsideCwd(filePath);\n\n // Block paths that are clearly sensitive system locations\n const blockedPrefixes = ['/etc/', '/proc/', '/sys/', '/dev/', '/root/'];\n for (const prefix of blockedPrefixes) {\n if (resolved.startsWith(prefix)) {\n throw new Error(`Access to path '${prefix}' is not permitted`);\n }\n }\n return resolved;\n}\n\n/**\n * Create an in-SDK MCP server that provides claude-flow memory and coordination tools\n * This runs in-process without spawning Claude Code CLI subprocess\n */\nexport const claudeFlowSdkServer = createSdkMcpServer({\n name: 'claude-flow-sdk',\n version: '1.0.0',\n\n tools: [\n // Memory storage tool\n tool(\n 'memory_store',\n 'Store a value in persistent memory with optional namespace and TTL',\n {\n key: z.string().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().optional().describe('Time-to-live in seconds'),\n },\n async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryStore\n execMemoryStore(key, value, namespace, ttl);\n\n logger.info('Memory stored successfully', { key });\n return {\n content: [\n {\n type: 'text',\n text: `✅ Stored successfully\\n📝 Key: ${key}\\n📦 Namespace: ${namespace}\\n💾 Size: ${value.length} bytes`,\n },\n ],\n };\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to store: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory retrieval tool\n tool(\n 'memory_retrieve',\n 'Retrieve a value from persistent memory',\n {\n key: z.string().describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n },\n async ({ key, namespace }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryRetrieve\n const result = execMemoryRetrieve(key, namespace);\n\n return {\n content: [\n {\n type: 'text',\n text: `✅ Retrieved:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to retrieve: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory search tool\n tool(\n 'memory_search',\n 'Search for keys matching a pattern in memory',\n {\n pattern: z.string().describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().optional().default(10).describe('Maximum results to return'),\n },\n async ({ pattern, namespace, limit }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemorySearch\n const result = execMemorySearch(pattern, namespace, limit);\n\n return {\n content: [\n {\n type: 'text',\n text: `🔍 Search results:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Search failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm initialization tool\n tool(\n 'swarm_init',\n 'Initialize a multi-agent swarm with specified topology',\n {\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().optional().default(8).describe('Maximum number of agents'),\n strategy: z\n .enum(['balanced', 'specialized', 'adaptive'])\n .optional()\n .default('balanced')\n .describe('Agent distribution strategy'),\n },\n async ({ topology, maxAgents, strategy }) => {\n try {\n // Use safe exec — topology and strategy come from z.enum() so are\n // already allowlisted, but execSwarmInit validates them again.\n // Pass a generated swarm ID so execSwarmInit is satisfied.\n const swarmId = `swarm-${Date.now()}`;\n const result = safeExecNpx('claude-flow@alpha', [\n 'swarm', 'init',\n '--topology', topology,\n '--max-agents', String(Math.min(Math.max(1, maxAgents), 100)),\n '--strategy', strategy,\n ]);\n\n return {\n content: [\n {\n type: 'text',\n text: `🚀 Swarm initialized:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Swarm init failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent spawn tool\n tool(\n 'agent_spawn',\n 'Spawn a new agent in the swarm',\n {\n type: z\n .enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name'),\n },\n async ({ type, capabilities, name }) => {\n try {\n // Use safe exec — type comes from z.enum() but execAgentSpawn re-validates\n // against VALIDATION_PATTERNS.agentType. The optional `name` is also\n // validated against agentName pattern inside execAgentSpawn.\n const agentName = name ?? `${type}-${Date.now()}`;\n const result = execAgentSpawn(agentName, type, undefined, capabilities);\n\n return {\n content: [\n {\n type: 'text',\n text: `🤖 Agent spawned:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent spawn failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Task orchestration tool\n tool(\n 'task_orchestrate',\n 'Orchestrate a complex task across the swarm',\n {\n task: z.string().describe('Task description or instructions'),\n strategy: z\n .enum(['parallel', 'sequential', 'adaptive'])\n .optional()\n .default('adaptive')\n .describe('Execution strategy'),\n priority: z\n .enum(['low', 'medium', 'high', 'critical'])\n .optional()\n .default('medium')\n .describe('Task priority'),\n maxAgents: z.number().optional().describe('Maximum agents to use for this task'),\n },\n async ({ task, strategy, priority, maxAgents }) => {\n try {\n // Use safe exec — task is passed as an array arg (no shell interpolation).\n // strategy and priority come from z.enum() and are re-validated inside\n // execTaskOrchestrate against VALIDATION_PATTERNS.\n const args = ['task', 'orchestrate', '--task', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents !== undefined) {\n args.push('--max-agents', String(Math.min(Math.max(1, maxAgents), 100)));\n }\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `⚡ Task orchestrated:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Task orchestration failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm status tool\n tool(\n 'swarm_status',\n 'Get current swarm status and metrics',\n {\n verbose: z.boolean().optional().default(false).describe('Include detailed metrics'),\n },\n async ({ verbose }) => {\n try {\n // verbose is a boolean from schema — no user string is interpolated into the command\n const args = ['swarm', 'status'];\n if (verbose) args.push('--verbose');\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `📊 Swarm status:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Status check failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Ultra-fast code editing\n tool(\n 'agent_booster_edit_file',\n \"Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster's local WASM engine.\",\n {\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('Description of what changes to make'),\n code_edit: z.string().describe('The new code or edit to apply'),\n language: z\n .string()\n .optional()\n .describe('Programming language (auto-detected if not provided)'),\n },\n async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n // Initialize Agent Booster (lazy load to keep top-level import safe)\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n\n // Validate and resolve the path before any file I/O to prevent traversal attacks\n const safePath = validateFilePath(target_filepath);\n\n // Read original file\n const originalCode = readFileSync(safePath, 'utf8');\n\n // Auto-detect language if not provided\n const lang = language || extname(safePath).slice(1);\n\n // Apply edit - use any cast for flexible signature\n const result = await booster.apply({\n code: originalCode,\n edit: code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: code_edit,\n code_edit,\n } as any);\n\n // Write if successful\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n }\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Edit Result:\\n` +\n `📁 File: ${safePath}\\n` +\n `✅ Success: ${result.success}\\n` +\n `⏱️ Latency: ${result.latency}ms\\n` +\n `🎯 Confidence: ${(result.confidence * 100).toFixed(1)}%\\n` +\n `🔧 Strategy: ${result.strategy}\\n` +\n `📊 Speedup: ~${Math.round(352 / result.latency)}x vs cloud APIs\\n` +\n `💰 Cost: $0 (vs ~$0.01 for cloud API)\\n\\n` +\n `${result.success ? '✨ Edit applied successfully!' : '❌ Edit failed - check confidence score'}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent Booster edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Batch editing\n tool(\n 'agent_booster_batch_edit',\n 'Apply multiple code edits in parallel using Agent Booster. Perfect for multi-file refactoring.',\n {\n edits: z\n .array(\n z.object({\n target_filepath: z.string(),\n instructions: z.string(),\n code_edit: z.string(),\n language: z.string().optional(),\n })\n )\n .describe('Array of edit operations to apply'),\n },\n async ({ edits }) => {\n try {\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n let successCount = 0;\n let totalLatency = 0;\n const results: string[] = [];\n\n for (const edit of edits) {\n // Validate path for each entry before any file I/O\n const safePath = validateFilePath(edit.target_filepath);\n const originalCode = readFileSync(safePath, 'utf8');\n const lang = edit.language || extname(safePath).slice(1);\n\n const result = await booster.apply({\n code: originalCode,\n edit: edit.code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: edit.code_edit,\n code_edit: edit.code_edit,\n } as any);\n\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n successCount++;\n }\n\n totalLatency += result.latency;\n results.push(\n ` ${result.success ? '✅' : '❌'} ${safePath} (${result.latency}ms, ${(result.confidence * 100).toFixed(0)}%)`\n );\n }\n\n const avgLatency = totalLatency / edits.length;\n const avgSpeedup = Math.round(352 / avgLatency);\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Batch Edit Results:\\n\\n` +\n `📊 Summary:\\n` +\n ` Total edits: ${edits.length}\\n` +\n ` Successful: ${successCount}\\n` +\n ` Failed: ${edits.length - successCount}\\n` +\n ` Total time: ${totalLatency.toFixed(1)}ms\\n` +\n ` Avg latency: ${avgLatency.toFixed(1)}ms\\n` +\n ` Avg speedup: ~${avgSpeedup}x vs cloud APIs\\n` +\n ` Cost savings: ~$${(edits.length * 0.01).toFixed(2)}\\n\\n` +\n `📁 Results:\\n${results.join('\\n')}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Batch edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n ],\n});\n"]}
|
|
@@ -23,15 +23,7 @@ export declare const p2pSwarmConnectTool: {
|
|
|
23
23
|
agentId: z.ZodOptional<z.ZodString>;
|
|
24
24
|
swarmKey: z.ZodOptional<z.ZodString>;
|
|
25
25
|
enableExecutor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
-
},
|
|
27
|
-
agentId?: string;
|
|
28
|
-
swarmKey?: string;
|
|
29
|
-
enableExecutor?: boolean;
|
|
30
|
-
}, {
|
|
31
|
-
agentId?: string;
|
|
32
|
-
swarmKey?: string;
|
|
33
|
-
enableExecutor?: boolean;
|
|
34
|
-
}>;
|
|
26
|
+
}, z.core.$strip>;
|
|
35
27
|
execute: (params: {
|
|
36
28
|
agentId?: string;
|
|
37
29
|
swarmKey?: string;
|
|
@@ -66,7 +58,7 @@ export declare const p2pSwarmConnectTool: {
|
|
|
66
58
|
export declare const p2pSwarmStatusTool: {
|
|
67
59
|
name: string;
|
|
68
60
|
description: string;
|
|
69
|
-
schema: z.ZodObject<{},
|
|
61
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
70
62
|
execute: () => Promise<{
|
|
71
63
|
success: boolean;
|
|
72
64
|
error: string;
|
|
@@ -99,11 +91,7 @@ export declare const p2pSwarmMembersTool: {
|
|
|
99
91
|
description: string;
|
|
100
92
|
schema: z.ZodObject<{
|
|
101
93
|
includeOffline: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
102
|
-
},
|
|
103
|
-
includeOffline?: boolean;
|
|
104
|
-
}, {
|
|
105
|
-
includeOffline?: boolean;
|
|
106
|
-
}>;
|
|
94
|
+
}, z.core.$strip>;
|
|
107
95
|
execute: (params: {
|
|
108
96
|
includeOffline?: boolean;
|
|
109
97
|
}) => Promise<{
|
|
@@ -133,14 +121,8 @@ export declare const p2pSwarmPublishTool: {
|
|
|
133
121
|
description: string;
|
|
134
122
|
schema: z.ZodObject<{
|
|
135
123
|
topic: z.ZodString;
|
|
136
|
-
payload: z.ZodAny
|
|
137
|
-
},
|
|
138
|
-
topic?: string;
|
|
139
|
-
payload?: any;
|
|
140
|
-
}, {
|
|
141
|
-
topic?: string;
|
|
142
|
-
payload?: any;
|
|
143
|
-
}>;
|
|
124
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
125
|
+
}, z.core.$strip>;
|
|
144
126
|
execute: (params: {
|
|
145
127
|
topic: string;
|
|
146
128
|
payload: any;
|
|
@@ -164,11 +146,7 @@ export declare const p2pSwarmSubscribeTool: {
|
|
|
164
146
|
description: string;
|
|
165
147
|
schema: z.ZodObject<{
|
|
166
148
|
topic: z.ZodString;
|
|
167
|
-
},
|
|
168
|
-
topic?: string;
|
|
169
|
-
}, {
|
|
170
|
-
topic?: string;
|
|
171
|
-
}>;
|
|
149
|
+
}, z.core.$strip>;
|
|
172
150
|
execute: (params: {
|
|
173
151
|
topic: string;
|
|
174
152
|
}) => Promise<{
|
|
@@ -190,12 +168,8 @@ export declare const p2pSwarmSyncQTableTool: {
|
|
|
190
168
|
name: string;
|
|
191
169
|
description: string;
|
|
192
170
|
schema: z.ZodObject<{
|
|
193
|
-
qTable: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
194
|
-
},
|
|
195
|
-
qTable?: number[][];
|
|
196
|
-
}, {
|
|
197
|
-
qTable?: number[][];
|
|
198
|
-
}>;
|
|
171
|
+
qTable: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
172
|
+
}, z.core.$strip>;
|
|
199
173
|
execute: (params: {
|
|
200
174
|
qTable: number[][];
|
|
201
175
|
}) => Promise<{
|
|
@@ -221,15 +195,9 @@ export declare const p2pSwarmSyncMemoryTool: {
|
|
|
221
195
|
name: string;
|
|
222
196
|
description: string;
|
|
223
197
|
schema: z.ZodObject<{
|
|
224
|
-
vectors: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
198
|
+
vectors: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
225
199
|
namespace: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
226
|
-
},
|
|
227
|
-
namespace?: string;
|
|
228
|
-
vectors?: number[][];
|
|
229
|
-
}, {
|
|
230
|
-
namespace?: string;
|
|
231
|
-
vectors?: number[][];
|
|
232
|
-
}>;
|
|
200
|
+
}, z.core.$strip>;
|
|
233
201
|
execute: (params: {
|
|
234
202
|
vectors: number[][];
|
|
235
203
|
namespace?: string;
|
|
@@ -262,21 +230,7 @@ export declare const p2pSwarmSubmitTaskTool: {
|
|
|
262
230
|
fuelLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
263
231
|
memoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
264
232
|
timeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
265
|
-
},
|
|
266
|
-
moduleCID?: string;
|
|
267
|
-
entrypoint?: string;
|
|
268
|
-
inputCID?: string;
|
|
269
|
-
fuelLimit?: number;
|
|
270
|
-
memoryMB?: number;
|
|
271
|
-
timeoutMs?: number;
|
|
272
|
-
}, {
|
|
273
|
-
moduleCID?: string;
|
|
274
|
-
entrypoint?: string;
|
|
275
|
-
inputCID?: string;
|
|
276
|
-
fuelLimit?: number;
|
|
277
|
-
memoryMB?: number;
|
|
278
|
-
timeoutMs?: number;
|
|
279
|
-
}>;
|
|
233
|
+
}, z.core.$strip>;
|
|
280
234
|
execute: (params: {
|
|
281
235
|
moduleCID: string;
|
|
282
236
|
inputCID: string;
|
|
@@ -306,7 +260,7 @@ export declare const p2pSwarmSubmitTaskTool: {
|
|
|
306
260
|
export declare const p2pSwarmStartExecutorTool: {
|
|
307
261
|
name: string;
|
|
308
262
|
description: string;
|
|
309
|
-
schema: z.ZodObject<{},
|
|
263
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
310
264
|
execute: () => Promise<{
|
|
311
265
|
success: boolean;
|
|
312
266
|
error: string;
|
|
@@ -323,7 +277,7 @@ export declare const p2pSwarmStartExecutorTool: {
|
|
|
323
277
|
export declare const p2pSwarmStopExecutorTool: {
|
|
324
278
|
name: string;
|
|
325
279
|
description: string;
|
|
326
|
-
schema: z.ZodObject<{},
|
|
280
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
327
281
|
execute: () => Promise<{
|
|
328
282
|
success: boolean;
|
|
329
283
|
error: string;
|
|
@@ -340,7 +294,7 @@ export declare const p2pSwarmStopExecutorTool: {
|
|
|
340
294
|
export declare const p2pSwarmDisconnectTool: {
|
|
341
295
|
name: string;
|
|
342
296
|
description: string;
|
|
343
|
-
schema: z.ZodObject<{},
|
|
297
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
344
298
|
execute: () => Promise<{
|
|
345
299
|
success: boolean;
|
|
346
300
|
message: string;
|
|
@@ -352,7 +306,7 @@ export declare const p2pSwarmDisconnectTool: {
|
|
|
352
306
|
export declare const p2pSwarmKeygenTool: {
|
|
353
307
|
name: string;
|
|
354
308
|
description: string;
|
|
355
|
-
schema: z.ZodObject<{},
|
|
309
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
356
310
|
execute: () => Promise<{
|
|
357
311
|
success: boolean;
|
|
358
312
|
swarmKey: string;
|
|
@@ -366,15 +320,7 @@ export declare const p2pSwarmTools: ({
|
|
|
366
320
|
agentId: z.ZodOptional<z.ZodString>;
|
|
367
321
|
swarmKey: z.ZodOptional<z.ZodString>;
|
|
368
322
|
enableExecutor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
369
|
-
},
|
|
370
|
-
agentId?: string;
|
|
371
|
-
swarmKey?: string;
|
|
372
|
-
enableExecutor?: boolean;
|
|
373
|
-
}, {
|
|
374
|
-
agentId?: string;
|
|
375
|
-
swarmKey?: string;
|
|
376
|
-
enableExecutor?: boolean;
|
|
377
|
-
}>;
|
|
323
|
+
}, z.core.$strip>;
|
|
378
324
|
execute: (params: {
|
|
379
325
|
agentId?: string;
|
|
380
326
|
swarmKey?: string;
|
|
@@ -405,7 +351,7 @@ export declare const p2pSwarmTools: ({
|
|
|
405
351
|
} | {
|
|
406
352
|
name: string;
|
|
407
353
|
description: string;
|
|
408
|
-
schema: z.ZodObject<{},
|
|
354
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
409
355
|
execute: () => Promise<{
|
|
410
356
|
success: boolean;
|
|
411
357
|
error: string;
|
|
@@ -434,11 +380,7 @@ export declare const p2pSwarmTools: ({
|
|
|
434
380
|
description: string;
|
|
435
381
|
schema: z.ZodObject<{
|
|
436
382
|
includeOffline: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
437
|
-
},
|
|
438
|
-
includeOffline?: boolean;
|
|
439
|
-
}, {
|
|
440
|
-
includeOffline?: boolean;
|
|
441
|
-
}>;
|
|
383
|
+
}, z.core.$strip>;
|
|
442
384
|
execute: (params: {
|
|
443
385
|
includeOffline?: boolean;
|
|
444
386
|
}) => Promise<{
|
|
@@ -464,14 +406,8 @@ export declare const p2pSwarmTools: ({
|
|
|
464
406
|
description: string;
|
|
465
407
|
schema: z.ZodObject<{
|
|
466
408
|
topic: z.ZodString;
|
|
467
|
-
payload: z.ZodAny
|
|
468
|
-
},
|
|
469
|
-
topic?: string;
|
|
470
|
-
payload?: any;
|
|
471
|
-
}, {
|
|
472
|
-
topic?: string;
|
|
473
|
-
payload?: any;
|
|
474
|
-
}>;
|
|
409
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
410
|
+
}, z.core.$strip>;
|
|
475
411
|
execute: (params: {
|
|
476
412
|
topic: string;
|
|
477
413
|
payload: any;
|
|
@@ -491,11 +427,7 @@ export declare const p2pSwarmTools: ({
|
|
|
491
427
|
description: string;
|
|
492
428
|
schema: z.ZodObject<{
|
|
493
429
|
topic: z.ZodString;
|
|
494
|
-
},
|
|
495
|
-
topic?: string;
|
|
496
|
-
}, {
|
|
497
|
-
topic?: string;
|
|
498
|
-
}>;
|
|
430
|
+
}, z.core.$strip>;
|
|
499
431
|
execute: (params: {
|
|
500
432
|
topic: string;
|
|
501
433
|
}) => Promise<{
|
|
@@ -513,12 +445,8 @@ export declare const p2pSwarmTools: ({
|
|
|
513
445
|
name: string;
|
|
514
446
|
description: string;
|
|
515
447
|
schema: z.ZodObject<{
|
|
516
|
-
qTable: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
517
|
-
},
|
|
518
|
-
qTable?: number[][];
|
|
519
|
-
}, {
|
|
520
|
-
qTable?: number[][];
|
|
521
|
-
}>;
|
|
448
|
+
qTable: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
449
|
+
}, z.core.$strip>;
|
|
522
450
|
execute: (params: {
|
|
523
451
|
qTable: number[][];
|
|
524
452
|
}) => Promise<{
|
|
@@ -540,15 +468,9 @@ export declare const p2pSwarmTools: ({
|
|
|
540
468
|
name: string;
|
|
541
469
|
description: string;
|
|
542
470
|
schema: z.ZodObject<{
|
|
543
|
-
vectors: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
471
|
+
vectors: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
544
472
|
namespace: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
545
|
-
},
|
|
546
|
-
namespace?: string;
|
|
547
|
-
vectors?: number[][];
|
|
548
|
-
}, {
|
|
549
|
-
namespace?: string;
|
|
550
|
-
vectors?: number[][];
|
|
551
|
-
}>;
|
|
473
|
+
}, z.core.$strip>;
|
|
552
474
|
execute: (params: {
|
|
553
475
|
vectors: number[][];
|
|
554
476
|
namespace?: string;
|
|
@@ -577,21 +499,7 @@ export declare const p2pSwarmTools: ({
|
|
|
577
499
|
fuelLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
578
500
|
memoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
579
501
|
timeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
580
|
-
},
|
|
581
|
-
moduleCID?: string;
|
|
582
|
-
entrypoint?: string;
|
|
583
|
-
inputCID?: string;
|
|
584
|
-
fuelLimit?: number;
|
|
585
|
-
memoryMB?: number;
|
|
586
|
-
timeoutMs?: number;
|
|
587
|
-
}, {
|
|
588
|
-
moduleCID?: string;
|
|
589
|
-
entrypoint?: string;
|
|
590
|
-
inputCID?: string;
|
|
591
|
-
fuelLimit?: number;
|
|
592
|
-
memoryMB?: number;
|
|
593
|
-
timeoutMs?: number;
|
|
594
|
-
}>;
|
|
502
|
+
}, z.core.$strip>;
|
|
595
503
|
execute: (params: {
|
|
596
504
|
moduleCID: string;
|
|
597
505
|
inputCID: string;
|
|
@@ -617,7 +525,7 @@ export declare const p2pSwarmTools: ({
|
|
|
617
525
|
} | {
|
|
618
526
|
name: string;
|
|
619
527
|
description: string;
|
|
620
|
-
schema: z.ZodObject<{},
|
|
528
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
621
529
|
execute: () => Promise<{
|
|
622
530
|
success: boolean;
|
|
623
531
|
error: string;
|
|
@@ -630,7 +538,7 @@ export declare const p2pSwarmTools: ({
|
|
|
630
538
|
} | {
|
|
631
539
|
name: string;
|
|
632
540
|
description: string;
|
|
633
|
-
schema: z.ZodObject<{},
|
|
541
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
634
542
|
execute: () => Promise<{
|
|
635
543
|
success: boolean;
|
|
636
544
|
message: string;
|
|
@@ -638,7 +546,7 @@ export declare const p2pSwarmTools: ({
|
|
|
638
546
|
} | {
|
|
639
547
|
name: string;
|
|
640
548
|
description: string;
|
|
641
|
-
schema: z.ZodObject<{},
|
|
549
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
642
550
|
execute: () => Promise<{
|
|
643
551
|
success: boolean;
|
|
644
552
|
swarmKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-swarm-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,mCAAmC,CAAC;AAiBjF;;GAEG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"p2p-swarm-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ export const p2pSwarmPublishTool = {
|
|
|
126
126
|
description: 'Publish a signed and encrypted message to a swarm topic',
|
|
127
127
|
schema: z.object({
|
|
128
128
|
topic: z.string().describe('Topic to publish to'),
|
|
129
|
-
payload: z.any().describe('Message payload (will be JSON serialized)'),
|
|
129
|
+
payload: z.any().optional().describe('Message payload (will be JSON serialized)'),
|
|
130
130
|
}),
|
|
131
131
|
execute: async (params) => {
|
|
132
132
|
if (!swarmInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-swarm-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * P2P Swarm V2 MCP Tools\n *\n * Production-grade P2P swarm coordination exposed as MCP tools.\n * Provides decentralized coordination, task execution, and learning sync.\n *\n * Features:\n * - Ed25519/X25519 cryptography\n * - GunDB relay coordination\n * - Task execution with claim resolution\n * - Heartbeat-based liveness\n * - Verified member registry\n */\n\nimport { z } from 'zod';\nimport { P2PSwarmV2, createP2PSwarmV2 } from '../../../../swarm/p2p-swarm-v2.js';\nimport { logger } from '../../../../utils/logger.js';\n\n// Global swarm instance for MCP tools\nlet swarmInstance: P2PSwarmV2 | null = null;\n\n/**\n * Get or create swarm instance\n */\nasync function getSwarm(agentId?: string, swarmKey?: string): Promise<P2PSwarmV2> {\n if (!swarmInstance) {\n const id = agentId || `mcp-agent-${Date.now().toString(36)}`;\n swarmInstance = await createP2PSwarmV2(id, swarmKey);\n }\n return swarmInstance;\n}\n\n/**\n * P2P Swarm Connect Tool\n */\nexport const p2pSwarmConnectTool = {\n name: 'p2p_swarm_connect',\n description: 'Connect to a P2P swarm for decentralized coordination',\n schema: z.object({\n agentId: z.string().optional().describe('Agent ID (auto-generated if not provided)'),\n swarmKey: z.string().optional().describe('Swarm key to join existing swarm'),\n enableExecutor: z.boolean().optional().default(false).describe('Enable task executor'),\n }),\n execute: async (params: {\n agentId?: string;\n swarmKey?: string;\n enableExecutor?: boolean;\n }) => {\n try {\n const swarm = await getSwarm(params.agentId, params.swarmKey);\n\n if (params.enableExecutor) {\n swarm.startTaskExecutor();\n }\n\n const status = swarm.getStatus();\n\n return {\n success: true,\n connected: status.connected,\n agentId: status.agentId,\n swarmId: status.swarmId,\n swarmKey: swarm.getSwarmKey(),\n relays: status.relays,\n executorEnabled: params.enableExecutor || false,\n };\n } catch (error) {\n logger.error('Failed to connect to swarm', { error });\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Status Tool\n */\nexport const p2pSwarmStatusTool = {\n name: 'p2p_swarm_status',\n description: 'Get current P2P swarm status including live members',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const status = swarmInstance.getStatus();\n const liveMembers = swarmInstance.getLiveMembers();\n\n return {\n success: true,\n ...status,\n liveMembers,\n liveMemberCount: swarmInstance.getLiveMemberCount(),\n };\n },\n};\n\n/**\n * P2P Swarm Members Tool\n */\nexport const p2pSwarmMembersTool = {\n name: 'p2p_swarm_members',\n description: 'List swarm members with their capabilities and liveness',\n schema: z.object({\n includeOffline: z.boolean().optional().default(false).describe('Include offline members'),\n }),\n execute: async (params: { includeOffline?: boolean }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const members = swarmInstance.getLiveMembers();\n const filtered = params.includeOffline ? members : members.filter(m => m.isAlive);\n\n return {\n success: true,\n count: filtered.length,\n liveCount: filtered.filter(m => m.isAlive).length,\n members: filtered.map(m => ({\n agentId: m.agentId,\n capabilities: m.capabilities,\n isAlive: m.isAlive,\n lastSeenAgo: Math.round((Date.now() - m.lastSeen) / 1000),\n })),\n };\n },\n};\n\n/**\n * P2P Swarm Publish Tool\n */\nexport const p2pSwarmPublishTool = {\n name: 'p2p_swarm_publish',\n description: 'Publish a signed and encrypted message to a swarm topic',\n schema: z.object({\n topic: z.string().describe('Topic to publish to'),\n payload: z.any().describe('Message payload (will be JSON serialized)'),\n }),\n execute: async (params: { topic: string; payload: any }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const messageId = await swarmInstance.publish(params.topic, params.payload);\n return {\n success: true,\n messageId,\n topic: params.topic,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Subscribe Tool\n */\nexport const p2pSwarmSubscribeTool = {\n name: 'p2p_swarm_subscribe',\n description: 'Subscribe to a swarm topic (messages delivered via callback)',\n schema: z.object({\n topic: z.string().describe('Topic to subscribe to'),\n }),\n execute: async (params: { topic: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n // Note: In MCP context, we return success but messages are handled internally\n // For real-time messages, use the streaming MCP transport\n swarmInstance.subscribe(params.topic, (data, from) => {\n logger.info('Swarm message received', { topic: params.topic, from, data });\n });\n\n return {\n success: true,\n subscribed: params.topic,\n note: 'Messages will be logged. Use streaming transport for real-time delivery.',\n };\n },\n};\n\n/**\n * P2P Swarm Sync Q-Table Tool\n */\nexport const p2pSwarmSyncQTableTool = {\n name: 'p2p_swarm_sync_qtable',\n description: 'Sync a Q-table to the swarm for distributed learning',\n schema: z.object({\n qTable: z.array(z.array(z.number())).describe('2D array Q-table'),\n }),\n execute: async (params: { qTable: number[][] }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncQTable(params.qTable);\n return {\n success: true,\n cid: pointer.cid,\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n timestamp: pointer.timestamp,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Sync Memory Tool\n */\nexport const p2pSwarmSyncMemoryTool = {\n name: 'p2p_swarm_sync_memory',\n description: 'Sync memory vectors to the swarm',\n schema: z.object({\n vectors: z.array(z.array(z.number())).describe('2D array of vectors'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n }),\n execute: async (params: { vectors: number[][]; namespace?: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncMemory(params.vectors, params.namespace || 'default');\n return {\n success: true,\n cid: pointer.cid,\n namespace: params.namespace || 'default',\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Submit Task Tool\n */\nexport const p2pSwarmSubmitTaskTool = {\n name: 'p2p_swarm_submit_task',\n description: 'Submit a task for distributed execution',\n schema: z.object({\n moduleCID: z.string().describe('CID of WASM module'),\n inputCID: z.string().describe('CID of input data'),\n entrypoint: z.string().optional().default('main').describe('Entrypoint function'),\n fuelLimit: z.number().optional().default(1000000).describe('Fuel limit'),\n memoryMB: z.number().optional().default(64).describe('Memory limit in MB'),\n timeoutMs: z.number().optional().default(30000).describe('Timeout in ms'),\n }),\n execute: async (params: {\n moduleCID: string;\n inputCID: string;\n entrypoint?: string;\n fuelLimit?: number;\n memoryMB?: number;\n timeoutMs?: number;\n }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const taskId = `task-${Date.now().toString(36)}`;\n const messageId = await swarmInstance.submitTask({\n taskId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n entrypoint: params.entrypoint || 'main',\n outputSchemaHash: '',\n budgets: {\n fuelLimit: params.fuelLimit || 1000000,\n memoryMB: params.memoryMB || 64,\n timeoutMs: params.timeoutMs || 30000,\n },\n });\n\n return {\n success: true,\n taskId,\n messageId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Start Executor Tool\n */\nexport const p2pSwarmStartExecutorTool = {\n name: 'p2p_swarm_start_executor',\n description: 'Start the task executor to process distributed tasks',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n swarmInstance.startTaskExecutor();\n return {\n success: true,\n message: 'Task executor started. Listening for tasks.',\n };\n },\n};\n\n/**\n * P2P Swarm Stop Executor Tool\n */\nexport const p2pSwarmStopExecutorTool = {\n name: 'p2p_swarm_stop_executor',\n description: 'Stop the task executor',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm.',\n };\n }\n\n swarmInstance.stopTaskExecutor();\n return {\n success: true,\n message: 'Task executor stopped.',\n };\n },\n};\n\n/**\n * P2P Swarm Disconnect Tool\n */\nexport const p2pSwarmDisconnectTool = {\n name: 'p2p_swarm_disconnect',\n description: 'Disconnect from the P2P swarm',\n schema: z.object({}),\n execute: async () => {\n if (swarmInstance) {\n swarmInstance.disconnect();\n swarmInstance = null;\n return {\n success: true,\n message: 'Disconnected from swarm.',\n };\n }\n return {\n success: true,\n message: 'Not connected to swarm.',\n };\n },\n};\n\n/**\n * P2P Swarm Keygen Tool\n */\nexport const p2pSwarmKeygenTool = {\n name: 'p2p_swarm_keygen',\n description: 'Generate a new swarm key for creating a new swarm',\n schema: z.object({}),\n execute: async () => {\n const crypto = await import('crypto');\n const key = crypto.randomBytes(32).toString('base64');\n return {\n success: true,\n swarmKey: key,\n usage: `Use with p2p_swarm_connect: { swarmKey: \"${key}\" }`,\n };\n },\n};\n\n// Export all tools as array for MCP registration\nexport const p2pSwarmTools = [\n p2pSwarmConnectTool,\n p2pSwarmStatusTool,\n p2pSwarmMembersTool,\n p2pSwarmPublishTool,\n p2pSwarmSubscribeTool,\n p2pSwarmSyncQTableTool,\n p2pSwarmSyncMemoryTool,\n p2pSwarmSubmitTaskTool,\n p2pSwarmStartExecutorTool,\n p2pSwarmStopExecutorTool,\n p2pSwarmDisconnectTool,\n p2pSwarmKeygenTool,\n];\n\n// Export singleton accessor\nexport function getP2PSwarmInstance(): P2PSwarmV2 | null {\n return swarmInstance;\n}\n\nexport function setP2PSwarmInstance(instance: P2PSwarmV2): void {\n swarmInstance = instance;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"p2p-swarm-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * P2P Swarm V2 MCP Tools\n *\n * Production-grade P2P swarm coordination exposed as MCP tools.\n * Provides decentralized coordination, task execution, and learning sync.\n *\n * Features:\n * - Ed25519/X25519 cryptography\n * - GunDB relay coordination\n * - Task execution with claim resolution\n * - Heartbeat-based liveness\n * - Verified member registry\n */\n\nimport { z } from 'zod';\nimport { P2PSwarmV2, createP2PSwarmV2 } from '../../../../swarm/p2p-swarm-v2.js';\nimport { logger } from '../../../../utils/logger.js';\n\n// Global swarm instance for MCP tools\nlet swarmInstance: P2PSwarmV2 | null = null;\n\n/**\n * Get or create swarm instance\n */\nasync function getSwarm(agentId?: string, swarmKey?: string): Promise<P2PSwarmV2> {\n if (!swarmInstance) {\n const id = agentId || `mcp-agent-${Date.now().toString(36)}`;\n swarmInstance = await createP2PSwarmV2(id, swarmKey);\n }\n return swarmInstance;\n}\n\n/**\n * P2P Swarm Connect Tool\n */\nexport const p2pSwarmConnectTool = {\n name: 'p2p_swarm_connect',\n description: 'Connect to a P2P swarm for decentralized coordination',\n schema: z.object({\n agentId: z.string().optional().describe('Agent ID (auto-generated if not provided)'),\n swarmKey: z.string().optional().describe('Swarm key to join existing swarm'),\n enableExecutor: z.boolean().optional().default(false).describe('Enable task executor'),\n }),\n execute: async (params: {\n agentId?: string;\n swarmKey?: string;\n enableExecutor?: boolean;\n }) => {\n try {\n const swarm = await getSwarm(params.agentId, params.swarmKey);\n\n if (params.enableExecutor) {\n swarm.startTaskExecutor();\n }\n\n const status = swarm.getStatus();\n\n return {\n success: true,\n connected: status.connected,\n agentId: status.agentId,\n swarmId: status.swarmId,\n swarmKey: swarm.getSwarmKey(),\n relays: status.relays,\n executorEnabled: params.enableExecutor || false,\n };\n } catch (error) {\n logger.error('Failed to connect to swarm', { error });\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Status Tool\n */\nexport const p2pSwarmStatusTool = {\n name: 'p2p_swarm_status',\n description: 'Get current P2P swarm status including live members',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const status = swarmInstance.getStatus();\n const liveMembers = swarmInstance.getLiveMembers();\n\n return {\n success: true,\n ...status,\n liveMembers,\n liveMemberCount: swarmInstance.getLiveMemberCount(),\n };\n },\n};\n\n/**\n * P2P Swarm Members Tool\n */\nexport const p2pSwarmMembersTool = {\n name: 'p2p_swarm_members',\n description: 'List swarm members with their capabilities and liveness',\n schema: z.object({\n includeOffline: z.boolean().optional().default(false).describe('Include offline members'),\n }),\n execute: async (params: { includeOffline?: boolean }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const members = swarmInstance.getLiveMembers();\n const filtered = params.includeOffline ? members : members.filter(m => m.isAlive);\n\n return {\n success: true,\n count: filtered.length,\n liveCount: filtered.filter(m => m.isAlive).length,\n members: filtered.map(m => ({\n agentId: m.agentId,\n capabilities: m.capabilities,\n isAlive: m.isAlive,\n lastSeenAgo: Math.round((Date.now() - m.lastSeen) / 1000),\n })),\n };\n },\n};\n\n/**\n * P2P Swarm Publish Tool\n */\nexport const p2pSwarmPublishTool = {\n name: 'p2p_swarm_publish',\n description: 'Publish a signed and encrypted message to a swarm topic',\n schema: z.object({\n topic: z.string().describe('Topic to publish to'),\n payload: z.any().optional().describe('Message payload (will be JSON serialized)'),\n }),\n execute: async (params: { topic: string; payload: any }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const messageId = await swarmInstance.publish(params.topic, params.payload);\n return {\n success: true,\n messageId,\n topic: params.topic,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Subscribe Tool\n */\nexport const p2pSwarmSubscribeTool = {\n name: 'p2p_swarm_subscribe',\n description: 'Subscribe to a swarm topic (messages delivered via callback)',\n schema: z.object({\n topic: z.string().describe('Topic to subscribe to'),\n }),\n execute: async (params: { topic: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n // Note: In MCP context, we return success but messages are handled internally\n // For real-time messages, use the streaming MCP transport\n swarmInstance.subscribe(params.topic, (data, from) => {\n logger.info('Swarm message received', { topic: params.topic, from, data });\n });\n\n return {\n success: true,\n subscribed: params.topic,\n note: 'Messages will be logged. Use streaming transport for real-time delivery.',\n };\n },\n};\n\n/**\n * P2P Swarm Sync Q-Table Tool\n */\nexport const p2pSwarmSyncQTableTool = {\n name: 'p2p_swarm_sync_qtable',\n description: 'Sync a Q-table to the swarm for distributed learning',\n schema: z.object({\n qTable: z.array(z.array(z.number())).describe('2D array Q-table'),\n }),\n execute: async (params: { qTable: number[][] }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncQTable(params.qTable);\n return {\n success: true,\n cid: pointer.cid,\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n timestamp: pointer.timestamp,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Sync Memory Tool\n */\nexport const p2pSwarmSyncMemoryTool = {\n name: 'p2p_swarm_sync_memory',\n description: 'Sync memory vectors to the swarm',\n schema: z.object({\n vectors: z.array(z.array(z.number())).describe('2D array of vectors'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n }),\n execute: async (params: { vectors: number[][]; namespace?: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncMemory(params.vectors, params.namespace || 'default');\n return {\n success: true,\n cid: pointer.cid,\n namespace: params.namespace || 'default',\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Submit Task Tool\n */\nexport const p2pSwarmSubmitTaskTool = {\n name: 'p2p_swarm_submit_task',\n description: 'Submit a task for distributed execution',\n schema: z.object({\n moduleCID: z.string().describe('CID of WASM module'),\n inputCID: z.string().describe('CID of input data'),\n entrypoint: z.string().optional().default('main').describe('Entrypoint function'),\n fuelLimit: z.number().optional().default(1000000).describe('Fuel limit'),\n memoryMB: z.number().optional().default(64).describe('Memory limit in MB'),\n timeoutMs: z.number().optional().default(30000).describe('Timeout in ms'),\n }),\n execute: async (params: {\n moduleCID: string;\n inputCID: string;\n entrypoint?: string;\n fuelLimit?: number;\n memoryMB?: number;\n timeoutMs?: number;\n }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const taskId = `task-${Date.now().toString(36)}`;\n const messageId = await swarmInstance.submitTask({\n taskId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n entrypoint: params.entrypoint || 'main',\n outputSchemaHash: '',\n budgets: {\n fuelLimit: params.fuelLimit || 1000000,\n memoryMB: params.memoryMB || 64,\n timeoutMs: params.timeoutMs || 30000,\n },\n });\n\n return {\n success: true,\n taskId,\n messageId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Start Executor Tool\n */\nexport const p2pSwarmStartExecutorTool = {\n name: 'p2p_swarm_start_executor',\n description: 'Start the task executor to process distributed tasks',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n swarmInstance.startTaskExecutor();\n return {\n success: true,\n message: 'Task executor started. Listening for tasks.',\n };\n },\n};\n\n/**\n * P2P Swarm Stop Executor Tool\n */\nexport const p2pSwarmStopExecutorTool = {\n name: 'p2p_swarm_stop_executor',\n description: 'Stop the task executor',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm.',\n };\n }\n\n swarmInstance.stopTaskExecutor();\n return {\n success: true,\n message: 'Task executor stopped.',\n };\n },\n};\n\n/**\n * P2P Swarm Disconnect Tool\n */\nexport const p2pSwarmDisconnectTool = {\n name: 'p2p_swarm_disconnect',\n description: 'Disconnect from the P2P swarm',\n schema: z.object({}),\n execute: async () => {\n if (swarmInstance) {\n swarmInstance.disconnect();\n swarmInstance = null;\n return {\n success: true,\n message: 'Disconnected from swarm.',\n };\n }\n return {\n success: true,\n message: 'Not connected to swarm.',\n };\n },\n};\n\n/**\n * P2P Swarm Keygen Tool\n */\nexport const p2pSwarmKeygenTool = {\n name: 'p2p_swarm_keygen',\n description: 'Generate a new swarm key for creating a new swarm',\n schema: z.object({}),\n execute: async () => {\n const crypto = await import('crypto');\n const key = crypto.randomBytes(32).toString('base64');\n return {\n success: true,\n swarmKey: key,\n usage: `Use with p2p_swarm_connect: { swarmKey: \"${key}\" }`,\n };\n },\n};\n\n// Export all tools as array for MCP registration\nexport const p2pSwarmTools = [\n p2pSwarmConnectTool,\n p2pSwarmStatusTool,\n p2pSwarmMembersTool,\n p2pSwarmPublishTool,\n p2pSwarmSubscribeTool,\n p2pSwarmSyncQTableTool,\n p2pSwarmSyncMemoryTool,\n p2pSwarmSubmitTaskTool,\n p2pSwarmStartExecutorTool,\n p2pSwarmStopExecutorTool,\n p2pSwarmDisconnectTool,\n p2pSwarmKeygenTool,\n];\n\n// Export singleton accessor\nexport function getP2PSwarmInstance(): P2PSwarmV2 | null {\n return swarmInstance;\n}\n\nexport function setP2PSwarmInstance(instance: P2PSwarmV2): void {\n swarmInstance = instance;\n}\n"]}
|