@claude-flow/cli 3.7.0-alpha.8 → 3.7.0-alpha.80
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/.claude/agents/github/release-manager.md +2 -2
- package/.claude/agents/github/release-swarm.md +1 -1
- package/.claude/agents/github/repo-architect.md +2 -2
- package/.claude/agents/github/swarm-pr.md +1 -1
- package/.claude/agents/github/workflow-automation.md +2 -2
- package/.claude/commands/github/code-review-swarm.md +1 -1
- package/.claude/commands/github/issue-tracker.md +3 -3
- package/.claude/commands/github/release-manager.md +5 -3
- package/.claude/commands/github/release-swarm.md +1 -1
- package/.claude/commands/github/repo-architect.md +2 -2
- package/.claude/commands/github/swarm-issue.md +4 -1
- package/.claude/commands/github/swarm-pr.md +6 -3
- package/.claude/commands/github/sync-coordinator.md +3 -1
- package/.claude/commands/github/workflow-automation.md +2 -2
- package/.claude/helpers/github-safe.js +95 -60
- package/.claude/helpers/github-setup.sh +26 -9
- package/.claude/helpers/hook-handler.cjs +12 -4
- package/.claude/helpers/statusline.cjs +31 -2
- package/.claude/helpers/statusline.js +35 -4
- package/.claude/settings.json +1 -1
- package/.claude/skills/dual-mode/README.md +71 -0
- package/.claude/skills/dual-mode/dual-collect.md +103 -0
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
- package/.claude/skills/dual-mode/dual-spawn.md +81 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +0 -11
- package/.claude/skills/flow-nexus-platform/SKILL.md +2 -5
- package/.claude/skills/flow-nexus-swarm/SKILL.md +0 -6
- package/.claude/skills/github-code-review/SKILL.md +2 -17
- package/.claude/skills/github-multi-repo/SKILL.md +4 -16
- package/.claude/skills/github-project-management/SKILL.md +18 -33
- package/.claude/skills/github-release-management/SKILL.md +4 -21
- package/.claude/skills/github-workflow-automation/SKILL.md +8 -26
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
- package/.claude/skills/sparc-methodology/SKILL.md +2 -11
- package/.claude/skills/stream-chain/SKILL.md +0 -3
- package/.claude/skills/swarm-advanced/SKILL.md +2 -5
- package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
- package/.claude/skills/verification-quality/SKILL.md +120 -78
- package/README.md +57 -38
- package/bin/cli.js +15 -2
- package/bin/mcp-server.js +1 -1
- package/dist/src/__probe.d.ts +2 -0
- package/dist/src/__probe.d.ts.map +1 -0
- package/dist/src/__probe.js +5 -0
- package/dist/src/__probe.js.map +1 -0
- package/dist/src/commands/agent-wasm.js +2 -2
- package/dist/src/commands/agent-wasm.js.map +1 -1
- package/dist/src/commands/benchmark-cosign.d.ts +29 -0
- package/dist/src/commands/benchmark-cosign.d.ts.map +1 -0
- package/dist/src/commands/benchmark-cosign.js +222 -0
- package/dist/src/commands/benchmark-cosign.js.map +1 -0
- package/dist/src/commands/benchmark-verify.d.ts +21 -0
- package/dist/src/commands/benchmark-verify.d.ts.map +1 -0
- package/dist/src/commands/benchmark-verify.js +202 -0
- package/dist/src/commands/benchmark-verify.js.map +1 -0
- package/dist/src/commands/daemon.d.ts +20 -0
- package/dist/src/commands/daemon.d.ts.map +1 -1
- package/dist/src/commands/daemon.js +366 -7
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +224 -46
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.d.ts.map +1 -1
- package/dist/src/commands/embeddings.js +18 -9
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/hive-mind.d.ts.map +1 -1
- package/dist/src/commands/hive-mind.js +25 -7
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +56 -29
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +21 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +128 -3
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/start.js +1 -1
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/swarm.js +1 -1
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.d.ts.map +1 -1
- package/dist/src/commands/task.js +8 -4
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/config-adapter.js +1 -1
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +61 -18
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +1 -0
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +133 -0
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts +1 -0
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +19 -2
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.js +4 -4
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +84 -19
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +75 -31
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +30 -0
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +18 -5
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +12 -0
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +38 -5
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-execute-core.d.ts +3 -2
- package/dist/src/mcp-tools/agent-execute-core.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-execute-core.js +157 -83
- package/dist/src/mcp-tools/agent-execute-core.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +119 -11
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.js +101 -24
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +6 -6
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +10 -10
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/browser-session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-session-tools.js +18 -7
- package/dist/src/mcp-tools/browser-session-tools.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +23 -23
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +12 -12
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +6 -6
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +7 -7
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +8 -8
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +10 -10
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +5 -5
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.js +21 -21
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-consensus-runtime.d.ts +149 -0
- package/dist/src/mcp-tools/hive-consensus-runtime.d.ts.map +1 -0
- package/dist/src/mcp-tools/hive-consensus-runtime.js +296 -0
- package/dist/src/mcp-tools/hive-consensus-runtime.js.map +1 -0
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +53 -9
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts +2 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +179 -46
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
- package/dist/src/mcp-tools/managed-agent-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
- package/dist/src/mcp-tools/managed-agent-tools.js.map +1 -0
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +499 -68
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +6 -6
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +6 -6
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +4 -4
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.js +27 -11
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +34 -9
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +130 -6
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts +28 -0
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +80 -9
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +91 -18
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +55 -7
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +5 -5
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +11 -11
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/wasm-agent-tools.js +11 -11
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +118 -10
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ann-router-registry.d.ts +61 -0
- package/dist/src/memory/ann-router-registry.d.ts.map +1 -0
- package/dist/src/memory/ann-router-registry.js +72 -0
- package/dist/src/memory/ann-router-registry.js.map +1 -0
- package/dist/src/memory/diskann-registry.d.ts +56 -0
- package/dist/src/memory/diskann-registry.d.ts.map +1 -0
- package/dist/src/memory/diskann-registry.js +88 -0
- package/dist/src/memory/diskann-registry.js.map +1 -0
- package/dist/src/memory/memory-bridge.d.ts +4 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +49 -8
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +12 -0
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +98 -19
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +3 -0
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/parser.d.ts +9 -0
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +11 -0
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +15 -4
- package/dist/src/plugins/store/discovery.d.ts.map +1 -1
- package/dist/src/plugins/store/discovery.js +40 -18
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.d.ts.map +1 -1
- package/dist/src/ruvector/agent-wasm.js +4 -1
- package/dist/src/ruvector/agent-wasm.js.map +1 -1
- package/dist/src/ruvector/coverage-tools.js +6 -6
- package/dist/src/ruvector/coverage-tools.js.map +1 -1
- package/dist/src/services/headless-worker-executor.d.ts +6 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -1
- package/dist/src/services/headless-worker-executor.js +63 -6
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +80 -2
- package/dist/src/services/worker-daemon.d.ts.map +1 -1
- package/dist/src/services/worker-daemon.js +372 -11
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -8
- package/.claude/agents/core/coder.md +0 -453
- package/.claude/agents/core/researcher.md +0 -369
- package/.claude/agents/core/reviewer.md +0 -520
- package/.claude/agents/core/tester.md +0 -512
- package/.claude/agents/goal/goal-planner.md +0 -73
- package/.claude/agents/v3/adr-architect.md +0 -184
- package/.claude/agents/v3/memory-specialist.md +0 -995
- package/.claude/agents/v3/security-auditor.md +0 -771
- package/.claude/agents/v3/sparc-orchestrator.md +0 -182
- package/.claude/commands/flow-nexus/app-store.md +0 -124
- package/.claude/commands/flow-nexus/challenges.md +0 -120
- package/.claude/commands/flow-nexus/login-registration.md +0 -65
- package/.claude/commands/flow-nexus/neural-network.md +0 -134
- package/.claude/commands/flow-nexus/payments.md +0 -116
- package/.claude/commands/flow-nexus/sandbox.md +0 -83
- package/.claude/commands/flow-nexus/swarm.md +0 -87
- package/.claude/commands/flow-nexus/user-tools.md +0 -152
- package/.claude/commands/flow-nexus/workflow.md +0 -115
- package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
- package/.claude/skills/aidefence-scan.md +0 -151
- package/.claude/skills/aidefence.yaml +0 -297
- package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
- package/.claude/skills/performance-analysis/SKILL.md +0 -563
- package/.claude/skills/secure-review.md +0 -181
- package/.claude/skills/worker-benchmarks/skill.md +0 -135
- package/.claude/skills/worker-integration/skill.md +0 -154
- package/dist/src/ruvector/flash-attention.d.ts +0 -195
- package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
- package/dist/src/ruvector/flash-attention.js +0 -643
- package/dist/src/ruvector/flash-attention.js.map +0 -1
- package/dist/src/ruvector/moe-router.d.ts +0 -206
- package/dist/src/ruvector/moe-router.d.ts.map +0 -1
- package/dist/src/ruvector/moe-router.js +0 -626
- package/dist/src/ruvector/moe-router.js.map +0 -1
- package/dist/src/services/event-stream.d.ts +0 -25
- package/dist/src/services/event-stream.d.ts.map +0 -1
- package/dist/src/services/event-stream.js +0 -27
- package/dist/src/services/event-stream.js.map +0 -1
- package/dist/src/services/loop-worker-runner.d.ts +0 -16
- package/dist/src/services/loop-worker-runner.d.ts.map +0 -1
- package/dist/src/services/loop-worker-runner.js +0 -34
- package/dist/src/services/loop-worker-runner.js.map +0 -1
- package/dist/src/services/runtime-capabilities.d.ts +0 -22
- package/dist/src/services/runtime-capabilities.d.ts.map +0 -1
- package/dist/src/services/runtime-capabilities.js +0 -45
- package/dist/src/services/runtime-capabilities.js.map +0 -1
|
@@ -32,11 +32,18 @@ function saveAgentStore(store) {
|
|
|
32
32
|
ensureAgentDir();
|
|
33
33
|
writeFileSync(getAgentPath(), JSON.stringify(store, null, 2), 'utf-8');
|
|
34
34
|
}
|
|
35
|
+
// #1906 — these were stuck on Claude-3.x ids that the Anthropic API now
|
|
36
|
+
// 404s. Current model ids (Claude 4.x family):
|
|
37
|
+
// Opus 4.7 → claude-opus-4-7
|
|
38
|
+
// Sonnet 4.6 → claude-sonnet-4-6
|
|
39
|
+
// Haiku 4.5 → claude-haiku-4-5-20251001
|
|
40
|
+
// `inherit` and the various defaults below all map to Sonnet 4.6.
|
|
41
|
+
export const DEFAULT_ANTHROPIC_MODEL = 'claude-sonnet-4-6';
|
|
35
42
|
const MODEL_MAP = {
|
|
36
|
-
haiku: 'claude-
|
|
37
|
-
sonnet: 'claude-
|
|
38
|
-
opus: 'claude-
|
|
39
|
-
inherit:
|
|
43
|
+
haiku: 'claude-haiku-4-5-20251001',
|
|
44
|
+
sonnet: 'claude-sonnet-4-6',
|
|
45
|
+
opus: 'claude-opus-4-7',
|
|
46
|
+
inherit: DEFAULT_ANTHROPIC_MODEL,
|
|
40
47
|
};
|
|
41
48
|
/**
|
|
42
49
|
* Generic Anthropic Messages API call. No agent registry coupling — used
|
|
@@ -53,17 +60,34 @@ export async function callAnthropicMessages(input) {
|
|
|
53
60
|
const explicitProvider = (process.env.RUFLO_PROVIDER || '').toLowerCase();
|
|
54
61
|
const ollamaKey = process.env.OLLAMA_API_KEY;
|
|
55
62
|
const anthropicKey = process.env.ANTHROPIC_API_KEY;
|
|
56
|
-
|
|
63
|
+
// #2042 — OpenRouter is an OpenAI-compat endpoint that fronts dozens of
|
|
64
|
+
// providers. Reporter (@ummcke00) had `providers.openrouter.apiKey` in
|
|
65
|
+
// their config.yaml but agent_execute hardcoded Anthropic. Detect via
|
|
66
|
+
// explicit RUFLO_PROVIDER=openrouter OR presence of OPENROUTER_API_KEY
|
|
67
|
+
// when no Anthropic key is available (same precedence as the Ollama
|
|
68
|
+
// branch above).
|
|
69
|
+
const openrouterKey = process.env.OPENROUTER_API_KEY;
|
|
70
|
+
const useOpenRouter = explicitProvider === 'openrouter' || (!anthropicKey && !!openrouterKey);
|
|
71
|
+
const useOllama = explicitProvider === 'ollama' || (!anthropicKey && !!ollamaKey && !openrouterKey);
|
|
72
|
+
if (useOpenRouter && openrouterKey) {
|
|
73
|
+
return callOpenAICompat({
|
|
74
|
+
...input,
|
|
75
|
+
apiKey: openrouterKey,
|
|
76
|
+
baseUrl: process.env.OPENROUTER_BASE_URL || 'https://openrouter.ai/api',
|
|
77
|
+
providerLabel: 'openrouter',
|
|
78
|
+
defaultModel: process.env.OPENROUTER_DEFAULT_MODEL || 'anthropic/claude-3.5-sonnet',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
57
81
|
if (useOllama && ollamaKey) {
|
|
58
82
|
return callOllamaCompat({ ...input, apiKey: ollamaKey });
|
|
59
83
|
}
|
|
60
84
|
if (!anthropicKey) {
|
|
61
85
|
return {
|
|
62
86
|
success: false,
|
|
63
|
-
error: 'No LLM provider configured. Set ANTHROPIC_API_KEY (Tier-3) or OLLAMA_API_KEY (Tier-2
|
|
87
|
+
error: 'No LLM provider configured. Set ANTHROPIC_API_KEY (Tier-3), OPENROUTER_API_KEY (#2042), or OLLAMA_API_KEY (Tier-2 — #1725).',
|
|
64
88
|
};
|
|
65
89
|
}
|
|
66
|
-
const model = input.model ||
|
|
90
|
+
const model = input.model || DEFAULT_ANTHROPIC_MODEL;
|
|
67
91
|
const startedAt = Date.now();
|
|
68
92
|
try {
|
|
69
93
|
const controller = new AbortController();
|
|
@@ -195,6 +219,88 @@ async function callOllamaCompat(input) {
|
|
|
195
219
|
};
|
|
196
220
|
}
|
|
197
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Generic OpenAI-compat caller for OpenRouter and other OpenAI-shaped
|
|
224
|
+
* endpoints. #2042 — reporter (@ummcke00) configured OpenRouter via
|
|
225
|
+
* config.yaml but agent_execute hardcoded the Anthropic fetch. This is
|
|
226
|
+
* the same shape as `callOllamaCompat` but routes to a configurable
|
|
227
|
+
* baseUrl + sends an OpenRouter-friendly default model when none is
|
|
228
|
+
* specified. Logical model names (haiku/sonnet/opus) pass through —
|
|
229
|
+
* OpenRouter accepts vendor-prefixed names like `anthropic/claude-3.5-sonnet`.
|
|
230
|
+
*/
|
|
231
|
+
async function callOpenAICompat(input) {
|
|
232
|
+
const model = resolveOpenAICompatModel(input.model, input.defaultModel);
|
|
233
|
+
const startedAt = Date.now();
|
|
234
|
+
const base = input.baseUrl.replace(/\/+$/, '');
|
|
235
|
+
const url = `${base}/v1/chat/completions`;
|
|
236
|
+
try {
|
|
237
|
+
const controller = new AbortController();
|
|
238
|
+
const timer = setTimeout(() => controller.abort(), input.timeoutMs || 60000);
|
|
239
|
+
const messages = [];
|
|
240
|
+
if (input.systemPrompt)
|
|
241
|
+
messages.push({ role: 'system', content: input.systemPrompt });
|
|
242
|
+
messages.push({ role: 'user', content: input.prompt });
|
|
243
|
+
const res = await fetch(url, {
|
|
244
|
+
method: 'POST',
|
|
245
|
+
headers: {
|
|
246
|
+
Authorization: `Bearer ${input.apiKey}`,
|
|
247
|
+
'content-type': 'application/json',
|
|
248
|
+
// OpenRouter convention: identify the integrating app for analytics
|
|
249
|
+
// and rate-limit tiering. Harmless on other OpenAI-compat backends.
|
|
250
|
+
'HTTP-Referer': 'https://github.com/ruvnet/ruflo',
|
|
251
|
+
'X-Title': 'Ruflo',
|
|
252
|
+
},
|
|
253
|
+
body: JSON.stringify({
|
|
254
|
+
model,
|
|
255
|
+
max_tokens: input.maxTokens || 1024,
|
|
256
|
+
temperature: typeof input.temperature === 'number' ? input.temperature : 0.7,
|
|
257
|
+
messages,
|
|
258
|
+
}),
|
|
259
|
+
signal: controller.signal,
|
|
260
|
+
});
|
|
261
|
+
clearTimeout(timer);
|
|
262
|
+
if (!res.ok) {
|
|
263
|
+
const errText = await res.text().catch(() => '<unreadable error body>');
|
|
264
|
+
return { success: false, model, error: `${input.providerLabel} API error ${res.status}: ${errText.slice(0, 400)}` };
|
|
265
|
+
}
|
|
266
|
+
const data = await res.json();
|
|
267
|
+
const textOut = data.choices?.[0]?.message?.content ?? '';
|
|
268
|
+
const usage = data.usage ?? {};
|
|
269
|
+
return {
|
|
270
|
+
success: true,
|
|
271
|
+
model: data.model || model,
|
|
272
|
+
messageId: data.id,
|
|
273
|
+
stopReason: data.choices?.[0]?.finish_reason ?? 'end_turn',
|
|
274
|
+
output: textOut,
|
|
275
|
+
usage: {
|
|
276
|
+
inputTokens: usage.prompt_tokens ?? 0,
|
|
277
|
+
outputTokens: usage.completion_tokens ?? 0,
|
|
278
|
+
totalTokens: usage.total_tokens ?? 0,
|
|
279
|
+
},
|
|
280
|
+
durationMs: Date.now() - startedAt,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
return {
|
|
285
|
+
success: false,
|
|
286
|
+
model,
|
|
287
|
+
error: err instanceof Error ? err.message : String(err),
|
|
288
|
+
durationMs: Date.now() - startedAt,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
function resolveOpenAICompatModel(input, fallback) {
|
|
293
|
+
if (!input)
|
|
294
|
+
return fallback;
|
|
295
|
+
// Logical Claude names → OpenRouter Anthropic-vendored names
|
|
296
|
+
if (input === 'haiku')
|
|
297
|
+
return 'anthropic/claude-3.5-haiku';
|
|
298
|
+
if (input === 'sonnet' || input === 'inherit')
|
|
299
|
+
return 'anthropic/claude-3.5-sonnet';
|
|
300
|
+
if (input === 'opus')
|
|
301
|
+
return 'anthropic/claude-3-opus';
|
|
302
|
+
return input;
|
|
303
|
+
}
|
|
198
304
|
function resolveOllamaModel(input) {
|
|
199
305
|
const DEFAULT = 'gpt-oss:120b-cloud';
|
|
200
306
|
if (!input)
|
|
@@ -212,12 +318,12 @@ function resolveOllamaModel(input) {
|
|
|
212
318
|
/**
|
|
213
319
|
* Resolve a model identifier to an Anthropic model ID. Accepts:
|
|
214
320
|
* - logical names: 'haiku', 'sonnet', 'opus', 'inherit'
|
|
215
|
-
* - prefixed: 'anthropic:claude-
|
|
216
|
-
* - direct: 'claude-
|
|
321
|
+
* - prefixed: 'anthropic:claude-sonnet-4-6'
|
|
322
|
+
* - direct: 'claude-sonnet-4-6'
|
|
217
323
|
*/
|
|
218
324
|
export function resolveAnthropicModel(input) {
|
|
219
325
|
if (!input)
|
|
220
|
-
return
|
|
326
|
+
return DEFAULT_ANTHROPIC_MODEL;
|
|
221
327
|
if (input in MODEL_MAP)
|
|
222
328
|
return MODEL_MAP[input];
|
|
223
329
|
if (input.startsWith('anthropic:'))
|
|
@@ -225,22 +331,13 @@ export function resolveAnthropicModel(input) {
|
|
|
225
331
|
return input;
|
|
226
332
|
}
|
|
227
333
|
export async function executeAgentTask(input) {
|
|
228
|
-
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
229
|
-
if (!apiKey) {
|
|
230
|
-
return {
|
|
231
|
-
success: false,
|
|
232
|
-
agentId: input.agentId,
|
|
233
|
-
error: 'ANTHROPIC_API_KEY not set in environment',
|
|
234
|
-
remediation: 'Set the env var and re-run. The key is read at call time.',
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
334
|
const store = loadAgentStore();
|
|
238
335
|
const agent = store.agents[input.agentId];
|
|
239
336
|
if (!agent)
|
|
240
337
|
return { success: false, agentId: input.agentId, error: 'Agent not found' };
|
|
241
338
|
if (agent.status === 'terminated')
|
|
242
339
|
return { success: false, agentId: input.agentId, error: 'Agent has been terminated' };
|
|
243
|
-
const anthropicModel = MODEL_MAP[agent.model || 'sonnet'] ||
|
|
340
|
+
const anthropicModel = MODEL_MAP[agent.model || 'sonnet'] || DEFAULT_ANTHROPIC_MODEL;
|
|
244
341
|
const systemPrompt = input.systemPrompt ||
|
|
245
342
|
`You are a ${agent.agentType} agent operating as part of a Ruflo swarm. ` +
|
|
246
343
|
`Agent ID: ${input.agentId}. Domain: ${agent.domain ?? 'general'}. ` +
|
|
@@ -249,73 +346,50 @@ export async function executeAgentTask(input) {
|
|
|
249
346
|
agent.taskCount = (agent.taskCount || 0) + 1;
|
|
250
347
|
saveAgentStore(store);
|
|
251
348
|
const startedAt = Date.now();
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}),
|
|
270
|
-
signal: controller.signal,
|
|
271
|
-
});
|
|
272
|
-
clearTimeout(timer);
|
|
273
|
-
if (!res.ok) {
|
|
274
|
-
const errText = await res.text().catch(() => '<unreadable error body>');
|
|
275
|
-
agent.status = 'idle';
|
|
276
|
-
saveAgentStore(store);
|
|
277
|
-
return {
|
|
278
|
-
success: false,
|
|
279
|
-
agentId: input.agentId,
|
|
280
|
-
model: anthropicModel,
|
|
281
|
-
error: `Anthropic API error ${res.status}: ${errText.slice(0, 400)}`,
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
const data = await res.json();
|
|
285
|
-
const textOut = data.content
|
|
286
|
-
.filter(c => c.type === 'text' && typeof c.text === 'string')
|
|
287
|
-
.map(c => c.text)
|
|
288
|
-
.join('');
|
|
289
|
-
const result = {
|
|
349
|
+
// #2042 — delegate to callAnthropicMessages so the v3 provider router
|
|
350
|
+
// (Anthropic / Ollama / OpenRouter) governs which backend is hit. The
|
|
351
|
+
// previous inline `fetch('https://api.anthropic.com/...')` bypassed
|
|
352
|
+
// the router entirely and forced an ANTHROPIC_API_KEY error for every
|
|
353
|
+
// non-Anthropic deployment. Reporter (@ummcke00) had OpenRouter
|
|
354
|
+
// configured but the bypass made the agent unreachable.
|
|
355
|
+
const result = await callAnthropicMessages({
|
|
356
|
+
model: anthropicModel,
|
|
357
|
+
prompt: input.prompt,
|
|
358
|
+
systemPrompt,
|
|
359
|
+
maxTokens: input.maxTokens,
|
|
360
|
+
temperature: input.temperature,
|
|
361
|
+
timeoutMs: input.timeoutMs,
|
|
362
|
+
});
|
|
363
|
+
agent.status = 'idle';
|
|
364
|
+
if (result.success) {
|
|
365
|
+
const out = {
|
|
290
366
|
success: true,
|
|
291
367
|
agentId: input.agentId,
|
|
292
|
-
messageId:
|
|
293
|
-
model:
|
|
294
|
-
stopReason:
|
|
295
|
-
output:
|
|
296
|
-
usage:
|
|
297
|
-
|
|
298
|
-
outputTokens: data.usage.output_tokens,
|
|
299
|
-
totalTokens: data.usage.input_tokens + data.usage.output_tokens,
|
|
300
|
-
},
|
|
301
|
-
durationMs: Date.now() - startedAt,
|
|
368
|
+
messageId: result.messageId,
|
|
369
|
+
model: result.model,
|
|
370
|
+
stopReason: result.stopReason,
|
|
371
|
+
output: result.output,
|
|
372
|
+
usage: result.usage,
|
|
373
|
+
durationMs: result.durationMs ?? Date.now() - startedAt,
|
|
302
374
|
};
|
|
303
|
-
agent.
|
|
304
|
-
agent.lastResult = result;
|
|
305
|
-
saveAgentStore(store);
|
|
306
|
-
return result;
|
|
307
|
-
}
|
|
308
|
-
catch (err) {
|
|
309
|
-
agent.status = 'idle';
|
|
375
|
+
agent.lastResult = out;
|
|
310
376
|
saveAgentStore(store);
|
|
311
|
-
|
|
312
|
-
return {
|
|
313
|
-
success: false,
|
|
314
|
-
agentId: input.agentId,
|
|
315
|
-
model: anthropicModel,
|
|
316
|
-
error: `agent_execute failed: ${msg}`,
|
|
317
|
-
durationMs: Date.now() - startedAt,
|
|
318
|
-
};
|
|
377
|
+
return out;
|
|
319
378
|
}
|
|
379
|
+
saveAgentStore(store);
|
|
380
|
+
// No-provider-configured error → surface the same actionable message
|
|
381
|
+
// the router built, with a #2042-aware remediation pointer.
|
|
382
|
+
const noProvider = (result.error || '').includes('No LLM provider configured');
|
|
383
|
+
return {
|
|
384
|
+
success: false,
|
|
385
|
+
agentId: input.agentId,
|
|
386
|
+
model: anthropicModel,
|
|
387
|
+
error: result.error || 'agent_execute failed',
|
|
388
|
+
durationMs: result.durationMs ?? Date.now() - startedAt,
|
|
389
|
+
...(noProvider && {
|
|
390
|
+
remediation: 'Set one of ANTHROPIC_API_KEY, OPENROUTER_API_KEY (+ optional OPENROUTER_BASE_URL), or OLLAMA_API_KEY. ' +
|
|
391
|
+
'Or set RUFLO_PROVIDER=openrouter|ollama to force a specific provider.',
|
|
392
|
+
}),
|
|
393
|
+
};
|
|
320
394
|
}
|
|
321
395
|
//# sourceMappingURL=agent-execute-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-execute-core.js","sourceRoot":"","sources":["../../../src/mcp-tools/agent-execute-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,UAAU,GAAG,YAAY,CAAC;AAuBhC,SAAS,WAAW,KAAa,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACxF,SAAS,YAAY,KAAa,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AACD,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC;AACD,SAAS,cAAc,CAAC,KAAiB;IACvC,cAAc,EAAE,CAAC;IACjB,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,SAAS,GAA2B;IACxC,KAAK,EAAE,yBAAyB;IAChC,MAAM,EAAE,0BAA0B;IAClC,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,0BAA0B;CACpC,CAAC;AAsBF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAyB;IACnE,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACnD,MAAM,SAAS,GACb,gBAAgB,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IAElE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EACH,uHAAuH;SAC1H,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,0BAA0B,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,WAAW,EAAE,YAAY;gBACzB,mBAAmB,EAAE,YAAY;gBACjC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBACnC,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;gBAC5E,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aACpD,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAM1B,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;aAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACpC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAChE;YACD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,gBAAgB,CAC7B,KAA8C;IAE9C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,kEAAkE;IAClE,kEAAkE;IAClE,sDAAsD;IACtD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,GAAG,IAAI,sBAAsB,CAAC;IAC1C,qEAAqE;IACrE,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBACnC,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;gBAC5E,QAAQ,EAAE;oBACR,GAAG,CAAC,KAAK,CAAC,YAAY;wBACpB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;wBAC5D,CAAC,CAAC,EAAE,CAAC;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE;iBACjD;aACF,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,GAAG,CAAC,MAAM,OAAO,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAChH,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAY7B,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC5C,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,UAAU;YAC1D,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;gBACrC,YAAY,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC;gBAC1C,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;aACrC;YACD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,2BAA2B;IAC3B,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,uEAAuE;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,0BAA0B,CAAC;IAC9C,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAwBD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAwB;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,0CAA0C;YACjD,WAAW,EAAE,2DAA2D;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IAEzH,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,0BAA0B,CAAC;IACxF,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY;QACrC,aAAa,KAAK,CAAC,SAAS,6CAA6C;YACzE,aAAa,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI;YACpE,+GAA+G,CAAC;IAElH,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE9D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,mBAAmB,EAAE,YAAY;gBACjC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBACnC,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;gBAC5E,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aACpD,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACxE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,uBAAuB,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aACrE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAM1B,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;aAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,MAAM,MAAM,GAAuB;YACjC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACpC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAChE;YACD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;QAEF,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,MAA4C,CAAC;QAChE,cAAc,CAAC,KAAK,CAAC,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,yBAAyB,GAAG,EAAE;YACrC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-execute-core.js","sourceRoot":"","sources":["../../../src/mcp-tools/agent-execute-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,YAAY,CAAC;AA4MzD,eAAO,MAAM,UAAU,EAAE,OAAO,EA8lB/B,CAAC"}
|
|
@@ -13,6 +13,11 @@ import { executeAgentTask } from './agent-execute-core.js';
|
|
|
13
13
|
const STORAGE_DIR = '.claude-flow';
|
|
14
14
|
const AGENT_DIR = 'agents';
|
|
15
15
|
const AGENT_FILE = 'store.json';
|
|
16
|
+
// #1916: hive-mind_spawn writes its workers to `.claude-flow/agents.json`
|
|
17
|
+
// (a *different* file from the canonical `.claude-flow/agents/store.json`
|
|
18
|
+
// used here). agent_status / agent_list / agent_logs merge that store so a
|
|
19
|
+
// hive-spawned worker is resolvable instead of returning `not_found`.
|
|
20
|
+
const HIVE_AGENT_FILE = 'agents.json';
|
|
16
21
|
function getAgentDir() {
|
|
17
22
|
return join(getProjectCwd(), STORAGE_DIR, AGENT_DIR);
|
|
18
23
|
}
|
|
@@ -42,6 +47,33 @@ function saveAgentStore(store) {
|
|
|
42
47
|
ensureAgentDir();
|
|
43
48
|
writeFileSync(getAgentPath(), JSON.stringify(store, null, 2), 'utf-8');
|
|
44
49
|
}
|
|
50
|
+
// #1916: read hive-mind-spawned workers from `.claude-flow/agents.json`.
|
|
51
|
+
function getHiveAgentPath() {
|
|
52
|
+
return join(getProjectCwd(), STORAGE_DIR, HIVE_AGENT_FILE);
|
|
53
|
+
}
|
|
54
|
+
function loadHiveAgents() {
|
|
55
|
+
try {
|
|
56
|
+
const path = getHiveAgentPath();
|
|
57
|
+
if (existsSync(path)) {
|
|
58
|
+
const data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
59
|
+
if (data && typeof data.agents === 'object' && data.agents) {
|
|
60
|
+
return data.agents;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore — hive store is optional/best-effort.
|
|
66
|
+
}
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* #1916: merged view of every tracked agent — the canonical agent store
|
|
71
|
+
* plus hive-mind-spawned workers. On an id collision the canonical record
|
|
72
|
+
* wins (it carries model-routing + lastResult that the hive store omits).
|
|
73
|
+
*/
|
|
74
|
+
function loadAllAgents() {
|
|
75
|
+
return { ...loadHiveAgents(), ...loadAgentStore().agents };
|
|
76
|
+
}
|
|
45
77
|
// Default model mappings for agent types (can be overridden)
|
|
46
78
|
const AGENT_TYPE_MODEL_DEFAULTS = {
|
|
47
79
|
// Complex agents → opus
|
|
@@ -142,6 +174,10 @@ export const agentTools = [
|
|
|
142
174
|
properties: {
|
|
143
175
|
agentType: { type: 'string', description: 'Type of agent to spawn' },
|
|
144
176
|
agentId: { type: 'string', description: 'Optional custom agent ID' },
|
|
177
|
+
// #2085 — accept swarmId so spawned agents register in the
|
|
178
|
+
// swarm.agents array that swarm_status reports. Omit to register
|
|
179
|
+
// with the most-recently-created swarm.
|
|
180
|
+
swarmId: { type: 'string', description: 'Optional swarm to register the agent with (defaults to most-recent swarm)' },
|
|
145
181
|
config: { type: 'object', description: 'Agent configuration' },
|
|
146
182
|
domain: { type: 'string', description: 'Agent domain' },
|
|
147
183
|
model: {
|
|
@@ -185,6 +221,33 @@ export const agentTools = [
|
|
|
185
221
|
};
|
|
186
222
|
store.agents[agentId] = agent;
|
|
187
223
|
saveAgentStore(store);
|
|
224
|
+
// #2085 — also push to the swarm store's agents array so that
|
|
225
|
+
// swarm_status reports the new agent. Without this, agent_spawn
|
|
226
|
+
// and swarm_status read/write separate stores and agents added
|
|
227
|
+
// post-init never show up in swarm_status.agents — confirmed for
|
|
228
|
+
// all topologies (hierarchical, mesh, etc.).
|
|
229
|
+
try {
|
|
230
|
+
const { loadSwarmStore: _loadSwarmStore, saveSwarmStore: _saveSwarmStore } = await import('./swarm-tools.js');
|
|
231
|
+
const swarmStore = _loadSwarmStore();
|
|
232
|
+
let targetSwarmId = input.swarmId || '';
|
|
233
|
+
if (!targetSwarmId) {
|
|
234
|
+
// Default to the most-recently-created swarm.
|
|
235
|
+
const all = Object.values(swarmStore.swarms);
|
|
236
|
+
const latest = all.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())[0];
|
|
237
|
+
targetSwarmId = latest?.swarmId || '';
|
|
238
|
+
}
|
|
239
|
+
if (targetSwarmId && swarmStore.swarms[targetSwarmId]) {
|
|
240
|
+
const swarm = swarmStore.swarms[targetSwarmId];
|
|
241
|
+
if (!Array.isArray(swarm.agents))
|
|
242
|
+
swarm.agents = [];
|
|
243
|
+
// Idempotent — don't duplicate if agent_spawn is retried.
|
|
244
|
+
if (!swarm.agents.includes(agentId)) {
|
|
245
|
+
swarm.agents.push(agentId);
|
|
246
|
+
_saveSwarmStore(swarmStore);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch { /* swarm store unavailable — agent still registered globally */ }
|
|
188
251
|
// Record agent in graph database (ADR-087, best-effort)
|
|
189
252
|
try {
|
|
190
253
|
const { addNode } = await import('../ruvector/graph-backend.js');
|
|
@@ -228,7 +291,7 @@ export const agentTools = [
|
|
|
228
291
|
// updating the agent record with lastResult / taskCount / status.
|
|
229
292
|
// No mock — actual HTTP request to api.anthropic.com.
|
|
230
293
|
name: 'agent_execute',
|
|
231
|
-
description: '
|
|
294
|
+
description: 'Run a task on a previously-spawned agent_spawn record via the Anthropic Messages API with that agent\'s configured model. Use when native Task tool is wrong because (a) you need the spawned agent\'s persistent config (model, instructions, cost-tracking attribution) to apply to this turn, (b) the result needs to feed back into the agent\'s lifecycle (taskCount, lastResult, swarm-coordinated state), or (c) you want explicit model routing via the spawn record\'s `model` field instead of inheriting. For one-shot Claude prompts without a tracked agent, native Task is fine. Requires ANTHROPIC_API_KEY in env.',
|
|
232
295
|
category: 'agent',
|
|
233
296
|
inputSchema: {
|
|
234
297
|
type: 'object',
|
|
@@ -261,7 +324,7 @@ export const agentTools = [
|
|
|
261
324
|
},
|
|
262
325
|
{
|
|
263
326
|
name: 'agent_terminate',
|
|
264
|
-
description: '
|
|
327
|
+
description: 'Remove a Ruflo-tracked agent from the registry and free its swarm slot. Use when you need to (a) clean up a spawned agent so its cost-tracking row finalizes, (b) reclaim a swarm-topology slot for another agent, or (c) end a stuck agent without restarting the whole swarm. For one-shot Task tool invocations that already self-terminate, this tool is not needed. Pair with agent_list first to confirm the agentId.',
|
|
265
328
|
category: 'agent',
|
|
266
329
|
inputSchema: {
|
|
267
330
|
type: 'object',
|
|
@@ -296,7 +359,7 @@ export const agentTools = [
|
|
|
296
359
|
},
|
|
297
360
|
{
|
|
298
361
|
name: 'agent_status',
|
|
299
|
-
description: '
|
|
362
|
+
description: 'Read the lifecycle state of a single tracked agent: idle/running/stopped, current taskCount, lastResult, model, health score. Use when native Task tool is wrong because you need agent-level state (status across turns, accumulated taskCount, last error, swarm coordination) rather than a one-shot response. For inspecting a Task you just ran, native Task output is fine. Pair with agent_list to find the agentId first.',
|
|
300
363
|
category: 'agent',
|
|
301
364
|
inputSchema: {
|
|
302
365
|
type: 'object',
|
|
@@ -309,9 +372,8 @@ export const agentTools = [
|
|
|
309
372
|
const v = validateIdentifier(input.agentId, 'agentId');
|
|
310
373
|
if (!v.valid)
|
|
311
374
|
return { agentId: input.agentId, status: 'not_found', error: `Input validation failed: ${v.error}` };
|
|
312
|
-
const store = loadAgentStore();
|
|
313
375
|
const agentId = input.agentId;
|
|
314
|
-
const agent =
|
|
376
|
+
const agent = loadAllAgents()[agentId]; // #1916: includes hive-mind-spawned workers
|
|
315
377
|
if (agent) {
|
|
316
378
|
return {
|
|
317
379
|
agentId: agent.agentId,
|
|
@@ -333,7 +395,7 @@ export const agentTools = [
|
|
|
333
395
|
},
|
|
334
396
|
{
|
|
335
397
|
name: 'agent_list',
|
|
336
|
-
description: 'List
|
|
398
|
+
description: 'List every Ruflo-tracked agent in the registry with its type, model, status, and taskCount. Use when native Task tool is wrong because you need to see the swarm-wide agent inventory across turns (which agents exist, their roles, their cost-tracking handles) rather than spawn a new one-shot Task. Filter by status/domain/agentType if needed. For starting a fresh single-shot subagent, native Task is fine.',
|
|
337
399
|
category: 'agent',
|
|
338
400
|
inputSchema: {
|
|
339
401
|
type: 'object',
|
|
@@ -354,8 +416,7 @@ export const agentTools = [
|
|
|
354
416
|
if (!v.valid)
|
|
355
417
|
return { agents: [], total: 0, error: `Input validation failed: ${v.error}` };
|
|
356
418
|
}
|
|
357
|
-
|
|
358
|
-
let agents = Object.values(store.agents);
|
|
419
|
+
let agents = Object.values(loadAllAgents()); // #1916: includes hive-mind-spawned workers
|
|
359
420
|
// Filter by status
|
|
360
421
|
if (input.status) {
|
|
361
422
|
agents = agents.filter(a => a.status === input.status);
|
|
@@ -388,7 +449,7 @@ export const agentTools = [
|
|
|
388
449
|
},
|
|
389
450
|
{
|
|
390
451
|
name: 'agent_pool',
|
|
391
|
-
description: 'Manage agent pool',
|
|
452
|
+
description: 'Manage a fixed-size warm pool of pre-spawned agents to skip cold-start cost on bursty workloads. Use when native Task is wrong because (a) you have a queue of similar tasks and want to amortize spawn latency, (b) cost-tracking wants stable agentIds across requests, or (c) swarm topology requires a known agent count at all times. For one-shot work, just call agent_spawn or native Task. Pool sizes and warm/idle thresholds are set per-pool.',
|
|
392
453
|
category: 'agent',
|
|
393
454
|
inputSchema: {
|
|
394
455
|
type: 'object',
|
|
@@ -505,7 +566,7 @@ export const agentTools = [
|
|
|
505
566
|
},
|
|
506
567
|
{
|
|
507
568
|
name: 'agent_health',
|
|
508
|
-
description: '
|
|
569
|
+
description: 'Compute an agent\'s rolling health score (0-1) from recent task success ratio + response-latency p50/p95 + error rate. Use when native Task tool is wrong because you\'re running a long-lived agent (autonomous loop / hive-mind worker / federation peer) and need to detect degradation before the breaker trips it. For one-shot Task invocations there is no history to score. Pair with hooks_post-task so the scores stay current.',
|
|
509
570
|
category: 'agent',
|
|
510
571
|
inputSchema: {
|
|
511
572
|
type: 'object',
|
|
@@ -580,7 +641,7 @@ export const agentTools = [
|
|
|
580
641
|
},
|
|
581
642
|
{
|
|
582
643
|
name: 'agent_update',
|
|
583
|
-
description: '
|
|
644
|
+
description: 'Mutate a tracked agent\'s config (model, instructions, status, health) without re-spawning. Use when native Task tool is wrong because the agent already has accumulated state (taskCount, swarm membership, cost-tracking attribution) and you only need to tweak one field — for example, promoting an idle agent to running on a new task, or rotating its model from haiku to sonnet mid-loop. For a brand-new subagent, agent_spawn (or native Task) is the right call.',
|
|
584
645
|
category: 'agent',
|
|
585
646
|
inputSchema: {
|
|
586
647
|
type: 'object',
|
|
@@ -635,5 +696,52 @@ export const agentTools = [
|
|
|
635
696
|
};
|
|
636
697
|
},
|
|
637
698
|
},
|
|
699
|
+
{
|
|
700
|
+
// #1916 — the `ruflo agent logs <id>` CLI subcommand and the guidance
|
|
701
|
+
// surface both reference an `agent_logs` MCP tool that was never
|
|
702
|
+
// registered, so it errored with `MCP tool not found: agent_logs`.
|
|
703
|
+
// This is the registered handler. Note: agents don't yet keep a
|
|
704
|
+
// structured per-agent activity log (that lands with hive worker
|
|
705
|
+
// execution wiring — see #1916), so for now we surface the agent's
|
|
706
|
+
// last task result as a single synthetic entry, or an explicit empty
|
|
707
|
+
// response. The shape matches what the CLI `logs` subcommand expects:
|
|
708
|
+
// `{ agentId, entries: [{timestamp,level,message,context?}], total }`.
|
|
709
|
+
name: 'agent_logs',
|
|
710
|
+
description: 'Return recorded activity-log entries for a tracked agent (idle/running history, last task result). Use when native Task tool is wrong because you need the agent\'s log across turns (what it did, last error/result, swarm context) rather than a one-shot Task transcript. For a Task you just ran, native Task output is fine. Pair with agent_list to find the agentId. (Hive-mind-spawned workers are resolved here too.) Today this returns the last task result as a synthetic entry — full per-agent activity logs land with hive worker execution wiring (ruvnet/ruflo#1916).',
|
|
711
|
+
category: 'agent',
|
|
712
|
+
inputSchema: {
|
|
713
|
+
type: 'object',
|
|
714
|
+
properties: {
|
|
715
|
+
agentId: { type: 'string', description: 'ID of agent' },
|
|
716
|
+
tail: { type: 'number', description: 'Max recent entries to return (default 50)' },
|
|
717
|
+
level: { type: 'string', enum: ['debug', 'info', 'warn', 'error'], description: 'Minimum log level (currently advisory — entries are synthetic)' },
|
|
718
|
+
since: { type: 'string', description: 'Show logs since, e.g. "1h" / "30m" (currently advisory)' },
|
|
719
|
+
},
|
|
720
|
+
required: ['agentId'],
|
|
721
|
+
},
|
|
722
|
+
handler: async (input) => {
|
|
723
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
724
|
+
if (!v.valid)
|
|
725
|
+
return { agentId: input.agentId, entries: [], total: 0, error: `Input validation failed: ${v.error}` };
|
|
726
|
+
const agentId = input.agentId;
|
|
727
|
+
const agent = loadAllAgents()[agentId]; // #1916: includes hive-mind-spawned workers
|
|
728
|
+
if (!agent) {
|
|
729
|
+
return { agentId, entries: [], total: 0, error: 'Agent not found' };
|
|
730
|
+
}
|
|
731
|
+
const entries = [];
|
|
732
|
+
entries.push({ timestamp: agent.createdAt, level: 'info', message: `agent created (type=${agent.agentType}, status=${agent.status})` });
|
|
733
|
+
if (agent.lastResult) {
|
|
734
|
+
entries.push({ timestamp: agent.createdAt, level: 'info', message: 'last task result', context: agent.lastResult });
|
|
735
|
+
}
|
|
736
|
+
const tail = typeof input.tail === 'number' && input.tail > 0 ? Math.floor(input.tail) : 50;
|
|
737
|
+
const sliced = entries.slice(-tail);
|
|
738
|
+
return {
|
|
739
|
+
agentId: agent.agentId,
|
|
740
|
+
entries: sliced,
|
|
741
|
+
total: entries.length,
|
|
742
|
+
note: 'per-agent activity logging is not yet wired; entries are synthetic (ruvnet/ruflo#1916)',
|
|
743
|
+
};
|
|
744
|
+
},
|
|
745
|
+
},
|
|
638
746
|
];
|
|
639
747
|
//# sourceMappingURL=agent-tools.js.map
|