@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.
Files changed (291) hide show
  1. package/.claude/agents/github/release-manager.md +2 -2
  2. package/.claude/agents/github/release-swarm.md +1 -1
  3. package/.claude/agents/github/repo-architect.md +2 -2
  4. package/.claude/agents/github/swarm-pr.md +1 -1
  5. package/.claude/agents/github/workflow-automation.md +2 -2
  6. package/.claude/commands/github/code-review-swarm.md +1 -1
  7. package/.claude/commands/github/issue-tracker.md +3 -3
  8. package/.claude/commands/github/release-manager.md +5 -3
  9. package/.claude/commands/github/release-swarm.md +1 -1
  10. package/.claude/commands/github/repo-architect.md +2 -2
  11. package/.claude/commands/github/swarm-issue.md +4 -1
  12. package/.claude/commands/github/swarm-pr.md +6 -3
  13. package/.claude/commands/github/sync-coordinator.md +3 -1
  14. package/.claude/commands/github/workflow-automation.md +2 -2
  15. package/.claude/helpers/github-safe.js +95 -60
  16. package/.claude/helpers/github-setup.sh +26 -9
  17. package/.claude/helpers/hook-handler.cjs +12 -4
  18. package/.claude/helpers/statusline.cjs +31 -2
  19. package/.claude/helpers/statusline.js +35 -4
  20. package/.claude/settings.json +1 -1
  21. package/.claude/skills/dual-mode/README.md +71 -0
  22. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  23. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  24. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  25. package/.claude/skills/flow-nexus-neural/SKILL.md +0 -11
  26. package/.claude/skills/flow-nexus-platform/SKILL.md +2 -5
  27. package/.claude/skills/flow-nexus-swarm/SKILL.md +0 -6
  28. package/.claude/skills/github-code-review/SKILL.md +2 -17
  29. package/.claude/skills/github-multi-repo/SKILL.md +4 -16
  30. package/.claude/skills/github-project-management/SKILL.md +18 -33
  31. package/.claude/skills/github-release-management/SKILL.md +4 -21
  32. package/.claude/skills/github-workflow-automation/SKILL.md +8 -26
  33. package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
  34. package/.claude/skills/sparc-methodology/SKILL.md +2 -11
  35. package/.claude/skills/stream-chain/SKILL.md +0 -3
  36. package/.claude/skills/swarm-advanced/SKILL.md +2 -5
  37. package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
  38. package/.claude/skills/verification-quality/SKILL.md +120 -78
  39. package/README.md +57 -38
  40. package/bin/cli.js +15 -2
  41. package/bin/mcp-server.js +1 -1
  42. package/dist/src/__probe.d.ts +2 -0
  43. package/dist/src/__probe.d.ts.map +1 -0
  44. package/dist/src/__probe.js +5 -0
  45. package/dist/src/__probe.js.map +1 -0
  46. package/dist/src/commands/agent-wasm.js +2 -2
  47. package/dist/src/commands/agent-wasm.js.map +1 -1
  48. package/dist/src/commands/benchmark-cosign.d.ts +29 -0
  49. package/dist/src/commands/benchmark-cosign.d.ts.map +1 -0
  50. package/dist/src/commands/benchmark-cosign.js +222 -0
  51. package/dist/src/commands/benchmark-cosign.js.map +1 -0
  52. package/dist/src/commands/benchmark-verify.d.ts +21 -0
  53. package/dist/src/commands/benchmark-verify.d.ts.map +1 -0
  54. package/dist/src/commands/benchmark-verify.js +202 -0
  55. package/dist/src/commands/benchmark-verify.js.map +1 -0
  56. package/dist/src/commands/daemon.d.ts +20 -0
  57. package/dist/src/commands/daemon.d.ts.map +1 -1
  58. package/dist/src/commands/daemon.js +366 -7
  59. package/dist/src/commands/daemon.js.map +1 -1
  60. package/dist/src/commands/doctor.d.ts.map +1 -1
  61. package/dist/src/commands/doctor.js +224 -46
  62. package/dist/src/commands/doctor.js.map +1 -1
  63. package/dist/src/commands/embeddings.d.ts.map +1 -1
  64. package/dist/src/commands/embeddings.js +18 -9
  65. package/dist/src/commands/embeddings.js.map +1 -1
  66. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  67. package/dist/src/commands/hive-mind.js +25 -7
  68. package/dist/src/commands/hive-mind.js.map +1 -1
  69. package/dist/src/commands/hooks.d.ts.map +1 -1
  70. package/dist/src/commands/hooks.js +56 -29
  71. package/dist/src/commands/hooks.js.map +1 -1
  72. package/dist/src/commands/init.d.ts.map +1 -1
  73. package/dist/src/commands/init.js +21 -1
  74. package/dist/src/commands/init.js.map +1 -1
  75. package/dist/src/commands/memory.d.ts.map +1 -1
  76. package/dist/src/commands/memory.js +128 -3
  77. package/dist/src/commands/memory.js.map +1 -1
  78. package/dist/src/commands/start.js +1 -1
  79. package/dist/src/commands/start.js.map +1 -1
  80. package/dist/src/commands/swarm.js +1 -1
  81. package/dist/src/commands/swarm.js.map +1 -1
  82. package/dist/src/commands/task.d.ts.map +1 -1
  83. package/dist/src/commands/task.js +8 -4
  84. package/dist/src/commands/task.js.map +1 -1
  85. package/dist/src/config-adapter.js +1 -1
  86. package/dist/src/config-adapter.js.map +1 -1
  87. package/dist/src/index.d.ts +5 -1
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/index.js +61 -18
  90. package/dist/src/index.js.map +1 -1
  91. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  92. package/dist/src/init/claudemd-generator.js +1 -0
  93. package/dist/src/init/claudemd-generator.js.map +1 -1
  94. package/dist/src/init/executor.d.ts.map +1 -1
  95. package/dist/src/init/executor.js +133 -0
  96. package/dist/src/init/executor.js.map +1 -1
  97. package/dist/src/init/helpers-generator.d.ts +1 -0
  98. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  99. package/dist/src/init/helpers-generator.js +19 -2
  100. package/dist/src/init/helpers-generator.js.map +1 -1
  101. package/dist/src/init/mcp-generator.js +4 -4
  102. package/dist/src/init/mcp-generator.js.map +1 -1
  103. package/dist/src/init/settings-generator.d.ts.map +1 -1
  104. package/dist/src/init/settings-generator.js +84 -19
  105. package/dist/src/init/settings-generator.js.map +1 -1
  106. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  107. package/dist/src/init/statusline-generator.js +75 -31
  108. package/dist/src/init/statusline-generator.js.map +1 -1
  109. package/dist/src/init/types.d.ts +30 -0
  110. package/dist/src/init/types.d.ts.map +1 -1
  111. package/dist/src/init/types.js +18 -5
  112. package/dist/src/init/types.js.map +1 -1
  113. package/dist/src/mcp-client.d.ts.map +1 -1
  114. package/dist/src/mcp-client.js +12 -0
  115. package/dist/src/mcp-client.js.map +1 -1
  116. package/dist/src/mcp-server.d.ts.map +1 -1
  117. package/dist/src/mcp-server.js +38 -5
  118. package/dist/src/mcp-server.js.map +1 -1
  119. package/dist/src/mcp-tools/agent-execute-core.d.ts +3 -2
  120. package/dist/src/mcp-tools/agent-execute-core.d.ts.map +1 -1
  121. package/dist/src/mcp-tools/agent-execute-core.js +157 -83
  122. package/dist/src/mcp-tools/agent-execute-core.js.map +1 -1
  123. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  124. package/dist/src/mcp-tools/agent-tools.js +119 -11
  125. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  126. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -1
  127. package/dist/src/mcp-tools/agentdb-tools.js +101 -24
  128. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  129. package/dist/src/mcp-tools/analyze-tools.js +6 -6
  130. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  131. package/dist/src/mcp-tools/autopilot-tools.js +10 -10
  132. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  133. package/dist/src/mcp-tools/browser-session-tools.d.ts.map +1 -1
  134. package/dist/src/mcp-tools/browser-session-tools.js +18 -7
  135. package/dist/src/mcp-tools/browser-session-tools.js.map +1 -1
  136. package/dist/src/mcp-tools/browser-tools.js +23 -23
  137. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  138. package/dist/src/mcp-tools/claims-tools.js +12 -12
  139. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  140. package/dist/src/mcp-tools/config-tools.js +6 -6
  141. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  142. package/dist/src/mcp-tools/coordination-tools.js +7 -7
  143. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  144. package/dist/src/mcp-tools/daa-tools.js +8 -8
  145. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  146. package/dist/src/mcp-tools/embeddings-tools.js +10 -10
  147. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  148. package/dist/src/mcp-tools/github-tools.js +5 -5
  149. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  150. package/dist/src/mcp-tools/guidance-tools.js +21 -21
  151. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  152. package/dist/src/mcp-tools/hive-consensus-runtime.d.ts +149 -0
  153. package/dist/src/mcp-tools/hive-consensus-runtime.d.ts.map +1 -0
  154. package/dist/src/mcp-tools/hive-consensus-runtime.js +296 -0
  155. package/dist/src/mcp-tools/hive-consensus-runtime.js.map +1 -0
  156. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  157. package/dist/src/mcp-tools/hive-mind-tools.js +53 -9
  158. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  159. package/dist/src/mcp-tools/hooks-tools.d.ts +2 -0
  160. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  161. package/dist/src/mcp-tools/hooks-tools.js +179 -46
  162. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  163. package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  164. package/dist/src/mcp-tools/managed-agent-tools.d.ts.map +1 -0
  165. package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  166. package/dist/src/mcp-tools/managed-agent-tools.js.map +1 -0
  167. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  168. package/dist/src/mcp-tools/memory-tools.js +499 -68
  169. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  170. package/dist/src/mcp-tools/neural-tools.js +6 -6
  171. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  172. package/dist/src/mcp-tools/performance-tools.js +6 -6
  173. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  174. package/dist/src/mcp-tools/progress-tools.js +4 -4
  175. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  176. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -1
  177. package/dist/src/mcp-tools/ruvllm-tools.js +27 -11
  178. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
  180. package/dist/src/mcp-tools/security-tools.js +34 -9
  181. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  182. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
  183. package/dist/src/mcp-tools/session-tools.js +130 -6
  184. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  185. package/dist/src/mcp-tools/swarm-tools.d.ts +28 -0
  186. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  187. package/dist/src/mcp-tools/swarm-tools.js +80 -9
  188. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  190. package/dist/src/mcp-tools/system-tools.js +91 -18
  191. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  192. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  193. package/dist/src/mcp-tools/task-tools.js +55 -7
  194. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/terminal-tools.js +5 -5
  196. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/transfer-tools.js +11 -11
  198. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/wasm-agent-tools.js +11 -11
  200. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  202. package/dist/src/mcp-tools/workflow-tools.js +118 -10
  203. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  204. package/dist/src/memory/ann-router-registry.d.ts +61 -0
  205. package/dist/src/memory/ann-router-registry.d.ts.map +1 -0
  206. package/dist/src/memory/ann-router-registry.js +72 -0
  207. package/dist/src/memory/ann-router-registry.js.map +1 -0
  208. package/dist/src/memory/diskann-registry.d.ts +56 -0
  209. package/dist/src/memory/diskann-registry.d.ts.map +1 -0
  210. package/dist/src/memory/diskann-registry.js +88 -0
  211. package/dist/src/memory/diskann-registry.js.map +1 -0
  212. package/dist/src/memory/memory-bridge.d.ts +4 -0
  213. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  214. package/dist/src/memory/memory-bridge.js +49 -8
  215. package/dist/src/memory/memory-bridge.js.map +1 -1
  216. package/dist/src/memory/memory-initializer.d.ts +12 -0
  217. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  218. package/dist/src/memory/memory-initializer.js +98 -19
  219. package/dist/src/memory/memory-initializer.js.map +1 -1
  220. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  221. package/dist/src/memory/sona-optimizer.js +3 -0
  222. package/dist/src/memory/sona-optimizer.js.map +1 -1
  223. package/dist/src/parser.d.ts +9 -0
  224. package/dist/src/parser.d.ts.map +1 -1
  225. package/dist/src/parser.js +11 -0
  226. package/dist/src/parser.js.map +1 -1
  227. package/dist/src/plugins/store/discovery.d.ts +15 -4
  228. package/dist/src/plugins/store/discovery.d.ts.map +1 -1
  229. package/dist/src/plugins/store/discovery.js +40 -18
  230. package/dist/src/plugins/store/discovery.js.map +1 -1
  231. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -1
  232. package/dist/src/ruvector/agent-wasm.js +4 -1
  233. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  234. package/dist/src/ruvector/coverage-tools.js +6 -6
  235. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  236. package/dist/src/services/headless-worker-executor.d.ts +6 -0
  237. package/dist/src/services/headless-worker-executor.d.ts.map +1 -1
  238. package/dist/src/services/headless-worker-executor.js +63 -6
  239. package/dist/src/services/headless-worker-executor.js.map +1 -1
  240. package/dist/src/services/worker-daemon.d.ts +80 -2
  241. package/dist/src/services/worker-daemon.d.ts.map +1 -1
  242. package/dist/src/services/worker-daemon.js +372 -11
  243. package/dist/src/services/worker-daemon.js.map +1 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -1
  245. package/package.json +12 -8
  246. package/.claude/agents/core/coder.md +0 -453
  247. package/.claude/agents/core/researcher.md +0 -369
  248. package/.claude/agents/core/reviewer.md +0 -520
  249. package/.claude/agents/core/tester.md +0 -512
  250. package/.claude/agents/goal/goal-planner.md +0 -73
  251. package/.claude/agents/v3/adr-architect.md +0 -184
  252. package/.claude/agents/v3/memory-specialist.md +0 -995
  253. package/.claude/agents/v3/security-auditor.md +0 -771
  254. package/.claude/agents/v3/sparc-orchestrator.md +0 -182
  255. package/.claude/commands/flow-nexus/app-store.md +0 -124
  256. package/.claude/commands/flow-nexus/challenges.md +0 -120
  257. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  258. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  259. package/.claude/commands/flow-nexus/payments.md +0 -116
  260. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  261. package/.claude/commands/flow-nexus/swarm.md +0 -87
  262. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  263. package/.claude/commands/flow-nexus/workflow.md +0 -115
  264. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  265. package/.claude/skills/aidefence-scan.md +0 -151
  266. package/.claude/skills/aidefence.yaml +0 -297
  267. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
  268. package/.claude/skills/performance-analysis/SKILL.md +0 -563
  269. package/.claude/skills/secure-review.md +0 -181
  270. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  271. package/.claude/skills/worker-integration/skill.md +0 -154
  272. package/dist/src/ruvector/flash-attention.d.ts +0 -195
  273. package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
  274. package/dist/src/ruvector/flash-attention.js +0 -643
  275. package/dist/src/ruvector/flash-attention.js.map +0 -1
  276. package/dist/src/ruvector/moe-router.d.ts +0 -206
  277. package/dist/src/ruvector/moe-router.d.ts.map +0 -1
  278. package/dist/src/ruvector/moe-router.js +0 -626
  279. package/dist/src/ruvector/moe-router.js.map +0 -1
  280. package/dist/src/services/event-stream.d.ts +0 -25
  281. package/dist/src/services/event-stream.d.ts.map +0 -1
  282. package/dist/src/services/event-stream.js +0 -27
  283. package/dist/src/services/event-stream.js.map +0 -1
  284. package/dist/src/services/loop-worker-runner.d.ts +0 -16
  285. package/dist/src/services/loop-worker-runner.d.ts.map +0 -1
  286. package/dist/src/services/loop-worker-runner.js +0 -34
  287. package/dist/src/services/loop-worker-runner.js.map +0 -1
  288. package/dist/src/services/runtime-capabilities.d.ts +0 -22
  289. package/dist/src/services/runtime-capabilities.d.ts.map +0 -1
  290. package/dist/src/services/runtime-capabilities.js +0 -45
  291. 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-3-5-haiku-latest',
37
- sonnet: 'claude-3-5-sonnet-latest',
38
- opus: 'claude-3-opus-latest',
39
- inherit: 'claude-3-5-sonnet-latest',
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
- const useOllama = explicitProvider === 'ollama' || (!anthropicKey && !!ollamaKey);
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 Ollama Cloud see issue #1725).',
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 || 'claude-3-5-sonnet-latest';
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-3-5-sonnet-latest'
216
- * - direct: 'claude-3-5-sonnet-latest'
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 'claude-3-5-sonnet-latest';
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'] || 'claude-3-5-sonnet-latest';
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
- try {
253
- const controller = new AbortController();
254
- const timeoutMs = input.timeoutMs || 60000;
255
- const timer = setTimeout(() => controller.abort(), timeoutMs);
256
- const res = await fetch('https://api.anthropic.com/v1/messages', {
257
- method: 'POST',
258
- headers: {
259
- 'x-api-key': apiKey,
260
- 'anthropic-version': '2023-06-01',
261
- 'content-type': 'application/json',
262
- },
263
- body: JSON.stringify({
264
- model: anthropicModel,
265
- max_tokens: input.maxTokens || 1024,
266
- temperature: typeof input.temperature === 'number' ? input.temperature : 0.7,
267
- system: systemPrompt,
268
- messages: [{ role: 'user', content: input.prompt }],
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: data.id,
293
- model: data.model,
294
- stopReason: data.stop_reason,
295
- output: textOut,
296
- usage: {
297
- inputTokens: data.usage.input_tokens,
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.status = 'idle';
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
- const msg = err instanceof Error ? err.message : String(err);
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":"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"}
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;AA0KzD,eAAO,MAAM,UAAU,EAAE,OAAO,EA8gB/B,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: 'Execute a task on a spawned agent calls the Anthropic Messages API with the agent\'s configured model. Requires ANTHROPIC_API_KEY in env.',
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: 'Terminate an agent',
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: 'Get agent status',
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 = store.agents[agentId];
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 all agents',
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
- const store = loadAgentStore();
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: 'Check agent health',
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: 'Update agent status or config',
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