@evalops/maestro 0.10.50 → 0.10.51

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 (406) hide show
  1. package/dist/agent/agent-outcome.d.ts +54 -0
  2. package/dist/agent/agent-outcome.d.ts.map +1 -0
  3. package/dist/agent/agent-outcome.js +142 -0
  4. package/dist/agent/agent-outcome.js.map +1 -0
  5. package/dist/agent/agent-resume.d.ts.map +1 -1
  6. package/dist/agent/agent-resume.js +3 -3
  7. package/dist/agent/agent-resume.js.map +1 -1
  8. package/dist/agent/agent-run-summary.d.ts +37 -0
  9. package/dist/agent/agent-run-summary.d.ts.map +1 -0
  10. package/dist/agent/agent-run-summary.js +15 -0
  11. package/dist/agent/agent-run-summary.js.map +1 -0
  12. package/dist/agent/agent-work-board.d.ts +82 -0
  13. package/dist/agent/agent-work-board.d.ts.map +1 -0
  14. package/dist/agent/agent-work-board.js +312 -0
  15. package/dist/agent/agent-work-board.js.map +1 -0
  16. package/dist/agent/auto-compaction.d.ts +7 -2
  17. package/dist/agent/auto-compaction.d.ts.map +1 -1
  18. package/dist/agent/auto-compaction.js +23 -10
  19. package/dist/agent/auto-compaction.js.map +1 -1
  20. package/dist/agent/mission-artifacts.d.ts +62 -0
  21. package/dist/agent/mission-artifacts.d.ts.map +1 -0
  22. package/dist/agent/mission-artifacts.js +438 -0
  23. package/dist/agent/mission-artifacts.js.map +1 -0
  24. package/dist/agent/mission-manifest.d.ts +139 -3
  25. package/dist/agent/mission-manifest.d.ts.map +1 -1
  26. package/dist/agent/mission-manifest.js +549 -3
  27. package/dist/agent/mission-manifest.js.map +1 -1
  28. package/dist/agent/mission-store.d.ts +80 -0
  29. package/dist/agent/mission-store.d.ts.map +1 -0
  30. package/dist/agent/mission-store.js +603 -0
  31. package/dist/agent/mission-store.js.map +1 -0
  32. package/dist/agent/modes.d.ts +2 -2
  33. package/dist/agent/modes.d.ts.map +1 -1
  34. package/dist/agent/modes.js +10 -3
  35. package/dist/agent/modes.js.map +1 -1
  36. package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
  37. package/dist/agent/providers/codex-app-server.js +1 -3
  38. package/dist/agent/providers/codex-app-server.js.map +1 -1
  39. package/dist/agent/providers/google-gemini-cli.js +203 -107
  40. package/dist/agent/providers/google.js +100 -41
  41. package/dist/agent/providers/scripted.d.ts.map +1 -1
  42. package/dist/agent/providers/scripted.js +1 -3
  43. package/dist/agent/providers/scripted.js.map +1 -1
  44. package/dist/agent/providers/validation.d.ts.map +1 -1
  45. package/dist/agent/providers/validation.js +1 -3
  46. package/dist/agent/providers/validation.js.map +1 -1
  47. package/dist/agent/providers/vertex.js +203 -107
  48. package/dist/agent/snapshot-store.d.ts +32 -0
  49. package/dist/agent/snapshot-store.d.ts.map +1 -0
  50. package/dist/agent/snapshot-store.js +195 -0
  51. package/dist/agent/snapshot-store.js.map +1 -0
  52. package/dist/agent/specialist-profiles.d.ts +36 -0
  53. package/dist/agent/specialist-profiles.d.ts.map +1 -0
  54. package/dist/agent/specialist-profiles.js +159 -0
  55. package/dist/agent/specialist-profiles.js.map +1 -0
  56. package/dist/agent/subagent-specs.d.ts +4 -1
  57. package/dist/agent/subagent-specs.d.ts.map +1 -1
  58. package/dist/agent/subagent-specs.js +81 -8
  59. package/dist/agent/subagent-specs.js.map +1 -1
  60. package/dist/agent/swarm/coverage-gate.d.ts +37 -0
  61. package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
  62. package/dist/agent/swarm/coverage-gate.js +48 -0
  63. package/dist/agent/swarm/coverage-gate.js.map +1 -0
  64. package/dist/agent/swarm/executor.d.ts +1 -0
  65. package/dist/agent/swarm/executor.d.ts.map +1 -1
  66. package/dist/agent/swarm/executor.js +151 -15
  67. package/dist/agent/swarm/executor.js.map +1 -1
  68. package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
  69. package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
  70. package/dist/agent/swarm/orchestrator-prompt.js +48 -0
  71. package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
  72. package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
  73. package/dist/agent/swarm/plan-parser.js +27 -2
  74. package/dist/agent/swarm/plan-parser.js.map +1 -1
  75. package/dist/agent/swarm/types.d.ts +17 -0
  76. package/dist/agent/swarm/types.d.ts.map +1 -1
  77. package/dist/agent/swarm/types.js.map +1 -1
  78. package/dist/agent/swarm/validation-directive.d.ts +21 -0
  79. package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
  80. package/dist/agent/swarm/validation-directive.js +25 -0
  81. package/dist/agent/swarm/validation-directive.js.map +1 -0
  82. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  83. package/dist/agent/transport/tool-execution-bridge.js +4 -1
  84. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  85. package/dist/api/enterprise-routes.d.ts.map +1 -1
  86. package/dist/api/enterprise-routes.js +87 -10
  87. package/dist/api/enterprise-routes.js.map +1 -1
  88. package/dist/api/org-settings-merge.d.ts +12 -0
  89. package/dist/api/org-settings-merge.d.ts.map +1 -0
  90. package/dist/api/org-settings-merge.js +38 -0
  91. package/dist/api/org-settings-merge.js.map +1 -0
  92. package/dist/api/user-settings-merge.d.ts +16 -0
  93. package/dist/api/user-settings-merge.d.ts.map +1 -0
  94. package/dist/api/user-settings-merge.js +37 -0
  95. package/dist/api/user-settings-merge.js.map +1 -0
  96. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
  97. package/dist/app-server/daemon-lifecycle-api.js +1 -3
  98. package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
  99. package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
  100. package/dist/app-server/external-agent-import-api.js +1 -3
  101. package/dist/app-server/external-agent-import-api.js.map +1 -1
  102. package/dist/app-server/network-governance-api.d.ts.map +1 -1
  103. package/dist/app-server/network-governance-api.js +1 -3
  104. package/dist/app-server/network-governance-api.js.map +1 -1
  105. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  106. package/dist/app-server/plugin-bundle-api.js +1 -3
  107. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  108. package/dist/app-server/policy-control-api.d.ts.map +1 -1
  109. package/dist/app-server/policy-control-api.js +1 -3
  110. package/dist/app-server/policy-control-api.js.map +1 -1
  111. package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
  112. package/dist/app-server/protocol-modes-api.js +1 -3
  113. package/dist/app-server/protocol-modes-api.js.map +1 -1
  114. package/dist/cli/args.d.ts +2 -0
  115. package/dist/cli/args.d.ts.map +1 -1
  116. package/dist/cli/args.js +15 -0
  117. package/dist/cli/args.js.map +1 -1
  118. package/dist/cli/commands/a2a.d.ts.map +1 -1
  119. package/dist/cli/commands/a2a.js +1 -3
  120. package/dist/cli/commands/a2a.js.map +1 -1
  121. package/dist/cli/commands/agents.d.ts +4 -0
  122. package/dist/cli/commands/agents.d.ts.map +1 -1
  123. package/dist/cli/commands/agents.js +149 -0
  124. package/dist/cli/commands/agents.js.map +1 -1
  125. package/dist/cli/commands/mission.d.ts +4 -0
  126. package/dist/cli/commands/mission.d.ts.map +1 -0
  127. package/dist/cli/commands/mission.js +196 -0
  128. package/dist/cli/commands/mission.js.map +1 -0
  129. package/dist/cli/commands/value.d.ts +10 -0
  130. package/dist/cli/commands/value.d.ts.map +1 -0
  131. package/dist/cli/commands/value.js +33 -0
  132. package/dist/cli/commands/value.js.map +1 -0
  133. package/dist/cli/headless-protocol.d.ts.map +1 -1
  134. package/dist/cli/headless-protocol.js +1 -3
  135. package/dist/cli/headless-protocol.js.map +1 -1
  136. package/dist/cli/help.d.ts.map +1 -1
  137. package/dist/cli/help.js +10 -0
  138. package/dist/cli/help.js.map +1 -1
  139. package/dist/cli/system-prompt.d.ts.map +1 -1
  140. package/dist/cli/system-prompt.js +38 -7
  141. package/dist/cli/system-prompt.js.map +1 -1
  142. package/dist/cli-runtime.js +7756 -2800
  143. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
  144. package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
  145. package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
  146. package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
  147. package/dist/cli-tui/commands/undo-handlers.js +7 -2
  148. package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
  149. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
  150. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
  151. package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
  152. package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
  153. package/dist/codex/app-server-client.d.ts.map +1 -1
  154. package/dist/codex/app-server-client.js +1 -3
  155. package/dist/codex/app-server-client.js.map +1 -1
  156. package/dist/codex/compatibility.d.ts.map +1 -1
  157. package/dist/codex/compatibility.js +1 -3
  158. package/dist/codex/compatibility.js.map +1 -1
  159. package/dist/codex/subagent-dispatch-table.d.ts +8 -0
  160. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
  161. package/dist/codex/subagent-dispatch-table.js +23 -0
  162. package/dist/codex/subagent-dispatch-table.js.map +1 -1
  163. package/dist/context/manifest.d.ts.map +1 -1
  164. package/dist/context/manifest.js +1 -3
  165. package/dist/context/manifest.js.map +1 -1
  166. package/dist/conversation/render-model.d.ts +0 -36
  167. package/dist/conversation/render-model.d.ts.map +1 -1
  168. package/dist/conversation/render-model.js +1 -3
  169. package/dist/conversation/render-model.js.map +1 -1
  170. package/dist/customer-value/ambient-learning.d.ts +75 -0
  171. package/dist/customer-value/ambient-learning.d.ts.map +1 -0
  172. package/dist/customer-value/ambient-learning.js +472 -0
  173. package/dist/customer-value/ambient-learning.js.map +1 -0
  174. package/dist/customer-value/internal-helpers.d.ts +13 -0
  175. package/dist/customer-value/internal-helpers.d.ts.map +1 -0
  176. package/dist/customer-value/internal-helpers.js +70 -0
  177. package/dist/customer-value/internal-helpers.js.map +1 -0
  178. package/dist/customer-value/report.d.ts +282 -0
  179. package/dist/customer-value/report.d.ts.map +1 -0
  180. package/dist/customer-value/report.js +2085 -0
  181. package/dist/customer-value/report.js.map +1 -0
  182. package/dist/db/schema.d.ts +5 -1
  183. package/dist/db/schema.d.ts.map +1 -1
  184. package/dist/db/schema.js.map +1 -1
  185. package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
  186. package/dist/evalops/agent-bootstrap.js +1 -3
  187. package/dist/evalops/agent-bootstrap.js.map +1 -1
  188. package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
  189. package/dist/evalops/agent-mcp-metadata.js +1 -3
  190. package/dist/evalops/agent-mcp-metadata.js.map +1 -1
  191. package/dist/index.d.ts +1 -0
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +1 -0
  194. package/dist/index.js.map +1 -1
  195. package/dist/installers/maestro-review-workflow.d.ts +38 -0
  196. package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
  197. package/dist/installers/maestro-review-workflow.js +163 -0
  198. package/dist/installers/maestro-review-workflow.js.map +1 -0
  199. package/dist/load-env.d.ts.map +1 -1
  200. package/dist/load-env.js +2 -1
  201. package/dist/load-env.js.map +1 -1
  202. package/dist/main.d.ts.map +1 -1
  203. package/dist/main.js +92 -3
  204. package/dist/main.js.map +1 -1
  205. package/dist/mcp/config.d.ts.map +1 -1
  206. package/dist/mcp/config.js +1 -3
  207. package/dist/mcp/config.js.map +1 -1
  208. package/dist/mcp/elicitation.d.ts.map +1 -1
  209. package/dist/mcp/elicitation.js +1 -3
  210. package/dist/mcp/elicitation.js.map +1 -1
  211. package/dist/mcp/official-registry.d.ts.map +1 -1
  212. package/dist/mcp/official-registry.js +1 -3
  213. package/dist/mcp/official-registry.js.map +1 -1
  214. package/dist/mcp/workspace-trust.d.ts.map +1 -1
  215. package/dist/mcp/workspace-trust.js +1 -3
  216. package/dist/mcp/workspace-trust.js.map +1 -1
  217. package/dist/memory/service-client.d.ts.map +1 -1
  218. package/dist/memory/service-client.js +1 -3
  219. package/dist/memory/service-client.js.map +1 -1
  220. package/dist/models/config-loader.d.ts.map +1 -1
  221. package/dist/models/config-loader.js +1 -3
  222. package/dist/models/config-loader.js.map +1 -1
  223. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
  224. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  225. package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
  226. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  227. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
  228. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
  229. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
  230. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
  231. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  232. package/dist/node_modules/@evalops/tui/package.json +1 -1
  233. package/dist/oauth/connectors.d.ts.map +1 -1
  234. package/dist/oauth/connectors.js +1 -3
  235. package/dist/oauth/connectors.js.map +1 -1
  236. package/dist/oauth/evalops.d.ts.map +1 -1
  237. package/dist/oauth/evalops.js +1 -3
  238. package/dist/oauth/evalops.js.map +1 -1
  239. package/dist/platform/a2a-client.d.ts.map +1 -1
  240. package/dist/platform/a2a-client.js +1 -3
  241. package/dist/platform/a2a-client.js.map +1 -1
  242. package/dist/platform/a2a-cockpit.d.ts +1 -0
  243. package/dist/platform/a2a-cockpit.d.ts.map +1 -1
  244. package/dist/platform/a2a-cockpit.js +42 -11
  245. package/dist/platform/a2a-cockpit.js.map +1 -1
  246. package/dist/platform/a2a-completion-audit.d.ts +1 -1
  247. package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
  248. package/dist/platform/a2a-completion-audit.js +7 -11
  249. package/dist/platform/a2a-completion-audit.js.map +1 -1
  250. package/dist/platform/a2a-maestro-peer.js +16 -0
  251. package/dist/platform/a2a-maestro-peer.js.map +1 -1
  252. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
  253. package/dist/platform/a2a-peer-pairing.js +1 -3
  254. package/dist/platform/a2a-peer-pairing.js.map +1 -1
  255. package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
  256. package/dist/platform/a2a-peer-registry.js +1 -3
  257. package/dist/platform/a2a-peer-registry.js.map +1 -1
  258. package/dist/platform/a2a-task-ledger.d.ts +20 -0
  259. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  260. package/dist/platform/a2a-task-ledger.js +207 -11
  261. package/dist/platform/a2a-task-ledger.js.map +1 -1
  262. package/dist/platform/a2a-work-graph.d.ts.map +1 -1
  263. package/dist/platform/a2a-work-graph.js +1 -3
  264. package/dist/platform/a2a-work-graph.js.map +1 -1
  265. package/dist/platform/operating-layer.d.ts.map +1 -1
  266. package/dist/platform/operating-layer.js +14 -8
  267. package/dist/platform/operating-layer.js.map +1 -1
  268. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  269. package/dist/platform/tool-execution-client.js +19 -2
  270. package/dist/platform/tool-execution-client.js.map +1 -1
  271. package/dist/providers/auth.d.ts.map +1 -1
  272. package/dist/providers/auth.js +1 -3
  273. package/dist/providers/auth.js.map +1 -1
  274. package/dist/runtime/env.d.ts +9 -1
  275. package/dist/runtime/env.d.ts.map +1 -1
  276. package/dist/runtime/env.js +63 -1
  277. package/dist/runtime/env.js.map +1 -1
  278. package/dist/safety/policy.d.ts.map +1 -1
  279. package/dist/safety/policy.js +1 -4
  280. package/dist/safety/policy.js.map +1 -1
  281. package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
  282. package/dist/sandbox/docker-sandbox.js +6 -1
  283. package/dist/sandbox/docker-sandbox.js.map +1 -1
  284. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  285. package/dist/server/handlers/hosted-runner-drain.js +1 -3
  286. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  287. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
  288. package/dist/server/handlers/platform-a2a-push.js +53 -2
  289. package/dist/server/handlers/platform-a2a-push.js.map +1 -1
  290. package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
  291. package/dist/server/handlers/runtime-app-server-ws.js +1 -3
  292. package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
  293. package/dist/server/headless-runtime-service.d.ts +16 -0
  294. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  295. package/dist/server/headless-runtime-service.js +232 -206
  296. package/dist/server/headless-runtime-service.js.map +1 -1
  297. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  298. package/dist/server/hosted-agent-runtime-progress.js +12 -3
  299. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  300. package/dist/server/pending-request-payload.d.ts.map +1 -1
  301. package/dist/server/pending-request-payload.js +1 -3
  302. package/dist/server/pending-request-payload.js.map +1 -1
  303. package/dist/server/route-auth.d.ts.map +1 -1
  304. package/dist/server/route-auth.js +2 -0
  305. package/dist/server/route-auth.js.map +1 -1
  306. package/dist/server/session-serialization.d.ts.map +1 -1
  307. package/dist/server/session-serialization.js +1 -3
  308. package/dist/server/session-serialization.js.map +1 -1
  309. package/dist/services/compliance/normalize.d.ts.map +1 -1
  310. package/dist/services/compliance/normalize.js +1 -3
  311. package/dist/services/compliance/normalize.js.map +1 -1
  312. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  313. package/dist/services/intelligent-router/normalize.js +1 -3
  314. package/dist/services/intelligent-router/normalize.js.map +1 -1
  315. package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
  316. package/dist/services/revenue-attribution/normalize.js +1 -3
  317. package/dist/services/revenue-attribution/normalize.js.map +1 -1
  318. package/dist/services/traces/normalize.d.ts.map +1 -1
  319. package/dist/services/traces/normalize.js +1 -3
  320. package/dist/services/traces/normalize.js.map +1 -1
  321. package/dist/services/workspace-config/normalize.d.ts.map +1 -1
  322. package/dist/services/workspace-config/normalize.js +1 -3
  323. package/dist/services/workspace-config/normalize.js.map +1 -1
  324. package/dist/skills/composer.d.ts.map +1 -1
  325. package/dist/skills/composer.js +13 -1
  326. package/dist/skills/composer.js.map +1 -1
  327. package/dist/skills/index.d.ts +1 -0
  328. package/dist/skills/index.d.ts.map +1 -1
  329. package/dist/skills/index.js +1 -0
  330. package/dist/skills/index.js.map +1 -1
  331. package/dist/skills/learned-guidelines.d.ts +33 -0
  332. package/dist/skills/learned-guidelines.d.ts.map +1 -0
  333. package/dist/skills/learned-guidelines.js +291 -0
  334. package/dist/skills/learned-guidelines.js.map +1 -0
  335. package/dist/skills/linter.d.ts.map +1 -1
  336. package/dist/skills/linter.js +1 -3
  337. package/dist/skills/linter.js.map +1 -1
  338. package/dist/skills/runtime-activation.d.ts +1 -0
  339. package/dist/skills/runtime-activation.d.ts.map +1 -1
  340. package/dist/skills/runtime-activation.js +2 -3
  341. package/dist/skills/runtime-activation.js.map +1 -1
  342. package/dist/skills/tool.d.ts.map +1 -1
  343. package/dist/skills/tool.js +26 -21
  344. package/dist/skills/tool.js.map +1 -1
  345. package/dist/skills/trust-cache.d.ts +7 -0
  346. package/dist/skills/trust-cache.d.ts.map +1 -1
  347. package/dist/skills/trust-cache.js +16 -0
  348. package/dist/skills/trust-cache.js.map +1 -1
  349. package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
  350. package/dist/telemetry/agent-workforce-native-event.js +1 -3
  351. package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
  352. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  353. package/dist/telemetry/maestro-event-bus.js +42 -81
  354. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  355. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  356. package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
  357. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  358. package/dist/telemetry.d.ts.map +1 -1
  359. package/dist/telemetry.js +54 -43
  360. package/dist/telemetry.js.map +1 -1
  361. package/dist/theme/theme-loader.d.ts.map +1 -1
  362. package/dist/theme/theme-loader.js +1 -3
  363. package/dist/theme/theme-loader.js.map +1 -1
  364. package/dist/tools/apply-patch.d.ts.map +1 -1
  365. package/dist/tools/apply-patch.js +76 -8
  366. package/dist/tools/apply-patch.js.map +1 -1
  367. package/dist/tools/diff-preview.d.ts.map +1 -1
  368. package/dist/tools/diff-preview.js +10 -1
  369. package/dist/tools/diff-preview.js.map +1 -1
  370. package/dist/tools/edit.d.ts.map +1 -1
  371. package/dist/tools/edit.js +17 -0
  372. package/dist/tools/edit.js.map +1 -1
  373. package/dist/tools/write.d.ts.map +1 -1
  374. package/dist/tools/write.js +9 -0
  375. package/dist/tools/write.js.map +1 -1
  376. package/dist/undo/tracker.d.ts +5 -0
  377. package/dist/undo/tracker.d.ts.map +1 -1
  378. package/dist/undo/tracker.js +13 -0
  379. package/dist/undo/tracker.js.map +1 -1
  380. package/dist/utils/fs.d.ts +1 -1
  381. package/dist/utils/fs.d.ts.map +1 -1
  382. package/dist/utils/fs.js +29 -2
  383. package/dist/utils/fs.js.map +1 -1
  384. package/dist/utils/git-stash.d.ts.map +1 -1
  385. package/dist/utils/git-stash.js +15 -8
  386. package/dist/utils/git-stash.js.map +1 -1
  387. package/dist/utils/json.d.ts +11 -0
  388. package/dist/utils/json.d.ts.map +1 -1
  389. package/dist/utils/json.js +9 -0
  390. package/dist/utils/json.js.map +1 -1
  391. package/dist/utils/shell-env.d.ts.map +1 -1
  392. package/dist/utils/shell-env.js +2 -0
  393. package/dist/utils/shell-env.js.map +1 -1
  394. package/dist/utils/url-extractor-git.d.ts +26 -0
  395. package/dist/utils/url-extractor-git.d.ts.map +1 -0
  396. package/dist/utils/url-extractor-git.js +259 -0
  397. package/dist/utils/url-extractor-git.js.map +1 -0
  398. package/dist/utils/url-extractor.d.ts.map +1 -1
  399. package/dist/utils/url-extractor.js +23 -251
  400. package/dist/utils/url-extractor.js.map +1 -1
  401. package/dist/version.json +2 -2
  402. package/package.json +310 -306
  403. package/skills/incident-triage/SKILL.md +19 -1
  404. package/skills/install-code-review/SKILL.md +69 -0
  405. package/skills/security-review/SKILL.md +68 -0
  406. package/skills/security-review/reference/rubric.md +85 -0
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agent/swarm/executor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Swarm Executor\n *\n * Manages parallel execution of multiple agent instances (teammates)\n * working on tasks from a plan. Uses subprocess spawning similar to\n * the Oracle tool pattern.\n */\n\nimport { type ChildProcess, spawn } from \"node:child_process\";\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { existsSync, mkdirSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nimport { type DelegationPrompt, formatDelegation } from \"@evalops/contracts\";\nimport { codexSubagentTypeA2ASkillID } from \"../../codex/subagent-dispatch-table.js\";\nimport {\n\tbuildEvalOpsDelegationEnvironment,\n\tissueEvalOpsDelegationToken,\n} from \"../../oauth/index.js\";\nimport { rankA2ACapabilityPeers } from \"../../platform/a2a-capability-market.js\";\nimport {\n\ttype A2AServiceConfig,\n\ttype A2ATask,\n\ttype A2ATaskPushNotificationConfig,\n\tbuildA2AUserMessage,\n\tcancelA2ATask,\n\tgetA2ATask,\n\tnormalizeA2ABaseUrl,\n\tresolveA2AServiceConfig,\n\tsendA2AMessage,\n} from \"../../platform/a2a-client.js\";\nimport { a2aDelegationLaneId } from \"../../platform/a2a-completion-audit.js\";\nimport {\n\ttype ResolvedA2APeer,\n\tresolveA2APeer,\n} from \"../../platform/a2a-peer-registry.js\";\nimport {\n\textractA2ATaskText,\n\tisTerminalA2AState,\n\trecordA2ATaskStart,\n\tupdateA2ATaskInLedger,\n} from \"../../platform/a2a-task-ledger.js\";\nimport {\n\ttype PlatformAgentRegistryA2APeerCandidate,\n\tPlatformAgentStatusValue,\n\tlistA2APeerCandidatesWithPlatform,\n\tresolveAgentRegistryServiceConfig,\n} from \"../../platform/agent-registry-client.js\";\nimport { getEnvValue, trimString } from \"../../platform/client.js\";\nimport {\n\trecordA2ADelegationTelemetry as recordA2ADelegationTelemetryEvent,\n\trecordSubagentDispatch,\n} from \"../../telemetry.js\";\nimport { createLogger } from \"../../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../../utils/secret-redactor.js\";\nimport {\n\ttype AgentMode,\n\ttype ModelProvider,\n\ttype ResolvedSubagentDispatch,\n\tparseMode,\n\tresolveSubagentDispatch,\n} from \"../modes.js\";\nimport { publishSwarmRuntimeEvent } from \"./runtime-events.js\";\nimport type {\n\tSwarmA2AConfig,\n\tSwarmConfig,\n\tSwarmEvent,\n\tSwarmEventHandler,\n\tSwarmState,\n\tSwarmStatus,\n\tSwarmTask,\n\tSwarmTeammate,\n\tTeammateStatus,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent:swarm:executor\");\n\n/** Default timeout per task (5 minutes) */\nconst DEFAULT_TASK_TIMEOUT_MS = 5 * 60 * 1000;\n\n/** Maximum concurrent teammates */\nconst MAX_TEAMMATES = 10;\nconst DEFAULT_A2A_POLL_INTERVAL_MS = 2_000;\nconst DEDICATED_A2A_TOKEN_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_A2A_TOKEN\",\n\t\"MAESTRO_A2A_TOKEN\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_TOKEN\",\n\t\"AGENT_RUNTIME_SERVICE_TOKEN\",\n] as const;\nconst A2A_SKILL_PRIMARY_TASK_CLASSES = new Map<string, string>([\n\t[\"maestro.subagent.code-writer\", \"code.implementation\"],\n\t[\"maestro.subagent.code-review\", \"code.review\"],\n\t[\"maestro.subagent.test-runner\", \"test.execution\"],\n\t[\"maestro.subagent.repo-explorer\", \"repo.inspect\"],\n\t[\"maestro.subagent.release-shepherd\", \"release.follow-through\"],\n]);\nconst A2A_PUSH_TOKEN_REDACTION = \"<redacted>\";\nconst SWARM_SUBAGENT_TASK_CLASSES = new Map<string, string>([\n\t[\"coder\", \"code.implementation\"],\n\t[\"worker\", \"code.implementation\"],\n\t[\"review\", \"code.review\"],\n\t[\"reviewer\", \"code.review\"],\n\t[\"explore\", \"repo.inspect\"],\n\t[\"explorer\", \"repo.inspect\"],\n\t[\"research\", \"repo.inspect\"],\n\t[\"researcher\", \"repo.inspect\"],\n\t[\"test\", \"test.execution\"],\n\t[\"ci\", \"test.execution\"],\n\t[\"ci-monitor\", \"test.execution\"],\n\t[\"planner\", \"agent.delegation\"],\n\t[\"minimal\", \"agent.delegation\"],\n\t[\"custom\", \"agent.delegation\"],\n]);\n\n/** Teammate name prefixes for friendly identification */\nconst TEAMMATE_NAMES = [\n\t\"Alpha\",\n\t\"Beta\",\n\t\"Gamma\",\n\t\"Delta\",\n\t\"Epsilon\",\n\t\"Zeta\",\n\t\"Eta\",\n\t\"Theta\",\n\t\"Iota\",\n\t\"Kappa\",\n];\n\nconst MODEL_PROVIDERS: ModelProvider[] = [\n\t\"anthropic\",\n\t\"openai\",\n\t\"openai-codex\",\n\t\"google\",\n];\n\nfunction toSafeTaskTempBasename(taskId: string): string {\n\tconst safeId = taskId\n\t\t.replace(/[^A-Za-z0-9_-]+/g, \"_\")\n\t\t.replace(/^_+|_+$/g, \"\");\n\treturn `swarm-task-${safeId || \"task\"}.md`;\n}\n\nfunction cloneTask(task: SwarmTask): SwarmTask {\n\treturn {\n\t\t...task,\n\t\tfiles: task.files ? [...task.files] : undefined,\n\t\tdependsOn: task.dependsOn ? [...task.dependsOn] : undefined,\n\t};\n}\n\nfunction cloneTeammate(teammate: SwarmTeammate): SwarmTeammate {\n\treturn {\n\t\t...teammate,\n\t\tcurrentTask: teammate.currentTask\n\t\t\t? cloneTask(teammate.currentTask)\n\t\t\t: undefined,\n\t\tcompletedTasks: [...teammate.completedTasks],\n\t\ta2a: teammate.a2a ? { ...teammate.a2a } : undefined,\n\t};\n}\n\nfunction cloneA2APushNotificationConfig(\n\tconfig: A2ATaskPushNotificationConfig | undefined,\n\toptions: { redactSecrets?: boolean } = {},\n): A2ATaskPushNotificationConfig | undefined {\n\tif (!config) {\n\t\treturn undefined;\n\t}\n\tconst authentication = config.authentication\n\t\t? {\n\t\t\t\t...config.authentication,\n\t\t\t\t...(config.authentication.schemes\n\t\t\t\t\t? { schemes: [...config.authentication.schemes] }\n\t\t\t\t\t: {}),\n\t\t\t\t...(options.redactSecrets && config.authentication.credentials\n\t\t\t\t\t? { credentials: A2A_PUSH_TOKEN_REDACTION }\n\t\t\t\t\t: {}),\n\t\t\t}\n\t\t: undefined;\n\treturn {\n\t\t...config,\n\t\t...(authentication ? { authentication } : {}),\n\t\t...(options.redactSecrets && config.token\n\t\t\t? { token: A2A_PUSH_TOKEN_REDACTION }\n\t\t\t: {}),\n\t};\n}\n\nfunction cloneConfig(config: SwarmConfig): SwarmConfig {\n\treturn {\n\t\t...config,\n\t\ta2a: config.a2a\n\t\t\t? {\n\t\t\t\t\t...config.a2a,\n\t\t\t\t\tpeers: config.a2a.peers ? [...config.a2a.peers] : undefined,\n\t\t\t\t\t...(config.a2a.pushNotificationConfig\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tpushNotificationConfig: cloneA2APushNotificationConfig(\n\t\t\t\t\t\t\t\t\tconfig.a2a.pushNotificationConfig,\n\t\t\t\t\t\t\t\t\t{ redactSecrets: true },\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t}\n\t\t\t: undefined,\n\t\ttasks: config.tasks.map(cloneTask),\n\t};\n}\n\nfunction cloneState(state: SwarmState): SwarmState {\n\treturn {\n\t\t...state,\n\t\tconfig: cloneConfig(state.config),\n\t\tteammates: state.teammates.map(cloneTeammate),\n\t\tpendingTasks: state.pendingTasks.map(cloneTask),\n\t\tactiveTasks: new Map(state.activeTasks),\n\t\tcompletedTasks: new Set(state.completedTasks),\n\t\tfailedTasks: new Set(state.failedTasks),\n\t};\n}\n\nfunction parseModelProvider(\n\tvalue: string | undefined,\n): ModelProvider | undefined {\n\tconst provider = value?.trim();\n\tif (!provider) {\n\t\treturn undefined;\n\t}\n\treturn MODEL_PROVIDERS.includes(provider as ModelProvider)\n\t\t? (provider as ModelProvider)\n\t\t: undefined;\n}\n\nfunction parseAgentMode(value: string | undefined): AgentMode | undefined {\n\tconst mode = value?.trim();\n\tif (!mode) {\n\t\treturn undefined;\n\t}\n\treturn parseMode(mode) ?? undefined;\n}\n\nfunction providerFromPrefixedModel(\n\tmodel: string | undefined,\n): ModelProvider | undefined {\n\tconst slashIndex = model?.indexOf(\"/\") ?? -1;\n\tif (!model || slashIndex <= 0) {\n\t\treturn undefined;\n\t}\n\treturn parseModelProvider(model.slice(0, slashIndex));\n}\n\nfunction parseBooleanEnv(value: string | undefined): boolean | undefined {\n\tconst normalized = value?.trim().toLowerCase();\n\tif (!normalized) {\n\t\treturn undefined;\n\t}\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(normalized)) {\n\t\treturn true;\n\t}\n\tif ([\"0\", \"false\", \"no\", \"off\"].includes(normalized)) {\n\t\treturn false;\n\t}\n\treturn undefined;\n}\n\nfunction parsePositiveIntEnv(value: string | undefined): number | undefined {\n\tconst parsed = Number.parseInt(value ?? \"\", 10);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction parseCSVEnv(value: string | undefined): string[] | undefined {\n\tconst parsed = value\n\t\t?.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter(Boolean);\n\treturn parsed && parsed.length > 0 ? parsed : undefined;\n}\n\nfunction resolveA2APushNotificationConfig(\n\tconfigured: A2ATaskPushNotificationConfig | undefined,\n): A2ATaskPushNotificationConfig | undefined {\n\tconst url =\n\t\ttrimString(configured?.url) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_URL);\n\tif (!url) {\n\t\treturn undefined;\n\t}\n\tconst id =\n\t\ttrimString(configured?.id) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_ID);\n\tconst token =\n\t\ttrimString(configured?.token) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_TOKEN);\n\tconst base = cloneA2APushNotificationConfig(configured) ?? {};\n\treturn {\n\t\t...base,\n\t\turl,\n\t\t...(id ? { id } : {}),\n\t\t...(token ? { token } : {}),\n\t};\n}\n\nfunction a2aStateCompleted(state: string | undefined): boolean {\n\treturn /COMPLETED/u.test(\n\t\t(state ?? \"\").toUpperCase().replace(/[\\s-]+/gu, \"_\"),\n\t);\n}\n\nfunction hashA2AEndpointUrlForTelemetry(\n\turl: string | undefined,\n): string | undefined {\n\tconst trimmed = url?.trim();\n\tif (!trimmed) {\n\t\treturn undefined;\n\t}\n\tconst canonical = canonicalizeA2AEndpointUrlForTelemetry(trimmed);\n\treturn `sha256:${createHash(\"sha256\").update(canonical).digest(\"hex\")}`;\n}\n\nfunction platformA2APeerRouteName(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tendpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl),\n): string {\n\tconst configuredName =\n\t\ttrimString(candidate.agent.name) ?? trimString(candidate.agent.id);\n\tif (configuredName) {\n\t\treturn configuredName;\n\t}\n\treturn endpointHash\n\t\t? `endpoint:${endpointHash}`\n\t\t: \"platform-agent-registry-peer\";\n}\n\nfunction canonicalizeA2AEndpointUrlForTelemetry(url: string): string {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tparsed.username = \"\";\n\t\tparsed.password = \"\";\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t\tparsed.pathname = parsed.pathname.replace(/\\/+$/u, \"\") || \"/\";\n\t\treturn normalizeA2ABaseUrl(parsed.toString().replace(/\\/$/u, \"\"));\n\t} catch {\n\t\treturn normalizeA2ABaseUrl(\n\t\t\turl.replace(/[?#].*$/u, \"\").replace(/\\/+$/u, \"\"),\n\t\t);\n\t}\n}\n\nfunction a2aTerminalPhase(\n\tstate: string | undefined,\n): \"task_completed\" | \"task_failed\" | \"task_cancelled\" {\n\tconst normalized = (state ?? \"\").toUpperCase().replace(/[\\s-]+/gu, \"_\");\n\tif (normalized.includes(\"COMPLETED\")) {\n\t\treturn \"task_completed\";\n\t}\n\tif (normalized.includes(\"CANCEL\")) {\n\t\treturn \"task_cancelled\";\n\t}\n\treturn \"task_failed\";\n}\n\ntype A2ATeammateRoute = {\n\tname: string;\n\tdisplayName?: string;\n\tconfig: A2AServiceConfig;\n\tskillId?: string;\n\ttaskClass?: string;\n\trole?: string;\n\ttasksPath?: string;\n\tpeerAgentId?: string;\n\tpeerEndpointHash?: string;\n\tpeerEndpointKind?: string;\n\tsource: \"registry\" | \"platform-agent-registry\";\n};\n\ntype RemoteA2ARunningTask = {\n\troute: A2ATeammateRoute;\n\ttaskId: string;\n};\n\nfunction buildDispatchEnv(\n\tdispatch: ResolvedSubagentDispatch | null,\n\treasoningEffortOverride?: string,\n\truntimeSelection?: {\n\t\tmodel?: string;\n\t\tprovider?: string;\n\t\tsource?: string;\n\t},\n): Record<string, string> {\n\tif (!dispatch) {\n\t\treturn {};\n\t}\n\n\tconst env: Record<string, string> = {\n\t\tMAESTRO_SWARM_MODE_NAME: dispatch.mode,\n\t\tMAESTRO_SWARM_SUBAGENT_TYPE: dispatch.type,\n\t\tMAESTRO_SWARM_MODEL: runtimeSelection?.model ?? dispatch.model,\n\t\tMAESTRO_SWARM_REASONING_EFFORT:\n\t\t\treasoningEffortOverride ?? dispatch.reasoningEffort,\n\t\tMAESTRO_SWARM_DISPATCH_SOURCE: runtimeSelection?.source ?? dispatch.source,\n\t};\n\tconst provider = runtimeSelection?.provider ?? dispatch.provider;\n\tif (provider) {\n\t\tenv.MAESTRO_SWARM_MODEL_PROVIDER = provider;\n\t}\n\treturn env;\n}\n\ntype TaskDispatchResolution = {\n\tdispatch: ResolvedSubagentDispatch;\n\tstartedAt: number;\n\tlatencyMs: number;\n\tparentMode: AgentMode;\n\tparentModelProvider?: ModelProvider;\n};\n\n/**\n * SwarmExecutor manages a swarm of parallel agent instances.\n */\nexport class SwarmExecutor {\n\tprivate state: SwarmState;\n\tprivate processes: Map<string, ChildProcess> = new Map();\n\tprivate remoteA2ATasks: Map<string, RemoteA2ARunningTask> = new Map();\n\tprivate remoteA2ACancelTasks: Map<string, Promise<A2ATask | undefined>> =\n\t\tnew Map();\n\tprivate a2aRouteCursor = 0;\n\tprivate eventHandlers: Set<SwarmEventHandler> = new Set();\n\tprivate abortController: AbortController;\n\n\tconstructor(config: SwarmConfig) {\n\t\t// Validate config\n\t\tif (config.teammateCount < 1 || config.teammateCount > MAX_TEAMMATES) {\n\t\t\tthrow new Error(\n\t\t\t\t`Teammate count must be between 1 and ${MAX_TEAMMATES}, got ${config.teammateCount}`,\n\t\t\t);\n\t\t}\n\n\t\tthis.abortController = new AbortController();\n\n\t\t// Initialize state\n\t\tthis.state = {\n\t\t\tid: randomUUID(),\n\t\t\tstatus: \"initializing\",\n\t\t\tconfig,\n\t\t\tteammates: [],\n\t\t\tpendingTasks: [...config.tasks],\n\t\t\tactiveTasks: new Map(),\n\t\t\tcompletedTasks: new Set(),\n\t\t\tfailedTasks: new Set(),\n\t\t\tstartedAt: Date.now(),\n\t\t};\n\n\t\t// Create teammates\n\t\tfor (let i = 0; i < config.teammateCount; i++) {\n\t\t\tthis.state.teammates.push({\n\t\t\t\tid: randomUUID(),\n\t\t\t\tname: TEAMMATE_NAMES[i] || `Teammate-${i + 1}`,\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tcompletedTasks: [],\n\t\t\t});\n\t\t}\n\n\t\tlogger.info(\"Swarm initialized\", {\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateCount: config.teammateCount,\n\t\t\ttaskCount: config.tasks.length,\n\t\t});\n\t}\n\n\t/**\n\t * Subscribe to swarm events.\n\t */\n\tonEvent(handler: SwarmEventHandler): () => void {\n\t\tthis.eventHandlers.add(handler);\n\t\treturn () => this.eventHandlers.delete(handler);\n\t}\n\n\t/**\n\t * Emit an event to all handlers.\n\t */\n\tprivate emit(event: SwarmEvent): void {\n\t\tpublishSwarmRuntimeEvent({\n\t\t\tevent,\n\t\t\tparentSessionId: this.state.config.parentSessionId,\n\t\t\tcwd: this.state.config.cwd,\n\t\t\tplanFile: this.state.config.planFile,\n\t\t});\n\t\tfor (const handler of this.eventHandlers) {\n\t\t\ttry {\n\t\t\t\thandler(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Event handler error\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get the current swarm state.\n\t */\n\tgetState(): SwarmState {\n\t\treturn cloneState(this.state);\n\t}\n\n\t/**\n\t * Cancel the swarm execution.\n\t */\n\tcancel(): void {\n\t\tconst remoteTasks = [...this.remoteA2ATasks.entries()];\n\t\tfor (const [teammateId, remoteTask] of remoteTasks) {\n\t\t\tvoid this.cancelRemoteA2ATask(teammateId, remoteTask);\n\t\t}\n\n\t\tthis.abortController.abort();\n\t\tthis.state.status = \"cancelled\";\n\n\t\t// Kill all running processes\n\t\tfor (const [teammateId, proc] of this.processes) {\n\t\t\ttry {\n\t\t\t\tproc.kill(\"SIGTERM\");\n\t\t\t} catch {\n\t\t\t\t// Process may already be dead\n\t\t\t}\n\t\t\tconst teammate = this.state.teammates.find((t) => t.id === teammateId);\n\t\t\tif (teammate) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t}\n\t\t}\n\n\t\tfor (const teammate of this.state.teammates) {\n\t\t\tif (teammate.status === \"running\" || teammate.currentTask) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t\tteammate.completedAt = Date.now();\n\t\t\t}\n\t\t}\n\n\t\tthis.state.activeTasks.clear();\n\t\tthis.processes.clear();\n\t\tlogger.info(\"Swarm cancelled\", { swarmId: this.state.id });\n\t}\n\n\tprivate async cancelRemoteA2ATask(\n\t\tteammateId: string,\n\t\tremoteTask: RemoteA2ARunningTask,\n\t): Promise<A2ATask | undefined> {\n\t\tconst existingCancel = this.remoteA2ACancelTasks.get(teammateId);\n\t\tif (existingCancel) {\n\t\t\treturn existingCancel;\n\t\t}\n\t\tconst cancelTask = (async () => {\n\t\t\ttry {\n\t\t\t\tconst cancelledTask = await cancelA2ATask(\n\t\t\t\t\tremoteTask.route.config,\n\t\t\t\t\tremoteTask.taskId,\n\t\t\t\t);\n\t\t\t\tawait this.updateA2ASwarmTaskLedger(remoteTask.route, cancelledTask);\n\t\t\t\treturn cancelledTask;\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to cancel remote A2A swarm task\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId,\n\t\t\t\t\tremoteTaskId: remoteTask.taskId,\n\t\t\t\t\tpeer: remoteTask.route.name,\n\t\t\t\t});\n\t\t\t\treturn undefined;\n\t\t\t} finally {\n\t\t\t\tthis.remoteA2ATasks.delete(teammateId);\n\t\t\t}\n\t\t})();\n\t\tthis.remoteA2ACancelTasks.set(teammateId, cancelTask);\n\t\treturn cancelTask;\n\t}\n\n\t/**\n\t * Execute the swarm - runs all tasks with available teammates.\n\t */\n\tasync execute(): Promise<SwarmState> {\n\t\tthis.state.status = \"running\";\n\t\tthis.emit({\n\t\t\ttype: \"swarm_start\",\n\t\t\tswarmId: this.state.id,\n\t\t\tconfig: cloneConfig(this.state.config),\n\t\t});\n\n\t\ttry {\n\t\t\t// Sort tasks by priority (higher first) and dependencies\n\t\t\tthis.state.pendingTasks.sort(\n\t\t\t\t(a, b) => (b.priority ?? 0) - (a.priority ?? 0),\n\t\t\t);\n\n\t\t\t// Main execution loop\n\t\t\twhile (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0)\n\t\t\t) {\n\t\t\t\tthis.skipTasksBlockedByFailedDependencies();\n\n\t\t\t\t// Assign tasks to idle teammates\n\t\t\t\tawait this.assignTasks();\n\n\t\t\t\t// Wait for any task to complete\n\t\t\t\tif (this.state.activeTasks.size > 0) {\n\t\t\t\t\tawait this.waitForAnyCompletion();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Determine final status\n\t\t\t// Note: status may have been changed to \"cancelled\" asynchronously via cancel()\n\t\t\tconst finalStatus = this.state.status as SwarmStatus;\n\t\t\tif (\n\t\t\t\tthis.state.failedTasks.size > 0 &&\n\t\t\t\t!this.state.config.continueOnFailure\n\t\t\t) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t\tthis.state.error = `${this.state.failedTasks.size} task(s) failed`;\n\t\t\t} else if (finalStatus !== \"cancelled\") {\n\t\t\t\tthis.state.status = \"completed\";\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.state.status = \"failed\";\n\t\t\tthis.state.error = error instanceof Error ? error.message : String(error);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"swarm_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\terror: this.state.error,\n\t\t\t});\n\t\t}\n\n\t\tthis.state.completedAt = Date.now();\n\t\tthis.emit({\n\t\t\ttype: \"swarm_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tstate: cloneState(this.state),\n\t\t});\n\n\t\tlogger.info(\"Swarm execution complete\", {\n\t\t\tswarmId: this.state.id,\n\t\t\tstatus: this.state.status,\n\t\t\tcompleted: this.state.completedTasks.size,\n\t\t\tfailed: this.state.failedTasks.size,\n\t\t\tduration: this.state.completedAt - this.state.startedAt,\n\t\t});\n\n\t\treturn cloneState(this.state);\n\t}\n\n\t/**\n\t * Assign pending tasks to idle teammates.\n\t */\n\tprivate async assignTasks(): Promise<void> {\n\t\tconst idleTeammates = this.state.teammates.filter(\n\t\t\t(t) => t.status === \"pending\" || t.status === \"completed\",\n\t\t);\n\t\tconst spawnPromises: Promise<void>[] = [];\n\n\t\tfor (const teammate of idleTeammates) {\n\t\t\tconst task = this.getNextTask();\n\t\t\tif (!task) break;\n\n\t\t\t// Update state\n\t\t\tteammate.status = \"running\";\n\t\t\tteammate.currentTask = task;\n\t\t\tteammate.startedAt = Date.now();\n\t\t\tthis.state.activeTasks.set(task.id, teammate.id);\n\n\t\t\t// Remove from pending\n\t\t\tconst pendingIdx = this.state.pendingTasks.findIndex(\n\t\t\t\t(t) => t.id === task.id,\n\t\t\t);\n\t\t\tif (pendingIdx >= 0) {\n\t\t\t\tthis.state.pendingTasks.splice(pendingIdx, 1);\n\t\t\t}\n\n\t\t\tthis.emit({ type: \"teammate_spawn\", swarmId: this.state.id, teammate });\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_start\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttask,\n\t\t\t});\n\n\t\t\t// Spawn the agent process\n\t\t\tspawnPromises.push(this.spawnTeammate(teammate, task));\n\t\t}\n\n\t\tif (spawnPromises.length > 0) {\n\t\t\tawait Promise.all(spawnPromises);\n\t\t}\n\t}\n\n\t/**\n\t * Get the next task that can be executed (dependencies satisfied).\n\t */\n\tprivate getNextTask(): SwarmTask | null {\n\t\tfor (const task of this.state.pendingTasks) {\n\t\t\t// Check dependencies\n\t\t\tif (task.dependsOn && task.dependsOn.length > 0) {\n\t\t\t\tconst allDepsCompleted = task.dependsOn.every((depId) =>\n\t\t\t\t\tthis.state.completedTasks.has(depId),\n\t\t\t\t);\n\t\t\t\tif (!allDepsCompleted) continue;\n\t\t\t}\n\t\t\treturn task;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate skipTasksBlockedByFailedDependencies(): void {\n\t\tconst blockedTasks = this.state.pendingTasks.filter((task) =>\n\t\t\ttask.dependsOn?.some((depId) => this.state.failedTasks.has(depId)),\n\t\t);\n\t\tfor (const task of blockedTasks) {\n\t\t\tconst pendingIndex = this.state.pendingTasks.findIndex(\n\t\t\t\t(candidate) => candidate.id === task.id,\n\t\t\t);\n\t\t\tif (pendingIndex >= 0) {\n\t\t\t\tthis.state.pendingTasks.splice(pendingIndex, 1);\n\t\t\t}\n\t\t\tthis.state.failedTasks.add(task.id);\n\t\t\tconst failedDependency = task.dependsOn?.find((depId) =>\n\t\t\t\tthis.state.failedTasks.has(depId),\n\t\t\t);\n\t\t\tconst error = `Dependency ${failedDependency ?? \"unknown\"} failed`;\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: \"dependency\",\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror,\n\t\t\t});\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Spawn a subprocess agent for a teammate.\n\t */\n\tprivate async buildTeammateEnv(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tdispatch: ResolvedSubagentDispatch | null,\n\t\truntimeSelection?: {\n\t\t\tmodel?: string;\n\t\t\tprovider?: string;\n\t\t\tsource?: string;\n\t\t},\n\t): Promise<Record<string, string>> {\n\t\tconst baseEnv: Record<string, string> = {\n\t\t\t...process.env,\n\t\t\tMAESTRO_SWARM_MODE: \"1\",\n\t\t\tMAESTRO_SWARM_ID: this.state.id,\n\t\t\tMAESTRO_TEAMMATE_ID: teammate.id,\n\t\t\t...buildDispatchEnv(\n\t\t\t\tdispatch,\n\t\t\t\tthis.state.config.reasoningEffort,\n\t\t\t\truntimeSelection,\n\t\t\t),\n\t\t};\n\n\t\ttry {\n\t\t\tconst delegation = await issueEvalOpsDelegationToken({\n\t\t\t\tagentId: teammate.id,\n\t\t\t\tagentType: \"swarm_teammate\",\n\t\t\t\tcapabilities: [\"swarm_task\"],\n\t\t\t\trunId: `${this.state.id}:${task.id}`,\n\t\t\t\tsurface: \"maestro-swarm\",\n\t\t\t\ttoken: process.env.MAESTRO_EVALOPS_ACCESS_TOKEN,\n\t\t\t\tttlSeconds: Math.max(\n\t\t\t\t\t60,\n\t\t\t\t\tMath.ceil(\n\t\t\t\t\t\t(this.state.config.taskTimeout ?? DEFAULT_TASK_TIMEOUT_MS) / 1000,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\t...baseEnv,\n\t\t\t\t...buildEvalOpsDelegationEnvironment(delegation),\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tif (\n\t\t\t\tmessage.includes(\"Run /login evalops first\") ||\n\t\t\t\tmessage.includes(\"EvalOps login requires\")\n\t\t\t) {\n\t\t\t\treturn baseEnv;\n\t\t\t}\n\t\t\tlogger.warn(\n\t\t\t\t\"Failed to issue delegated EvalOps token for swarm teammate; using inherited auth\",\n\t\t\t\t{\n\t\t\t\t\terror: message,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn baseEnv;\n\t\t}\n\t}\n\n\tprivate resolveTaskDispatch(\n\t\ttask: SwarmTask,\n\t\tteammate: SwarmTeammate,\n\t\toptions: { hasModelOverride?: boolean } = {},\n\t): TaskDispatchResolution | null {\n\t\tconst startedAt = Date.now();\n\t\tconst subagentType = task.subagentType ?? this.state.config.subagentType;\n\t\tif (!subagentType) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst mode = this.resolveParentMode();\n\t\tconst parentProvider = this.resolveParentModelProvider();\n\t\tconst dispatch = resolveSubagentDispatch(\n\t\t\tmode,\n\t\t\tsubagentType,\n\t\t\tparentProvider ?? \"openai-codex\",\n\t\t);\n\t\tif (!parentProvider && dispatch.modelTier && !options.hasModelOverride) {\n\t\t\tthis.recordTaskDispatch(\n\t\t\t\ttask,\n\t\t\t\tdispatch,\n\t\t\t\tMath.max(0, Date.now() - startedAt),\n\t\t\t\tfalse,\n\t\t\t\t{\n\t\t\t\t\tparentMode: mode,\n\t\t\t\t\tparentModelProvider: parentProvider,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\treason: \"missing_parent_model_provider\",\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tdispatch,\n\t\t\tstartedAt,\n\t\t\tlatencyMs: Math.max(0, Date.now() - startedAt),\n\t\t\tparentMode: mode,\n\t\t\tparentModelProvider: parentProvider,\n\t\t};\n\t}\n\n\tprivate recordTaskDispatch(\n\t\ttask: SwarmTask,\n\t\tdispatch: ResolvedSubagentDispatch,\n\t\tlatencyMs: number,\n\t\tsuccess: boolean,\n\t\toptions: {\n\t\t\tparentMode: AgentMode;\n\t\t\tparentModelProvider?: ModelProvider;\n\t\t\tteammateId?: string;\n\t\t\tmodel?: string;\n\t\t\tprovider?: string;\n\t\t\tsource?: string;\n\t\t\tmodelOverride?: \"task\" | \"config\";\n\t\t\treason?: string;\n\t\t},\n\t): void {\n\t\trecordSubagentDispatch({\n\t\t\tmode: dispatch.mode,\n\t\t\tsubagentType: dispatch.type,\n\t\t\tmodel: options.model ?? dispatch.model,\n\t\t\tprovider: options.provider ?? dispatch.provider,\n\t\t\treasoningEffort:\n\t\t\t\tthis.state.config.reasoningEffort ?? dispatch.reasoningEffort,\n\t\t\tlatencyMs,\n\t\t\tsuccess,\n\t\t\tsource: options.source ?? dispatch.source,\n\t\t\tmetadata: {\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: options.teammateId,\n\t\t\t\ttaskId: task.id,\n\t\t\t\tparentMode: options.parentMode,\n\t\t\t\tparentModelProvider: options.parentModelProvider,\n\t\t\t\tdispatchModel: dispatch.model,\n\t\t\t\tdispatchProvider: dispatch.provider,\n\t\t\t\tdispatchSource: dispatch.source,\n\t\t\t\tmodelTier: dispatch.modelTier,\n\t\t\t\tmodelOverride: options.modelOverride,\n\t\t\t\treason: options.reason,\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate resolveParentMode(): AgentMode {\n\t\treturn (\n\t\t\tthis.state.config.mode ??\n\t\t\tparseAgentMode(process.env.MAESTRO_MODE) ??\n\t\t\t\"smart\"\n\t\t);\n\t}\n\n\tprivate resolveParentModelProvider(): ModelProvider | undefined {\n\t\treturn (\n\t\t\tthis.state.config.modelProvider ??\n\t\t\tparseModelProvider(process.env.MAESTRO_MODEL_PROVIDER) ??\n\t\t\tproviderFromPrefixedModel(process.env.MAESTRO_MODEL)\n\t\t);\n\t}\n\n\tprivate resolveA2AConfig(): SwarmA2AConfig | null {\n\t\tconst transport =\n\t\t\tthis.state.config.transport ??\n\t\t\ttrimString(process.env.MAESTRO_SWARM_TRANSPORT);\n\t\tif (transport !== \"a2a\") {\n\t\t\treturn null;\n\t\t}\n\t\tconst configured = this.state.config.a2a ?? {};\n\t\tconst peers =\n\t\t\tconfigured.peers ?? parseCSVEnv(getEnvValue([\"MAESTRO_SWARM_A2A_PEERS\"]));\n\t\treturn {\n\t\t\t...configured,\n\t\t\t...(peers ? { peers } : {}),\n\t\t\tregistryPath:\n\t\t\t\tconfigured.registryPath ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_REGISTRY),\n\t\t\ttasksPath:\n\t\t\t\tconfigured.tasksPath ?? trimString(process.env.MAESTRO_SWARM_A2A_TASKS),\n\t\t\tskillId:\n\t\t\t\tconfigured.skillId ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_SKILL_ID),\n\t\t\trole: configured.role ?? trimString(process.env.MAESTRO_SWARM_A2A_ROLE),\n\t\t\tdiscover:\n\t\t\t\tconfigured.discover ??\n\t\t\t\tparseBooleanEnv(process.env.MAESTRO_SWARM_A2A_DISCOVER),\n\t\t\tworkspaceId:\n\t\t\t\tconfigured.workspaceId ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_WORKSPACE_ID),\n\t\t\tcapability:\n\t\t\t\tconfigured.capability ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_CAPABILITY),\n\t\t\tsurface:\n\t\t\t\tconfigured.surface ?? trimString(process.env.MAESTRO_SWARM_A2A_SURFACE),\n\t\t\tpreferInternalEndpoint:\n\t\t\t\tconfigured.preferInternalEndpoint ??\n\t\t\t\tparseBooleanEnv(process.env.MAESTRO_SWARM_A2A_PREFER_INTERNAL),\n\t\t\tlimit:\n\t\t\t\tconfigured.limit ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_LIMIT),\n\t\t\ttimeoutMs:\n\t\t\t\tconfigured.timeoutMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_TIMEOUT_MS),\n\t\t\tmaxAttempts:\n\t\t\t\tconfigured.maxAttempts ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_MAX_ATTEMPTS),\n\t\t\tmaxWaitMs:\n\t\t\t\tconfigured.maxWaitMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_MAX_WAIT_MS),\n\t\t\tpollIntervalMs:\n\t\t\t\tconfigured.pollIntervalMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_POLL_INTERVAL_MS),\n\t\t\tpushNotificationConfig: resolveA2APushNotificationConfig(\n\t\t\t\tconfigured.pushNotificationConfig,\n\t\t\t),\n\t\t};\n\t}\n\n\tprivate async resolveA2ATeammateRoute(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATeammateRoute> {\n\t\tif (options.discover) {\n\t\t\treturn this.resolvePlatformDiscoveredA2ATeammateRoute(\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\toptions,\n\t\t\t);\n\t\t}\n\t\tconst peerName = this.selectA2APeerName(teammate, task, options);\n\t\tconst peer = await resolveA2APeer(peerName, {\n\t\t\tpath: options.registryPath,\n\t\t\ttimeoutMs: options.timeoutMs,\n\t\t\tmaxAttempts: options.maxAttempts,\n\t\t});\n\t\tconst skillId = this.resolveA2ASkillId(task, options, peer);\n\t\treturn {\n\t\t\tname: peer.name,\n\t\t\tdisplayName: peer.entry.displayName,\n\t\t\tconfig: peer.config,\n\t\t\tskillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, skillId),\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\n\t\t\tpeerEndpointHash: hashA2AEndpointUrlForTelemetry(peer.config.baseUrl),\n\t\t\tsource: \"registry\",\n\t\t};\n\t}\n\n\tprivate async resolvePlatformDiscoveredA2ATeammateRoute(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATeammateRoute> {\n\t\tconst skillId = this.resolveA2ASkillId(task, options);\n\t\tconst pinnedPeer = trimString(task.a2aPeer);\n\t\tconst routeIndex = pinnedPeer ? 0 : this.nextA2ARouteIndex();\n\t\tconst candidates = await listA2APeerCandidatesWithPlatform({\n\t\t\tworkspaceId: options.workspaceId,\n\t\t\tcapability: options.capability,\n\t\t\tsurface: options.surface ?? \"a2a\",\n\t\t\tstatus: PlatformAgentStatusValue.Idle,\n\t\t\tlimit:\n\t\t\t\toptions.limit ??\n\t\t\t\t(pinnedPeer ? undefined : this.defaultA2ADiscoveryLimit()),\n\t\t\tskillId,\n\t\t\tpreferInternalEndpoint: options.preferInternalEndpoint,\n\t\t});\n\t\tif (!candidates || candidates.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peers available for swarm task ${task.id}${\n\t\t\t\t\tskillId ? ` with skill ${skillId}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\tconst candidatePool = pinnedPeer\n\t\t\t? candidates.filter((candidate) =>\n\t\t\t\t\tplatformA2ACandidateMatchesPeer(candidate, pinnedPeer),\n\t\t\t\t)\n\t\t\t: candidates;\n\t\tif (candidatePool.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peer matched task ${task.id} a2aPeer ${pinnedPeer}`,\n\t\t\t);\n\t\t}\n\t\tconst rankedCandidates = rankA2ACapabilityPeers(candidatePool, {\n\t\t\tskillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, skillId),\n\t\t\tpreferInternalEndpoint: options.preferInternalEndpoint,\n\t\t});\n\t\tif (rankedCandidates.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peer satisfied capability policy for swarm task ${task.id}${\n\t\t\t\t\tskillId ? ` with skill ${skillId}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\tconst candidateIndex = pinnedPeer\n\t\t\t? 0\n\t\t\t: routeIndex % rankedCandidates.length;\n\t\tconst ranked = rankedCandidates[candidateIndex];\n\t\tconst candidate = ranked?.candidate;\n\t\tif (!candidate || !ranked) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform A2A peer discovery returned an invalid candidate\",\n\t\t\t);\n\t\t}\n\t\tlogger.info(\"Selected Platform A2A peer through capability market\", {\n\t\t\tswarmId: this.state.id,\n\t\t\ttaskId: task.id,\n\t\t\tagentId: candidate.agent.id,\n\t\t\tscore: ranked.score,\n\t\t\treasons: ranked.reasons,\n\t\t\tskillId: ranked.selectedSkill?.id ?? skillId,\n\t\t});\n\t\tconst config = await this.a2aConfigForPlatformCandidate(candidate, options);\n\t\tconst selectedSkillId = ranked.selectedSkill?.id ?? skillId;\n\t\tconst endpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl);\n\t\tconst routeName = platformA2APeerRouteName(candidate, endpointHash);\n\t\treturn {\n\t\t\tname: routeName,\n\t\t\tdisplayName: candidate.agent.name,\n\t\t\tconfig,\n\t\t\tskillId: selectedSkillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, selectedSkillId),\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\n\t\t\tpeerAgentId: candidate.agent.id,\n\t\t\tpeerEndpointHash: endpointHash,\n\t\t\tpeerEndpointKind: candidate.endpointKind,\n\t\t\tsource: \"platform-agent-registry\",\n\t\t};\n\t}\n\n\tprivate async a2aConfigForPlatformCandidate(\n\t\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2AServiceConfig> {\n\t\tconst platformConfig = await resolveAgentRegistryServiceConfig();\n\t\tif (!platformConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform Agent Registry service is not configured for A2A swarm discovery\",\n\t\t\t);\n\t\t}\n\t\tconst candidateAgentId = trimString(candidate.agent.id);\n\t\tconst registryTokenFallback = getEnvValue(DEDICATED_A2A_TOKEN_ENV_VARS)\n\t\t\t? undefined\n\t\t\t: platformConfig.token;\n\t\tconst serviceConfig = await resolveA2AServiceConfig({\n\t\t\tbaseUrl: normalizeA2ABaseUrl(candidate.endpointUrl),\n\t\t\ttoken: registryTokenFallback,\n\t\t\torganizationId: platformConfig.organizationId,\n\t\t\tworkspaceId:\n\t\t\t\tcandidate.agent.workspaceId ??\n\t\t\t\toptions.workspaceId ??\n\t\t\t\tplatformConfig.workspaceId,\n\t\t\t...(candidateAgentId ? { agentId: candidateAgentId } : {}),\n\t\t\tactorId: \"maestro-swarm\",\n\t\t\ttimeoutMs: options.timeoutMs ?? platformConfig.timeoutMs,\n\t\t\tmaxAttempts: options.maxAttempts ?? platformConfig.maxAttempts,\n\t\t});\n\t\tif (!serviceConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform A2A peer discovery requires a workspace id for the selected peer\",\n\t\t\t);\n\t\t}\n\t\tif (!candidateAgentId) {\n\t\t\tconst { agentId: _defaultAgentId, ...anonymousServiceConfig } =\n\t\t\t\tserviceConfig;\n\t\t\treturn anonymousServiceConfig;\n\t\t}\n\t\treturn serviceConfig;\n\t}\n\n\tprivate selectA2APeerName(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): string {\n\t\tconst peerName = trimString(task.a2aPeer);\n\t\tif (peerName) {\n\t\t\treturn peerName;\n\t\t}\n\t\tconst peers = options.peers ?? [];\n\t\tconst selected = peers[this.nextA2ARouteIndex() % peers.length];\n\t\tif (!selected) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Remote A2A swarm transport requires a task a2aPeer, a2a.peers, MAESTRO_SWARM_A2A_PEERS, or a2a.discover=true\",\n\t\t\t);\n\t\t}\n\t\treturn selected;\n\t}\n\n\tprivate resolveA2ASkillId(\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t\tpeer?: ResolvedA2APeer,\n\t): string | undefined {\n\t\tconst configured =\n\t\t\ttrimString(task.a2aSkillId) ??\n\t\t\ttrimString(options.skillId) ??\n\t\t\tcodexSubagentTypeA2ASkillID(\n\t\t\t\ttask.subagentType ?? this.state.config.subagentType,\n\t\t\t);\n\t\tif (configured) {\n\t\t\treturn configured;\n\t\t}\n\t\treturn peer?.entry.skills?.[0]?.id;\n\t}\n\n\tprivate resolveA2ATaskClass(\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t\tskillId: string | undefined,\n\t): string | undefined {\n\t\tconst mappedSkillTaskClass = skillId\n\t\t\t? A2A_SKILL_PRIMARY_TASK_CLASSES.get(skillId)\n\t\t\t: undefined;\n\t\tif (mappedSkillTaskClass) {\n\t\t\treturn mappedSkillTaskClass;\n\t\t}\n\t\tif (\n\t\t\tskillId &&\n\t\t\t(trimString(task.a2aSkillId) || trimString(options.skillId))\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst subagentType = trimString(\n\t\t\ttask.subagentType ?? this.state.config.subagentType,\n\t\t);\n\t\treturn (\n\t\t\t(subagentType\n\t\t\t\t? SWARM_SUBAGENT_TASK_CLASSES.get(subagentType)\n\t\t\t\t: undefined) ?? subagentType\n\t\t);\n\t}\n\n\tprivate teammateIndex(teammate: SwarmTeammate): number {\n\t\tconst index = this.state.teammates.findIndex(\n\t\t\t(item) => item.id === teammate.id,\n\t\t);\n\t\treturn index >= 0 ? index : 0;\n\t}\n\n\tprivate nextA2ARouteIndex(): number {\n\t\tconst index = this.a2aRouteCursor;\n\t\tthis.a2aRouteCursor += 1;\n\t\treturn index;\n\t}\n\n\tprivate defaultA2ADiscoveryLimit(): number {\n\t\treturn Math.max(\n\t\t\t1,\n\t\t\tthis.state.config.teammateCount,\n\t\t\tthis.state.config.tasks.length,\n\t\t);\n\t}\n\n\tprivate async spawnTeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t): Promise<void> {\n\t\tconst tmpFile = join(\n\t\t\ttmpdir(),\n\t\t\t`${this.state.id}-${toSafeTaskTempBasename(task.id)}`,\n\t\t);\n\n\t\tconst delegationPrompt: DelegationPrompt = {\n\t\t\tgoal: `Complete swarm task ${task.id} as teammate \"${teammate.name}\".`,\n\t\t\tcontext: `You are teammate \"${teammate.name}\" in swarm ${this.state.id}, working from plan file ${this.state.config.planFile}.`,\n\t\t\ttask: task.prompt,\n\t\t\tevidence: task.files?.length\n\t\t\t\t? task.files.map((file) => `Relevant file: ${file}`)\n\t\t\t\t: [],\n\t\t\tvalidation:\n\t\t\t\t\"Make the requested changes directly, add or update focused tests when behavior changes, and run the relevant verification before finishing.\",\n\t\t\tstoppingCondition:\n\t\t\t\t\"Stop when the assigned task is complete and report what changed, what you verified, and any blockers. Do not broaden into unrelated tasks.\",\n\t\t};\n\t\tconst prompt = formatDelegation(delegationPrompt);\n\n\t\twriteFileSync(tmpFile, prompt);\n\n\t\tconst a2aConfig = this.resolveA2AConfig();\n\t\tif (a2aConfig) {\n\t\t\tvoid this.spawnA2ATeammate(teammate, task, prompt, tmpFile, a2aConfig);\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelOverride =\n\t\t\ttask.model !== undefined\n\t\t\t\t? \"task\"\n\t\t\t\t: this.state.config.model !== undefined\n\t\t\t\t\t? \"config\"\n\t\t\t\t\t: undefined;\n\t\tconst hasModelOverride = Boolean(modelOverride);\n\t\tconst dispatchResolution = this.resolveTaskDispatch(task, teammate, {\n\t\t\thasModelOverride,\n\t\t});\n\t\tconst dispatch = dispatchResolution?.dispatch ?? null;\n\t\tconst model = task.model ?? this.state.config.model ?? dispatch?.model;\n\t\tconst overrideProvider = hasModelOverride\n\t\t\t? (providerFromPrefixedModel(model) ?? \"unknown\")\n\t\t\t: undefined;\n\t\tconst telemetryProvider =\n\t\t\toverrideProvider ?? (hasModelOverride ? \"unknown\" : dispatch?.provider);\n\t\tconst dispatchSource = hasModelOverride ? \"override\" : dispatch?.source;\n\t\tconst provider = hasModelOverride ? undefined : dispatch?.provider;\n\t\tconst args = [\n\t\t\t\"--no-session\",\n\t\t\t...(provider ? [\"--provider\", provider] : []),\n\t\t\t...(model ? [\"--model\", model] : []),\n\t\t\t\"exec\",\n\t\t\ttmpFile,\n\t\t];\n\t\tconst env = await this.buildTeammateEnv(\n\t\t\tteammate,\n\t\t\ttask,\n\t\t\tdispatch,\n\t\t\tdispatch\n\t\t\t\t? {\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tprovider: telemetryProvider,\n\t\t\t\t\t\tsource: dispatchSource,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t);\n\n\t\tif (\n\t\t\tthis.state.status !== \"running\" ||\n\t\t\tthis.abortController.signal.aborted\n\t\t) {\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tthis.state.activeTasks.delete(task.id);\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.completedAt = Date.now();\n\n\t\t\tif (teammate.status !== \"cancelled\") {\n\t\t\t\tteammate.status =\n\t\t\t\t\tthis.state.status === \"failed\" ? \"failed\" : \"cancelled\";\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst proc = spawn(\"maestro\", args, {\n\t\t\tcwd: this.state.config.cwd,\n\t\t\tstdio: [\"pipe\", \"pipe\", \"pipe\"],\n\t\t\tenv,\n\t\t});\n\n\t\tteammate.pid = proc.pid;\n\t\tthis.processes.set(teammate.id, proc);\n\n\t\tlet dispatchRecorded = false;\n\t\tconst recordDispatchOutcome = (success: boolean, reason?: string): void => {\n\t\t\tif (!dispatch || !dispatchResolution || dispatchRecorded) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdispatchRecorded = true;\n\t\t\tthis.recordTaskDispatch(\n\t\t\t\ttask,\n\t\t\t\tdispatch,\n\t\t\t\tMath.max(0, Date.now() - dispatchResolution.startedAt),\n\t\t\t\tsuccess,\n\t\t\t\t{\n\t\t\t\t\tparentMode: dispatchResolution.parentMode,\n\t\t\t\t\tparentModelProvider: dispatchResolution.parentModelProvider,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\tmodel,\n\t\t\t\t\tprovider: telemetryProvider,\n\t\t\t\t\tsource: dispatchSource,\n\t\t\t\t\tmodelOverride,\n\t\t\t\t\treason,\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\tproc.once(\"spawn\", () => {\n\t\t\trecordDispatchOutcome(true);\n\t\t});\n\n\t\tlet output = \"\";\n\t\tlet errorOutput = \"\";\n\n\t\tproc.stdout?.on(\"data\", (data) => {\n\t\t\toutput += data.toString();\n\t\t});\n\n\t\tproc.stderr?.on(\"data\", (data) => {\n\t\t\terrorOutput += data.toString();\n\t\t});\n\n\t\tconst timeout = this.state.config.taskTimeout ?? DEFAULT_TASK_TIMEOUT_MS;\n\t\tconst timeoutHandle = setTimeout(() => {\n\t\t\tproc.kill(\"SIGTERM\");\n\t\t\tteammate.error = \"Task timed out\";\n\t\t}, timeout);\n\n\t\tproc.on(\"close\", (code) => {\n\t\t\tclearTimeout(timeoutHandle);\n\t\t\tthis.processes.delete(teammate.id);\n\n\t\t\t// Cleanup temp file\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tconst taskId = task.id;\n\t\t\tteammate.completedAt = Date.now();\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.output = output;\n\n\t\t\tthis.state.activeTasks.delete(taskId);\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tteammate.status === \"cancelled\"\n\t\t\t) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammate,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (code === 0 && !teammate.error) {\n\t\t\t\tteammate.status = \"completed\";\n\t\t\t\tteammate.completedTasks.push(taskId);\n\t\t\t\tthis.state.completedTasks.add(taskId);\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"task_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\ttaskId,\n\t\t\t\t\toutput,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tteammate.status = \"failed\";\n\t\t\t\tteammate.error = teammate.error || errorOutput || `Exit code ${code}`;\n\t\t\t\tthis.state.failedTasks.add(taskId);\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"task_fail\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\ttaskId,\n\t\t\t\t\terror: teammate.error,\n\t\t\t\t});\n\n\t\t\t\t// Stop swarm if not continuing on failure\n\t\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\t\tthis.state.status = \"failed\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\n\t\t\t// Only recycle idle teammates while the swarm still has work left.\n\t\t\tif (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 ||\n\t\t\t\t\tthis.state.activeTasks.size > 0) &&\n\t\t\t\t(teammate.status === \"completed\" || this.state.config.continueOnFailure)\n\t\t\t) {\n\t\t\t\tteammate.status = \"pending\";\n\t\t\t\tteammate.error = undefined;\n\t\t\t}\n\t\t});\n\n\t\tproc.on(\"error\", (err) => {\n\t\t\trecordDispatchOutcome(false, \"spawn_error\");\n\t\t\tclearTimeout(timeoutHandle);\n\t\t\tthis.processes.delete(teammate.id);\n\t\t\tthis.state.activeTasks.delete(task.id);\n\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tteammate.completedAt = Date.now();\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.output = output || errorOutput;\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tteammate.status === \"cancelled\"\n\t\t\t) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammate,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tteammate.status = \"failed\";\n\t\t\tteammate.error = err.message;\n\t\t\tthis.state.failedTasks.add(task.id);\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror: err.message,\n\t\t\t});\n\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 ||\n\t\t\t\t\tthis.state.activeTasks.size > 0) &&\n\t\t\t\tthis.state.config.continueOnFailure\n\t\t\t) {\n\t\t\t\tteammate.status = \"pending\";\n\t\t\t\tteammate.error = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async spawnA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tprompt: string,\n\t\ttmpFile: string,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<void> {\n\t\tlet route: A2ATeammateRoute | undefined;\n\t\tlet messageId: string | undefined;\n\t\tlet contextId: string | undefined;\n\t\tlet a2aTaskId: string | undefined;\n\t\tconst startedAt = Date.now();\n\t\ttry {\n\t\t\troute = await this.resolveA2ATeammateRoute(teammate, task, options);\n\t\t\tmessageId = `maestro-swarm-message-${randomUUID()}`;\n\t\t\tcontextId = `maestro-swarm:${this.state.id}:${task.id}`;\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\"peer_selected\",\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\tcontextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t},\n\t\t\t);\n\t\t\tconst dispatchStartedAt = Date.now();\n\t\t\tconst sent = await sendA2AMessage(route.config, {\n\t\t\t\tmessage: buildA2AUserMessage({\n\t\t\t\t\tmessageId,\n\t\t\t\t\tcontextId,\n\t\t\t\t\ttext: prompt,\n\t\t\t\t\tmetadata: this.buildA2ASwarmMessageMetadata(teammate, task, route),\n\t\t\t\t}),\n\t\t\t\tconfiguration: {\n\t\t\t\t\treturnImmediately: true,\n\t\t\t\t\tacceptedOutputModes: [\"text/plain\", \"application/json\"],\n\t\t\t\t\t...(options.pushNotificationConfig\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\ttaskPushNotificationConfig: options.pushNotificationConfig,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t\tmetadata: {\n\t\t\t\t\troute: \"maestro_swarm\",\n\t\t\t\t\ttransport: \"a2a\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\tpeer: route.name,\n\t\t\t\t\tsource: route.source,\n\t\t\t\t},\n\t\t\t});\n\t\t\ta2aTaskId = sent.task.id;\n\t\t\tcontextId = sent.task.contextId ?? contextId;\n\t\t\tconst dispatchLatencyMs = Math.max(0, Date.now() - dispatchStartedAt);\n\t\t\tteammate.a2a = {\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerDisplayName: route.displayName,\n\t\t\t\tsource: route.source,\n\t\t\t\tparentTaskId: task.id,\n\t\t\t\ttaskId: sent.task.id,\n\t\t\t\tcontextId,\n\t\t\t\tmessageId,\n\t\t\t\tskillId: route.skillId,\n\t\t\t\trole: route.role,\n\t\t\t};\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\"task_dispatched\",\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\ta2aTaskId: sent.task.id,\n\t\t\t\t\tcontextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tstatus: sent.task.status.state,\n\t\t\t\t\tlatencyMs: dispatchLatencyMs,\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.remoteA2ATasks.set(teammate.id, {\n\t\t\t\troute,\n\t\t\t\ttaskId: sent.task.id,\n\t\t\t});\n\t\t\tawait this.recordA2ASwarmTaskStart(route, task, sent.task, {\n\t\t\t\tmessageId,\n\t\t\t\tcontextId,\n\t\t\t});\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tthis.abortController.signal.aborted\n\t\t\t) {\n\t\t\t\tconst cancelledTask = await this.cancelRemoteA2ATask(teammate.id, {\n\t\t\t\t\troute,\n\t\t\t\t\ttaskId: sent.task.id,\n\t\t\t\t});\n\t\t\t\tif (!cancelledTask) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\ta2aTerminalPhase(cancelledTask.status.state),\n\t\t\t\t\troute,\n\t\t\t\t\tteammate,\n\t\t\t\t\ttask,\n\t\t\t\t\t{\n\t\t\t\t\t\ta2aTaskId: cancelledTask.id,\n\t\t\t\t\t\tcontextId:\n\t\t\t\t\t\t\tcancelledTask.contextId ?? sent.task.contextId ?? contextId,\n\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\tstatus: cancelledTask.status.state,\n\t\t\t\t\t\tterminal: true,\n\t\t\t\t\t\tsuccess: a2aStateCompleted(cancelledTask.status.state),\n\t\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst remoteTask = await this.waitForA2ASwarmTask(\n\t\t\t\troute.config,\n\t\t\t\tsent.task,\n\t\t\t\toptions,\n\t\t\t);\n\t\t\tawait this.updateA2ASwarmTaskLedger(route, remoteTask);\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\ta2aTerminalPhase(remoteTask.status.state),\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\ta2aTaskId: remoteTask.id,\n\t\t\t\t\tcontextId: remoteTask.contextId ?? contextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tstatus: remoteTask.status.state,\n\t\t\t\t\tterminal: true,\n\t\t\t\t\tsuccess: a2aStateCompleted(remoteTask.status.state),\n\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.completeA2ATeammate(teammate, task, remoteTask, route);\n\t\t} catch (error) {\n\t\t\tconst wasCancelled =\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tthis.abortController.signal.aborted ||\n\t\t\t\tteammate.status === \"cancelled\";\n\t\t\tconst remoteTask = this.remoteA2ATasks.get(teammate.id);\n\t\t\tconst pendingCancelTask = this.remoteA2ACancelTasks.get(teammate.id);\n\t\t\tconst cancelledTask = wasCancelled\n\t\t\t\t? await (pendingCancelTask ??\n\t\t\t\t\t\t(remoteTask\n\t\t\t\t\t\t\t? this.cancelRemoteA2ATask(teammate.id, remoteTask)\n\t\t\t\t\t\t\t: Promise.resolve(undefined)))\n\t\t\t\t: undefined;\n\t\t\tif (!wasCancelled && remoteTask) {\n\t\t\t\tawait this.cancelRemoteA2ATask(teammate.id, remoteTask);\n\t\t\t}\n\t\t\tif (route) {\n\t\t\t\tif (!wasCancelled || cancelledTask) {\n\t\t\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\t\twasCancelled\n\t\t\t\t\t\t\t? a2aTerminalPhase(cancelledTask?.status.state)\n\t\t\t\t\t\t\t: \"task_failed\",\n\t\t\t\t\t\troute,\n\t\t\t\t\t\tteammate,\n\t\t\t\t\t\ttask,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta2aTaskId: cancelledTask?.id ?? a2aTaskId,\n\t\t\t\t\t\t\tcontextId: cancelledTask?.contextId ?? contextId,\n\t\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\t\tstatus: cancelledTask?.status.state ?? \"TASK_STATE_FAILED\",\n\t\t\t\t\t\t\tterminal: true,\n\t\t\t\t\t\t\tsuccess: a2aStateCompleted(cancelledTask?.status.state),\n\t\t\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.failA2ATeammate(teammate, task, error, {\n\t\t\t\tpreserveA2A: Boolean(a2aTaskId),\n\t\t\t});\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.delete(teammate.id);\n\t\t\tthis.remoteA2ACancelTasks.delete(teammate.id);\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate recordA2ADelegationTelemetry(\n\t\tphase: Parameters<typeof recordA2ADelegationTelemetryEvent>[0][\"phase\"],\n\t\troute: A2ATeammateRoute,\n\t\t_teammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: {\n\t\t\ta2aTaskId?: string;\n\t\t\tcontextId?: string;\n\t\t\tmessageId?: string;\n\t\t\tstatus?: string;\n\t\t\tterminal?: boolean;\n\t\t\tsuccess?: boolean;\n\t\t\tlatencyMs?: number;\n\t\t\tdurationMs?: number;\n\t\t\tmetadata?: Record<string, unknown>;\n\t\t} = {},\n\t): void {\n\t\tconst laneId = a2aDelegationLaneId(route.name, task.id);\n\t\trecordA2ADelegationTelemetryEvent({\n\t\t\tphase,\n\t\t\tswarmId: this.state.id,\n\t\t\tlaneId,\n\t\t\tparentTaskId: task.id,\n\t\t\ta2aTaskId: options.a2aTaskId,\n\t\t\ta2aMessageId: options.messageId,\n\t\t\tcontextId: options.contextId,\n\t\t\tpeerAgentId: route.peerAgentId,\n\t\t\tpeerName: route.name,\n\t\t\tpeerEndpointHash: route.peerEndpointHash,\n\t\t\tpeerEndpointUrl: undefined,\n\t\t\tpeerEndpointKind: route.peerEndpointKind,\n\t\t\tskillId: route.skillId,\n\t\t\ttaskClass: route.taskClass,\n\t\t\tsource: route.source,\n\t\t\tstatus: options.status,\n\t\t\tterminal: options.terminal,\n\t\t\tsuccess: options.success,\n\t\t\tlatencyMs: options.latencyMs,\n\t\t\tdurationMs: options.durationMs,\n\t\t\tmetadata: options.metadata,\n\t\t\tcorrelation: {\n\t\t\t\tattributes: {\n\t\t\t\t\tswarm_id: this.state.id,\n\t\t\t\t\tlane_id: laneId,\n\t\t\t\t\tparent_task_id: task.id,\n\t\t\t\t\tpeer: route.name,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate buildA2ASwarmMessageMetadata(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\troute: A2ATeammateRoute,\n\t): Record<string, unknown> {\n\t\tconst currentDelegationId = `${this.state.id}:${task.id}`;\n\t\tconst contextId = `maestro-swarm:${this.state.id}:${task.id}`;\n\t\tconst lineage = {\n\t\t\trootDelegationId: this.state.id,\n\t\t\t...(this.state.config.parentSessionId\n\t\t\t\t? { parentDelegationId: this.state.config.parentSessionId }\n\t\t\t\t: {}),\n\t\t\tcurrentDelegationId,\n\t\t\tdelegationChain: [this.state.id, currentDelegationId],\n\t\t\tdelegationChainDepth: 1,\n\t\t\tmaxDelegationChainDepth: 1,\n\t\t};\n\t\tconst subagentRequest = route.skillId\n\t\t\t? {\n\t\t\t\t\tskillId: route.skillId,\n\t\t\t\t\trole: route.role,\n\t\t\t\t\tcwd: this.state.config.cwd,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst peerControl = {\n\t\t\tschema: \"evalops.maestro.a2a-peer-control.v1\",\n\t\t\tparentSwarmId: this.state.id,\n\t\t\tlaneId: a2aDelegationLaneId(route.name, task.id),\n\t\t\ttaskId: task.id,\n\t\t\tcontextId,\n\t\t\tcontrolModes: [\"followup\", \"steer\", \"interrupt\", \"cancel\"],\n\t\t\tevidenceRequired: [\"status\", \"artifact\", \"task\", \"workGraph\"],\n\t\t};\n\t\treturn {\n\t\t\trequestKind: \"maestro-swarm-task\",\n\t\t\ttransport: \"a2a\",\n\t\t\trelayPeer: route.name,\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateId: teammate.id,\n\t\t\tteammateName: teammate.name,\n\t\t\ttaskId: task.id,\n\t\t\t...(route.skillId ? { a2aSkillId: route.skillId } : {}),\n\t\t\t...(task.files?.length ? { files: task.files } : {}),\n\t\t\tswarm: lineage,\n\t\t\tevalops: {\n\t\t\t\tswarm: lineage,\n\t\t\t\ttransport: \"a2a\",\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerControl,\n\t\t\t},\n\t\t\t\"evalops.peerControl\": peerControl,\n\t\t\t...(subagentRequest\n\t\t\t\t? { \"evalops.subagentRequest\": subagentRequest }\n\t\t\t\t: {}),\n\t\t};\n\t}\n\n\tprivate async waitForA2ASwarmTask(\n\t\tconfig: A2AServiceConfig,\n\t\tinitialTask: A2ATask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATask> {\n\t\tconst maxWaitMs =\n\t\t\toptions.maxWaitMs ??\n\t\t\tthis.state.config.taskTimeout ??\n\t\t\tDEFAULT_TASK_TIMEOUT_MS;\n\t\tconst pollIntervalMs =\n\t\t\toptions.pollIntervalMs ?? DEFAULT_A2A_POLL_INTERVAL_MS;\n\t\tconst deadline = Date.now() + maxWaitMs;\n\t\tlet task = initialTask;\n\t\twhile (\n\t\t\t!isTerminalA2AState(task.status.state) &&\n\t\t\tDate.now() < deadline &&\n\t\t\t!this.abortController.signal.aborted\n\t\t) {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n\t\t\ttask = await getA2ATask(config, task.id, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t});\n\t\t}\n\t\tif (!isTerminalA2AState(task.status.state)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Timed out waiting for remote A2A task ${task.id}; last state ${task.status.state}`,\n\t\t\t);\n\t\t}\n\t\treturn task;\n\t}\n\n\tprivate completeA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tremoteTask: A2ATask,\n\t\troute: A2ATeammateRoute,\n\t): void {\n\t\tthis.state.activeTasks.delete(task.id);\n\t\tteammate.completedAt = Date.now();\n\t\tteammate.currentTask = undefined;\n\t\tteammate.output =\n\t\t\textractA2ATaskText(remoteTask) ??\n\t\t\t`Remote A2A task ${remoteTask.id} finished with ${remoteTask.status.state}`;\n\t\tif (this.state.status === \"cancelled\" || teammate.status === \"cancelled\") {\n\t\t\tteammate.status = \"cancelled\";\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (a2aStateCompleted(remoteTask.status.state)) {\n\t\t\tteammate.status = \"completed\";\n\t\t\tteammate.completedTasks.push(task.id);\n\t\t\tthis.state.completedTasks.add(task.id);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\toutput: teammate.output,\n\t\t\t});\n\t\t} else {\n\t\t\tteammate.status = \"failed\";\n\t\t\tteammate.error = `Remote A2A task ${remoteTask.id} on ${route.name} ended in ${remoteTask.status.state}`;\n\t\t\tthis.state.failedTasks.add(task.id);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror: teammate.error,\n\t\t\t});\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\t\t}\n\t\tthis.emit({\n\t\t\ttype: \"teammate_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammate,\n\t\t});\n\t\tif (\n\t\t\tthis.state.status === \"running\" &&\n\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0) &&\n\t\t\t(teammate.status === \"completed\" || this.state.config.continueOnFailure)\n\t\t) {\n\t\t\tteammate.status = \"pending\";\n\t\t\tteammate.error = undefined;\n\t\t}\n\t}\n\n\tprivate failA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\terror: unknown,\n\t\toptions: { preserveA2A?: boolean } = {},\n\t): void {\n\t\tthis.state.activeTasks.delete(task.id);\n\t\tteammate.completedAt = Date.now();\n\t\tteammate.currentTask = undefined;\n\t\tif (this.state.status === \"cancelled\" || teammate.status === \"cancelled\") {\n\t\t\tteammate.status = \"cancelled\";\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tteammate.a2a &&\n\t\t\t!options.preserveA2A &&\n\t\t\t!this.remoteA2ATasks.has(teammate.id)\n\t\t) {\n\t\t\tteammate.a2a = undefined;\n\t\t}\n\t\tteammate.status = \"failed\";\n\t\tteammate.error = error instanceof Error ? error.message : String(error);\n\t\tthis.state.failedTasks.add(task.id);\n\t\tthis.emit({\n\t\t\ttype: \"task_fail\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateId: teammate.id,\n\t\t\ttaskId: task.id,\n\t\t\terror: teammate.error,\n\t\t});\n\t\tif (!this.state.config.continueOnFailure) {\n\t\t\tthis.state.status = \"failed\";\n\t\t}\n\t\tthis.emit({\n\t\t\ttype: \"teammate_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammate,\n\t\t});\n\n\t\tif (\n\t\t\tthis.state.status === \"running\" &&\n\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0) &&\n\t\t\tthis.state.config.continueOnFailure\n\t\t) {\n\t\t\tteammate.status = \"pending\";\n\t\t\tteammate.error = undefined;\n\t\t\tteammate.a2a = undefined;\n\t\t}\n\t}\n\n\tprivate async recordA2ASwarmTaskStart(\n\t\troute: A2ATeammateRoute,\n\t\ttask: SwarmTask,\n\t\tremoteTask: A2ATask,\n\t\tids: { messageId: string; contextId: string },\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait recordA2ATaskStart({\n\t\t\t\tpath: route.tasksPath,\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerDisplayName: route.displayName,\n\t\t\t\ttask: remoteTask,\n\t\t\t\ttext: task.prompt,\n\t\t\t\tmessageId: ids.messageId,\n\t\t\t\tcontextId: remoteTask.contextId ?? ids.contextId,\n\t\t\t\tkind: \"delegation\",\n\t\t\t\trole: route.role,\n\t\t\t\tcwd: this.state.config.cwd,\n\t\t\t\tmetadata: {\n\t\t\t\t\trequestKind: \"maestro-swarm-task\",\n\t\t\t\t\trelayPeer: route.name,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\ttransport: \"a2a\",\n\t\t\t\t\tsource: route.source,\n\t\t\t\t\ta2aSkillId: route.skillId,\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to record remote A2A swarm task in local ledger\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\tpeer: route.name,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate async updateA2ASwarmTaskLedger(\n\t\troute: A2ATeammateRoute,\n\t\tremoteTask: A2ATask,\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait updateA2ATaskInLedger({\n\t\t\t\tpath: route.tasksPath,\n\t\t\t\tpeer: route.name,\n\t\t\t\ttask: remoteTask,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to update remote A2A swarm task in local ledger\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tremoteTaskId: remoteTask.id,\n\t\t\t\tpeer: route.name,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Wait for any active task to complete.\n\t */\n\tprivate waitForAnyCompletion(): Promise<void> {\n\t\tconst initialActiveCount = this.state.activeTasks.size;\n\t\treturn new Promise((resolve) => {\n\t\t\tconst checkInterval = setInterval(() => {\n\t\t\t\t// Resolve as soon as at least one active task exits or the swarm stops.\n\t\t\t\tif (\n\t\t\t\t\tthis.state.activeTasks.size < initialActiveCount ||\n\t\t\t\t\tthis.state.status !== \"running\"\n\t\t\t\t) {\n\t\t\t\t\tclearInterval(checkInterval);\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t});\n\t}\n}\n\nfunction platformA2ACandidateMatchesPeer(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tpeer: string,\n): boolean {\n\tconst selector = normalizePeerSelector(peer);\n\tconst selectorBaseUrl = normalizePeerBaseUrl(peer);\n\tif (!selector) {\n\t\treturn false;\n\t}\n\tconst values = [\n\t\tcandidate.agent.id,\n\t\tcandidate.agent.name,\n\t\tcandidate.endpointUrl,\n\t\tcandidate.agentCardUrl,\n\t];\n\tconst endpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl);\n\tif (endpointHash) {\n\t\tvalues.push(endpointHash, `endpoint:${endpointHash}`);\n\t}\n\treturn values.some((value) => {\n\t\tconst candidateSelector = normalizePeerSelector(value);\n\t\tif (candidateSelector && candidateSelector === selector) {\n\t\t\treturn true;\n\t\t}\n\t\tconst candidateBaseUrl = normalizePeerBaseUrl(value);\n\t\treturn Boolean(\n\t\t\tselectorBaseUrl &&\n\t\t\t\tcandidateBaseUrl &&\n\t\t\t\tcandidateBaseUrl === selectorBaseUrl,\n\t\t);\n\t});\n}\n\nfunction normalizePeerSelector(value: string | undefined): string | undefined {\n\treturn trimString(value)?.toLowerCase();\n}\n\nfunction normalizePeerBaseUrl(value: string | undefined): string | undefined {\n\tconst trimmed = trimString(value);\n\treturn trimmed ? normalizeA2ABaseUrl(trimmed).toLowerCase() : undefined;\n}\n\n/**\n * Create and execute a swarm.\n */\nexport async function executeSwarm(\n\tconfig: SwarmConfig,\n\tonEvent?: SwarmEventHandler,\n): Promise<SwarmState> {\n\tconst executor = new SwarmExecutor(config);\n\tif (onEvent) {\n\t\texecutor.onEvent(onEvent);\n\t}\n\treturn executor.execute();\n}\n"]}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agent/swarm/executor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Swarm Executor\n *\n * Manages parallel execution of multiple agent instances (teammates)\n * working on tasks from a plan. Uses subprocess spawning similar to\n * the Oracle tool pattern.\n */\n\nimport { type ChildProcess, spawn } from \"node:child_process\";\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { existsSync, mkdirSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nimport { type DelegationPrompt, formatDelegation } from \"@evalops/contracts\";\nimport {\n\tcodexSubagentSkillToken,\n\tcodexSubagentTypeA2ASkillID,\n} from \"../../codex/subagent-dispatch-table.js\";\nimport {\n\tbuildEvalOpsDelegationEnvironment,\n\tissueEvalOpsDelegationToken,\n} from \"../../oauth/index.js\";\nimport { rankA2ACapabilityPeers } from \"../../platform/a2a-capability-market.js\";\nimport {\n\ttype A2AServiceConfig,\n\ttype A2ATask,\n\ttype A2ATaskPushNotificationConfig,\n\tbuildA2AUserMessage,\n\tcancelA2ATask,\n\tgetA2ATask,\n\tnormalizeA2ABaseUrl,\n\tresolveA2AServiceConfig,\n\tsendA2AMessage,\n} from \"../../platform/a2a-client.js\";\nimport { a2aDelegationLaneId } from \"../../platform/a2a-completion-audit.js\";\nimport {\n\ttype ResolvedA2APeer,\n\tresolveA2APeer,\n} from \"../../platform/a2a-peer-registry.js\";\nimport {\n\textractA2ATaskText,\n\tisTerminalA2AState,\n\trecordA2ATaskStart,\n\tupdateA2ATaskInLedger,\n} from \"../../platform/a2a-task-ledger.js\";\nimport {\n\ttype PlatformAgentRegistryA2APeerCandidate,\n\tPlatformAgentStatusValue,\n\tlistA2APeerCandidatesWithPlatform,\n\tresolveAgentRegistryServiceConfig,\n} from \"../../platform/agent-registry-client.js\";\nimport { getEnvValue, trimString } from \"../../platform/client.js\";\nimport {\n\trecordA2ADelegationTelemetry as recordA2ADelegationTelemetryEvent,\n\trecordSubagentDispatch,\n} from \"../../telemetry.js\";\nimport { createLogger } from \"../../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../../utils/secret-redactor.js\";\nimport { detectMissionSessionRole } from \"../mission-artifacts.js\";\nimport {\n\ttype AgentMode,\n\ttype ModelProvider,\n\ttype ResolvedSubagentDispatch,\n\tparseMode,\n\tresolveSubagentDispatch,\n} from \"../modes.js\";\nimport {\n\tapplySpecialistProfileToPrompt,\n\tresolveSpecialistProfile,\n} from \"../specialist-profiles.js\";\nimport { parseSubagentType } from \"../subagent-specs.js\";\nimport { evaluateSwarmCoverageGate } from \"./coverage-gate.js\";\nimport { publishSwarmRuntimeEvent } from \"./runtime-events.js\";\nimport type {\n\tSwarmA2AConfig,\n\tSwarmConfig,\n\tSwarmEvent,\n\tSwarmEventHandler,\n\tSwarmState,\n\tSwarmStatus,\n\tSwarmTask,\n\tSwarmTeammate,\n\tTeammateStatus,\n} from \"./types.js\";\nimport { buildSwarmValidationDirective } from \"./validation-directive.js\";\n\nconst logger = createLogger(\"agent:swarm:executor\");\n\n/** Default timeout per task (5 minutes) */\nconst DEFAULT_TASK_TIMEOUT_MS = 5 * 60 * 1000;\n\n/** Maximum concurrent teammates */\nconst MAX_TEAMMATES = 10;\nconst DEFAULT_A2A_POLL_INTERVAL_MS = 2_000;\nconst DEDICATED_A2A_TOKEN_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_A2A_TOKEN\",\n\t\"MAESTRO_A2A_TOKEN\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_TOKEN\",\n\t\"AGENT_RUNTIME_SERVICE_TOKEN\",\n] as const;\nconst A2A_SKILL_PRIMARY_TASK_CLASSES = new Map<string, string>([\n\t[\"maestro.subagent.code-writer\", \"code.implementation\"],\n\t[\"maestro.subagent.code-review\", \"code.review\"],\n\t[\"maestro.subagent.test-runner\", \"test.execution\"],\n\t[\"maestro.subagent.browser-qa\", \"product.qa\"],\n\t[\"maestro.subagent.repo-explorer\", \"repo.inspect\"],\n\t[\"maestro.subagent.release-shepherd\", \"release.follow-through\"],\n]);\nconst A2A_PUSH_TOKEN_REDACTION = \"<redacted>\";\nconst SWARM_SUBAGENT_TASK_CLASSES = new Map<string, string>([\n\t[\"coder\", \"code.implementation\"],\n\t[\"worker\", \"code.implementation\"],\n\t[\"review\", \"code.review\"],\n\t[\"reviewer\", \"code.review\"],\n\t[\"explore\", \"repo.inspect\"],\n\t[\"explorer\", \"repo.inspect\"],\n\t[\"research\", \"repo.inspect\"],\n\t[\"researcher\", \"repo.inspect\"],\n\t[\"test\", \"test.execution\"],\n\t[\"ci\", \"test.execution\"],\n\t[\"ci-monitor\", \"test.execution\"],\n\t[\"test-runner\", \"test.execution\"],\n\t[\"browser-qa\", \"product.qa\"],\n\t[\"browser\", \"product.qa\"],\n\t[\"dogfood\", \"product.qa\"],\n\t[\"product-qa\", \"product.qa\"],\n\t[\"e2e-qa\", \"browser.e2e\"],\n\t[\"ux-qa\", \"ux.repro\"],\n\t[\"planner\", \"agent.delegation\"],\n\t[\"minimal\", \"agent.delegation\"],\n\t[\"custom\", \"agent.delegation\"],\n]);\nconst A2A_SUBAGENT_TASK_CLASS_OVERRIDES = new Set([\"e2e-qa\", \"ux-qa\"]);\n\n/** Teammate name prefixes for friendly identification */\nconst TEAMMATE_NAMES = [\n\t\"Alpha\",\n\t\"Beta\",\n\t\"Gamma\",\n\t\"Delta\",\n\t\"Epsilon\",\n\t\"Zeta\",\n\t\"Eta\",\n\t\"Theta\",\n\t\"Iota\",\n\t\"Kappa\",\n];\n\nconst MODEL_PROVIDERS: ModelProvider[] = [\n\t\"anthropic\",\n\t\"openai\",\n\t\"openai-codex\",\n\t\"google\",\n];\n\nfunction toSafeTaskTempBasename(taskId: string): string {\n\tconst safeId = taskId\n\t\t.replace(/[^A-Za-z0-9_-]+/g, \"_\")\n\t\t.replace(/^_+|_+$/g, \"\");\n\treturn `swarm-task-${safeId || \"task\"}.md`;\n}\n\nfunction cloneTask(task: SwarmTask): SwarmTask {\n\treturn {\n\t\t...task,\n\t\tfiles: task.files ? [...task.files] : undefined,\n\t\tdependsOn: task.dependsOn ? [...task.dependsOn] : undefined,\n\t};\n}\n\nfunction cloneTeammate(teammate: SwarmTeammate): SwarmTeammate {\n\treturn {\n\t\t...teammate,\n\t\tcurrentTask: teammate.currentTask\n\t\t\t? cloneTask(teammate.currentTask)\n\t\t\t: undefined,\n\t\tcompletedTasks: [...teammate.completedTasks],\n\t\ta2a: teammate.a2a ? { ...teammate.a2a } : undefined,\n\t};\n}\n\nfunction cloneA2APushNotificationConfig(\n\tconfig: A2ATaskPushNotificationConfig | undefined,\n\toptions: { redactSecrets?: boolean } = {},\n): A2ATaskPushNotificationConfig | undefined {\n\tif (!config) {\n\t\treturn undefined;\n\t}\n\tconst authentication = config.authentication\n\t\t? {\n\t\t\t\t...config.authentication,\n\t\t\t\t...(config.authentication.schemes\n\t\t\t\t\t? { schemes: [...config.authentication.schemes] }\n\t\t\t\t\t: {}),\n\t\t\t\t...(options.redactSecrets && config.authentication.credentials\n\t\t\t\t\t? { credentials: A2A_PUSH_TOKEN_REDACTION }\n\t\t\t\t\t: {}),\n\t\t\t}\n\t\t: undefined;\n\treturn {\n\t\t...config,\n\t\t...(authentication ? { authentication } : {}),\n\t\t...(options.redactSecrets && config.token\n\t\t\t? { token: A2A_PUSH_TOKEN_REDACTION }\n\t\t\t: {}),\n\t};\n}\n\nfunction cloneConfig(config: SwarmConfig): SwarmConfig {\n\treturn {\n\t\t...config,\n\t\ta2a: config.a2a\n\t\t\t? {\n\t\t\t\t\t...config.a2a,\n\t\t\t\t\tpeers: config.a2a.peers ? [...config.a2a.peers] : undefined,\n\t\t\t\t\t...(config.a2a.pushNotificationConfig\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tpushNotificationConfig: cloneA2APushNotificationConfig(\n\t\t\t\t\t\t\t\t\tconfig.a2a.pushNotificationConfig,\n\t\t\t\t\t\t\t\t\t{ redactSecrets: true },\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t}\n\t\t\t: undefined,\n\t\ttasks: config.tasks.map(cloneTask),\n\t\tvalidationContract: config.validationContract\n\t\t\t? structuredClone(config.validationContract)\n\t\t\t: undefined,\n\t\tfeatureClaims: config.featureClaims?.map((claim) => ({\n\t\t\t...claim,\n\t\t\tfulfills: [...claim.fulfills],\n\t\t})),\n\t};\n}\n\nfunction cloneState(state: SwarmState): SwarmState {\n\treturn {\n\t\t...state,\n\t\tconfig: cloneConfig(state.config),\n\t\tteammates: state.teammates.map(cloneTeammate),\n\t\tpendingTasks: state.pendingTasks.map(cloneTask),\n\t\tactiveTasks: new Map(state.activeTasks),\n\t\tcompletedTasks: new Set(state.completedTasks),\n\t\tfailedTasks: new Set(state.failedTasks),\n\t};\n}\n\nfunction parseModelProvider(\n\tvalue: string | undefined,\n): ModelProvider | undefined {\n\tconst provider = value?.trim();\n\tif (!provider) {\n\t\treturn undefined;\n\t}\n\treturn MODEL_PROVIDERS.includes(provider as ModelProvider)\n\t\t? (provider as ModelProvider)\n\t\t: undefined;\n}\n\nfunction parseAgentMode(value: string | undefined): AgentMode | undefined {\n\tconst mode = value?.trim();\n\tif (!mode) {\n\t\treturn undefined;\n\t}\n\treturn parseMode(mode) ?? undefined;\n}\n\nfunction providerFromPrefixedModel(\n\tmodel: string | undefined,\n): ModelProvider | undefined {\n\tconst slashIndex = model?.indexOf(\"/\") ?? -1;\n\tif (!model || slashIndex <= 0) {\n\t\treturn undefined;\n\t}\n\treturn parseModelProvider(model.slice(0, slashIndex));\n}\n\nfunction parseBooleanEnv(value: string | undefined): boolean | undefined {\n\tconst normalized = value?.trim().toLowerCase();\n\tif (!normalized) {\n\t\treturn undefined;\n\t}\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(normalized)) {\n\t\treturn true;\n\t}\n\tif ([\"0\", \"false\", \"no\", \"off\"].includes(normalized)) {\n\t\treturn false;\n\t}\n\treturn undefined;\n}\n\nfunction parsePositiveIntEnv(value: string | undefined): number | undefined {\n\tconst parsed = Number.parseInt(value ?? \"\", 10);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction parseCSVEnv(value: string | undefined): string[] | undefined {\n\tconst parsed = value\n\t\t?.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter(Boolean);\n\treturn parsed && parsed.length > 0 ? parsed : undefined;\n}\n\nfunction resolveA2APushNotificationConfig(\n\tconfigured: A2ATaskPushNotificationConfig | undefined,\n): A2ATaskPushNotificationConfig | undefined {\n\tconst url =\n\t\ttrimString(configured?.url) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_URL);\n\tif (!url) {\n\t\treturn undefined;\n\t}\n\tconst id =\n\t\ttrimString(configured?.id) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_ID);\n\tconst token =\n\t\ttrimString(configured?.token) ??\n\t\ttrimString(process.env.MAESTRO_SWARM_A2A_PUSH_TOKEN);\n\tconst base = cloneA2APushNotificationConfig(configured) ?? {};\n\treturn {\n\t\t...base,\n\t\turl,\n\t\t...(id ? { id } : {}),\n\t\t...(token ? { token } : {}),\n\t};\n}\n\nfunction a2aStateCompleted(state: string | undefined): boolean {\n\treturn /COMPLETED/u.test(\n\t\t(state ?? \"\").toUpperCase().replace(/[\\s-]+/gu, \"_\"),\n\t);\n}\n\nfunction hashA2AEndpointUrlForTelemetry(\n\turl: string | undefined,\n): string | undefined {\n\tconst trimmed = url?.trim();\n\tif (!trimmed) {\n\t\treturn undefined;\n\t}\n\tconst canonical = canonicalizeA2AEndpointUrlForTelemetry(trimmed);\n\treturn `sha256:${createHash(\"sha256\").update(canonical).digest(\"hex\")}`;\n}\n\nfunction platformA2APeerRouteName(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tendpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl),\n): string {\n\tconst configuredName =\n\t\ttrimString(candidate.agent.name) ?? trimString(candidate.agent.id);\n\tif (configuredName) {\n\t\treturn configuredName;\n\t}\n\treturn endpointHash\n\t\t? `endpoint:${endpointHash}`\n\t\t: \"platform-agent-registry-peer\";\n}\n\nfunction canonicalizeA2AEndpointUrlForTelemetry(url: string): string {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tparsed.username = \"\";\n\t\tparsed.password = \"\";\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t\tparsed.pathname = parsed.pathname.replace(/\\/+$/u, \"\") || \"/\";\n\t\treturn normalizeA2ABaseUrl(parsed.toString().replace(/\\/$/u, \"\"));\n\t} catch {\n\t\treturn normalizeA2ABaseUrl(\n\t\t\turl.replace(/[?#].*$/u, \"\").replace(/\\/+$/u, \"\"),\n\t\t);\n\t}\n}\n\nfunction a2aTerminalPhase(\n\tstate: string | undefined,\n): \"task_completed\" | \"task_failed\" | \"task_cancelled\" {\n\tconst normalized = (state ?? \"\").toUpperCase().replace(/[\\s-]+/gu, \"_\");\n\tif (normalized.includes(\"COMPLETED\")) {\n\t\treturn \"task_completed\";\n\t}\n\tif (normalized.includes(\"CANCEL\")) {\n\t\treturn \"task_cancelled\";\n\t}\n\treturn \"task_failed\";\n}\n\ntype A2ATeammateRoute = {\n\tname: string;\n\tdisplayName?: string;\n\tconfig: A2AServiceConfig;\n\tskillId?: string;\n\ttaskClass?: string;\n\trole?: string;\n\ttasksPath?: string;\n\tpeerAgentId?: string;\n\tpeerEndpointHash?: string;\n\tpeerEndpointKind?: string;\n\tsource: \"registry\" | \"platform-agent-registry\";\n};\n\ntype RemoteA2ARunningTask = {\n\troute: A2ATeammateRoute;\n\ttaskId: string;\n};\n\nfunction buildDispatchEnv(\n\tdispatch: ResolvedSubagentDispatch | null,\n\treasoningEffortOverride?: string,\n\truntimeSelection?: {\n\t\tmodel?: string;\n\t\tprovider?: string;\n\t\tsource?: string;\n\t},\n): Record<string, string> {\n\tif (!dispatch) {\n\t\treturn {};\n\t}\n\n\tconst env: Record<string, string> = {\n\t\tMAESTRO_SWARM_MODE_NAME: dispatch.mode,\n\t\tMAESTRO_SWARM_SUBAGENT_TYPE: dispatch.type,\n\t\tMAESTRO_SWARM_MODEL: runtimeSelection?.model ?? dispatch.model,\n\t\tMAESTRO_SWARM_REASONING_EFFORT:\n\t\t\treasoningEffortOverride ?? dispatch.reasoningEffort,\n\t\tMAESTRO_SWARM_DISPATCH_SOURCE: runtimeSelection?.source ?? dispatch.source,\n\t};\n\tconst provider = runtimeSelection?.provider ?? dispatch.provider;\n\tif (provider) {\n\t\tenv.MAESTRO_SWARM_MODEL_PROVIDER = provider;\n\t}\n\treturn env;\n}\n\nfunction resolveMissionRoleForTeammate(): \"worker\" | \"validator\" {\n\treturn detectMissionSessionRole() === \"validator\" ? \"validator\" : \"worker\";\n}\n\ntype TaskDispatchResolution = {\n\tdispatch: ResolvedSubagentDispatch;\n\tstartedAt: number;\n\tlatencyMs: number;\n\tparentMode: AgentMode;\n\tparentModelProvider?: ModelProvider;\n};\n\n/**\n * SwarmExecutor manages a swarm of parallel agent instances.\n */\nexport class SwarmExecutor {\n\tprivate state: SwarmState;\n\tprivate processes: Map<string, ChildProcess> = new Map();\n\tprivate remoteA2ATasks: Map<string, RemoteA2ARunningTask> = new Map();\n\tprivate remoteA2ACancelTasks: Map<string, Promise<A2ATask | undefined>> =\n\t\tnew Map();\n\tprivate a2aRouteCursor = 0;\n\tprivate eventHandlers: Set<SwarmEventHandler> = new Set();\n\tprivate abortController: AbortController;\n\n\tconstructor(config: SwarmConfig) {\n\t\t// Validate config\n\t\tif (config.teammateCount < 1 || config.teammateCount > MAX_TEAMMATES) {\n\t\t\tthrow new Error(\n\t\t\t\t`Teammate count must be between 1 and ${MAX_TEAMMATES}, got ${config.teammateCount}`,\n\t\t\t);\n\t\t}\n\n\t\tthis.abortController = new AbortController();\n\n\t\t// Initialize state\n\t\tthis.state = {\n\t\t\tid: randomUUID(),\n\t\t\tstatus: \"initializing\",\n\t\t\tconfig,\n\t\t\tteammates: [],\n\t\t\tpendingTasks: [...config.tasks],\n\t\t\tactiveTasks: new Map(),\n\t\t\tcompletedTasks: new Set(),\n\t\t\tfailedTasks: new Set(),\n\t\t\tstartedAt: Date.now(),\n\t\t};\n\n\t\t// Create teammates\n\t\tfor (let i = 0; i < config.teammateCount; i++) {\n\t\t\tthis.state.teammates.push({\n\t\t\t\tid: randomUUID(),\n\t\t\t\tname: TEAMMATE_NAMES[i] || `Teammate-${i + 1}`,\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tcompletedTasks: [],\n\t\t\t});\n\t\t}\n\n\t\tlogger.info(\"Swarm initialized\", {\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateCount: config.teammateCount,\n\t\t\ttaskCount: config.tasks.length,\n\t\t});\n\t}\n\n\t/**\n\t * Subscribe to swarm events.\n\t */\n\tonEvent(handler: SwarmEventHandler): () => void {\n\t\tthis.eventHandlers.add(handler);\n\t\treturn () => this.eventHandlers.delete(handler);\n\t}\n\n\t/**\n\t * Emit an event to all handlers.\n\t */\n\tprivate emit(event: SwarmEvent): void {\n\t\tpublishSwarmRuntimeEvent({\n\t\t\tevent,\n\t\t\tparentSessionId: this.state.config.parentSessionId,\n\t\t\tcwd: this.state.config.cwd,\n\t\t\tplanFile: this.state.config.planFile,\n\t\t});\n\t\tfor (const handler of this.eventHandlers) {\n\t\t\ttry {\n\t\t\t\thandler(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Event handler error\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get the current swarm state.\n\t */\n\tgetState(): SwarmState {\n\t\treturn cloneState(this.state);\n\t}\n\n\t/**\n\t * Cancel the swarm execution.\n\t */\n\tcancel(): void {\n\t\tconst remoteTasks = [...this.remoteA2ATasks.entries()];\n\t\tfor (const [teammateId, remoteTask] of remoteTasks) {\n\t\t\tvoid this.cancelRemoteA2ATask(teammateId, remoteTask);\n\t\t}\n\n\t\tthis.abortController.abort();\n\t\tthis.state.status = \"cancelled\";\n\n\t\t// Kill all running processes\n\t\tfor (const [teammateId, proc] of this.processes) {\n\t\t\ttry {\n\t\t\t\tproc.kill(\"SIGTERM\");\n\t\t\t} catch {\n\t\t\t\t// Process may already be dead\n\t\t\t}\n\t\t\tconst teammate = this.state.teammates.find((t) => t.id === teammateId);\n\t\t\tif (teammate) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t}\n\t\t}\n\n\t\tfor (const teammate of this.state.teammates) {\n\t\t\tif (teammate.status === \"running\" || teammate.currentTask) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t\tteammate.completedAt = Date.now();\n\t\t\t}\n\t\t}\n\n\t\tthis.state.activeTasks.clear();\n\t\tthis.processes.clear();\n\t\tlogger.info(\"Swarm cancelled\", { swarmId: this.state.id });\n\t}\n\n\tprivate async cancelRemoteA2ATask(\n\t\tteammateId: string,\n\t\tremoteTask: RemoteA2ARunningTask,\n\t): Promise<A2ATask | undefined> {\n\t\tconst existingCancel = this.remoteA2ACancelTasks.get(teammateId);\n\t\tif (existingCancel) {\n\t\t\treturn existingCancel;\n\t\t}\n\t\tconst cancelTask = (async () => {\n\t\t\ttry {\n\t\t\t\tconst cancelledTask = await cancelA2ATask(\n\t\t\t\t\tremoteTask.route.config,\n\t\t\t\t\tremoteTask.taskId,\n\t\t\t\t);\n\t\t\t\tawait this.updateA2ASwarmTaskLedger(remoteTask.route, cancelledTask);\n\t\t\t\treturn cancelledTask;\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to cancel remote A2A swarm task\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId,\n\t\t\t\t\tremoteTaskId: remoteTask.taskId,\n\t\t\t\t\tpeer: remoteTask.route.name,\n\t\t\t\t});\n\t\t\t\treturn undefined;\n\t\t\t} finally {\n\t\t\t\tthis.remoteA2ATasks.delete(teammateId);\n\t\t\t}\n\t\t})();\n\t\tthis.remoteA2ACancelTasks.set(teammateId, cancelTask);\n\t\treturn cancelTask;\n\t}\n\n\t/**\n\t * Execute the swarm - runs all tasks with available teammates.\n\t */\n\tasync execute(): Promise<SwarmState> {\n\t\t// Pre-dispatch coverage gate: refuse to start when a validation contract\n\t\t// is configured but its assertions are not fully covered by feature\n\t\t// claims. No-ops when no contract is configured.\n\t\tconst coverage = evaluateSwarmCoverageGate({\n\t\t\tvalidationContract: this.state.config.validationContract,\n\t\t\tfeatureClaims: this.state.config.featureClaims,\n\t\t});\n\t\tif (!coverage.ok) {\n\t\t\tconst error = coverage.message ?? \"Swarm coverage gate failed\";\n\t\t\tthis.state.status = \"failed\";\n\t\t\tthis.state.error = error;\n\t\t\tthis.state.completedAt = Date.now();\n\t\t\tthis.emit({\n\t\t\t\ttype: \"swarm_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\terror,\n\t\t\t});\n\t\t\tthis.emit({\n\t\t\t\ttype: \"swarm_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tstate: cloneState(this.state),\n\t\t\t});\n\t\t\treturn cloneState(this.state);\n\t\t}\n\n\t\tthis.state.status = \"running\";\n\t\tthis.emit({\n\t\t\ttype: \"swarm_start\",\n\t\t\tswarmId: this.state.id,\n\t\t\tconfig: cloneConfig(this.state.config),\n\t\t});\n\n\t\ttry {\n\t\t\t// Sort tasks by priority (higher first) and dependencies\n\t\t\tthis.state.pendingTasks.sort(\n\t\t\t\t(a, b) => (b.priority ?? 0) - (a.priority ?? 0),\n\t\t\t);\n\n\t\t\t// Main execution loop\n\t\t\twhile (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0)\n\t\t\t) {\n\t\t\t\tthis.skipTasksBlockedByFailedDependencies();\n\n\t\t\t\t// Assign tasks to idle teammates\n\t\t\t\tawait this.assignTasks();\n\n\t\t\t\t// Wait for any task to complete\n\t\t\t\tif (this.state.activeTasks.size > 0) {\n\t\t\t\t\tawait this.waitForAnyCompletion();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Determine final status\n\t\t\t// Note: status may have been changed to \"cancelled\" asynchronously via cancel()\n\t\t\tconst finalStatus = this.state.status as SwarmStatus;\n\t\t\tif (\n\t\t\t\tthis.state.failedTasks.size > 0 &&\n\t\t\t\t!this.state.config.continueOnFailure\n\t\t\t) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t\tthis.state.error = `${this.state.failedTasks.size} task(s) failed`;\n\t\t\t} else if (finalStatus !== \"cancelled\") {\n\t\t\t\tthis.state.status = \"completed\";\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.state.status = \"failed\";\n\t\t\tthis.state.error = error instanceof Error ? error.message : String(error);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"swarm_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\terror: this.state.error,\n\t\t\t});\n\t\t}\n\n\t\tthis.state.completedAt = Date.now();\n\t\tthis.emit({\n\t\t\ttype: \"swarm_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tstate: cloneState(this.state),\n\t\t});\n\n\t\tlogger.info(\"Swarm execution complete\", {\n\t\t\tswarmId: this.state.id,\n\t\t\tstatus: this.state.status,\n\t\t\tcompleted: this.state.completedTasks.size,\n\t\t\tfailed: this.state.failedTasks.size,\n\t\t\tduration: this.state.completedAt - this.state.startedAt,\n\t\t});\n\n\t\treturn cloneState(this.state);\n\t}\n\n\t/**\n\t * Assign pending tasks to idle teammates.\n\t */\n\tprivate async assignTasks(): Promise<void> {\n\t\tconst idleTeammates = this.state.teammates.filter(\n\t\t\t(t) => t.status === \"pending\" || t.status === \"completed\",\n\t\t);\n\t\tconst spawnPromises: Promise<void>[] = [];\n\n\t\tfor (const teammate of idleTeammates) {\n\t\t\tconst task = this.getNextTask();\n\t\t\tif (!task) break;\n\n\t\t\t// Update state\n\t\t\tteammate.status = \"running\";\n\t\t\tteammate.currentTask = task;\n\t\t\tteammate.startedAt = Date.now();\n\t\t\tthis.state.activeTasks.set(task.id, teammate.id);\n\n\t\t\t// Remove from pending\n\t\t\tconst pendingIdx = this.state.pendingTasks.findIndex(\n\t\t\t\t(t) => t.id === task.id,\n\t\t\t);\n\t\t\tif (pendingIdx >= 0) {\n\t\t\t\tthis.state.pendingTasks.splice(pendingIdx, 1);\n\t\t\t}\n\n\t\t\tthis.emit({ type: \"teammate_spawn\", swarmId: this.state.id, teammate });\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_start\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttask,\n\t\t\t});\n\n\t\t\t// Spawn the agent process\n\t\t\tspawnPromises.push(this.spawnTeammate(teammate, task));\n\t\t}\n\n\t\tif (spawnPromises.length > 0) {\n\t\t\tawait Promise.all(spawnPromises);\n\t\t}\n\t}\n\n\t/**\n\t * Get the next task that can be executed (dependencies satisfied).\n\t */\n\tprivate getNextTask(): SwarmTask | null {\n\t\tfor (const task of this.state.pendingTasks) {\n\t\t\t// Check dependencies\n\t\t\tif (task.dependsOn && task.dependsOn.length > 0) {\n\t\t\t\tconst allDepsCompleted = task.dependsOn.every((depId) =>\n\t\t\t\t\tthis.state.completedTasks.has(depId),\n\t\t\t\t);\n\t\t\t\tif (!allDepsCompleted) continue;\n\t\t\t}\n\t\t\treturn task;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate skipTasksBlockedByFailedDependencies(): void {\n\t\tconst blockedTasks = this.state.pendingTasks.filter((task) =>\n\t\t\ttask.dependsOn?.some((depId) => this.state.failedTasks.has(depId)),\n\t\t);\n\t\tfor (const task of blockedTasks) {\n\t\t\tconst pendingIndex = this.state.pendingTasks.findIndex(\n\t\t\t\t(candidate) => candidate.id === task.id,\n\t\t\t);\n\t\t\tif (pendingIndex >= 0) {\n\t\t\t\tthis.state.pendingTasks.splice(pendingIndex, 1);\n\t\t\t}\n\t\t\tthis.state.failedTasks.add(task.id);\n\t\t\tconst failedDependency = task.dependsOn?.find((depId) =>\n\t\t\t\tthis.state.failedTasks.has(depId),\n\t\t\t);\n\t\t\tconst error = `Dependency ${failedDependency ?? \"unknown\"} failed`;\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: \"dependency\",\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror,\n\t\t\t});\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Spawn a subprocess agent for a teammate.\n\t */\n\tprivate async buildTeammateEnv(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tdispatch: ResolvedSubagentDispatch | null,\n\t\truntimeSelection?: {\n\t\t\tmodel?: string;\n\t\t\tprovider?: string;\n\t\t\tsource?: string;\n\t\t},\n\t): Promise<Record<string, string>> {\n\t\tconst baseEnv: Record<string, string> = {\n\t\t\t...process.env,\n\t\t\tMAESTRO_MISSION_WORKER: \"1\",\n\t\t\tMAESTRO_SWARM_MODE: \"1\",\n\t\t\tMAESTRO_SWARM_ID: this.state.id,\n\t\t\tMAESTRO_TEAMMATE_ID: teammate.id,\n\t\t\tMAESTRO_MISSION_ROLE: resolveMissionRoleForTeammate(),\n\t\t\t...buildDispatchEnv(\n\t\t\t\tdispatch,\n\t\t\t\tthis.state.config.reasoningEffort,\n\t\t\t\truntimeSelection,\n\t\t\t),\n\t\t};\n\n\t\ttry {\n\t\t\tconst delegation = await issueEvalOpsDelegationToken({\n\t\t\t\tagentId: teammate.id,\n\t\t\t\tagentType: \"swarm_teammate\",\n\t\t\t\tcapabilities: [\"swarm_task\"],\n\t\t\t\trunId: `${this.state.id}:${task.id}`,\n\t\t\t\tsurface: \"maestro-swarm\",\n\t\t\t\ttoken: process.env.MAESTRO_EVALOPS_ACCESS_TOKEN,\n\t\t\t\tttlSeconds: Math.max(\n\t\t\t\t\t60,\n\t\t\t\t\tMath.ceil(\n\t\t\t\t\t\t(this.state.config.taskTimeout ?? DEFAULT_TASK_TIMEOUT_MS) / 1000,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\t...baseEnv,\n\t\t\t\t...buildEvalOpsDelegationEnvironment(delegation),\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tif (\n\t\t\t\tmessage.includes(\"Run /login evalops first\") ||\n\t\t\t\tmessage.includes(\"EvalOps login requires\")\n\t\t\t) {\n\t\t\t\treturn baseEnv;\n\t\t\t}\n\t\t\tlogger.warn(\n\t\t\t\t\"Failed to issue delegated EvalOps token for swarm teammate; using inherited auth\",\n\t\t\t\t{\n\t\t\t\t\terror: message,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn baseEnv;\n\t\t}\n\t}\n\n\tprivate resolveTaskDispatch(\n\t\ttask: SwarmTask,\n\t\tteammate: SwarmTeammate,\n\t\toptions: { hasModelOverride?: boolean } = {},\n\t): TaskDispatchResolution | null {\n\t\tconst startedAt = Date.now();\n\t\tconst requestedSubagentType =\n\t\t\ttask.subagentType ?? this.state.config.subagentType;\n\t\tif (!requestedSubagentType) {\n\t\t\treturn null;\n\t\t}\n\t\tconst subagentType = parseSubagentType(requestedSubagentType);\n\t\tif (!subagentType) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst mode = this.resolveParentMode();\n\t\tconst parentProvider = this.resolveParentModelProvider();\n\t\tconst dispatch = resolveSubagentDispatch(\n\t\t\tmode,\n\t\t\tsubagentType,\n\t\t\tparentProvider ?? \"openai-codex\",\n\t\t);\n\t\tif (!parentProvider && dispatch.modelTier && !options.hasModelOverride) {\n\t\t\tthis.recordTaskDispatch(\n\t\t\t\ttask,\n\t\t\t\tdispatch,\n\t\t\t\tMath.max(0, Date.now() - startedAt),\n\t\t\t\tfalse,\n\t\t\t\t{\n\t\t\t\t\tparentMode: mode,\n\t\t\t\t\tparentModelProvider: parentProvider,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\treason: \"missing_parent_model_provider\",\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tdispatch,\n\t\t\tstartedAt,\n\t\t\tlatencyMs: Math.max(0, Date.now() - startedAt),\n\t\t\tparentMode: mode,\n\t\t\tparentModelProvider: parentProvider,\n\t\t};\n\t}\n\n\tprivate recordTaskDispatch(\n\t\ttask: SwarmTask,\n\t\tdispatch: ResolvedSubagentDispatch,\n\t\tlatencyMs: number,\n\t\tsuccess: boolean,\n\t\toptions: {\n\t\t\tparentMode: AgentMode;\n\t\t\tparentModelProvider?: ModelProvider;\n\t\t\tteammateId?: string;\n\t\t\tmodel?: string;\n\t\t\tprovider?: string;\n\t\t\tsource?: string;\n\t\t\tmodelOverride?: \"task\" | \"config\";\n\t\t\treason?: string;\n\t\t},\n\t): void {\n\t\trecordSubagentDispatch({\n\t\t\tmode: dispatch.mode,\n\t\t\tsubagentType: dispatch.type,\n\t\t\tmodel: options.model ?? dispatch.model,\n\t\t\tprovider: options.provider ?? dispatch.provider,\n\t\t\treasoningEffort:\n\t\t\t\tthis.state.config.reasoningEffort ?? dispatch.reasoningEffort,\n\t\t\tlatencyMs,\n\t\t\tsuccess,\n\t\t\tsource: options.source ?? dispatch.source,\n\t\t\tmetadata: {\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: options.teammateId,\n\t\t\t\ttaskId: task.id,\n\t\t\t\tparentMode: options.parentMode,\n\t\t\t\tparentModelProvider: options.parentModelProvider,\n\t\t\t\tdispatchModel: dispatch.model,\n\t\t\t\tdispatchProvider: dispatch.provider,\n\t\t\t\tdispatchSource: dispatch.source,\n\t\t\t\tmodelTier: dispatch.modelTier,\n\t\t\t\tmodelOverride: options.modelOverride,\n\t\t\t\treason: options.reason,\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate resolveParentMode(): AgentMode {\n\t\treturn (\n\t\t\tthis.state.config.mode ??\n\t\t\tparseAgentMode(process.env.MAESTRO_MODE) ??\n\t\t\t\"smart\"\n\t\t);\n\t}\n\n\tprivate resolveParentModelProvider(): ModelProvider | undefined {\n\t\treturn (\n\t\t\tthis.state.config.modelProvider ??\n\t\t\tparseModelProvider(process.env.MAESTRO_MODEL_PROVIDER) ??\n\t\t\tproviderFromPrefixedModel(process.env.MAESTRO_MODEL)\n\t\t);\n\t}\n\n\tprivate resolveA2AConfig(): SwarmA2AConfig | null {\n\t\tconst transport =\n\t\t\tthis.state.config.transport ??\n\t\t\ttrimString(process.env.MAESTRO_SWARM_TRANSPORT);\n\t\tif (transport !== \"a2a\") {\n\t\t\treturn null;\n\t\t}\n\t\tconst configured = this.state.config.a2a ?? {};\n\t\tconst peers =\n\t\t\tconfigured.peers ?? parseCSVEnv(getEnvValue([\"MAESTRO_SWARM_A2A_PEERS\"]));\n\t\treturn {\n\t\t\t...configured,\n\t\t\t...(peers ? { peers } : {}),\n\t\t\tregistryPath:\n\t\t\t\tconfigured.registryPath ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_REGISTRY),\n\t\t\ttasksPath:\n\t\t\t\tconfigured.tasksPath ?? trimString(process.env.MAESTRO_SWARM_A2A_TASKS),\n\t\t\tskillId:\n\t\t\t\tconfigured.skillId ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_SKILL_ID),\n\t\t\trole: configured.role ?? trimString(process.env.MAESTRO_SWARM_A2A_ROLE),\n\t\t\tdiscover:\n\t\t\t\tconfigured.discover ??\n\t\t\t\tparseBooleanEnv(process.env.MAESTRO_SWARM_A2A_DISCOVER),\n\t\t\tworkspaceId:\n\t\t\t\tconfigured.workspaceId ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_WORKSPACE_ID),\n\t\t\tcapability:\n\t\t\t\tconfigured.capability ??\n\t\t\t\ttrimString(process.env.MAESTRO_SWARM_A2A_CAPABILITY),\n\t\t\tsurface:\n\t\t\t\tconfigured.surface ?? trimString(process.env.MAESTRO_SWARM_A2A_SURFACE),\n\t\t\tpreferInternalEndpoint:\n\t\t\t\tconfigured.preferInternalEndpoint ??\n\t\t\t\tparseBooleanEnv(process.env.MAESTRO_SWARM_A2A_PREFER_INTERNAL),\n\t\t\tlimit:\n\t\t\t\tconfigured.limit ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_LIMIT),\n\t\t\ttimeoutMs:\n\t\t\t\tconfigured.timeoutMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_TIMEOUT_MS),\n\t\t\tmaxAttempts:\n\t\t\t\tconfigured.maxAttempts ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_MAX_ATTEMPTS),\n\t\t\tmaxWaitMs:\n\t\t\t\tconfigured.maxWaitMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_MAX_WAIT_MS),\n\t\t\tpollIntervalMs:\n\t\t\t\tconfigured.pollIntervalMs ??\n\t\t\t\tparsePositiveIntEnv(process.env.MAESTRO_SWARM_A2A_POLL_INTERVAL_MS),\n\t\t\tpushNotificationConfig: resolveA2APushNotificationConfig(\n\t\t\t\tconfigured.pushNotificationConfig,\n\t\t\t),\n\t\t};\n\t}\n\n\tprivate async resolveA2ATeammateRoute(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATeammateRoute> {\n\t\tif (options.discover) {\n\t\t\treturn this.resolvePlatformDiscoveredA2ATeammateRoute(\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\toptions,\n\t\t\t);\n\t\t}\n\t\tconst peerName = this.selectA2APeerName(teammate, task, options);\n\t\tconst peer = await resolveA2APeer(peerName, {\n\t\t\tpath: options.registryPath,\n\t\t\ttimeoutMs: options.timeoutMs,\n\t\t\tmaxAttempts: options.maxAttempts,\n\t\t});\n\t\tconst skillId = this.resolveA2ASkillId(task, options, peer);\n\t\treturn {\n\t\t\tname: peer.name,\n\t\t\tdisplayName: peer.entry.displayName,\n\t\t\tconfig: peer.config,\n\t\t\tskillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, skillId),\n\t\t\trole: this.resolveA2ARole(task, options),\n\t\t\ttasksPath: options.tasksPath,\n\t\t\tpeerEndpointHash: hashA2AEndpointUrlForTelemetry(peer.config.baseUrl),\n\t\t\tsource: \"registry\",\n\t\t};\n\t}\n\n\tprivate async resolvePlatformDiscoveredA2ATeammateRoute(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATeammateRoute> {\n\t\tconst skillId = this.resolveA2ASkillId(task, options);\n\t\tconst pinnedPeer = trimString(task.a2aPeer);\n\t\tconst routeIndex = pinnedPeer ? 0 : this.nextA2ARouteIndex();\n\t\tconst candidates = await listA2APeerCandidatesWithPlatform({\n\t\t\tworkspaceId: options.workspaceId,\n\t\t\tcapability: options.capability,\n\t\t\tsurface: options.surface ?? \"a2a\",\n\t\t\tstatus: PlatformAgentStatusValue.Idle,\n\t\t\tlimit:\n\t\t\t\toptions.limit ??\n\t\t\t\t(pinnedPeer ? undefined : this.defaultA2ADiscoveryLimit()),\n\t\t\tskillId,\n\t\t\tpreferInternalEndpoint: options.preferInternalEndpoint,\n\t\t});\n\t\tif (!candidates || candidates.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peers available for swarm task ${task.id}${\n\t\t\t\t\tskillId ? ` with skill ${skillId}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\tconst candidatePool = pinnedPeer\n\t\t\t? candidates.filter((candidate) =>\n\t\t\t\t\tplatformA2ACandidateMatchesPeer(candidate, pinnedPeer),\n\t\t\t\t)\n\t\t\t: candidates;\n\t\tif (candidatePool.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peer matched task ${task.id} a2aPeer ${pinnedPeer}`,\n\t\t\t);\n\t\t}\n\t\tconst rankedCandidates = rankA2ACapabilityPeers(candidatePool, {\n\t\t\tskillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, skillId),\n\t\t\tpreferInternalEndpoint: options.preferInternalEndpoint,\n\t\t});\n\t\tif (rankedCandidates.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`No Platform A2A peer satisfied capability policy for swarm task ${task.id}${\n\t\t\t\t\tskillId ? ` with skill ${skillId}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\tconst candidateIndex = pinnedPeer\n\t\t\t? 0\n\t\t\t: routeIndex % rankedCandidates.length;\n\t\tconst ranked = rankedCandidates[candidateIndex];\n\t\tconst candidate = ranked?.candidate;\n\t\tif (!candidate || !ranked) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform A2A peer discovery returned an invalid candidate\",\n\t\t\t);\n\t\t}\n\t\tlogger.info(\"Selected Platform A2A peer through capability market\", {\n\t\t\tswarmId: this.state.id,\n\t\t\ttaskId: task.id,\n\t\t\tagentId: candidate.agent.id,\n\t\t\tscore: ranked.score,\n\t\t\treasons: ranked.reasons,\n\t\t\tskillId: ranked.selectedSkill?.id ?? skillId,\n\t\t});\n\t\tconst config = await this.a2aConfigForPlatformCandidate(candidate, options);\n\t\tconst selectedSkillId = ranked.selectedSkill?.id ?? skillId;\n\t\tconst endpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl);\n\t\tconst routeName = platformA2APeerRouteName(candidate, endpointHash);\n\t\treturn {\n\t\t\tname: routeName,\n\t\t\tdisplayName: candidate.agent.name,\n\t\t\tconfig,\n\t\t\tskillId: selectedSkillId,\n\t\t\ttaskClass: this.resolveA2ATaskClass(task, options, selectedSkillId),\n\t\t\trole: this.resolveA2ARole(task, options),\n\t\t\ttasksPath: options.tasksPath,\n\t\t\tpeerAgentId: candidate.agent.id,\n\t\t\tpeerEndpointHash: endpointHash,\n\t\t\tpeerEndpointKind: candidate.endpointKind,\n\t\t\tsource: \"platform-agent-registry\",\n\t\t};\n\t}\n\n\tprivate async a2aConfigForPlatformCandidate(\n\t\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2AServiceConfig> {\n\t\tconst platformConfig = await resolveAgentRegistryServiceConfig();\n\t\tif (!platformConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform Agent Registry service is not configured for A2A swarm discovery\",\n\t\t\t);\n\t\t}\n\t\tconst candidateAgentId = trimString(candidate.agent.id);\n\t\tconst registryTokenFallback = getEnvValue(DEDICATED_A2A_TOKEN_ENV_VARS)\n\t\t\t? undefined\n\t\t\t: platformConfig.token;\n\t\tconst serviceConfig = await resolveA2AServiceConfig({\n\t\t\tbaseUrl: normalizeA2ABaseUrl(candidate.endpointUrl),\n\t\t\ttoken: registryTokenFallback,\n\t\t\torganizationId: platformConfig.organizationId,\n\t\t\tworkspaceId:\n\t\t\t\tcandidate.agent.workspaceId ??\n\t\t\t\toptions.workspaceId ??\n\t\t\t\tplatformConfig.workspaceId,\n\t\t\t...(candidateAgentId ? { agentId: candidateAgentId } : {}),\n\t\t\tactorId: \"maestro-swarm\",\n\t\t\ttimeoutMs: options.timeoutMs ?? platformConfig.timeoutMs,\n\t\t\tmaxAttempts: options.maxAttempts ?? platformConfig.maxAttempts,\n\t\t});\n\t\tif (!serviceConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Platform A2A peer discovery requires a workspace id for the selected peer\",\n\t\t\t);\n\t\t}\n\t\tif (!candidateAgentId) {\n\t\t\tconst { agentId: _defaultAgentId, ...anonymousServiceConfig } =\n\t\t\t\tserviceConfig;\n\t\t\treturn anonymousServiceConfig;\n\t\t}\n\t\treturn serviceConfig;\n\t}\n\n\tprivate selectA2APeerName(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): string {\n\t\tconst peerName = trimString(task.a2aPeer);\n\t\tif (peerName) {\n\t\t\treturn peerName;\n\t\t}\n\t\tconst peers = options.peers ?? [];\n\t\tconst selected = peers[this.nextA2ARouteIndex() % peers.length];\n\t\tif (!selected) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Remote A2A swarm transport requires a task a2aPeer, a2a.peers, MAESTRO_SWARM_A2A_PEERS, or a2a.discover=true\",\n\t\t\t);\n\t\t}\n\t\treturn selected;\n\t}\n\n\tprivate resolveA2ASkillId(\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t\tpeer?: ResolvedA2APeer,\n\t): string | undefined {\n\t\tconst configured =\n\t\t\ttrimString(task.a2aSkillId) ??\n\t\t\ttrimString(options.skillId) ??\n\t\t\tcodexSubagentTypeA2ASkillID(\n\t\t\t\ttask.subagentType ?? this.state.config.subagentType,\n\t\t\t);\n\t\tif (configured) {\n\t\t\treturn configured;\n\t\t}\n\t\treturn peer?.entry.skills?.[0]?.id;\n\t}\n\n\tprivate resolveA2ATaskClass(\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t\tskillId: string | undefined,\n\t): string | undefined {\n\t\tconst explicitSkill =\n\t\t\ttrimString(task.a2aSkillId) ?? trimString(options.skillId);\n\t\tconst requestedSubagentType = trimString(\n\t\t\ttask.subagentType ?? this.state.config.subagentType,\n\t\t);\n\t\tconst normalizedRequestedSubagentType = codexSubagentSkillToken(\n\t\t\trequestedSubagentType,\n\t\t);\n\t\tconst parsedSubagentType = requestedSubagentType\n\t\t\t? parseSubagentType(requestedSubagentType)\n\t\t\t: undefined;\n\t\tconst subagentType = parsedSubagentType ?? normalizedRequestedSubagentType;\n\t\tconst mappedSubagentTaskClass = normalizedRequestedSubagentType\n\t\t\t? (SWARM_SUBAGENT_TASK_CLASSES.get(normalizedRequestedSubagentType) ??\n\t\t\t\t(parsedSubagentType\n\t\t\t\t\t? SWARM_SUBAGENT_TASK_CLASSES.get(parsedSubagentType)\n\t\t\t\t\t: undefined))\n\t\t\t: undefined;\n\t\tif (\n\t\t\tmappedSubagentTaskClass &&\n\t\t\tnormalizedRequestedSubagentType &&\n\t\t\tA2A_SUBAGENT_TASK_CLASS_OVERRIDES.has(normalizedRequestedSubagentType)\n\t\t) {\n\t\t\treturn mappedSubagentTaskClass;\n\t\t}\n\t\tconst mappedSkillTaskClass = skillId\n\t\t\t? A2A_SKILL_PRIMARY_TASK_CLASSES.get(skillId)\n\t\t\t: undefined;\n\t\tif (mappedSkillTaskClass) {\n\t\t\treturn mappedSkillTaskClass;\n\t\t}\n\t\tif (skillId && explicitSkill) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn mappedSubagentTaskClass ?? subagentType ?? requestedSubagentType;\n\t}\n\n\tprivate resolveA2ARole(\n\t\ttask: SwarmTask,\n\t\toptions: SwarmA2AConfig,\n\t): string | undefined {\n\t\tconst configuredRole = trimString(options.role);\n\t\tif (configuredRole) {\n\t\t\treturn parseSubagentType(configuredRole) ?? configuredRole;\n\t\t}\n\t\tconst requestedSubagentType = trimString(\n\t\t\ttask.subagentType ?? this.state.config.subagentType,\n\t\t);\n\t\treturn requestedSubagentType\n\t\t\t? (parseSubagentType(requestedSubagentType) ?? requestedSubagentType)\n\t\t\t: undefined;\n\t}\n\n\tprivate teammateIndex(teammate: SwarmTeammate): number {\n\t\tconst index = this.state.teammates.findIndex(\n\t\t\t(item) => item.id === teammate.id,\n\t\t);\n\t\treturn index >= 0 ? index : 0;\n\t}\n\n\tprivate nextA2ARouteIndex(): number {\n\t\tconst index = this.a2aRouteCursor;\n\t\tthis.a2aRouteCursor += 1;\n\t\treturn index;\n\t}\n\n\tprivate defaultA2ADiscoveryLimit(): number {\n\t\treturn Math.max(\n\t\t\t1,\n\t\t\tthis.state.config.teammateCount,\n\t\t\tthis.state.config.tasks.length,\n\t\t);\n\t}\n\n\tprivate async spawnTeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t): Promise<void> {\n\t\tconst tmpFile = join(\n\t\t\ttmpdir(),\n\t\t\t`${this.state.id}-${toSafeTaskTempBasename(task.id)}`,\n\t\t);\n\n\t\tconst specialistProfile = task.specialistProfile\n\t\t\t? resolveSpecialistProfile(task.specialistProfile, this.state.config.cwd)\n\t\t\t: null;\n\t\tif (task.specialistProfile && !specialistProfile) {\n\t\t\tthrow new Error(\n\t\t\t\t`specialist profile not found or invalid: ${task.specialistProfile}`,\n\t\t\t);\n\t\t}\n\t\tconst delegationPrompt: DelegationPrompt = {\n\t\t\tgoal: `Complete swarm task ${task.id} as teammate \"${teammate.name}\".`,\n\t\t\tcontext: `You are teammate \"${teammate.name}\" in swarm ${this.state.id}, working from plan file ${this.state.config.planFile}.`,\n\t\t\ttask: applySpecialistProfileToPrompt(task.prompt, specialistProfile),\n\t\t\tevidence: task.files?.length\n\t\t\t\t? task.files.map((file) => `Relevant file: ${file}`)\n\t\t\t\t: [],\n\t\t\tvalidation: buildSwarmValidationDirective(task.mocksAllowed),\n\t\t\tstoppingCondition:\n\t\t\t\t\"Stop when the assigned task is complete and report what changed, what you verified, and any blockers. Do not broaden into unrelated tasks.\",\n\t\t};\n\t\tconst prompt = formatDelegation(delegationPrompt);\n\n\t\tconst requestedSubagentType =\n\t\t\ttask.subagentType ?? this.state.config.subagentType;\n\n\t\twriteFileSync(tmpFile, prompt);\n\n\t\tif (requestedSubagentType && !parseSubagentType(requestedSubagentType)) {\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\t\t\tconst error = `Invalid subagent type: ${requestedSubagentType}`;\n\t\t\tthis.state.activeTasks.delete(task.id);\n\t\t\tthis.state.failedTasks.add(task.id);\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\t\t\tteammate.status = \"failed\";\n\t\t\tteammate.error = error;\n\t\t\tteammate.completedAt = Date.now();\n\t\t\tteammate.currentTask = undefined;\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror,\n\t\t\t});\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\tif (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 ||\n\t\t\t\t\tthis.state.activeTasks.size > 0) &&\n\t\t\t\tthis.state.config.continueOnFailure\n\t\t\t) {\n\t\t\t\tteammate.status = \"pending\";\n\t\t\t\tteammate.error = undefined;\n\t\t\t\tteammate.completedAt = undefined;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst a2aConfig = this.resolveA2AConfig();\n\t\tif (a2aConfig) {\n\t\t\tvoid this.spawnA2ATeammate(teammate, task, prompt, tmpFile, a2aConfig);\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelOverride =\n\t\t\ttask.model !== undefined\n\t\t\t\t? \"task\"\n\t\t\t\t: this.state.config.model !== undefined\n\t\t\t\t\t? \"config\"\n\t\t\t\t\t: undefined;\n\t\tconst hasModelOverride = Boolean(modelOverride);\n\t\tconst dispatchResolution = this.resolveTaskDispatch(task, teammate, {\n\t\t\thasModelOverride,\n\t\t});\n\t\tconst dispatch = dispatchResolution?.dispatch ?? null;\n\t\tconst model = task.model ?? this.state.config.model ?? dispatch?.model;\n\t\tconst overrideProvider = hasModelOverride\n\t\t\t? (providerFromPrefixedModel(model) ?? \"unknown\")\n\t\t\t: undefined;\n\t\tconst telemetryProvider =\n\t\t\toverrideProvider ?? (hasModelOverride ? \"unknown\" : dispatch?.provider);\n\t\tconst dispatchSource = hasModelOverride ? \"override\" : dispatch?.source;\n\t\tconst provider = hasModelOverride ? undefined : dispatch?.provider;\n\t\tconst args = [\n\t\t\t\"--no-session\",\n\t\t\t...(provider ? [\"--provider\", provider] : []),\n\t\t\t...(model ? [\"--model\", model] : []),\n\t\t\t\"exec\",\n\t\t\ttmpFile,\n\t\t];\n\t\tconst env = await this.buildTeammateEnv(\n\t\t\tteammate,\n\t\t\ttask,\n\t\t\tdispatch,\n\t\t\tdispatch\n\t\t\t\t? {\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tprovider: telemetryProvider,\n\t\t\t\t\t\tsource: dispatchSource,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t);\n\n\t\tif (\n\t\t\tthis.state.status !== \"running\" ||\n\t\t\tthis.abortController.signal.aborted\n\t\t) {\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tthis.state.activeTasks.delete(task.id);\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.completedAt = Date.now();\n\n\t\t\tif (teammate.status !== \"cancelled\") {\n\t\t\t\tteammate.status =\n\t\t\t\t\tthis.state.status === \"failed\" ? \"failed\" : \"cancelled\";\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst proc = spawn(\"maestro\", args, {\n\t\t\tcwd: this.state.config.cwd,\n\t\t\tstdio: [\"pipe\", \"pipe\", \"pipe\"],\n\t\t\tenv,\n\t\t});\n\n\t\tteammate.pid = proc.pid;\n\t\tthis.processes.set(teammate.id, proc);\n\n\t\tlet dispatchRecorded = false;\n\t\tconst recordDispatchOutcome = (success: boolean, reason?: string): void => {\n\t\t\tif (!dispatch || !dispatchResolution || dispatchRecorded) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdispatchRecorded = true;\n\t\t\tthis.recordTaskDispatch(\n\t\t\t\ttask,\n\t\t\t\tdispatch,\n\t\t\t\tMath.max(0, Date.now() - dispatchResolution.startedAt),\n\t\t\t\tsuccess,\n\t\t\t\t{\n\t\t\t\t\tparentMode: dispatchResolution.parentMode,\n\t\t\t\t\tparentModelProvider: dispatchResolution.parentModelProvider,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\tmodel,\n\t\t\t\t\tprovider: telemetryProvider,\n\t\t\t\t\tsource: dispatchSource,\n\t\t\t\t\tmodelOverride,\n\t\t\t\t\treason,\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\tproc.once(\"spawn\", () => {\n\t\t\trecordDispatchOutcome(true);\n\t\t});\n\n\t\tlet output = \"\";\n\t\tlet errorOutput = \"\";\n\n\t\tproc.stdout?.on(\"data\", (data) => {\n\t\t\toutput += data.toString();\n\t\t});\n\n\t\tproc.stderr?.on(\"data\", (data) => {\n\t\t\terrorOutput += data.toString();\n\t\t});\n\n\t\tconst timeout = this.state.config.taskTimeout ?? DEFAULT_TASK_TIMEOUT_MS;\n\t\tconst timeoutHandle = setTimeout(() => {\n\t\t\tproc.kill(\"SIGTERM\");\n\t\t\tteammate.error = \"Task timed out\";\n\t\t}, timeout);\n\n\t\tproc.on(\"close\", (code) => {\n\t\t\tclearTimeout(timeoutHandle);\n\t\t\tthis.processes.delete(teammate.id);\n\n\t\t\t// Cleanup temp file\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tconst taskId = task.id;\n\t\t\tteammate.completedAt = Date.now();\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.output = output;\n\n\t\t\tthis.state.activeTasks.delete(taskId);\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tteammate.status === \"cancelled\"\n\t\t\t) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammate,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (code === 0 && !teammate.error) {\n\t\t\t\tteammate.status = \"completed\";\n\t\t\t\tteammate.completedTasks.push(taskId);\n\t\t\t\tthis.state.completedTasks.add(taskId);\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"task_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\ttaskId,\n\t\t\t\t\toutput,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tteammate.status = \"failed\";\n\t\t\t\tteammate.error = teammate.error || errorOutput || `Exit code ${code}`;\n\t\t\t\tthis.state.failedTasks.add(taskId);\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"task_fail\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\ttaskId,\n\t\t\t\t\terror: teammate.error,\n\t\t\t\t});\n\n\t\t\t\t// Stop swarm if not continuing on failure\n\t\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\t\tthis.state.status = \"failed\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\n\t\t\t// Only recycle idle teammates while the swarm still has work left.\n\t\t\tif (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 ||\n\t\t\t\t\tthis.state.activeTasks.size > 0) &&\n\t\t\t\t(teammate.status === \"completed\" || this.state.config.continueOnFailure)\n\t\t\t) {\n\t\t\t\tteammate.status = \"pending\";\n\t\t\t\tteammate.error = undefined;\n\t\t\t}\n\t\t});\n\n\t\tproc.on(\"error\", (err) => {\n\t\t\trecordDispatchOutcome(false, \"spawn_error\");\n\t\t\tclearTimeout(timeoutHandle);\n\t\t\tthis.processes.delete(teammate.id);\n\t\t\tthis.state.activeTasks.delete(task.id);\n\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\n\t\t\tteammate.completedAt = Date.now();\n\t\t\tteammate.currentTask = undefined;\n\t\t\tteammate.output = output || errorOutput;\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tteammate.status === \"cancelled\"\n\t\t\t) {\n\t\t\t\tteammate.status = \"cancelled\";\n\t\t\t\tteammate.currentTask = undefined;\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tteammate,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tteammate.status = \"failed\";\n\t\t\tteammate.error = err.message;\n\t\t\tthis.state.failedTasks.add(task.id);\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror: err.message,\n\t\t\t});\n\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\tthis.state.status === \"running\" &&\n\t\t\t\t(this.state.pendingTasks.length > 0 ||\n\t\t\t\t\tthis.state.activeTasks.size > 0) &&\n\t\t\t\tthis.state.config.continueOnFailure\n\t\t\t) {\n\t\t\t\tteammate.status = \"pending\";\n\t\t\t\tteammate.error = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async spawnA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tprompt: string,\n\t\ttmpFile: string,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<void> {\n\t\tlet route: A2ATeammateRoute | undefined;\n\t\tlet messageId: string | undefined;\n\t\tlet contextId: string | undefined;\n\t\tlet a2aTaskId: string | undefined;\n\t\tconst startedAt = Date.now();\n\t\ttry {\n\t\t\troute = await this.resolveA2ATeammateRoute(teammate, task, options);\n\t\t\tmessageId = `maestro-swarm-message-${randomUUID()}`;\n\t\t\tcontextId = `maestro-swarm:${this.state.id}:${task.id}`;\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\"peer_selected\",\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\tcontextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t},\n\t\t\t);\n\t\t\tconst dispatchStartedAt = Date.now();\n\t\t\tconst sent = await sendA2AMessage(route.config, {\n\t\t\t\tmessage: buildA2AUserMessage({\n\t\t\t\t\tmessageId,\n\t\t\t\t\tcontextId,\n\t\t\t\t\ttext: prompt,\n\t\t\t\t\tmetadata: this.buildA2ASwarmMessageMetadata(teammate, task, route),\n\t\t\t\t}),\n\t\t\t\tconfiguration: {\n\t\t\t\t\treturnImmediately: true,\n\t\t\t\t\tacceptedOutputModes: [\"text/plain\", \"application/json\"],\n\t\t\t\t\t...(options.pushNotificationConfig\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\ttaskPushNotificationConfig: options.pushNotificationConfig,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t\tmetadata: {\n\t\t\t\t\troute: \"maestro_swarm\",\n\t\t\t\t\ttransport: \"a2a\",\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tteammateId: teammate.id,\n\t\t\t\t\tpeer: route.name,\n\t\t\t\t\tsource: route.source,\n\t\t\t\t},\n\t\t\t});\n\t\t\ta2aTaskId = sent.task.id;\n\t\t\tcontextId = sent.task.contextId ?? contextId;\n\t\t\tconst dispatchLatencyMs = Math.max(0, Date.now() - dispatchStartedAt);\n\t\t\tteammate.a2a = {\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerDisplayName: route.displayName,\n\t\t\t\tsource: route.source,\n\t\t\t\tparentTaskId: task.id,\n\t\t\t\ttaskId: sent.task.id,\n\t\t\t\tcontextId,\n\t\t\t\tmessageId,\n\t\t\t\tskillId: route.skillId,\n\t\t\t\trole: route.role,\n\t\t\t};\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\"task_dispatched\",\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\ta2aTaskId: sent.task.id,\n\t\t\t\t\tcontextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tstatus: sent.task.status.state,\n\t\t\t\t\tlatencyMs: dispatchLatencyMs,\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.remoteA2ATasks.set(teammate.id, {\n\t\t\t\troute,\n\t\t\t\ttaskId: sent.task.id,\n\t\t\t});\n\t\t\tawait this.recordA2ASwarmTaskStart(route, task, sent.task, prompt, {\n\t\t\t\tmessageId,\n\t\t\t\tcontextId,\n\t\t\t});\n\t\t\tif (\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tthis.abortController.signal.aborted\n\t\t\t) {\n\t\t\t\tconst cancelledTask = await this.cancelRemoteA2ATask(teammate.id, {\n\t\t\t\t\troute,\n\t\t\t\t\ttaskId: sent.task.id,\n\t\t\t\t});\n\t\t\t\tif (!cancelledTask) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\ta2aTerminalPhase(cancelledTask.status.state),\n\t\t\t\t\troute,\n\t\t\t\t\tteammate,\n\t\t\t\t\ttask,\n\t\t\t\t\t{\n\t\t\t\t\t\ta2aTaskId: cancelledTask.id,\n\t\t\t\t\t\tcontextId:\n\t\t\t\t\t\t\tcancelledTask.contextId ?? sent.task.contextId ?? contextId,\n\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\tstatus: cancelledTask.status.state,\n\t\t\t\t\t\tterminal: true,\n\t\t\t\t\t\tsuccess: a2aStateCompleted(cancelledTask.status.state),\n\t\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst remoteTask = await this.waitForA2ASwarmTask(\n\t\t\t\troute.config,\n\t\t\t\tsent.task,\n\t\t\t\toptions,\n\t\t\t);\n\t\t\tawait this.updateA2ASwarmTaskLedger(route, remoteTask);\n\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\ta2aTerminalPhase(remoteTask.status.state),\n\t\t\t\troute,\n\t\t\t\tteammate,\n\t\t\t\ttask,\n\t\t\t\t{\n\t\t\t\t\ta2aTaskId: remoteTask.id,\n\t\t\t\t\tcontextId: remoteTask.contextId ?? contextId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tstatus: remoteTask.status.state,\n\t\t\t\t\tterminal: true,\n\t\t\t\t\tsuccess: a2aStateCompleted(remoteTask.status.state),\n\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.completeA2ATeammate(teammate, task, remoteTask, route);\n\t\t} catch (error) {\n\t\t\tconst wasCancelled =\n\t\t\t\tthis.state.status === \"cancelled\" ||\n\t\t\t\tthis.abortController.signal.aborted ||\n\t\t\t\tteammate.status === \"cancelled\";\n\t\t\tconst remoteTask = this.remoteA2ATasks.get(teammate.id);\n\t\t\tconst pendingCancelTask = this.remoteA2ACancelTasks.get(teammate.id);\n\t\t\tconst cancelledTask = wasCancelled\n\t\t\t\t? await (pendingCancelTask ??\n\t\t\t\t\t\t(remoteTask\n\t\t\t\t\t\t\t? this.cancelRemoteA2ATask(teammate.id, remoteTask)\n\t\t\t\t\t\t\t: Promise.resolve(undefined)))\n\t\t\t\t: undefined;\n\t\t\tif (!wasCancelled && remoteTask) {\n\t\t\t\tawait this.cancelRemoteA2ATask(teammate.id, remoteTask);\n\t\t\t}\n\t\t\tif (route) {\n\t\t\t\tif (!wasCancelled || cancelledTask) {\n\t\t\t\t\tthis.recordA2ADelegationTelemetry(\n\t\t\t\t\t\twasCancelled\n\t\t\t\t\t\t\t? a2aTerminalPhase(cancelledTask?.status.state)\n\t\t\t\t\t\t\t: \"task_failed\",\n\t\t\t\t\t\troute,\n\t\t\t\t\t\tteammate,\n\t\t\t\t\t\ttask,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta2aTaskId: cancelledTask?.id ?? a2aTaskId,\n\t\t\t\t\t\t\tcontextId: cancelledTask?.contextId ?? contextId,\n\t\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\t\tstatus: cancelledTask?.status.state ?? \"TASK_STATE_FAILED\",\n\t\t\t\t\t\t\tterminal: true,\n\t\t\t\t\t\t\tsuccess: a2aStateCompleted(cancelledTask?.status.state),\n\t\t\t\t\t\t\tdurationMs: Math.max(0, Date.now() - startedAt),\n\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.failA2ATeammate(teammate, task, error, {\n\t\t\t\tpreserveA2A: Boolean(a2aTaskId),\n\t\t\t});\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.delete(teammate.id);\n\t\t\tthis.remoteA2ACancelTasks.delete(teammate.id);\n\t\t\ttry {\n\t\t\t\tunlinkSync(tmpFile);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate recordA2ADelegationTelemetry(\n\t\tphase: Parameters<typeof recordA2ADelegationTelemetryEvent>[0][\"phase\"],\n\t\troute: A2ATeammateRoute,\n\t\t_teammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\toptions: {\n\t\t\ta2aTaskId?: string;\n\t\t\tcontextId?: string;\n\t\t\tmessageId?: string;\n\t\t\tstatus?: string;\n\t\t\tterminal?: boolean;\n\t\t\tsuccess?: boolean;\n\t\t\tlatencyMs?: number;\n\t\t\tdurationMs?: number;\n\t\t\tmetadata?: Record<string, unknown>;\n\t\t} = {},\n\t): void {\n\t\tconst laneId = a2aDelegationLaneId(route.name, task.id);\n\t\trecordA2ADelegationTelemetryEvent({\n\t\t\tphase,\n\t\t\tswarmId: this.state.id,\n\t\t\tlaneId,\n\t\t\tparentTaskId: task.id,\n\t\t\ta2aTaskId: options.a2aTaskId,\n\t\t\ta2aMessageId: options.messageId,\n\t\t\tcontextId: options.contextId,\n\t\t\tpeerAgentId: route.peerAgentId,\n\t\t\tpeerName: route.name,\n\t\t\tpeerEndpointHash: route.peerEndpointHash,\n\t\t\tpeerEndpointUrl: undefined,\n\t\t\tpeerEndpointKind: route.peerEndpointKind,\n\t\t\tskillId: route.skillId,\n\t\t\ttaskClass: route.taskClass,\n\t\t\tsource: route.source,\n\t\t\tstatus: options.status,\n\t\t\tterminal: options.terminal,\n\t\t\tsuccess: options.success,\n\t\t\tlatencyMs: options.latencyMs,\n\t\t\tdurationMs: options.durationMs,\n\t\t\tmetadata: options.metadata,\n\t\t\tcorrelation: {\n\t\t\t\tattributes: {\n\t\t\t\t\tswarm_id: this.state.id,\n\t\t\t\t\tlane_id: laneId,\n\t\t\t\t\tparent_task_id: task.id,\n\t\t\t\t\tpeer: route.name,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate buildA2ASwarmMessageMetadata(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\troute: A2ATeammateRoute,\n\t): Record<string, unknown> {\n\t\tconst missionRole = resolveMissionRoleForTeammate();\n\t\tconst currentDelegationId = `${this.state.id}:${task.id}`;\n\t\tconst contextId = `maestro-swarm:${this.state.id}:${task.id}`;\n\t\tconst lineage = {\n\t\t\trootDelegationId: this.state.id,\n\t\t\t...(this.state.config.parentSessionId\n\t\t\t\t? { parentDelegationId: this.state.config.parentSessionId }\n\t\t\t\t: {}),\n\t\t\tcurrentDelegationId,\n\t\t\tdelegationChain: [this.state.id, currentDelegationId],\n\t\t\tdelegationChainDepth: 1,\n\t\t\tmaxDelegationChainDepth: 1,\n\t\t};\n\t\tconst subagentRequest = route.skillId\n\t\t\t? {\n\t\t\t\t\tskillId: route.skillId,\n\t\t\t\t\trole: route.role,\n\t\t\t\t\tcwd: this.state.config.cwd,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\tmissionRole,\n\t\t\t\t\tenv: { MAESTRO_MISSION_ROLE: missionRole },\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst peerControl = {\n\t\t\tschema: \"evalops.maestro.a2a-peer-control.v1\",\n\t\t\tparentSwarmId: this.state.id,\n\t\t\tlaneId: a2aDelegationLaneId(route.name, task.id),\n\t\t\ttaskId: task.id,\n\t\t\tcontextId,\n\t\t\tcontrolModes: [\"followup\", \"steer\", \"interrupt\", \"cancel\"],\n\t\t\tevidenceRequired: [\"status\", \"artifact\", \"task\", \"workGraph\"],\n\t\t};\n\t\tconst validationPolicy = {\n\t\t\tschema: \"evalops.maestro.swarm-validation-policy.v1\",\n\t\t\tmocksAllowed: task.mocksAllowed === true,\n\t\t\tmode: task.mocksAllowed === true ? \"mocks-allowed\" : \"real-integrations\",\n\t\t};\n\t\treturn {\n\t\t\trequestKind: \"maestro-swarm-task\",\n\t\t\ttransport: \"a2a\",\n\t\t\trelayPeer: route.name,\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateId: teammate.id,\n\t\t\tteammateName: teammate.name,\n\t\t\ttaskId: task.id,\n\t\t\tmissionRole,\n\t\t\tvalidation: validationPolicy,\n\t\t\t...(route.skillId ? { a2aSkillId: route.skillId } : {}),\n\t\t\t...(task.files?.length ? { files: task.files } : {}),\n\t\t\tswarm: lineage,\n\t\t\tevalops: {\n\t\t\t\tswarm: lineage,\n\t\t\t\ttransport: \"a2a\",\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerControl,\n\t\t\t\tvalidation: validationPolicy,\n\t\t\t},\n\t\t\t\"evalops.peerControl\": peerControl,\n\t\t\t\"evalops.validation\": validationPolicy,\n\t\t\t...(subagentRequest\n\t\t\t\t? { \"evalops.subagentRequest\": subagentRequest }\n\t\t\t\t: {}),\n\t\t};\n\t}\n\n\tprivate async waitForA2ASwarmTask(\n\t\tconfig: A2AServiceConfig,\n\t\tinitialTask: A2ATask,\n\t\toptions: SwarmA2AConfig,\n\t): Promise<A2ATask> {\n\t\tconst maxWaitMs =\n\t\t\toptions.maxWaitMs ??\n\t\t\tthis.state.config.taskTimeout ??\n\t\t\tDEFAULT_TASK_TIMEOUT_MS;\n\t\tconst pollIntervalMs =\n\t\t\toptions.pollIntervalMs ?? DEFAULT_A2A_POLL_INTERVAL_MS;\n\t\tconst deadline = Date.now() + maxWaitMs;\n\t\tlet task = initialTask;\n\t\twhile (\n\t\t\t!isTerminalA2AState(task.status.state) &&\n\t\t\tDate.now() < deadline &&\n\t\t\t!this.abortController.signal.aborted\n\t\t) {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n\t\t\ttask = await getA2ATask(config, task.id, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t});\n\t\t}\n\t\tif (!isTerminalA2AState(task.status.state)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Timed out waiting for remote A2A task ${task.id}; last state ${task.status.state}`,\n\t\t\t);\n\t\t}\n\t\treturn task;\n\t}\n\n\tprivate completeA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\tremoteTask: A2ATask,\n\t\troute: A2ATeammateRoute,\n\t): void {\n\t\tthis.state.activeTasks.delete(task.id);\n\t\tteammate.completedAt = Date.now();\n\t\tteammate.currentTask = undefined;\n\t\tteammate.output =\n\t\t\textractA2ATaskText(remoteTask) ??\n\t\t\t`Remote A2A task ${remoteTask.id} finished with ${remoteTask.status.state}`;\n\t\tif (this.state.status === \"cancelled\" || teammate.status === \"cancelled\") {\n\t\t\tteammate.status = \"cancelled\";\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (a2aStateCompleted(remoteTask.status.state)) {\n\t\t\tteammate.status = \"completed\";\n\t\t\tteammate.completedTasks.push(task.id);\n\t\t\tthis.state.completedTasks.add(task.id);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\toutput: teammate.output,\n\t\t\t});\n\t\t} else {\n\t\t\tteammate.status = \"failed\";\n\t\t\tteammate.error = `Remote A2A task ${remoteTask.id} on ${route.name} ended in ${remoteTask.status.state}`;\n\t\t\tthis.state.failedTasks.add(task.id);\n\t\t\tthis.emit({\n\t\t\t\ttype: \"task_fail\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId: teammate.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\terror: teammate.error,\n\t\t\t});\n\t\t\tif (!this.state.config.continueOnFailure) {\n\t\t\t\tthis.state.status = \"failed\";\n\t\t\t}\n\t\t}\n\t\tthis.emit({\n\t\t\ttype: \"teammate_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammate,\n\t\t});\n\t\tif (\n\t\t\tthis.state.status === \"running\" &&\n\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0) &&\n\t\t\t(teammate.status === \"completed\" || this.state.config.continueOnFailure)\n\t\t) {\n\t\t\tteammate.status = \"pending\";\n\t\t\tteammate.error = undefined;\n\t\t}\n\t}\n\n\tprivate failA2ATeammate(\n\t\tteammate: SwarmTeammate,\n\t\ttask: SwarmTask,\n\t\terror: unknown,\n\t\toptions: { preserveA2A?: boolean } = {},\n\t): void {\n\t\tthis.state.activeTasks.delete(task.id);\n\t\tteammate.completedAt = Date.now();\n\t\tteammate.currentTask = undefined;\n\t\tif (this.state.status === \"cancelled\" || teammate.status === \"cancelled\") {\n\t\t\tteammate.status = \"cancelled\";\n\t\t\tthis.emit({\n\t\t\t\ttype: \"teammate_complete\",\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammate,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tteammate.a2a &&\n\t\t\t!options.preserveA2A &&\n\t\t\t!this.remoteA2ATasks.has(teammate.id)\n\t\t) {\n\t\t\tteammate.a2a = undefined;\n\t\t}\n\t\tteammate.status = \"failed\";\n\t\tteammate.error = error instanceof Error ? error.message : String(error);\n\t\tthis.state.failedTasks.add(task.id);\n\t\tthis.emit({\n\t\t\ttype: \"task_fail\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammateId: teammate.id,\n\t\t\ttaskId: task.id,\n\t\t\terror: teammate.error,\n\t\t});\n\t\tif (!this.state.config.continueOnFailure) {\n\t\t\tthis.state.status = \"failed\";\n\t\t}\n\t\tthis.emit({\n\t\t\ttype: \"teammate_complete\",\n\t\t\tswarmId: this.state.id,\n\t\t\tteammate,\n\t\t});\n\n\t\tif (\n\t\t\tthis.state.status === \"running\" &&\n\t\t\t(this.state.pendingTasks.length > 0 || this.state.activeTasks.size > 0) &&\n\t\t\tthis.state.config.continueOnFailure\n\t\t) {\n\t\t\tteammate.status = \"pending\";\n\t\t\tteammate.error = undefined;\n\t\t\tteammate.a2a = undefined;\n\t\t}\n\t}\n\n\tprivate async recordA2ASwarmTaskStart(\n\t\troute: A2ATeammateRoute,\n\t\ttask: SwarmTask,\n\t\tremoteTask: A2ATask,\n\t\tdelegatedPrompt: string,\n\t\tids: { messageId: string; contextId: string },\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait recordA2ATaskStart({\n\t\t\t\tpath: route.tasksPath,\n\t\t\t\tpeer: route.name,\n\t\t\t\tpeerDisplayName: route.displayName,\n\t\t\t\ttask: remoteTask,\n\t\t\t\ttext: delegatedPrompt,\n\t\t\t\tmessageId: ids.messageId,\n\t\t\t\tcontextId: remoteTask.contextId ?? ids.contextId,\n\t\t\t\tkind: \"delegation\",\n\t\t\t\trole: route.role,\n\t\t\t\tcwd: this.state.config.cwd,\n\t\t\t\tmetadata: {\n\t\t\t\t\trequestKind: \"maestro-swarm-task\",\n\t\t\t\t\trelayPeer: route.name,\n\t\t\t\t\tswarmId: this.state.id,\n\t\t\t\t\ttaskId: task.id,\n\t\t\t\t\ttransport: \"a2a\",\n\t\t\t\t\tsource: route.source,\n\t\t\t\t\ta2aSkillId: route.skillId,\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to record remote A2A swarm task in local ledger\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\ttaskId: task.id,\n\t\t\t\tpeer: route.name,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate async updateA2ASwarmTaskLedger(\n\t\troute: A2ATeammateRoute,\n\t\tremoteTask: A2ATask,\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait updateA2ATaskInLedger({\n\t\t\t\tpath: route.tasksPath,\n\t\t\t\tpeer: route.name,\n\t\t\t\ttask: remoteTask,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to update remote A2A swarm task in local ledger\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tremoteTaskId: remoteTask.id,\n\t\t\t\tpeer: route.name,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Wait for any active task to complete.\n\t */\n\tprivate waitForAnyCompletion(): Promise<void> {\n\t\tconst initialActiveCount = this.state.activeTasks.size;\n\t\treturn new Promise((resolve) => {\n\t\t\tconst checkInterval = setInterval(() => {\n\t\t\t\t// Resolve as soon as at least one active task exits or the swarm stops.\n\t\t\t\tif (\n\t\t\t\t\tthis.state.activeTasks.size < initialActiveCount ||\n\t\t\t\t\tthis.state.status !== \"running\"\n\t\t\t\t) {\n\t\t\t\t\tclearInterval(checkInterval);\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t});\n\t}\n}\n\nfunction platformA2ACandidateMatchesPeer(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tpeer: string,\n): boolean {\n\tconst selector = normalizePeerSelector(peer);\n\tconst selectorBaseUrl = normalizePeerBaseUrl(peer);\n\tif (!selector) {\n\t\treturn false;\n\t}\n\tconst values = [\n\t\tcandidate.agent.id,\n\t\tcandidate.agent.name,\n\t\tcandidate.endpointUrl,\n\t\tcandidate.agentCardUrl,\n\t];\n\tconst endpointHash = hashA2AEndpointUrlForTelemetry(candidate.endpointUrl);\n\tif (endpointHash) {\n\t\tvalues.push(endpointHash, `endpoint:${endpointHash}`);\n\t}\n\treturn values.some((value) => {\n\t\tconst candidateSelector = normalizePeerSelector(value);\n\t\tif (candidateSelector && candidateSelector === selector) {\n\t\t\treturn true;\n\t\t}\n\t\tconst candidateBaseUrl = normalizePeerBaseUrl(value);\n\t\treturn Boolean(\n\t\t\tselectorBaseUrl &&\n\t\t\t\tcandidateBaseUrl &&\n\t\t\t\tcandidateBaseUrl === selectorBaseUrl,\n\t\t);\n\t});\n}\n\nfunction normalizePeerSelector(value: string | undefined): string | undefined {\n\treturn trimString(value)?.toLowerCase();\n}\n\nfunction normalizePeerBaseUrl(value: string | undefined): string | undefined {\n\tconst trimmed = trimString(value);\n\treturn trimmed ? normalizeA2ABaseUrl(trimmed).toLowerCase() : undefined;\n}\n\n/**\n * Create and execute a swarm.\n */\nexport async function executeSwarm(\n\tconfig: SwarmConfig,\n\tonEvent?: SwarmEventHandler,\n): Promise<SwarmState> {\n\tconst executor = new SwarmExecutor(config);\n\tif (onEvent) {\n\t\texecutor.onEvent(onEvent);\n\t}\n\treturn executor.execute();\n}\n"]}