@evalops/maestro 0.10.21 → 0.10.22

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 (143) hide show
  1. package/dist/agent/agent.d.ts +1 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js +15 -4
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/swarm/executor.d.ts.map +1 -1
  6. package/dist/agent/swarm/executor.js +68 -3
  7. package/dist/agent/swarm/executor.js.map +1 -1
  8. package/dist/agent/swarm/types.d.ts +3 -0
  9. package/dist/agent/swarm/types.d.ts.map +1 -1
  10. package/dist/agent/swarm/types.js.map +1 -1
  11. package/dist/agent/transport.d.ts.map +1 -1
  12. package/dist/agent/transport.js +7 -1
  13. package/dist/agent/transport.js.map +1 -1
  14. package/dist/audit/logger.d.ts +1 -1
  15. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  16. package/dist/bootstrap/tools-setup.js +3 -2
  17. package/dist/bootstrap/tools-setup.js.map +1 -1
  18. package/dist/cli/commands/a2a.d.ts.map +1 -1
  19. package/dist/cli/commands/a2a.js +141 -8
  20. package/dist/cli/commands/a2a.js.map +1 -1
  21. package/dist/cli/commands/codex.d.ts.map +1 -1
  22. package/dist/cli/commands/codex.js +4 -3
  23. package/dist/cli/commands/codex.js.map +1 -1
  24. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  25. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  26. package/dist/cli/commands/hosted-runner.js +31 -2
  27. package/dist/cli/commands/hosted-runner.js.map +1 -1
  28. package/dist/cli/commands/run.d.ts.map +1 -1
  29. package/dist/cli/commands/run.js +2 -9
  30. package/dist/cli/commands/run.js.map +1 -1
  31. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -1
  32. package/dist/cli-tui/commands/a2a-handlers.js +55 -0
  33. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -1
  34. package/dist/cli.js +3924 -1972
  35. package/dist/codex/compatibility.d.ts +17 -1
  36. package/dist/codex/compatibility.d.ts.map +1 -1
  37. package/dist/codex/compatibility.js +57 -1
  38. package/dist/codex/compatibility.js.map +1 -1
  39. package/dist/guardian/config.d.ts +8 -6
  40. package/dist/guardian/config.d.ts.map +1 -1
  41. package/dist/guardian/config.js +33 -7
  42. package/dist/guardian/config.js.map +1 -1
  43. package/dist/guardian/runner.d.ts.map +1 -1
  44. package/dist/guardian/runner.js +54 -9
  45. package/dist/guardian/runner.js.map +1 -1
  46. package/dist/mcp/config.d.ts.map +1 -1
  47. package/dist/mcp/config.js +2 -0
  48. package/dist/mcp/config.js.map +1 -1
  49. package/dist/mcp/fathom-cua.d.ts +3 -0
  50. package/dist/mcp/fathom-cua.d.ts.map +1 -0
  51. package/dist/mcp/fathom-cua.js +158 -0
  52. package/dist/mcp/fathom-cua.js.map +1 -0
  53. package/dist/mcp/index.d.ts +1 -0
  54. package/dist/mcp/index.d.ts.map +1 -1
  55. package/dist/mcp/index.js +1 -0
  56. package/dist/mcp/index.js.map +1 -1
  57. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  58. package/dist/node_modules/@evalops/tui/package.json +1 -1
  59. package/dist/platform/a2a-cockpit.d.ts +90 -0
  60. package/dist/platform/a2a-cockpit.d.ts.map +1 -0
  61. package/dist/platform/a2a-cockpit.js +302 -0
  62. package/dist/platform/a2a-cockpit.js.map +1 -0
  63. package/dist/platform/a2a-fleet.d.ts +14 -0
  64. package/dist/platform/a2a-fleet.d.ts.map +1 -1
  65. package/dist/platform/a2a-fleet.js +66 -1
  66. package/dist/platform/a2a-fleet.js.map +1 -1
  67. package/dist/platform/a2a-ownership.d.ts +27 -0
  68. package/dist/platform/a2a-ownership.d.ts.map +1 -0
  69. package/dist/platform/a2a-ownership.js +149 -0
  70. package/dist/platform/a2a-ownership.js.map +1 -0
  71. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  72. package/dist/platform/a2a-task-ledger.js +29 -5
  73. package/dist/platform/a2a-task-ledger.js.map +1 -1
  74. package/dist/server/agent-trajectory-replay-lab.d.ts +36 -0
  75. package/dist/server/agent-trajectory-replay-lab.d.ts.map +1 -0
  76. package/dist/server/agent-trajectory-replay-lab.js +48 -0
  77. package/dist/server/agent-trajectory-replay-lab.js.map +1 -0
  78. package/dist/server/any-agent-control-plane-proof.d.ts +42 -0
  79. package/dist/server/any-agent-control-plane-proof.d.ts.map +1 -0
  80. package/dist/server/any-agent-control-plane-proof.js +175 -0
  81. package/dist/server/any-agent-control-plane-proof.js.map +1 -0
  82. package/dist/server/app-context.d.ts +1 -0
  83. package/dist/server/app-context.d.ts.map +1 -1
  84. package/dist/server/app-context.js.map +1 -1
  85. package/dist/server/handlers/a2a-cockpit.d.ts +3 -0
  86. package/dist/server/handlers/a2a-cockpit.d.ts.map +1 -0
  87. package/dist/server/handlers/a2a-cockpit.js +71 -0
  88. package/dist/server/handlers/a2a-cockpit.js.map +1 -0
  89. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  90. package/dist/server/handlers/headless-sessions.js +17 -2
  91. package/dist/server/handlers/headless-sessions.js.map +1 -1
  92. package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
  93. package/dist/server/handlers/session-artifacts.js +20 -3
  94. package/dist/server/handlers/session-artifacts.js.map +1 -1
  95. package/dist/server/handlers/session-replay-lab.d.ts +13 -0
  96. package/dist/server/handlers/session-replay-lab.d.ts.map +1 -0
  97. package/dist/server/handlers/session-replay-lab.js +80 -0
  98. package/dist/server/handlers/session-replay-lab.js.map +1 -0
  99. package/dist/server/handlers/stats.js +1 -1
  100. package/dist/server/handlers/stats.js.map +1 -1
  101. package/dist/server/handlers/status.d.ts +44 -3
  102. package/dist/server/handlers/status.d.ts.map +1 -1
  103. package/dist/server/handlers/status.js +227 -17
  104. package/dist/server/handlers/status.js.map +1 -1
  105. package/dist/server/headless-runtime-service.d.ts +17 -0
  106. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  107. package/dist/server/headless-runtime-service.js +143 -3
  108. package/dist/server/headless-runtime-service.js.map +1 -1
  109. package/dist/server/hosted-agent-runtime-progress.d.ts +17 -0
  110. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  111. package/dist/server/hosted-agent-runtime-progress.js +352 -15
  112. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  113. package/dist/server/routes.d.ts.map +1 -1
  114. package/dist/server/routes.js +14 -0
  115. package/dist/server/routes.js.map +1 -1
  116. package/dist/services/intelligent-router/index.d.ts +1 -1
  117. package/dist/services/intelligent-router/index.d.ts.map +1 -1
  118. package/dist/services/intelligent-router/index.js +1 -1
  119. package/dist/services/intelligent-router/index.js.map +1 -1
  120. package/dist/services/intelligent-router/normalize.d.ts +10 -2
  121. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  122. package/dist/services/intelligent-router/normalize.js +20 -1
  123. package/dist/services/intelligent-router/normalize.js.map +1 -1
  124. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  125. package/dist/services/intelligent-router/service.js +35 -0
  126. package/dist/services/intelligent-router/service.js.map +1 -1
  127. package/dist/services/intelligent-router/types.d.ts +13 -0
  128. package/dist/services/intelligent-router/types.d.ts.map +1 -1
  129. package/dist/services/intelligent-router/types.js +1 -0
  130. package/dist/services/intelligent-router/types.js.map +1 -1
  131. package/dist/telemetry/cli-command-aggregator.d.ts +1 -0
  132. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -1
  133. package/dist/telemetry/cli-command-aggregator.js +23 -0
  134. package/dist/telemetry/cli-command-aggregator.js.map +1 -1
  135. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  136. package/dist/telemetry/maestro-event-bus.js +11 -5
  137. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  138. package/dist/telemetry/maestro-event-catalog.d.ts +15 -1
  139. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  140. package/dist/telemetry/maestro-event-catalog.js +30 -0
  141. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  142. package/dist/version.json +2 -2
  143. package/package.json +289 -283
@@ -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 { 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\tbuildA2AUserMessage,\n\tcancelA2ATask,\n\tgetA2ATask,\n\tnormalizeA2ABaseUrl,\n\tsendA2AMessage,\n} from \"../../platform/a2a-client.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 { recordSubagentDispatch } from \"../../telemetry.js\";\nimport { createLogger } from \"../../utils/logger.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 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 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 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}\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 a2aStateCompleted(state: string | undefined): boolean {\n\treturn /COMPLETED/u.test(\n\t\t(state ?? \"\").toUpperCase().replace(/[\\s-]+/gu, \"_\"),\n\t);\n}\n\ntype A2ATeammateRoute = {\n\tname: string;\n\tdisplayName?: string;\n\tconfig: A2AServiceConfig;\n\tskillId?: string;\n\trole?: string;\n\ttasksPath?: 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 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<void> {\n\t\ttry {\n\t\t\tconst cancelledTask = await cancelA2ATask(\n\t\t\t\tremoteTask.route.config,\n\t\t\t\tremoteTask.taskId,\n\t\t\t);\n\t\t\tawait this.updateA2ASwarmTaskLedger(remoteTask.route, cancelledTask);\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to cancel remote A2A swarm task\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId,\n\t\t\t\tremoteTaskId: remoteTask.taskId,\n\t\t\t\tpeer: remoteTask.route.name,\n\t\t\t});\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.delete(teammateId);\n\t\t}\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: 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: 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 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 ?? \"anthropic\",\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};\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\treturn {\n\t\t\tname: peer.name,\n\t\t\tdisplayName: peer.entry.displayName,\n\t\t\tconfig: peer.config,\n\t\t\tskillId: this.resolveA2ASkillId(task, options, peer),\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\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\treturn {\n\t\t\tname: candidate.agent.name ?? candidate.agent.id ?? candidate.endpointUrl,\n\t\t\tdisplayName: candidate.agent.name,\n\t\t\tconfig,\n\t\t\tskillId: ranked.selectedSkill?.id ?? skillId,\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\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\treturn {\n\t\t\tbaseUrl: normalizeA2ABaseUrl(candidate.endpointUrl),\n\t\t\t...(platformConfig.token ? { token: platformConfig.token } : {}),\n\t\t\t...(platformConfig.organizationId\n\t\t\t\t? { organizationId: platformConfig.organizationId }\n\t\t\t\t: {}),\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...(candidate.agent.id ? { agentId: candidate.agent.id } : {}),\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}\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\ttry {\n\t\t\tconst route = await this.resolveA2ATeammateRoute(teammate, task, options);\n\t\t\tconst messageId = `maestro-swarm-message-${randomUUID()}`;\n\t\t\tconst contextId = `maestro-swarm:${this.state.id}:${task.id}`;\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},\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\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\ttaskId: sent.task.id,\n\t\t\t\tcontextId: sent.task.contextId ?? contextId,\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.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\tawait 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\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.completeA2ATeammate(teammate, task, remoteTask, route);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\tthis.state.status !== \"cancelled\" &&\n\t\t\t\t!this.abortController.signal.aborted\n\t\t\t) {\n\t\t\t\tconst remoteTask = this.remoteA2ATasks.get(teammate.id);\n\t\t\t\tif (remoteTask) {\n\t\t\t\t\tawait this.cancelRemoteA2ATask(teammate.id, remoteTask);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.failA2ATeammate(teammate, task, error);\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.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 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 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\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},\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): 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 (teammate.a2a && !this.remoteA2ATasks.has(teammate.id)) {\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: error instanceof Error ? error.message : String(error),\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: error instanceof Error ? error.message : String(error),\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\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 { 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\tsendA2AMessage,\n} from \"../../platform/a2a-client.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 { recordSubagentDispatch } from \"../../telemetry.js\";\nimport { createLogger } from \"../../utils/logger.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 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\ntype A2ATeammateRoute = {\n\tname: string;\n\tdisplayName?: string;\n\tconfig: A2AServiceConfig;\n\tskillId?: string;\n\trole?: string;\n\ttasksPath?: 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 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<void> {\n\t\ttry {\n\t\t\tconst cancelledTask = await cancelA2ATask(\n\t\t\t\tremoteTask.route.config,\n\t\t\t\tremoteTask.taskId,\n\t\t\t);\n\t\t\tawait this.updateA2ASwarmTaskLedger(remoteTask.route, cancelledTask);\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to cancel remote A2A swarm task\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tswarmId: this.state.id,\n\t\t\t\tteammateId,\n\t\t\t\tremoteTaskId: remoteTask.taskId,\n\t\t\t\tpeer: remoteTask.route.name,\n\t\t\t});\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.delete(teammateId);\n\t\t}\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 ?? \"anthropic\",\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\treturn {\n\t\t\tname: peer.name,\n\t\t\tdisplayName: peer.entry.displayName,\n\t\t\tconfig: peer.config,\n\t\t\tskillId: this.resolveA2ASkillId(task, options, peer),\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\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\treturn {\n\t\t\tname: candidate.agent.name ?? candidate.agent.id ?? candidate.endpointUrl,\n\t\t\tdisplayName: candidate.agent.name,\n\t\t\tconfig,\n\t\t\tskillId: ranked.selectedSkill?.id ?? skillId,\n\t\t\trole: options.role ?? task.subagentType,\n\t\t\ttasksPath: options.tasksPath,\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\treturn {\n\t\t\tbaseUrl: normalizeA2ABaseUrl(candidate.endpointUrl),\n\t\t\t...(platformConfig.token ? { token: platformConfig.token } : {}),\n\t\t\t...(platformConfig.organizationId\n\t\t\t\t? { organizationId: platformConfig.organizationId }\n\t\t\t\t: {}),\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...(candidate.agent.id ? { agentId: candidate.agent.id } : {}),\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}\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\ttry {\n\t\t\tconst route = await this.resolveA2ATeammateRoute(teammate, task, options);\n\t\t\tconst messageId = `maestro-swarm-message-${randomUUID()}`;\n\t\t\tconst contextId = `maestro-swarm:${this.state.id}:${task.id}`;\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\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\ttaskId: sent.task.id,\n\t\t\t\tcontextId: sent.task.contextId ?? contextId,\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.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\tawait 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\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.completeA2ATeammate(teammate, task, remoteTask, route);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\tthis.state.status !== \"cancelled\" &&\n\t\t\t\t!this.abortController.signal.aborted\n\t\t\t) {\n\t\t\t\tconst remoteTask = this.remoteA2ATasks.get(teammate.id);\n\t\t\t\tif (remoteTask) {\n\t\t\t\t\tawait this.cancelRemoteA2ATask(teammate.id, remoteTask);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.failA2ATeammate(teammate, task, error);\n\t\t} finally {\n\t\t\tthis.remoteA2ATasks.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 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: teammate.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): 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 (teammate.a2a && !this.remoteA2ATasks.has(teammate.id)) {\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: error instanceof Error ? error.message : String(error),\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: error instanceof Error ? error.message : String(error),\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\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"]}
@@ -4,6 +4,7 @@
4
4
  * Type definitions for the swarm execution system that enables
5
5
  * parallel agent execution for implementing plans.
6
6
  */
7
+ import type { A2ATaskPushNotificationConfig } from "../../platform/a2a-client.js";
7
8
  import type { AgentMode, ModelProvider, ReasoningEffort } from "../modes.js";
8
9
  import type { SubagentType } from "../subagent-specs.js";
9
10
  /**
@@ -129,6 +130,8 @@ export interface SwarmA2AConfig {
129
130
  maxWaitMs?: number;
130
131
  /** Poll interval while waiting for remote task state. */
131
132
  pollIntervalMs?: number;
133
+ /** Optional push callback config sent to remote peers for task progress/artifact updates. */
134
+ pushNotificationConfig?: A2ATaskPushNotificationConfig;
132
135
  }
133
136
  /**
134
137
  * Public, non-secret correlation metadata for a remote A2A swarm teammate.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/swarm/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/swarm/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/swarm/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Swarm Mode Types\n *\n * Type definitions for the swarm execution system that enables\n * parallel agent execution for implementing plans.\n */\n\nimport type { AgentMode, ModelProvider, ReasoningEffort } from \"../modes.js\";\nimport type { SubagentType } from \"../subagent-specs.js\";\n\n/**\n * Status of a swarm teammate.\n */\nexport type TeammateStatus =\n\t| \"pending\"\n\t| \"running\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\";\n\n/**\n * A single task assigned to a teammate in the swarm.\n */\nexport interface SwarmTask {\n\t/** Unique task identifier */\n\tid: string;\n\t/** Task description/prompt for the teammate */\n\tprompt: string;\n\t/** Files relevant to this task */\n\tfiles?: string[];\n\t/** Dependencies on other task IDs (must complete first) */\n\tdependsOn?: string[];\n\t/** Optional model override for this task */\n\tmodel?: string;\n\t/** Optional subagent type used for mode-level model dispatch */\n\tsubagentType?: SubagentType;\n\t/** Optional A2A peer override when the swarm uses remote transport */\n\ta2aPeer?: string;\n\t/** Optional A2A skill override when the task maps to a remote Maestro lane */\n\ta2aSkillId?: string;\n\t/** Priority (higher = earlier execution when no dependencies) */\n\tpriority?: number;\n}\n\n/**\n * A teammate in the swarm - an individual agent working on tasks.\n */\nexport interface SwarmTeammate {\n\t/** Unique teammate identifier */\n\tid: string;\n\t/** Display name for the teammate */\n\tname: string;\n\t/** Current status */\n\tstatus: TeammateStatus;\n\t/** Currently assigned task */\n\tcurrentTask?: SwarmTask;\n\t/** Tasks completed by this teammate */\n\tcompletedTasks: string[];\n\t/** Process ID if running as subprocess */\n\tpid?: number;\n\t/** Remote A2A task correlation when this teammate runs on a peer */\n\ta2a?: SwarmA2ATeammateExecution;\n\t/** Start timestamp */\n\tstartedAt?: number;\n\t/** Completion timestamp */\n\tcompletedAt?: number;\n\t/** Error message if failed */\n\terror?: string;\n\t/** Output/results from the teammate */\n\toutput?: string;\n}\n\n/**\n * Configuration for launching a swarm.\n */\nexport interface SwarmConfig {\n\t/** Number of teammates to spawn (1-10) */\n\tteammateCount: number;\n\t/** Plan file path to implement */\n\tplanFile: string;\n\t/** Tasks to distribute among teammates */\n\ttasks: SwarmTask[];\n\t/** Working directory for all teammates */\n\tcwd: string;\n\t/** Session ID of the parent session */\n\tparentSessionId?: string;\n\t/** Model to use for teammates (defaults to parent's model) */\n\tmodel?: string;\n\t/** Agent mode used to resolve subagent model dispatch */\n\tmode?: AgentMode;\n\t/** Parent model provider used when dispatch falls back to a model tier */\n\tmodelProvider?: ModelProvider;\n\t/** Default subagent type for teammate tasks without their own type */\n\tsubagentType?: SubagentType;\n\t/** Default reasoning hint for teammate tasks */\n\treasoningEffort?: ReasoningEffort;\n\t/** Execution transport for teammates; local preserves subprocess behavior. */\n\ttransport?: \"local\" | \"a2a\";\n\t/** Remote A2A routing options for Platform-discovered or registry peers. */\n\ta2a?: SwarmA2AConfig;\n\t/** Maximum time per task in milliseconds */\n\ttaskTimeout?: number;\n\t/** Whether to continue on individual task failures */\n\tcontinueOnFailure?: boolean;\n\t/** Git branch to work on (creates if doesn't exist) */\n\tgitBranch?: string;\n}\n\n/**\n * Configuration for remote A2A-backed swarm teammates.\n */\nexport interface SwarmA2AConfig {\n\t/** Named peers from the local A2A registry, used round-robin. */\n\tpeers?: string[];\n\t/** Override for the local A2A peer registry path. */\n\tregistryPath?: string;\n\t/** Override for the local A2A task ledger path. */\n\ttasksPath?: string;\n\t/** Default remote A2A skill id. */\n\tskillId?: string;\n\t/** Optional delegation role shown in task ledger metadata. */\n\trole?: string;\n\t/** Discover remote peers from Platform Agent Registry instead of local peers. */\n\tdiscover?: boolean;\n\t/** Platform workspace id for discovery. */\n\tworkspaceId?: string;\n\t/** Capability filter for Platform discovery. */\n\tcapability?: string;\n\t/** Surface filter for Platform discovery. Defaults to a2a. */\n\tsurface?: string;\n\t/** Prefer internal endpoints returned by Platform Agent Registry. */\n\tpreferInternalEndpoint?: boolean;\n\t/** Maximum Platform candidates to consider. */\n\tlimit?: number;\n\t/** Timeout for individual A2A HTTP calls. */\n\ttimeoutMs?: number;\n\t/** Max attempts for individual A2A HTTP calls. */\n\tmaxAttempts?: number;\n\t/** Max time to wait for a remote task to reach terminal state. */\n\tmaxWaitMs?: number;\n\t/** Poll interval while waiting for remote task state. */\n\tpollIntervalMs?: number;\n}\n\n/**\n * Public, non-secret correlation metadata for a remote A2A swarm teammate.\n */\nexport interface SwarmA2ATeammateExecution {\n\t/** Peer selected for this teammate task. */\n\tpeer: string;\n\t/** Optional human-readable peer label. */\n\tpeerDisplayName?: string;\n\t/** Peer source used by the router. */\n\tsource: \"registry\" | \"platform-agent-registry\";\n\t/** A2A task id returned by the peer. */\n\ttaskId: string;\n\t/** A2A context id used for resume/reply. */\n\tcontextId?: string;\n\t/** A2A message id sent by the coordinator. */\n\tmessageId: string;\n\t/** A2A skill id used for remote routing. */\n\tskillId?: string;\n\t/** Delegation role recorded for the remote task. */\n\trole?: string;\n}\n\n/**\n * Status of the overall swarm execution.\n */\nexport type SwarmStatus =\n\t| \"initializing\"\n\t| \"running\"\n\t| \"completing\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\";\n\n/**\n * State of the swarm execution.\n */\nexport interface SwarmState {\n\t/** Unique swarm execution ID */\n\tid: string;\n\t/** Current status */\n\tstatus: SwarmStatus;\n\t/** Configuration used to launch */\n\tconfig: SwarmConfig;\n\t/** All teammates in the swarm */\n\tteammates: SwarmTeammate[];\n\t/** Tasks pending assignment */\n\tpendingTasks: SwarmTask[];\n\t/** Tasks currently being worked on */\n\tactiveTasks: Map<string, string>; // taskId -> teammateId\n\t/** Completed task IDs */\n\tcompletedTasks: Set<string>;\n\t/** Failed task IDs */\n\tfailedTasks: Set<string>;\n\t/** Start timestamp */\n\tstartedAt: number;\n\t/** Completion timestamp */\n\tcompletedAt?: number;\n\t/** Error message if swarm failed */\n\terror?: string;\n}\n\n/**\n * Event emitted during swarm execution.\n */\nexport type SwarmEvent =\n\t| { type: \"swarm_start\"; swarmId: string; config: SwarmConfig }\n\t| { type: \"teammate_spawn\"; swarmId: string; teammate: SwarmTeammate }\n\t| {\n\t\t\ttype: \"task_start\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttask: SwarmTask;\n\t }\n\t| {\n\t\t\ttype: \"task_complete\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttaskId: string;\n\t\t\toutput: string;\n\t }\n\t| {\n\t\t\ttype: \"task_fail\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttaskId: string;\n\t\t\terror: string;\n\t }\n\t| {\n\t\t\ttype: \"teammate_complete\";\n\t\t\tswarmId: string;\n\t\t\tteammate: SwarmTeammate;\n\t }\n\t| { type: \"swarm_complete\"; swarmId: string; state: SwarmState }\n\t| { type: \"swarm_fail\"; swarmId: string; error: string };\n\n/**\n * Callback for swarm events.\n */\nexport type SwarmEventHandler = (event: SwarmEvent) => void;\n\n/**\n * Result of parsing a plan file into tasks.\n */\nexport interface ParsedPlan {\n\t/** Plan title/name */\n\ttitle: string;\n\t/** Extracted tasks */\n\ttasks: SwarmTask[];\n\t/** Raw plan content */\n\tcontent: string;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/swarm/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Swarm Mode Types\n *\n * Type definitions for the swarm execution system that enables\n * parallel agent execution for implementing plans.\n */\n\nimport type { A2ATaskPushNotificationConfig } from \"../../platform/a2a-client.js\";\nimport type { AgentMode, ModelProvider, ReasoningEffort } from \"../modes.js\";\nimport type { SubagentType } from \"../subagent-specs.js\";\n\n/**\n * Status of a swarm teammate.\n */\nexport type TeammateStatus =\n\t| \"pending\"\n\t| \"running\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\";\n\n/**\n * A single task assigned to a teammate in the swarm.\n */\nexport interface SwarmTask {\n\t/** Unique task identifier */\n\tid: string;\n\t/** Task description/prompt for the teammate */\n\tprompt: string;\n\t/** Files relevant to this task */\n\tfiles?: string[];\n\t/** Dependencies on other task IDs (must complete first) */\n\tdependsOn?: string[];\n\t/** Optional model override for this task */\n\tmodel?: string;\n\t/** Optional subagent type used for mode-level model dispatch */\n\tsubagentType?: SubagentType;\n\t/** Optional A2A peer override when the swarm uses remote transport */\n\ta2aPeer?: string;\n\t/** Optional A2A skill override when the task maps to a remote Maestro lane */\n\ta2aSkillId?: string;\n\t/** Priority (higher = earlier execution when no dependencies) */\n\tpriority?: number;\n}\n\n/**\n * A teammate in the swarm - an individual agent working on tasks.\n */\nexport interface SwarmTeammate {\n\t/** Unique teammate identifier */\n\tid: string;\n\t/** Display name for the teammate */\n\tname: string;\n\t/** Current status */\n\tstatus: TeammateStatus;\n\t/** Currently assigned task */\n\tcurrentTask?: SwarmTask;\n\t/** Tasks completed by this teammate */\n\tcompletedTasks: string[];\n\t/** Process ID if running as subprocess */\n\tpid?: number;\n\t/** Remote A2A task correlation when this teammate runs on a peer */\n\ta2a?: SwarmA2ATeammateExecution;\n\t/** Start timestamp */\n\tstartedAt?: number;\n\t/** Completion timestamp */\n\tcompletedAt?: number;\n\t/** Error message if failed */\n\terror?: string;\n\t/** Output/results from the teammate */\n\toutput?: string;\n}\n\n/**\n * Configuration for launching a swarm.\n */\nexport interface SwarmConfig {\n\t/** Number of teammates to spawn (1-10) */\n\tteammateCount: number;\n\t/** Plan file path to implement */\n\tplanFile: string;\n\t/** Tasks to distribute among teammates */\n\ttasks: SwarmTask[];\n\t/** Working directory for all teammates */\n\tcwd: string;\n\t/** Session ID of the parent session */\n\tparentSessionId?: string;\n\t/** Model to use for teammates (defaults to parent's model) */\n\tmodel?: string;\n\t/** Agent mode used to resolve subagent model dispatch */\n\tmode?: AgentMode;\n\t/** Parent model provider used when dispatch falls back to a model tier */\n\tmodelProvider?: ModelProvider;\n\t/** Default subagent type for teammate tasks without their own type */\n\tsubagentType?: SubagentType;\n\t/** Default reasoning hint for teammate tasks */\n\treasoningEffort?: ReasoningEffort;\n\t/** Execution transport for teammates; local preserves subprocess behavior. */\n\ttransport?: \"local\" | \"a2a\";\n\t/** Remote A2A routing options for Platform-discovered or registry peers. */\n\ta2a?: SwarmA2AConfig;\n\t/** Maximum time per task in milliseconds */\n\ttaskTimeout?: number;\n\t/** Whether to continue on individual task failures */\n\tcontinueOnFailure?: boolean;\n\t/** Git branch to work on (creates if doesn't exist) */\n\tgitBranch?: string;\n}\n\n/**\n * Configuration for remote A2A-backed swarm teammates.\n */\nexport interface SwarmA2AConfig {\n\t/** Named peers from the local A2A registry, used round-robin. */\n\tpeers?: string[];\n\t/** Override for the local A2A peer registry path. */\n\tregistryPath?: string;\n\t/** Override for the local A2A task ledger path. */\n\ttasksPath?: string;\n\t/** Default remote A2A skill id. */\n\tskillId?: string;\n\t/** Optional delegation role shown in task ledger metadata. */\n\trole?: string;\n\t/** Discover remote peers from Platform Agent Registry instead of local peers. */\n\tdiscover?: boolean;\n\t/** Platform workspace id for discovery. */\n\tworkspaceId?: string;\n\t/** Capability filter for Platform discovery. */\n\tcapability?: string;\n\t/** Surface filter for Platform discovery. Defaults to a2a. */\n\tsurface?: string;\n\t/** Prefer internal endpoints returned by Platform Agent Registry. */\n\tpreferInternalEndpoint?: boolean;\n\t/** Maximum Platform candidates to consider. */\n\tlimit?: number;\n\t/** Timeout for individual A2A HTTP calls. */\n\ttimeoutMs?: number;\n\t/** Max attempts for individual A2A HTTP calls. */\n\tmaxAttempts?: number;\n\t/** Max time to wait for a remote task to reach terminal state. */\n\tmaxWaitMs?: number;\n\t/** Poll interval while waiting for remote task state. */\n\tpollIntervalMs?: number;\n\t/** Optional push callback config sent to remote peers for task progress/artifact updates. */\n\tpushNotificationConfig?: A2ATaskPushNotificationConfig;\n}\n\n/**\n * Public, non-secret correlation metadata for a remote A2A swarm teammate.\n */\nexport interface SwarmA2ATeammateExecution {\n\t/** Peer selected for this teammate task. */\n\tpeer: string;\n\t/** Optional human-readable peer label. */\n\tpeerDisplayName?: string;\n\t/** Peer source used by the router. */\n\tsource: \"registry\" | \"platform-agent-registry\";\n\t/** A2A task id returned by the peer. */\n\ttaskId: string;\n\t/** A2A context id used for resume/reply. */\n\tcontextId?: string;\n\t/** A2A message id sent by the coordinator. */\n\tmessageId: string;\n\t/** A2A skill id used for remote routing. */\n\tskillId?: string;\n\t/** Delegation role recorded for the remote task. */\n\trole?: string;\n}\n\n/**\n * Status of the overall swarm execution.\n */\nexport type SwarmStatus =\n\t| \"initializing\"\n\t| \"running\"\n\t| \"completing\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\";\n\n/**\n * State of the swarm execution.\n */\nexport interface SwarmState {\n\t/** Unique swarm execution ID */\n\tid: string;\n\t/** Current status */\n\tstatus: SwarmStatus;\n\t/** Configuration used to launch */\n\tconfig: SwarmConfig;\n\t/** All teammates in the swarm */\n\tteammates: SwarmTeammate[];\n\t/** Tasks pending assignment */\n\tpendingTasks: SwarmTask[];\n\t/** Tasks currently being worked on */\n\tactiveTasks: Map<string, string>; // taskId -> teammateId\n\t/** Completed task IDs */\n\tcompletedTasks: Set<string>;\n\t/** Failed task IDs */\n\tfailedTasks: Set<string>;\n\t/** Start timestamp */\n\tstartedAt: number;\n\t/** Completion timestamp */\n\tcompletedAt?: number;\n\t/** Error message if swarm failed */\n\terror?: string;\n}\n\n/**\n * Event emitted during swarm execution.\n */\nexport type SwarmEvent =\n\t| { type: \"swarm_start\"; swarmId: string; config: SwarmConfig }\n\t| { type: \"teammate_spawn\"; swarmId: string; teammate: SwarmTeammate }\n\t| {\n\t\t\ttype: \"task_start\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttask: SwarmTask;\n\t }\n\t| {\n\t\t\ttype: \"task_complete\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttaskId: string;\n\t\t\toutput: string;\n\t }\n\t| {\n\t\t\ttype: \"task_fail\";\n\t\t\tswarmId: string;\n\t\t\tteammateId: string;\n\t\t\ttaskId: string;\n\t\t\terror: string;\n\t }\n\t| {\n\t\t\ttype: \"teammate_complete\";\n\t\t\tswarmId: string;\n\t\t\tteammate: SwarmTeammate;\n\t }\n\t| { type: \"swarm_complete\"; swarmId: string; state: SwarmState }\n\t| { type: \"swarm_fail\"; swarmId: string; error: string };\n\n/**\n * Callback for swarm events.\n */\nexport type SwarmEventHandler = (event: SwarmEvent) => void;\n\n/**\n * Result of parsing a plan file into tasks.\n */\nexport interface ParsedPlan {\n\t/** Plan title/name */\n\ttitle: string;\n\t/** Extracted tasks */\n\ttasks: SwarmTask[];\n\t/** Raw plan content */\n\tcontent: string;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/agent/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/agent/transport.ts"],"names":[],"mappings":"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"}