@evalops/maestro 0.10.23 → 0.10.24

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 (376) hide show
  1. package/README.md +4 -4
  2. package/dist/agent/agent.d.ts +2 -2
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +1 -1
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/keys.d.ts +2 -5
  7. package/dist/agent/keys.d.ts.map +1 -1
  8. package/dist/agent/keys.js +4 -5
  9. package/dist/agent/keys.js.map +1 -1
  10. package/dist/agent/modes.d.ts +2 -2
  11. package/dist/agent/modes.d.ts.map +1 -1
  12. package/dist/agent/modes.js +6 -7
  13. package/dist/agent/modes.js.map +1 -1
  14. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  15. package/dist/agent/providers/anthropic.js +4 -4
  16. package/dist/agent/providers/anthropic.js.map +1 -1
  17. package/dist/agent/providers/google.js +1 -1
  18. package/dist/agent/swarm/executor.d.ts +2 -0
  19. package/dist/agent/swarm/executor.d.ts.map +1 -1
  20. package/dist/agent/swarm/executor.js +208 -35
  21. package/dist/agent/swarm/executor.js.map +1 -1
  22. package/dist/agent/swarm/types.d.ts +2 -0
  23. package/dist/agent/swarm/types.d.ts.map +1 -1
  24. package/dist/agent/swarm/types.js.map +1 -1
  25. package/dist/agent/tool-capability-types.d.ts +36 -0
  26. package/dist/agent/tool-capability-types.d.ts.map +1 -0
  27. package/dist/agent/tool-capability-types.js +2 -0
  28. package/dist/agent/tool-capability-types.js.map +1 -0
  29. package/dist/agent/transport/tool-execution-bridge.d.ts +13 -0
  30. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  31. package/dist/agent/transport/tool-execution-bridge.js +28 -15
  32. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  33. package/dist/agent/transport/transport-utils.d.ts.map +1 -1
  34. package/dist/agent/transport/transport-utils.js +2 -3
  35. package/dist/agent/transport/transport-utils.js.map +1 -1
  36. package/dist/agent/transport.js +1 -1
  37. package/dist/agent/transport.js.map +1 -1
  38. package/dist/agent/type-guards.d.ts +1 -1
  39. package/dist/agent/type-guards.js +1 -1
  40. package/dist/agent/type-guards.js.map +1 -1
  41. package/dist/agent/types.d.ts +5 -3
  42. package/dist/agent/types.d.ts.map +1 -1
  43. package/dist/agent/types.js +2 -2
  44. package/dist/agent/types.js.map +1 -1
  45. package/dist/app-server/daemon-lifecycle-api.d.ts +31 -0
  46. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -0
  47. package/dist/app-server/daemon-lifecycle-api.js +259 -0
  48. package/dist/app-server/daemon-lifecycle-api.js.map +1 -0
  49. package/dist/app-server/external-agent-import-api.d.ts +30 -0
  50. package/dist/app-server/external-agent-import-api.d.ts.map +1 -0
  51. package/dist/app-server/external-agent-import-api.js +553 -0
  52. package/dist/app-server/external-agent-import-api.js.map +1 -0
  53. package/dist/app-server/host-control-api.d.ts +30 -0
  54. package/dist/app-server/host-control-api.d.ts.map +1 -0
  55. package/dist/app-server/host-control-api.js +343 -0
  56. package/dist/app-server/host-control-api.js.map +1 -0
  57. package/dist/app-server/in-process-client.d.ts +2 -2
  58. package/dist/app-server/in-process-client.d.ts.map +1 -1
  59. package/dist/app-server/in-process-client.js.map +1 -1
  60. package/dist/app-server/network-governance-api.d.ts +26 -0
  61. package/dist/app-server/network-governance-api.d.ts.map +1 -0
  62. package/dist/app-server/network-governance-api.js +476 -0
  63. package/dist/app-server/network-governance-api.js.map +1 -0
  64. package/dist/app-server/plugin-bundle-api.d.ts +17 -0
  65. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -0
  66. package/dist/app-server/plugin-bundle-api.js +219 -0
  67. package/dist/app-server/plugin-bundle-api.js.map +1 -0
  68. package/dist/app-server/policy-control-api.d.ts +14 -0
  69. package/dist/app-server/policy-control-api.d.ts.map +1 -0
  70. package/dist/app-server/policy-control-api.js +200 -0
  71. package/dist/app-server/policy-control-api.js.map +1 -0
  72. package/dist/app-server/protocol-modes-api.d.ts +22 -0
  73. package/dist/app-server/protocol-modes-api.d.ts.map +1 -0
  74. package/dist/app-server/protocol-modes-api.js +124 -0
  75. package/dist/app-server/protocol-modes-api.js.map +1 -0
  76. package/dist/app-server/sandbox-proof-api.d.ts +21 -0
  77. package/dist/app-server/sandbox-proof-api.d.ts.map +1 -0
  78. package/dist/app-server/sandbox-proof-api.js +127 -0
  79. package/dist/app-server/sandbox-proof-api.js.map +1 -0
  80. package/dist/app-server/session-api.d.ts +93 -3
  81. package/dist/app-server/session-api.d.ts.map +1 -1
  82. package/dist/app-server/session-api.js +706 -18
  83. package/dist/app-server/session-api.js.map +1 -1
  84. package/dist/audit/logger.d.ts +1 -1
  85. package/dist/bootstrap/auth-setup.d.ts.map +1 -1
  86. package/dist/bootstrap/auth-setup.js +17 -2
  87. package/dist/bootstrap/auth-setup.js.map +1 -1
  88. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  89. package/dist/bootstrap/model-resolution-setup.js +19 -4
  90. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  91. package/dist/cli/args.d.ts +2 -2
  92. package/dist/cli/args.d.ts.map +1 -1
  93. package/dist/cli/args.js +2 -2
  94. package/dist/cli/args.js.map +1 -1
  95. package/dist/cli/commands/a2a.d.ts.map +1 -1
  96. package/dist/cli/commands/a2a.js +226 -14
  97. package/dist/cli/commands/a2a.js.map +1 -1
  98. package/dist/cli/commands/anthropic.d.ts +1 -1
  99. package/dist/cli/commands/anthropic.d.ts.map +1 -1
  100. package/dist/cli/commands/anthropic.js +3 -68
  101. package/dist/cli/commands/anthropic.js.map +1 -1
  102. package/dist/cli/commands/modes.js +1 -1
  103. package/dist/cli/commands/modes.js.map +1 -1
  104. package/dist/cli/help.d.ts.map +1 -1
  105. package/dist/cli/help.js +5 -7
  106. package/dist/cli/help.js.map +1 -1
  107. package/dist/cli/rpc-mode.d.ts +1 -1
  108. package/dist/cli/rpc-mode.js +1 -1
  109. package/dist/cli/rpc-mode.js.map +1 -1
  110. package/dist/cli/session.js +1 -1
  111. package/dist/cli/session.js.map +1 -1
  112. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  113. package/dist/cli-tui/commands/command-catalog.js +7 -12
  114. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  115. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +1 -1
  116. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -1
  117. package/dist/cli-tui/commands/subcommands/auth-commands.js +4 -12
  118. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -1
  119. package/dist/cli-tui/custom-editor.d.ts +1 -1
  120. package/dist/cli-tui/custom-editor.js +2 -2
  121. package/dist/cli-tui/custom-editor.js.map +1 -1
  122. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
  123. package/dist/cli-tui/oauth/oauth-flow-controller.js +19 -23
  124. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
  125. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  126. package/dist/cli-tui/selectors/model-selector.js +0 -1
  127. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  128. package/dist/cli-tui/selectors/oauth-selector-view.d.ts +2 -2
  129. package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +1 -1
  130. package/dist/cli-tui/selectors/oauth-selector-view.js.map +1 -1
  131. package/dist/cli-tui/selectors/oauth-selector.d.ts +2 -2
  132. package/dist/cli-tui/selectors/oauth-selector.d.ts.map +1 -1
  133. package/dist/cli-tui/selectors/oauth-selector.js +3 -4
  134. package/dist/cli-tui/selectors/oauth-selector.js.map +1 -1
  135. package/dist/cli-tui/tui-renderer/mcp-events-setup.js +1 -1
  136. package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +1 -1
  137. package/dist/cli-tui/tui-renderer.js +2 -2
  138. package/dist/cli-tui/tui-renderer.js.map +1 -1
  139. package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
  140. package/dist/cli-tui/utils/footer-utils.js +1 -1
  141. package/dist/cli-tui/utils/footer-utils.js.map +1 -1
  142. package/dist/cli.js +15156 -14232
  143. package/dist/commands/prompts.d.ts +1 -1
  144. package/dist/commands/prompts.js +1 -1
  145. package/dist/commands/prompts.js.map +1 -1
  146. package/dist/config/constants.d.ts +2 -2
  147. package/dist/config/constants.d.ts.map +1 -1
  148. package/dist/config/constants.js +2 -2
  149. package/dist/config/constants.js.map +1 -1
  150. package/dist/config/index.d.ts +1 -1
  151. package/dist/config/index.js +1 -1
  152. package/dist/config/index.js.map +1 -1
  153. package/dist/config/toml-config.js +3 -3
  154. package/dist/config/toml-config.js.map +1 -1
  155. package/dist/db/client.d.ts +2 -2
  156. package/dist/db/client.js +2 -2
  157. package/dist/db/client.js.map +1 -1
  158. package/dist/db/migrate.d.ts +1 -1
  159. package/dist/db/migrate.js +1 -1
  160. package/dist/db/migrate.js.map +1 -1
  161. package/dist/db/schema.d.ts +2 -2
  162. package/dist/db/schema.js +1 -1
  163. package/dist/db/schema.js.map +1 -1
  164. package/dist/errors/index.d.ts +2 -2
  165. package/dist/errors/index.js +2 -2
  166. package/dist/errors/index.js.map +1 -1
  167. package/dist/main.d.ts +4 -5
  168. package/dist/main.d.ts.map +1 -1
  169. package/dist/main.js +17 -14
  170. package/dist/main.js.map +1 -1
  171. package/dist/mcp/config.d.ts +15 -2
  172. package/dist/mcp/config.d.ts.map +1 -1
  173. package/dist/mcp/config.js +50 -26
  174. package/dist/mcp/config.js.map +1 -1
  175. package/dist/mcp/fathom-cua.d.ts.map +1 -1
  176. package/dist/mcp/fathom-cua.js +10 -0
  177. package/dist/mcp/fathom-cua.js.map +1 -1
  178. package/dist/mcp/manager.d.ts.map +1 -1
  179. package/dist/mcp/manager.js +32 -1
  180. package/dist/mcp/manager.js.map +1 -1
  181. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  182. package/dist/mcp/tool-bridge.js +12 -3
  183. package/dist/mcp/tool-bridge.js.map +1 -1
  184. package/dist/mcp/tool-capabilities.d.ts +5 -0
  185. package/dist/mcp/tool-capabilities.d.ts.map +1 -0
  186. package/dist/mcp/tool-capabilities.js +271 -0
  187. package/dist/mcp/tool-capabilities.js.map +1 -0
  188. package/dist/mcp/types.d.ts +6 -1
  189. package/dist/mcp/types.d.ts.map +1 -1
  190. package/dist/mcp/types.js.map +1 -1
  191. package/dist/models/config-loader.d.ts +1 -1
  192. package/dist/models/factory-integration.d.ts +1 -1
  193. package/dist/models/factory-integration.js +1 -1
  194. package/dist/models/factory-integration.js.map +1 -1
  195. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +3 -3
  196. package/dist/node_modules/@evalops/contracts/dist/index.js +2 -2
  197. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  198. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +1182 -14
  199. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
  200. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +450 -1
  201. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
  202. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  203. package/dist/node_modules/@evalops/tui/package.json +1 -1
  204. package/dist/oauth/connectors.d.ts +2 -2
  205. package/dist/oauth/connectors.d.ts.map +1 -1
  206. package/dist/oauth/connectors.js +3 -5
  207. package/dist/oauth/connectors.js.map +1 -1
  208. package/dist/oauth/github-copilot.d.ts +1 -1
  209. package/dist/oauth/github-copilot.js +1 -1
  210. package/dist/oauth/github-copilot.js.map +1 -1
  211. package/dist/oauth/index.d.ts +10 -8
  212. package/dist/oauth/index.d.ts.map +1 -1
  213. package/dist/oauth/index.js +54 -31
  214. package/dist/oauth/index.js.map +1 -1
  215. package/dist/oauth/openai.d.ts +1 -1
  216. package/dist/oauth/openai.js +2 -2
  217. package/dist/oauth/openai.js.map +1 -1
  218. package/dist/platform/a2a-completion-audit.d.ts +41 -0
  219. package/dist/platform/a2a-completion-audit.d.ts.map +1 -0
  220. package/dist/platform/a2a-completion-audit.js +177 -0
  221. package/dist/platform/a2a-completion-audit.js.map +1 -0
  222. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  223. package/dist/platform/a2a-task-ledger.js +17 -0
  224. package/dist/platform/a2a-task-ledger.js.map +1 -1
  225. package/dist/platform/a2a-telemetry-inspect.d.ts +58 -0
  226. package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -0
  227. package/dist/platform/a2a-telemetry-inspect.js +224 -0
  228. package/dist/platform/a2a-telemetry-inspect.js.map +1 -0
  229. package/dist/platform/agent-registry-client.d.ts +8 -0
  230. package/dist/platform/agent-registry-client.d.ts.map +1 -1
  231. package/dist/platform/agent-registry-client.js +9 -1
  232. package/dist/platform/agent-registry-client.js.map +1 -1
  233. package/dist/providers/api-keys.d.ts +2 -2
  234. package/dist/providers/api-keys.js +2 -2
  235. package/dist/providers/api-keys.js.map +1 -1
  236. package/dist/providers/auth.d.ts +3 -6
  237. package/dist/providers/auth.d.ts.map +1 -1
  238. package/dist/providers/auth.js +1 -40
  239. package/dist/providers/auth.js.map +1 -1
  240. package/dist/rpc/index.d.ts +2 -2
  241. package/dist/rpc/index.js +2 -2
  242. package/dist/rpc/index.js.map +1 -1
  243. package/dist/rpc/rpc-types.d.ts +1 -1
  244. package/dist/rpc/rpc-types.js +1 -1
  245. package/dist/rpc/rpc-types.js.map +1 -1
  246. package/dist/safety/nested-agent-guard.js +1 -1
  247. package/dist/safety/nested-agent-guard.js.map +1 -1
  248. package/dist/safety/policy.d.ts +2 -2
  249. package/dist/safety/policy.js +2 -2
  250. package/dist/safety/policy.js.map +1 -1
  251. package/dist/safety/validators/network-policy-validator.d.ts +8 -0
  252. package/dist/safety/validators/network-policy-validator.d.ts.map +1 -1
  253. package/dist/safety/validators/network-policy-validator.js +29 -4
  254. package/dist/safety/validators/network-policy-validator.js.map +1 -1
  255. package/dist/sandbox/local-sandbox.d.ts +1 -1
  256. package/dist/sandbox/local-sandbox.js +1 -1
  257. package/dist/sandbox/local-sandbox.js.map +1 -1
  258. package/dist/server/app-context.d.ts +2 -0
  259. package/dist/server/app-context.d.ts.map +1 -1
  260. package/dist/server/app-context.js.map +1 -1
  261. package/dist/server/handlers/attachments.d.ts.map +1 -1
  262. package/dist/server/handlers/attachments.js +1 -0
  263. package/dist/server/handlers/attachments.js.map +1 -1
  264. package/dist/server/handlers/models.d.ts.map +1 -1
  265. package/dist/server/handlers/models.js +3 -1
  266. package/dist/server/handlers/models.js.map +1 -1
  267. package/dist/server/handlers/session-attachments.d.ts.map +1 -1
  268. package/dist/server/handlers/session-attachments.js +2 -0
  269. package/dist/server/handlers/session-attachments.js.map +1 -1
  270. package/dist/server/handlers/sessions.js +1 -1
  271. package/dist/server/handlers/sessions.js.map +1 -1
  272. package/dist/server/handlers/status.d.ts +2 -0
  273. package/dist/server/handlers/status.d.ts.map +1 -1
  274. package/dist/server/handlers/status.js +3 -2
  275. package/dist/server/handlers/status.js.map +1 -1
  276. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  277. package/dist/server/headless-runtime-service.js +32 -3
  278. package/dist/server/headless-runtime-service.js.map +1 -1
  279. package/dist/server/hosted-session-manager.d.ts +2 -0
  280. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  281. package/dist/server/hosted-session-manager.js +9 -0
  282. package/dist/server/hosted-session-manager.js.map +1 -1
  283. package/dist/server/model-selection.d.ts.map +1 -1
  284. package/dist/server/model-selection.js +9 -1
  285. package/dist/server/model-selection.js.map +1 -1
  286. package/dist/server/rate-limiter.d.ts +1 -1
  287. package/dist/server/rate-limiter.js +1 -1
  288. package/dist/server/rate-limiter.js.map +1 -1
  289. package/dist/server/router.d.ts +2 -2
  290. package/dist/server/router.js.map +1 -1
  291. package/dist/server/session-serialization.d.ts +9 -9
  292. package/dist/server/session-serialization.js +15 -15
  293. package/dist/server/session-serialization.js.map +1 -1
  294. package/dist/session/manager.d.ts +5 -0
  295. package/dist/session/manager.d.ts.map +1 -1
  296. package/dist/session/manager.js +56 -8
  297. package/dist/session/manager.js.map +1 -1
  298. package/dist/session/session-catalog.d.ts +2 -0
  299. package/dist/session/session-catalog.d.ts.map +1 -1
  300. package/dist/session/session-catalog.js +6 -0
  301. package/dist/session/session-catalog.js.map +1 -1
  302. package/dist/session/session-context.d.ts +2 -0
  303. package/dist/session/session-context.d.ts.map +1 -1
  304. package/dist/session/session-context.js +15 -0
  305. package/dist/session/session-context.js.map +1 -1
  306. package/dist/session/types.d.ts +7 -0
  307. package/dist/session/types.d.ts.map +1 -1
  308. package/dist/session/types.js.map +1 -1
  309. package/dist/session/wire-format.generated.d.ts +1 -0
  310. package/dist/session/wire-format.generated.d.ts.map +1 -1
  311. package/dist/session/wire-format.generated.js +1 -0
  312. package/dist/session/wire-format.generated.js.map +1 -1
  313. package/dist/shared-memory/contract.d.ts +4 -4
  314. package/dist/shared-memory/contract.js +2 -2
  315. package/dist/shared-memory/contract.js.map +1 -1
  316. package/dist/telemetry/index.d.ts +2 -2
  317. package/dist/telemetry/index.d.ts.map +1 -1
  318. package/dist/telemetry/index.js +2 -2
  319. package/dist/telemetry/index.js.map +1 -1
  320. package/dist/telemetry/maestro-event-bus.d.ts +57 -0
  321. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  322. package/dist/telemetry/maestro-event-bus.js +59 -1
  323. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  324. package/dist/telemetry/maestro-event-catalog.d.ts +17 -1
  325. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  326. package/dist/telemetry/maestro-event-catalog.js +24 -0
  327. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  328. package/dist/telemetry/mcp-beacon.d.ts +2 -0
  329. package/dist/telemetry/mcp-beacon.d.ts.map +1 -1
  330. package/dist/telemetry/mcp-beacon.js +15 -0
  331. package/dist/telemetry/mcp-beacon.js.map +1 -1
  332. package/dist/telemetry/metrics.d.ts +62 -0
  333. package/dist/telemetry/metrics.d.ts.map +1 -1
  334. package/dist/telemetry/metrics.js +84 -0
  335. package/dist/telemetry/metrics.js.map +1 -1
  336. package/dist/telemetry.d.ts +44 -0
  337. package/dist/telemetry.d.ts.map +1 -1
  338. package/dist/telemetry.js +84 -2
  339. package/dist/telemetry.js.map +1 -1
  340. package/dist/theme/theme-loader.js +2 -2
  341. package/dist/theme/theme-loader.js.map +1 -1
  342. package/dist/theme/theme-schema.json +2 -2
  343. package/dist/theme/theme.d.ts +1 -1
  344. package/dist/theme/theme.js.map +1 -1
  345. package/dist/tools/background/task-types.d.ts +1 -1
  346. package/dist/tools/extract-document.d.ts +1 -0
  347. package/dist/tools/extract-document.d.ts.map +1 -1
  348. package/dist/tools/extract-document.js +2 -1
  349. package/dist/tools/extract-document.js.map +1 -1
  350. package/dist/tools/index.d.ts +55 -55
  351. package/dist/tools/index.js +1 -1
  352. package/dist/tools/index.js.map +1 -1
  353. package/dist/tools/tool-dsl.d.ts +1 -1
  354. package/dist/tools/tool-dsl.js +1 -1
  355. package/dist/tools/tool-dsl.js.map +1 -1
  356. package/dist/utils/document-extractor.d.ts +1 -0
  357. package/dist/utils/document-extractor.d.ts.map +1 -1
  358. package/dist/utils/document-extractor.js +320 -40
  359. package/dist/utils/document-extractor.js.map +1 -1
  360. package/dist/utils/logger.d.ts +1 -1
  361. package/dist/utils/logger.js +1 -1
  362. package/dist/utils/logger.js.map +1 -1
  363. package/dist/version.json +2 -2
  364. package/dist/web-server.d.ts +1 -1
  365. package/dist/web-server.d.ts.map +1 -1
  366. package/dist/web-server.js +12 -8
  367. package/dist/web-server.js.map +1 -1
  368. package/package.json +4 -2
  369. package/dist/oauth/anthropic.d.ts +0 -17
  370. package/dist/oauth/anthropic.d.ts.map +0 -1
  371. package/dist/oauth/anthropic.js +0 -81
  372. package/dist/oauth/anthropic.js.map +0 -1
  373. package/dist/providers/anthropic-auth.d.ts +0 -75
  374. package/dist/providers/anthropic-auth.d.ts.map +0 -1
  375. package/dist/providers/anthropic-auth.js +0 -221
  376. package/dist/providers/anthropic-auth.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"model-resolution-setup.js","sourceRoot":"","sources":["../../src/bootstrap/model-resolution-setup.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Model Resolution - Provider and model resolution from CLI arguments.\n *\n * Extracts the provider/model resolution chain from main.ts Phase 8:\n * slash-format parsing, alias lookup, provider-agnostic search,\n * factory defaults, validation, and credential check.\n *\n * @module bootstrap/model-resolution-setup\n */\n\nimport chalk from \"chalk\";\nimport type { Api, Model } from \"../agent/types.js\";\nimport {\n\tfindModelById,\n\tgetFactoryDefaultModelSelection,\n\tgetSupportedProviders,\n\tresolveAlias,\n\tresolveModel,\n} from \"../models/registry.js\";\nimport type { AuthCredential } from \"../providers/auth.js\";\nimport { PolicyError } from \"../safety/policy.js\";\n\nexport interface ModelResolutionResult {\n\tprovider: string;\n\tmodelId: string;\n\tmodel: Model<Api>;\n}\n\n/**\n * Resolve provider and model from CLI args, aliases, cross-provider search,\n * and factory defaults. Validates credentials and policy.\n *\n * @throws Error with user-facing message on validation failures\n */\nexport async function resolveModelFromArgs(params: {\n\tparsedProvider?: string;\n\tparsedModel?: string;\n\trequireCredential: (\n\t\tproviderName: string,\n\t\tfatal: boolean,\n\t) => Promise<AuthCredential>;\n}): Promise<ModelResolutionResult> {\n\tconst { parsedProvider, parsedModel, requireCredential } = params;\n\tlet provider = parsedProvider;\n\tlet modelId = parsedModel;\n\n\t// Check if model uses provider/modelId format (e.g., \"bedrock/anthropic.claude-v3\")\n\tif (modelId && !provider && modelId.includes(\"/\")) {\n\t\tconst slashIndex = modelId.indexOf(\"/\");\n\t\tconst maybeProvider = modelId.slice(0, slashIndex);\n\t\tconst maybeModelId = modelId.slice(slashIndex + 1);\n\t\tif (maybeProvider && maybeModelId && !maybeProvider.includes(\".\")) {\n\t\t\tprovider = maybeProvider;\n\t\t\tmodelId = maybeModelId;\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(`Parsed model: ${parsedModel} → ${provider}/${modelId}`),\n\t\t\t);\n\t\t}\n\t}\n\n\t// Check if model is an alias\n\tif (modelId && !provider) {\n\t\tconst resolved = resolveAlias(modelId);\n\t\tif (resolved) {\n\t\t\tprovider = resolved.provider;\n\t\t\tmodelId = resolved.modelId;\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(`Using alias: ${parsedModel} → ${provider}/${modelId}`),\n\t\t\t);\n\t\t}\n\t}\n\n\t// Search for model across all providers\n\tif (modelId && !provider) {\n\t\tconst foundModel = findModelById(modelId);\n\t\tif (foundModel) {\n\t\t\tprovider = foundModel.provider;\n\t\t\tconsole.log(chalk.dim(`Found model: ${modelId} (provider: ${provider})`));\n\t\t}\n\t}\n\n\t// Apply factory defaults\n\tif (!provider || !modelId) {\n\t\tconst factoryDefault = getFactoryDefaultModelSelection();\n\t\tif (factoryDefault) {\n\t\t\tif (!provider) {\n\t\t\t\tprovider = factoryDefault.provider;\n\t\t\t}\n\t\t\tif (!modelId) {\n\t\t\t\tmodelId = factoryDefault.modelId;\n\t\t\t}\n\t\t}\n\t}\n\n\tprovider ??= \"anthropic\";\n\tmodelId ??= \"claude-opus-4-6\";\n\n\t// Validate provider\n\tconst supportedProviders = new Set(getSupportedProviders());\n\tif (!supportedProviders.has(provider)) {\n\t\tthrow new Error(\n\t\t\t`Unknown provider \"${provider}\". Supported providers: ${Array.from(\n\t\t\t\tsupportedProviders,\n\t\t\t)\n\t\t\t\t.sort()\n\t\t\t\t.join(\", \")}`,\n\t\t);\n\t}\n\n\t// Resolve model with policy check\n\tlet model: ReturnType<typeof resolveModel> | undefined;\n\ttry {\n\t\tmodel = resolveModel(provider, modelId);\n\t} catch (error) {\n\t\tif (error instanceof PolicyError) {\n\t\t\tthrow new Error(error.message);\n\t\t}\n\t\tthrow error;\n\t}\n\n\tif (!model) {\n\t\tthrow new Error(\n\t\t\t`Unknown model \"${provider}/${modelId}\". Check your models config.`,\n\t\t);\n\t}\n\n\tif (\n\t\tprovider !== \"scripted-replay\" &&\n\t\tmodel.api !== \"openai-codex-app-server\"\n\t) {\n\t\tawait requireCredential(provider, false);\n\t}\n\n\treturn { provider, modelId, model };\n}\n"]}
1
+ {"version":3,"file":"model-resolution-setup.js","sourceRoot":"","sources":["../../src/bootstrap/model-resolution-setup.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Model Resolution - Provider and model resolution from CLI arguments.\n *\n * Extracts the provider/model resolution chain from main.ts Phase 8:\n * slash-format parsing, alias lookup, provider-agnostic search,\n * factory defaults, validation, and credential check.\n *\n * @module bootstrap/model-resolution-setup\n */\n\nimport chalk from \"chalk\";\nimport type { Api, Model } from \"../agent/types.js\";\nimport {\n\tfindModelById,\n\tgetFactoryDefaultModelSelection,\n\tgetRegisteredModels,\n\tgetSupportedProviders,\n\tresolveAlias,\n\tresolveModel,\n} from \"../models/registry.js\";\nimport type { AuthCredential } from \"../providers/auth.js\";\nimport { PolicyError } from \"../safety/policy.js\";\n\nexport interface ModelResolutionResult {\n\tprovider: string;\n\tmodelId: string;\n\tmodel: Model<Api>;\n}\n\nconst DEFAULT_PROVIDER = \"openai-codex\";\nconst DEFAULT_MODEL_ID = \"gpt-5.5\";\nconst DEFAULT_MODEL_ID_BY_PROVIDER: Record<string, string> = {\n\tanthropic: \"claude-opus-4-6\",\n\t\"openai-codex\": DEFAULT_MODEL_ID,\n\topenai: \"gpt-5.2\",\n};\n\nfunction defaultModelIdForProvider(provider: string): string | undefined {\n\tconst preferred = DEFAULT_MODEL_ID_BY_PROVIDER[provider];\n\tconst models = getRegisteredModels().filter(\n\t\t(model) => model.provider === provider,\n\t);\n\tif (preferred && models.some((model) => model.id === preferred)) {\n\t\treturn preferred;\n\t}\n\treturn models[0]?.id ?? preferred;\n}\n\n/**\n * Resolve provider and model from CLI args, aliases, cross-provider search,\n * and factory defaults. Validates credentials and policy.\n *\n * @throws Error with user-facing message on validation failures\n */\nexport async function resolveModelFromArgs(params: {\n\tparsedProvider?: string;\n\tparsedModel?: string;\n\trequireCredential: (\n\t\tproviderName: string,\n\t\tfatal: boolean,\n\t) => Promise<AuthCredential>;\n}): Promise<ModelResolutionResult> {\n\tconst { parsedProvider, parsedModel, requireCredential } = params;\n\tlet provider = parsedProvider;\n\tlet modelId = parsedModel;\n\n\t// Check if model uses provider/modelId format (e.g., \"bedrock/anthropic.claude-v3\")\n\tif (modelId && !provider && modelId.includes(\"/\")) {\n\t\tconst slashIndex = modelId.indexOf(\"/\");\n\t\tconst maybeProvider = modelId.slice(0, slashIndex);\n\t\tconst maybeModelId = modelId.slice(slashIndex + 1);\n\t\tif (maybeProvider && maybeModelId && !maybeProvider.includes(\".\")) {\n\t\t\tprovider = maybeProvider;\n\t\t\tmodelId = maybeModelId;\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(`Parsed model: ${parsedModel} → ${provider}/${modelId}`),\n\t\t\t);\n\t\t}\n\t}\n\n\t// Check if model is an alias\n\tif (modelId && !provider) {\n\t\tconst resolved = resolveAlias(modelId);\n\t\tif (resolved) {\n\t\t\tprovider = resolved.provider;\n\t\t\tmodelId = resolved.modelId;\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(`Using alias: ${parsedModel} → ${provider}/${modelId}`),\n\t\t\t);\n\t\t}\n\t}\n\n\t// Search for model across all providers\n\tif (modelId && !provider) {\n\t\tconst foundModel = findModelById(modelId);\n\t\tif (foundModel) {\n\t\t\tprovider = foundModel.provider;\n\t\t\tconsole.log(chalk.dim(`Found model: ${modelId} (provider: ${provider})`));\n\t\t}\n\t}\n\n\t// Apply factory defaults\n\tif (!provider || !modelId) {\n\t\tconst factoryDefault = getFactoryDefaultModelSelection();\n\t\tif (factoryDefault) {\n\t\t\tif (!provider) {\n\t\t\t\tprovider = factoryDefault.provider;\n\t\t\t}\n\t\t\tif (!modelId && factoryDefault.provider === provider) {\n\t\t\t\tmodelId = factoryDefault.modelId;\n\t\t\t}\n\t\t}\n\t}\n\n\tprovider ??= DEFAULT_PROVIDER;\n\tmodelId ??= defaultModelIdForProvider(provider) ?? DEFAULT_MODEL_ID;\n\n\t// Validate provider\n\tconst supportedProviders = new Set(getSupportedProviders());\n\tif (!supportedProviders.has(provider)) {\n\t\tthrow new Error(\n\t\t\t`Unknown provider \"${provider}\". Supported providers: ${Array.from(\n\t\t\t\tsupportedProviders,\n\t\t\t)\n\t\t\t\t.sort()\n\t\t\t\t.join(\", \")}`,\n\t\t);\n\t}\n\n\t// Resolve model with policy check\n\tlet model: ReturnType<typeof resolveModel> | undefined;\n\ttry {\n\t\tmodel = resolveModel(provider, modelId);\n\t} catch (error) {\n\t\tif (error instanceof PolicyError) {\n\t\t\tthrow new Error(error.message);\n\t\t}\n\t\tthrow error;\n\t}\n\n\tif (!model) {\n\t\tthrow new Error(\n\t\t\t`Unknown model \"${provider}/${modelId}\". Check your models config.`,\n\t\t);\n\t}\n\n\tif (\n\t\tprovider !== \"scripted-replay\" &&\n\t\tmodel.api !== \"openai-codex-app-server\"\n\t) {\n\t\tawait requireCredential(provider, false);\n\t}\n\n\treturn { provider, modelId, model };\n}\n"]}
@@ -28,7 +28,7 @@ export interface Args {
28
28
  commandArgs?: string[];
29
29
  contextLiveMcp?: boolean;
30
30
  approvalMode?: "auto" | "prompt" | "fail";
31
- authMode?: "auto" | "api-key" | "claude";
31
+ authMode?: "auto" | "api-key";
32
32
  force?: boolean;
33
33
  execJson?: boolean;
34
34
  execFullAuto?: boolean;
@@ -48,7 +48,7 @@ export interface Args {
48
48
  configOverrides?: string[];
49
49
  /** Start in read-only mode (activates explore composer) */
50
50
  readonly?: boolean;
51
- /** Composer profile to activate on startup */
51
+ /** Agent profile to activate on startup */
52
52
  composer?: string;
53
53
  exportFormat?: string;
54
54
  redactSecrets?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAyP9C"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAyP9C"}
package/dist/cli/args.js CHANGED
@@ -74,7 +74,7 @@ const FLAGS_WITH_VALUES = new Set([
74
74
  "--record-scenario",
75
75
  ]);
76
76
  const DEPRECATED_FLAGS_WITH_VALUES = new Set(["--codex-api-key"]);
77
- const DEPRECATED_FLAG_PREFIXES = ["--auth=chatgpt"];
77
+ const DEPRECATED_FLAG_PREFIXES = ["--auth=chatgpt", "--auth=claude"];
78
78
  function isConfigInitPresetFlag(result, arg) {
79
79
  return (result.command === "config" &&
80
80
  result.subcommand === "init" &&
@@ -226,7 +226,7 @@ export function parseArgs(args) {
226
226
  }
227
227
  else if (arg === "--auth" && i + 1 < args.length) {
228
228
  const value = args[++i];
229
- if (value === "auto" || value === "api-key" || value === "claude") {
229
+ if (value === "auto" || value === "api-key") {
230
230
  result.authMode = value;
231
231
  }
232
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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","sourcesContent":["export type Mode = \"text\" | \"json\" | \"rpc\" | \"headless\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\ttaskBudget?: number;\n\terror?: string;\n\tmodelsFile?: string;\n\tapiKey?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string;\n\t/** Port for `maestro web` (defaults to PORT env or 8080) */\n\tport?: number;\n\tcontinue?: boolean;\n\tresume?: boolean;\n\thelp?: boolean;\n\thelpHidden?: boolean;\n\tversion?: boolean;\n\tlistModesAll?: boolean;\n\tmode?: Mode;\n\t/** Run in headless mode for native TUI communication */\n\theadless?: boolean;\n\tnoSession?: boolean;\n\tsession?: string;\n\tsafeMode?: boolean;\n\tcommand?: string;\n\tsubcommand?: string;\n\t/** Raw arguments owned by command-group handlers. */\n\tcommandArgs?: string[];\n\tcontextLiveMcp?: boolean;\n\tapprovalMode?: \"auto\" | \"prompt\" | \"fail\";\n\tauthMode?: \"auto\" | \"api-key\" | \"claude\";\n\tforce?: boolean;\n\texecJson?: boolean;\n\texecFullAuto?: boolean;\n\texecReadOnly?: boolean;\n\t/** Sandbox backend or policy mode */\n\tsandbox?: string;\n\texecOutputSchema?: string;\n\texecOutputLast?: string;\n\texecResumeId?: string;\n\texecUseLast?: boolean;\n\tmodels?: string[];\n\ttools?: string[];\n\tmessages: string[];\n\t/** TOML config profile to activate */\n\tprofile?: string;\n\t/** CLI config overrides in key=value format */\n\tconfigOverrides?: string[];\n\t/** Start in read-only mode (activates explore composer) */\n\treadonly?: boolean;\n\t/** Composer profile to activate on startup */\n\tcomposer?: string;\n\texportFormat?: string;\n\tredactSecrets?: boolean;\n\tjunitPath?: string;\n\t/** Open a real agent session backed by a scripted replay scenario. */\n\treplayScenarioPath?: string;\n\t/** Record assistant turns into a scripted replay scenario file. */\n\trecordScenarioPath?: string;\n}\n\nconst COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"status\",\n\t\"run\",\n\t\"agents\",\n\t\"a2a\",\n\t\"operating-plane\",\n\t\"exec\",\n\t\"web\",\n\t\"hosted-runner\",\n\t\"init\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"export\",\n\t\"import\",\n\t\"scenario\",\n]);\nconst SUBCOMMAND_COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"run\",\n\t\"agents\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"scenario\",\n]);\nconst RUN_SUBCOMMANDS = new Set([\"inspect\", \"ledger\", \"replay\", \"promote\"]);\n\nconst FLAGS_WITH_VALUES = new Set([\n\t\"--mode\",\n\t\"--provider\",\n\t\"--model\",\n\t\"-m\",\n\t\"--task-budget\",\n\t\"--models\",\n\t\"--models-file\",\n\t\"--api-key\",\n\t\"--port\",\n\t\"--system-prompt\",\n\t\"--append-system-prompt\",\n\t\"--session\",\n\t\"--approval-mode\",\n\t\"--auth\",\n\t\"--sandbox\",\n\t\"--output-schema\",\n\t\"--output-last-message\",\n\t\"--tools\",\n\t\"--composer\",\n\t\"--format\",\n\t\"--profile\",\n\t\"--config\",\n\t\"--junit\",\n\t\"--replay\",\n\t\"--record-scenario\",\n]);\n\nconst DEPRECATED_FLAGS_WITH_VALUES = new Set([\"--codex-api-key\"]);\nconst DEPRECATED_FLAG_PREFIXES = [\"--auth=chatgpt\"];\n\nfunction isConfigInitPresetFlag(result: Args, arg: string): boolean {\n\treturn (\n\t\tresult.command === \"config\" &&\n\t\tresult.subcommand === \"init\" &&\n\t\t(arg === \"--preset\" || arg === \"-p\")\n\t);\n}\n\nfunction nextNonFlagToken(args: string[], start: number): string | undefined {\n\tfor (let index = start; index < args.length; index++) {\n\t\tconst token = args[index];\n\t\tif (!token) continue;\n\t\tif (!token.startsWith(\"-\")) {\n\t\t\treturn token;\n\t\t}\n\t\tif (FLAGS_WITH_VALUES.has(token) && index + 1 < args.length) {\n\t\t\tindex++;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t};\n\n\tfor (let i = 0; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--help-hidden\" || arg === \"--help-all\") {\n\t\t\tresult.help = true;\n\t\t\tresult.helpHidden = true;\n\t\t} else if (arg === \"--list-modes-all\") {\n\t\t\tresult.listModesAll = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg?.startsWith(\"--mode=\")) {\n\t\t\tconst mode = arg.slice(\"--mode=\".length);\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--headless\") {\n\t\t\tresult.headless = true;\n\t\t\tresult.mode = \"headless\";\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tif (result.command === \"exec\") {\n\t\t\t\tconst nextArg = args[i + 1];\n\t\t\t\tif (i + 1 < args.length && nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\t\tresult.execResumeId = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.execUseLast = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg === \"--provider\" && i + 1 < args.length) {\n\t\t\tresult.provider = args[++i];\n\t\t} else if ((arg === \"--model\" || arg === \"-m\") && i + 1 < args.length) {\n\t\t\tresult.model = args[++i];\n\t\t} else if (arg === \"--task-budget\") {\n\t\t\tconst rawValue = args[i + 1];\n\t\t\tif (\n\t\t\t\trawValue === undefined ||\n\t\t\t\t(rawValue.startsWith(\"-\") && Number.isNaN(Number(rawValue)))\n\t\t\t) {\n\t\t\t\tresult.error = \"--task-budget requires a value\";\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ti++;\n\t\t\tconst value = Number(rawValue);\n\t\t\tif (Number.isInteger(value) && value > 0) {\n\t\t\t\tresult.taskBudget = value;\n\t\t\t} else {\n\t\t\t\tresult.error = \"--task-budget must be a positive integer\";\n\t\t\t}\n\t\t} else if (arg === \"--models\" && i + 1 < args.length) {\n\t\t\tconst modelsArg = args[++i]!;\n\t\t\tconst patterns = modelsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (patterns.length > 0) {\n\t\t\t\tresult.models = patterns;\n\t\t\t}\n\t\t} else if (arg === \"--models-file\" && i + 1 < args.length) {\n\t\t\tresult.modelsFile = args[++i];\n\t\t} else if (arg === \"--api-key\" && i + 1 < args.length) {\n\t\t\tresult.apiKey = args[++i];\n\t\t} else if (arg === \"--port\" && i + 1 < args.length) {\n\t\t\tconst value = Number.parseInt(args[++i] ?? \"\", 10);\n\t\t\tif (Number.isFinite(value) && value > 0 && value < 65536) {\n\t\t\t\tresult.port = value;\n\t\t\t}\n\t\t} else if (arg === \"--system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.systemPrompt = args[++i];\n\t\t} else if (arg === \"--append-system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.appendSystemPrompt = args[++i];\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--session\" && i + 1 < args.length) {\n\t\t\tresult.session = args[++i];\n\t\t} else if (arg === \"--safe-mode\") {\n\t\t\tresult.safeMode = true;\n\t\t} else if (arg === \"--approval-mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (mode === \"auto\" || mode === \"prompt\" || mode === \"fail\") {\n\t\t\t\tresult.approvalMode = mode;\n\t\t\t}\n\t\t} else if (arg === \"--auth\" && i + 1 < args.length) {\n\t\t\tconst value = args[++i];\n\t\t\tif (value === \"auto\" || value === \"api-key\" || value === \"claude\") {\n\t\t\t\tresult.authMode = value;\n\t\t\t}\n\t\t} else if (arg === \"--force\") {\n\t\t\tresult.force = true;\n\t\t} else if (arg === \"--json\") {\n\t\t\tresult.execJson = true;\n\t\t} else if (arg === \"--full-auto\") {\n\t\t\tresult.execFullAuto = true;\n\t\t} else if (arg === \"--read-only\") {\n\t\t\tresult.execReadOnly = true;\n\t\t} else if (arg === \"--sandbox\" && i + 1 < args.length) {\n\t\t\tresult.sandbox = args[++i];\n\t\t} else if (arg === \"--output-schema\" && i + 1 < args.length) {\n\t\t\tresult.execOutputSchema = args[++i];\n\t\t} else if (arg === \"--output-last-message\" && i + 1 < args.length) {\n\t\t\tresult.execOutputLast = args[++i];\n\t\t} else if (arg === \"--last\" && result.command === \"exec\") {\n\t\t\tresult.execUseLast = true;\n\t\t} else if (arg === \"--tools\" && i + 1 < args.length) {\n\t\t\tconst toolsArg = args[++i]!;\n\t\t\tconst toolNames = toolsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (toolNames.length > 0) {\n\t\t\t\tresult.tools = toolNames;\n\t\t\t}\n\t\t} else if (arg === \"--readonly\" || arg === \"--read-only-mode\") {\n\t\t\tresult.readonly = true;\n\t\t} else if (arg === \"--composer\" && i + 1 < args.length) {\n\t\t\tresult.composer = args[++i];\n\t\t} else if (arg === \"--format\" && i + 1 < args.length) {\n\t\t\tresult.exportFormat = args[++i];\n\t\t} else if (arg === \"--redact-secrets\") {\n\t\t\tresult.redactSecrets = true;\n\t\t} else if (arg === \"--junit\" && i + 1 < args.length) {\n\t\t\tresult.junitPath = args[++i]!;\n\t\t} else if (arg === \"--replay\" && i + 1 < args.length) {\n\t\t\tresult.replayScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--record-scenario\" && i + 1 < args.length) {\n\t\t\tresult.recordScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--live-mcp\") {\n\t\t\tresult.contextLiveMcp = true;\n\t\t} else if (arg === \"--profile\" && i + 1 < args.length) {\n\t\t\tresult.profile = args[++i];\n\t\t} else if (arg === \"--config\" && i + 1 < args.length) {\n\t\t\t// Config overrides in key=value format\n\t\t\tconst override = args[++i]!;\n\t\t\tif (!result.configOverrides) {\n\t\t\t\tresult.configOverrides = [];\n\t\t\t}\n\t\t\tresult.configOverrides.push(override);\n\t\t} else if (arg && DEPRECATED_FLAGS_WITH_VALUES.has(arg)) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\") && !COMMANDS.has(nextArg)) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (\n\t\t\targ &&\n\t\t\t(Array.from(DEPRECATED_FLAGS_WITH_VALUES).some((flag) =>\n\t\t\t\targ.startsWith(`${flag}=`),\n\t\t\t) ||\n\t\t\t\tDEPRECATED_FLAG_PREFIXES.some((flag) => arg.startsWith(flag)))\n\t\t) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t} else if (\n\t\t\tresult.command === \"codex\" &&\n\t\t\tresult.subcommand === \"login\" &&\n\t\t\t(arg === \"--device\" || arg === \"--device-code\")\n\t\t) {\n\t\t\tif (!result.commandArgs) {\n\t\t\t\tresult.commandArgs = [];\n\t\t\t}\n\t\t\tresult.commandArgs.push(arg);\n\t\t} else if (arg && isConfigInitPresetFlag(result, arg)) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg?.startsWith(\"-\")) {\n\t\t\tresult.error = `Unknown option: ${arg}`;\n\t\t} else if (arg) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tconst isCommandToken =\n\t\t\t\tCOMMANDS.has(arg) &&\n\t\t\t\t(arg !== \"run\" ||\n\t\t\t\t\t(result.messages.length === 0 &&\n\t\t\t\t\t\tRUN_SUBCOMMANDS.has(nextNonFlagToken(args, i + 1) ?? \"\")));\n\t\t\tif (!result.command && isCommandToken) {\n\t\t\t\tresult.command = arg;\n\t\t\t\tconst shouldConsumeSubcommand =\n\t\t\t\t\tSUBCOMMAND_COMMANDS.has(arg) &&\n\t\t\t\t\t(arg !== \"context\" || nextArg === \"explain\" || nextArg === \"diff\");\n\t\t\t\tif (\n\t\t\t\t\tshouldConsumeSubcommand &&\n\t\t\t\t\ti + 1 < args.length &&\n\t\t\t\t\tnextArg &&\n\t\t\t\t\t!nextArg.startsWith(\"-\")\n\t\t\t\t) {\n\t\t\t\t\tresult.subcommand = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\targ === \"remote\" ||\n\t\t\t\t\targ === \"a2a\" ||\n\t\t\t\t\targ === \"operating-plane\" ||\n\t\t\t\t\targ === \"hosted-runner\" ||\n\t\t\t\t\targ === \"init\" ||\n\t\t\t\t\targ === \"evalops\" ||\n\t\t\t\t\targ === \"skill\"\n\t\t\t\t) {\n\t\t\t\t\tresult.commandArgs = args.slice(i + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.messages.push(arg);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (\n\t\tresult.command === \"run\" &&\n\t\t!result.subcommand &&\n\t\tresult.messages[0] &&\n\t\tRUN_SUBCOMMANDS.has(result.messages[0])\n\t) {\n\t\tresult.subcommand = result.messages[0];\n\t\tresult.messages = result.messages.slice(1);\n\t}\n\n\treturn result;\n}\n"]}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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","sourcesContent":["export type Mode = \"text\" | \"json\" | \"rpc\" | \"headless\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\ttaskBudget?: number;\n\terror?: string;\n\tmodelsFile?: string;\n\tapiKey?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string;\n\t/** Port for `maestro web` (defaults to PORT env or 8080) */\n\tport?: number;\n\tcontinue?: boolean;\n\tresume?: boolean;\n\thelp?: boolean;\n\thelpHidden?: boolean;\n\tversion?: boolean;\n\tlistModesAll?: boolean;\n\tmode?: Mode;\n\t/** Run in headless mode for native TUI communication */\n\theadless?: boolean;\n\tnoSession?: boolean;\n\tsession?: string;\n\tsafeMode?: boolean;\n\tcommand?: string;\n\tsubcommand?: string;\n\t/** Raw arguments owned by command-group handlers. */\n\tcommandArgs?: string[];\n\tcontextLiveMcp?: boolean;\n\tapprovalMode?: \"auto\" | \"prompt\" | \"fail\";\n\tauthMode?: \"auto\" | \"api-key\";\n\tforce?: boolean;\n\texecJson?: boolean;\n\texecFullAuto?: boolean;\n\texecReadOnly?: boolean;\n\t/** Sandbox backend or policy mode */\n\tsandbox?: string;\n\texecOutputSchema?: string;\n\texecOutputLast?: string;\n\texecResumeId?: string;\n\texecUseLast?: boolean;\n\tmodels?: string[];\n\ttools?: string[];\n\tmessages: string[];\n\t/** TOML config profile to activate */\n\tprofile?: string;\n\t/** CLI config overrides in key=value format */\n\tconfigOverrides?: string[];\n\t/** Start in read-only mode (activates explore composer) */\n\treadonly?: boolean;\n\t/** Agent profile to activate on startup */\n\tcomposer?: string;\n\texportFormat?: string;\n\tredactSecrets?: boolean;\n\tjunitPath?: string;\n\t/** Open a real agent session backed by a scripted replay scenario. */\n\treplayScenarioPath?: string;\n\t/** Record assistant turns into a scripted replay scenario file. */\n\trecordScenarioPath?: string;\n}\n\nconst COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"status\",\n\t\"run\",\n\t\"agents\",\n\t\"a2a\",\n\t\"operating-plane\",\n\t\"exec\",\n\t\"web\",\n\t\"hosted-runner\",\n\t\"init\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"export\",\n\t\"import\",\n\t\"scenario\",\n]);\nconst SUBCOMMAND_COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"run\",\n\t\"agents\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"scenario\",\n]);\nconst RUN_SUBCOMMANDS = new Set([\"inspect\", \"ledger\", \"replay\", \"promote\"]);\n\nconst FLAGS_WITH_VALUES = new Set([\n\t\"--mode\",\n\t\"--provider\",\n\t\"--model\",\n\t\"-m\",\n\t\"--task-budget\",\n\t\"--models\",\n\t\"--models-file\",\n\t\"--api-key\",\n\t\"--port\",\n\t\"--system-prompt\",\n\t\"--append-system-prompt\",\n\t\"--session\",\n\t\"--approval-mode\",\n\t\"--auth\",\n\t\"--sandbox\",\n\t\"--output-schema\",\n\t\"--output-last-message\",\n\t\"--tools\",\n\t\"--composer\",\n\t\"--format\",\n\t\"--profile\",\n\t\"--config\",\n\t\"--junit\",\n\t\"--replay\",\n\t\"--record-scenario\",\n]);\n\nconst DEPRECATED_FLAGS_WITH_VALUES = new Set([\"--codex-api-key\"]);\nconst DEPRECATED_FLAG_PREFIXES = [\"--auth=chatgpt\", \"--auth=claude\"];\n\nfunction isConfigInitPresetFlag(result: Args, arg: string): boolean {\n\treturn (\n\t\tresult.command === \"config\" &&\n\t\tresult.subcommand === \"init\" &&\n\t\t(arg === \"--preset\" || arg === \"-p\")\n\t);\n}\n\nfunction nextNonFlagToken(args: string[], start: number): string | undefined {\n\tfor (let index = start; index < args.length; index++) {\n\t\tconst token = args[index];\n\t\tif (!token) continue;\n\t\tif (!token.startsWith(\"-\")) {\n\t\t\treturn token;\n\t\t}\n\t\tif (FLAGS_WITH_VALUES.has(token) && index + 1 < args.length) {\n\t\t\tindex++;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t};\n\n\tfor (let i = 0; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--help-hidden\" || arg === \"--help-all\") {\n\t\t\tresult.help = true;\n\t\t\tresult.helpHidden = true;\n\t\t} else if (arg === \"--list-modes-all\") {\n\t\t\tresult.listModesAll = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg?.startsWith(\"--mode=\")) {\n\t\t\tconst mode = arg.slice(\"--mode=\".length);\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--headless\") {\n\t\t\tresult.headless = true;\n\t\t\tresult.mode = \"headless\";\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tif (result.command === \"exec\") {\n\t\t\t\tconst nextArg = args[i + 1];\n\t\t\t\tif (i + 1 < args.length && nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\t\tresult.execResumeId = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.execUseLast = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg === \"--provider\" && i + 1 < args.length) {\n\t\t\tresult.provider = args[++i];\n\t\t} else if ((arg === \"--model\" || arg === \"-m\") && i + 1 < args.length) {\n\t\t\tresult.model = args[++i];\n\t\t} else if (arg === \"--task-budget\") {\n\t\t\tconst rawValue = args[i + 1];\n\t\t\tif (\n\t\t\t\trawValue === undefined ||\n\t\t\t\t(rawValue.startsWith(\"-\") && Number.isNaN(Number(rawValue)))\n\t\t\t) {\n\t\t\t\tresult.error = \"--task-budget requires a value\";\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ti++;\n\t\t\tconst value = Number(rawValue);\n\t\t\tif (Number.isInteger(value) && value > 0) {\n\t\t\t\tresult.taskBudget = value;\n\t\t\t} else {\n\t\t\t\tresult.error = \"--task-budget must be a positive integer\";\n\t\t\t}\n\t\t} else if (arg === \"--models\" && i + 1 < args.length) {\n\t\t\tconst modelsArg = args[++i]!;\n\t\t\tconst patterns = modelsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (patterns.length > 0) {\n\t\t\t\tresult.models = patterns;\n\t\t\t}\n\t\t} else if (arg === \"--models-file\" && i + 1 < args.length) {\n\t\t\tresult.modelsFile = args[++i];\n\t\t} else if (arg === \"--api-key\" && i + 1 < args.length) {\n\t\t\tresult.apiKey = args[++i];\n\t\t} else if (arg === \"--port\" && i + 1 < args.length) {\n\t\t\tconst value = Number.parseInt(args[++i] ?? \"\", 10);\n\t\t\tif (Number.isFinite(value) && value > 0 && value < 65536) {\n\t\t\t\tresult.port = value;\n\t\t\t}\n\t\t} else if (arg === \"--system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.systemPrompt = args[++i];\n\t\t} else if (arg === \"--append-system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.appendSystemPrompt = args[++i];\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--session\" && i + 1 < args.length) {\n\t\t\tresult.session = args[++i];\n\t\t} else if (arg === \"--safe-mode\") {\n\t\t\tresult.safeMode = true;\n\t\t} else if (arg === \"--approval-mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (mode === \"auto\" || mode === \"prompt\" || mode === \"fail\") {\n\t\t\t\tresult.approvalMode = mode;\n\t\t\t}\n\t\t} else if (arg === \"--auth\" && i + 1 < args.length) {\n\t\t\tconst value = args[++i];\n\t\t\tif (value === \"auto\" || value === \"api-key\") {\n\t\t\t\tresult.authMode = value;\n\t\t\t}\n\t\t} else if (arg === \"--force\") {\n\t\t\tresult.force = true;\n\t\t} else if (arg === \"--json\") {\n\t\t\tresult.execJson = true;\n\t\t} else if (arg === \"--full-auto\") {\n\t\t\tresult.execFullAuto = true;\n\t\t} else if (arg === \"--read-only\") {\n\t\t\tresult.execReadOnly = true;\n\t\t} else if (arg === \"--sandbox\" && i + 1 < args.length) {\n\t\t\tresult.sandbox = args[++i];\n\t\t} else if (arg === \"--output-schema\" && i + 1 < args.length) {\n\t\t\tresult.execOutputSchema = args[++i];\n\t\t} else if (arg === \"--output-last-message\" && i + 1 < args.length) {\n\t\t\tresult.execOutputLast = args[++i];\n\t\t} else if (arg === \"--last\" && result.command === \"exec\") {\n\t\t\tresult.execUseLast = true;\n\t\t} else if (arg === \"--tools\" && i + 1 < args.length) {\n\t\t\tconst toolsArg = args[++i]!;\n\t\t\tconst toolNames = toolsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (toolNames.length > 0) {\n\t\t\t\tresult.tools = toolNames;\n\t\t\t}\n\t\t} else if (arg === \"--readonly\" || arg === \"--read-only-mode\") {\n\t\t\tresult.readonly = true;\n\t\t} else if (arg === \"--composer\" && i + 1 < args.length) {\n\t\t\tresult.composer = args[++i];\n\t\t} else if (arg === \"--format\" && i + 1 < args.length) {\n\t\t\tresult.exportFormat = args[++i];\n\t\t} else if (arg === \"--redact-secrets\") {\n\t\t\tresult.redactSecrets = true;\n\t\t} else if (arg === \"--junit\" && i + 1 < args.length) {\n\t\t\tresult.junitPath = args[++i]!;\n\t\t} else if (arg === \"--replay\" && i + 1 < args.length) {\n\t\t\tresult.replayScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--record-scenario\" && i + 1 < args.length) {\n\t\t\tresult.recordScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--live-mcp\") {\n\t\t\tresult.contextLiveMcp = true;\n\t\t} else if (arg === \"--profile\" && i + 1 < args.length) {\n\t\t\tresult.profile = args[++i];\n\t\t} else if (arg === \"--config\" && i + 1 < args.length) {\n\t\t\t// Config overrides in key=value format\n\t\t\tconst override = args[++i]!;\n\t\t\tif (!result.configOverrides) {\n\t\t\t\tresult.configOverrides = [];\n\t\t\t}\n\t\t\tresult.configOverrides.push(override);\n\t\t} else if (arg && DEPRECATED_FLAGS_WITH_VALUES.has(arg)) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\") && !COMMANDS.has(nextArg)) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (\n\t\t\targ &&\n\t\t\t(Array.from(DEPRECATED_FLAGS_WITH_VALUES).some((flag) =>\n\t\t\t\targ.startsWith(`${flag}=`),\n\t\t\t) ||\n\t\t\t\tDEPRECATED_FLAG_PREFIXES.some((flag) => arg.startsWith(flag)))\n\t\t) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t} else if (\n\t\t\tresult.command === \"codex\" &&\n\t\t\tresult.subcommand === \"login\" &&\n\t\t\t(arg === \"--device\" || arg === \"--device-code\")\n\t\t) {\n\t\t\tif (!result.commandArgs) {\n\t\t\t\tresult.commandArgs = [];\n\t\t\t}\n\t\t\tresult.commandArgs.push(arg);\n\t\t} else if (arg && isConfigInitPresetFlag(result, arg)) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg?.startsWith(\"-\")) {\n\t\t\tresult.error = `Unknown option: ${arg}`;\n\t\t} else if (arg) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tconst isCommandToken =\n\t\t\t\tCOMMANDS.has(arg) &&\n\t\t\t\t(arg !== \"run\" ||\n\t\t\t\t\t(result.messages.length === 0 &&\n\t\t\t\t\t\tRUN_SUBCOMMANDS.has(nextNonFlagToken(args, i + 1) ?? \"\")));\n\t\t\tif (!result.command && isCommandToken) {\n\t\t\t\tresult.command = arg;\n\t\t\t\tconst shouldConsumeSubcommand =\n\t\t\t\t\tSUBCOMMAND_COMMANDS.has(arg) &&\n\t\t\t\t\t(arg !== \"context\" || nextArg === \"explain\" || nextArg === \"diff\");\n\t\t\t\tif (\n\t\t\t\t\tshouldConsumeSubcommand &&\n\t\t\t\t\ti + 1 < args.length &&\n\t\t\t\t\tnextArg &&\n\t\t\t\t\t!nextArg.startsWith(\"-\")\n\t\t\t\t) {\n\t\t\t\t\tresult.subcommand = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\targ === \"remote\" ||\n\t\t\t\t\targ === \"a2a\" ||\n\t\t\t\t\targ === \"operating-plane\" ||\n\t\t\t\t\targ === \"hosted-runner\" ||\n\t\t\t\t\targ === \"init\" ||\n\t\t\t\t\targ === \"evalops\" ||\n\t\t\t\t\targ === \"skill\"\n\t\t\t\t) {\n\t\t\t\t\tresult.commandArgs = args.slice(i + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.messages.push(arg);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (\n\t\tresult.command === \"run\" &&\n\t\t!result.subcommand &&\n\t\tresult.messages[0] &&\n\t\tRUN_SUBCOMMANDS.has(result.messages[0])\n\t) {\n\t\tresult.subcommand = result.messages[0];\n\t\tresult.messages = result.messages.slice(1);\n\t}\n\n\treturn result;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/a2a.ts"],"names":[],"mappings":"AAkCA,OAAO,EAMN,kBAAkB,EAMlB,MAAM,mCAAmC,CAAC;AAoL3C,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACrC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CA2F1D;AAyoDD,eAAO,MAAM,wBAAwB,2BAAqB,CAAC"}
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/a2a.ts"],"names":[],"mappings":"AAmCA,OAAO,EAMN,kBAAkB,EAMlB,MAAM,mCAAmC,CAAC;AA2L3C,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACrC;AAeD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CA2F1D;AAy1DD,eAAO,MAAM,wBAAwB,2BAAqB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { readFile } from "node:fs/promises";
2
3
  import chalk from "chalk";
3
4
  import { selectA2ACapabilityPeer } from "../../platform/a2a-capability-market.js";
4
5
  import { buildA2AUserMessage, discoverA2AAgentCard, getA2ATask, sendA2AMessage, } from "../../platform/a2a-client.js";
@@ -8,8 +9,9 @@ import { buildMaestroA2APeerProjection, defaultMaestroA2ACapabilities, } from ".
8
9
  import { createA2APeerPairingPayload, createA2APeerPairingPayloadFromAgentCard, decodeA2APeerPairingCode, encodeA2APeerPairingCode, resolveA2AAgentCardUrl, } from "../../platform/a2a-peer-pairing.js";
9
10
  import { listA2APeers, loadA2APeerRegistry, normalizePeerName, resolveA2APeer, saveA2APeerRegistry, upsertA2APeerFromPairingPayload, } from "../../platform/a2a-peer-registry.js";
10
11
  import { extractA2ATaskText, getA2ATaskLedgerPath, isActionRequiredA2AState, isFinalA2AState, isTerminalA2AState, listA2ATaskEntries, loadA2ATaskLedger, recordA2ATaskReply, recordA2ATaskStart, updateA2ATaskInLedger, } from "../../platform/a2a-task-ledger.js";
12
+ import { inspectA2ATelemetry, } from "../../platform/a2a-telemetry-inspect.js";
11
13
  import { extractA2AWorkGraphMetadata, formatA2AWorkGraphCodexSubagents, formatA2AWorkGraphSummary, } from "../../platform/a2a-work-graph.js";
12
- import { PlatformA2ADelegationTaskControlModeValue, PlatformAgentStatusValue, controlA2ADelegationTaskWithPlatform, delegateAgentWithPlatform, getA2ADelegationGraphWithPlatform, heartbeatAgentWithPlatform, isAgentAlreadyExistsError, listA2APeerCandidatesWithPlatform, registerAgentWithPlatform, updateAgentWithPlatform, } from "../../platform/agent-registry-client.js";
14
+ import { PlatformA2ADelegationTaskControlModeValue, PlatformAgentStatusValue, controlA2ADelegationTaskWithPlatform, delegateAgentWithPlatform, getA2ADelegationGraphWithPlatform, heartbeatAgentWithPlatform, isAgentAlreadyExistsError, listA2APeerCandidatesWithEvidenceWithPlatform, registerAgentWithPlatform, updateAgentWithPlatform, } from "../../platform/agent-registry-client.js";
13
15
  import { getEnvValue } from "../../platform/client.js";
14
16
  import { isAbortError } from "../../utils/abort-error.js";
15
17
  const DEFAULT_WAIT_MS = 300_000;
@@ -129,6 +131,7 @@ const A2A_VALUE_FLAGS_BY_SUBCOMMAND = {
129
131
  "--timeout-ms",
130
132
  ],
131
133
  tasks: ["--registry", "--tasks", "--timeout-ms"],
134
+ telemetry: ["--events", "--swarm-id"],
132
135
  wait: [
133
136
  "--interval-ms",
134
137
  "--max-wait-ms",
@@ -155,6 +158,7 @@ const A2A_BOOLEAN_FLAGS_BY_SUBCOMMAND = {
155
158
  reply: ["--wait", "--work-graph"],
156
159
  send: ["--wait", "--work-graph"],
157
160
  tasks: ["--json", "--refresh", "--work-graph"],
161
+ telemetry: ["--json"],
158
162
  wait: ["--work-graph"],
159
163
  };
160
164
  const A2A_COLLECT_VALUE_FLAGS_BY_SUBCOMMAND = {
@@ -218,6 +222,9 @@ export async function handleA2ACommand(args) {
218
222
  case "tasks":
219
223
  await handleA2ATasks(parsed);
220
224
  return;
225
+ case "telemetry":
226
+ await handleA2ATelemetry(parsed);
227
+ return;
221
228
  case "wait":
222
229
  await handleA2AWait(parsed);
223
230
  return;
@@ -442,7 +449,7 @@ async function handleA2APeers(parsed) {
442
449
  }
443
450
  }
444
451
  async function handleA2ADiscover(parsed) {
445
- const candidates = await listA2APeerCandidatesWithPlatform({
452
+ const discovery = await listA2APeerCandidatesWithEvidenceWithPlatform({
446
453
  workspaceId: stringFlag(parsed, "--workspace-id"),
447
454
  capability: stringFlag(parsed, "--capability"),
448
455
  surface: stringFlag(parsed, "--surface"),
@@ -452,20 +459,25 @@ async function handleA2ADiscover(parsed) {
452
459
  skillId: stringFlag(parsed, "--skill"),
453
460
  preferInternalEndpoint: booleanFlag(parsed, "--prefer-internal"),
454
461
  });
455
- if (!candidates) {
462
+ if (!discovery) {
456
463
  fail("Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.");
457
464
  }
465
+ const candidates = discovery.candidates;
458
466
  const imported = booleanFlag(parsed, "--import")
459
- ? await importDiscoveredA2APeers(parsed, candidates)
467
+ ? await importDiscoveredA2APeers(parsed, candidates, discovery.discoveryEvidence)
460
468
  : [];
461
469
  if (booleanFlag(parsed, "--json")) {
462
470
  console.log(JSON.stringify({
463
471
  peers: candidates.map(discoveredPeerJson),
464
472
  imported,
473
+ ...(discovery.discoveryEvidence
474
+ ? { discoveryEvidence: discovery.discoveryEvidence }
475
+ : {}),
465
476
  }, null, 2));
466
477
  return;
467
478
  }
468
479
  console.log("Platform A2A peers");
480
+ printA2ADiscoveryEvidence(discovery.discoveryEvidence);
469
481
  if (candidates.length === 0) {
470
482
  console.log(chalk.dim(" No Platform agents expose A2A peer endpoints."));
471
483
  return;
@@ -656,7 +668,7 @@ async function handleA2ARegister(parsed) {
656
668
  console.log(chalk.dim(`Next heartbeat by: ${heartbeat.nextHeartbeatBy}`));
657
669
  }
658
670
  }
659
- async function importDiscoveredA2APeers(parsed, candidates) {
671
+ async function importDiscoveredA2APeers(parsed, candidates, discoveryEvidence) {
660
672
  const registryPath = stringFlag(parsed, "--registry");
661
673
  const registry = await loadA2APeerRegistry({ path: registryPath });
662
674
  const now = new Date().toISOString();
@@ -719,13 +731,14 @@ async function importDiscoveredA2APeers(parsed, candidates) {
719
731
  }))
720
732
  : previous?.skills,
721
733
  metadata: compactA2APeerMetadata({
722
- ...previous?.metadata,
734
+ ...a2APeerMetadataWithoutDiscoveryEvidence(previous?.metadata),
723
735
  source: "platform-agent-registry",
724
736
  platformAgentId: candidate.agent.id,
725
737
  platformAgentType: candidate.agent.agentType,
726
738
  platformAgentStatus: candidate.agent.status,
727
739
  selectedEndpoint: candidate.endpointKind,
728
740
  a2aPushNotifications: candidate.pushNotifications,
741
+ ...a2ADiscoveryEvidenceMetadata(discoveryEvidence),
729
742
  }),
730
743
  createdAt: previous?.createdAt ?? now,
731
744
  updatedAt: now,
@@ -929,8 +942,11 @@ async function handleA2ADelegate(parsed) {
929
942
  ? "Usage: maestro a2a delegate --discover --skill <skill-id> <text>"
930
943
  : "Usage: maestro a2a delegate <peer> <text>");
931
944
  }
932
- const peer = discover
945
+ const discoveredPeer = discover
933
946
  ? await resolveDiscoveredA2ADelegatePeer(parsed)
947
+ : undefined;
948
+ const peer = discoveredPeer
949
+ ? discoveredPeer.peer
934
950
  : await resolveA2APeer(peerName, {
935
951
  path: stringFlag(parsed, "--registry"),
936
952
  timeoutMs: numberFlag(parsed, "--timeout-ms"),
@@ -949,6 +965,7 @@ async function handleA2ADelegate(parsed) {
949
965
  skillId,
950
966
  skill,
951
967
  discoverySource: discover ? "platform-agent-registry" : undefined,
968
+ discoverySelection: discoveredPeer?.discoverySelection,
952
969
  });
953
970
  const ledgerMetadata = buildA2ADelegationLedgerMetadata({
954
971
  peerName: peer.name,
@@ -956,6 +973,7 @@ async function handleA2ADelegate(parsed) {
956
973
  cwd,
957
974
  skillId,
958
975
  discoverySource: discover ? "platform-agent-registry" : undefined,
976
+ discoverySelection: discoveredPeer?.discoverySelection,
959
977
  });
960
978
  const sent = await sendA2AMessage(peer.config, {
961
979
  message: buildA2AUserMessage({
@@ -1177,7 +1195,7 @@ async function resolveDiscoveredA2ADelegatePeer(parsed) {
1177
1195
  if (!skillId) {
1178
1196
  fail("Usage: maestro a2a delegate --discover --skill <skill-id> <text>");
1179
1197
  }
1180
- const candidates = await listA2APeerCandidatesWithPlatform({
1198
+ const discovery = await listA2APeerCandidatesWithEvidenceWithPlatform({
1181
1199
  workspaceId: stringFlag(parsed, "--workspace-id"),
1182
1200
  capability: stringFlag(parsed, "--capability"),
1183
1201
  surface: stringFlag(parsed, "--surface") ?? "a2a",
@@ -1187,9 +1205,10 @@ async function resolveDiscoveredA2ADelegatePeer(parsed) {
1187
1205
  skillId,
1188
1206
  preferInternalEndpoint: booleanFlag(parsed, "--prefer-internal"),
1189
1207
  });
1190
- if (!candidates) {
1208
+ if (!discovery) {
1191
1209
  fail("Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.");
1192
1210
  }
1211
+ const candidates = discovery.candidates;
1193
1212
  if (candidates.length === 0) {
1194
1213
  fail(`No Platform A2A peers advertise skill ${skillId}.`);
1195
1214
  }
@@ -1201,17 +1220,31 @@ async function resolveDiscoveredA2ADelegatePeer(parsed) {
1201
1220
  if (!candidate || !selected) {
1202
1221
  fail(`No Platform A2A peers advertise skill ${skillId}.`);
1203
1222
  }
1204
- const imported = await importDiscoveredA2APeers(parsed, [candidate]);
1223
+ const imported = await importDiscoveredA2APeers(parsed, [candidate], discovery.discoveryEvidence);
1205
1224
  const importedPeer = imported[0];
1206
1225
  if (!importedPeer) {
1207
1226
  fail(`Could not import Platform A2A peer for skill ${skillId}.`);
1208
1227
  }
1209
1228
  console.log(chalk.dim(`Selected Platform A2A peer ${importedPeer.name} (${importedPeer.url}) for ${skillId}`));
1210
1229
  console.log(chalk.dim(`Capability score: ${selected.score} (${selected.reasons.join(", ")})`));
1211
- return resolveA2APeer(importedPeer.name, {
1212
- path: stringFlag(parsed, "--registry"),
1213
- timeoutMs: numberFlag(parsed, "--timeout-ms"),
1214
- });
1230
+ return {
1231
+ peer: await resolveA2APeer(importedPeer.name, {
1232
+ path: stringFlag(parsed, "--registry"),
1233
+ timeoutMs: numberFlag(parsed, "--timeout-ms"),
1234
+ }),
1235
+ discoverySelection: {
1236
+ source: "platform-agent-registry",
1237
+ evidence: discovery.discoveryEvidence,
1238
+ candidateCount: discovery.discoveryEvidence?.candidateCount ?? candidates.length,
1239
+ matchedCount: discovery.discoveryEvidence?.matchedCount ?? candidates.length,
1240
+ selectedAgentId: candidate.agent.id,
1241
+ selectedAgentName: candidate.agent.name,
1242
+ selectedEndpointUrl: candidate.endpointUrl,
1243
+ selectedEndpointKind: candidate.endpointKind,
1244
+ score: selected.score,
1245
+ reasons: selected.reasons,
1246
+ },
1247
+ };
1215
1248
  }
1216
1249
  function selectA2APeerSkill(skills, skillId) {
1217
1250
  if (!skillId) {
@@ -1222,6 +1255,7 @@ function selectA2APeerSkill(skills, skillId) {
1222
1255
  function buildA2ADelegationMetadata(input) {
1223
1256
  const skill = input.skill;
1224
1257
  const subagentRequestMetadataPath = a2ASkillRequestMetadataPath(skill);
1258
+ const discoverySelection = a2ADiscoverySelectionPayload(input.discoverySelection);
1225
1259
  const subagentRequest = input.skillId
1226
1260
  ? {
1227
1261
  skillId: input.skillId,
@@ -1261,6 +1295,9 @@ function buildA2ADelegationMetadata(input) {
1261
1295
  ? { discoverySource: input.discoverySource }
1262
1296
  : {}),
1263
1297
  ...(input.skillId ? { a2aSkillId: input.skillId } : {}),
1298
+ ...(discoverySelection
1299
+ ? { "evalops.a2aDiscovery": discoverySelection }
1300
+ : {}),
1264
1301
  ...(subagentRequest
1265
1302
  ? { [subagentRequestMetadataPath]: subagentRequest }
1266
1303
  : {}),
@@ -1289,6 +1326,16 @@ function buildA2ADelegationLedgerMetadata(input) {
1289
1326
  delegationCwd: input.cwd,
1290
1327
  discoverySource: input.discoverySource,
1291
1328
  a2aSkillId: input.skillId,
1329
+ ...(input.discoverySelection
1330
+ ? {
1331
+ platformDiscoveryDecision: input.discoverySelection.evidence?.decision,
1332
+ platformDiscoveryCandidateCount: input.discoverySelection.candidateCount,
1333
+ platformDiscoveryMatchedCount: input.discoverySelection.matchedCount,
1334
+ platformDiscoverySelectedAgentId: input.discoverySelection.selectedAgentId,
1335
+ platformDiscoverySelectedEndpoint: input.discoverySelection.selectedEndpointKind,
1336
+ a2aCapabilityScore: input.discoverySelection.score,
1337
+ }
1338
+ : {}),
1292
1339
  });
1293
1340
  }
1294
1341
  async function handleA2AReply(parsed) {
@@ -1492,6 +1539,81 @@ async function loadA2AReplyLedgerEntry(parsed, peerName, taskId) {
1492
1539
  return undefined;
1493
1540
  }
1494
1541
  }
1542
+ async function handleA2ATelemetry(parsed) {
1543
+ const eventsPath = stringFlag(parsed, "--events") ??
1544
+ fail("Usage: maestro a2a telemetry --events <path> --swarm-id <id>");
1545
+ const swarmId = stringFlag(parsed, "--swarm-id") ??
1546
+ parsed.positionals.shift() ??
1547
+ fail("Usage: maestro a2a telemetry --events <path> --swarm-id <id>");
1548
+ const events = await loadA2ATelemetryEvents(eventsPath);
1549
+ const inspection = inspectA2ATelemetry({ swarmId, events });
1550
+ if (booleanFlag(parsed, "--json")) {
1551
+ console.log(JSON.stringify(inspection, null, 2));
1552
+ return;
1553
+ }
1554
+ console.log(`A2A telemetry ${chalk.bold(swarmId)} ${inspection.complete ? "complete" : "incomplete"}`);
1555
+ console.log(chalk.dim(` events=${inspection.counts.events} lanes=${inspection.counts.lanes} completed=${inspection.counts.completedLanes} failed=${inspection.counts.failedLanes} missing=${inspection.counts.missingTelemetryLanes}`));
1556
+ if (inspection.counts.orderingAnomalyLanes > 0) {
1557
+ console.log(chalk.yellow(` ordering_anomalies=${inspection.counts.orderingAnomalyLanes}`));
1558
+ }
1559
+ for (const lane of inspection.lanes) {
1560
+ console.log(`${lane.laneId} ${lane.status ?? "(unknown)"} ${lane.peer ? chalk.dim(lane.peer) : ""}`.trim());
1561
+ const details = [
1562
+ lane.parentTaskId ? `parent=${lane.parentTaskId}` : undefined,
1563
+ lane.a2aTaskId ? `task=${lane.a2aTaskId}` : undefined,
1564
+ lane.a2aMessageId ? `message=${lane.a2aMessageId}` : undefined,
1565
+ lane.contextId ? `context=${lane.contextId}` : undefined,
1566
+ lane.source ? `source=${lane.source}` : undefined,
1567
+ ]
1568
+ .filter(Boolean)
1569
+ .join(" ");
1570
+ if (details) {
1571
+ console.log(chalk.dim(` ${details}`));
1572
+ }
1573
+ const timing = [
1574
+ lane.timing.selectionToDispatchMs !== undefined
1575
+ ? `selected_to_dispatch=${lane.timing.selectionToDispatchMs}ms`
1576
+ : undefined,
1577
+ lane.timing.observedDurationMs !== undefined
1578
+ ? `observed_duration=${lane.timing.observedDurationMs}ms`
1579
+ : undefined,
1580
+ lane.timing.reportedDurationMs !== undefined
1581
+ ? `reported_duration=${lane.timing.reportedDurationMs}ms`
1582
+ : undefined,
1583
+ ]
1584
+ .filter(Boolean)
1585
+ .join(" ");
1586
+ if (timing) {
1587
+ console.log(chalk.dim(` ${timing}`));
1588
+ }
1589
+ if (lane.missingEventTypes.length > 0) {
1590
+ console.log(chalk.yellow(` missing: ${lane.missingEventTypes.join(", ")}`));
1591
+ }
1592
+ if (lane.orderingAnomalies.length > 0) {
1593
+ console.log(chalk.yellow(` anomalies: ${lane.orderingAnomalies.join(", ")}`));
1594
+ }
1595
+ }
1596
+ }
1597
+ async function loadA2ATelemetryEvents(path) {
1598
+ const parsed = JSON.parse(await readFile(path, "utf8"));
1599
+ const events = Array.isArray(parsed)
1600
+ ? parsed
1601
+ : isRecord(parsed) && Array.isArray(parsed.events)
1602
+ ? parsed.events
1603
+ : undefined;
1604
+ if (!events) {
1605
+ throw new Error("A2A telemetry events file must be an array or { events }");
1606
+ }
1607
+ return events.filter(isA2ATelemetryCloudEventLike);
1608
+ }
1609
+ function isA2ATelemetryCloudEventLike(value) {
1610
+ return (isRecord(value) &&
1611
+ typeof value.type === "string" &&
1612
+ (value.data === undefined || isRecord(value.data)));
1613
+ }
1614
+ function isRecord(value) {
1615
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
1616
+ }
1495
1617
  async function handleA2ATasks(parsed) {
1496
1618
  const peerName = parsed.positionals.shift();
1497
1619
  if (booleanFlag(parsed, "--refresh")) {
@@ -1646,6 +1768,42 @@ function printWorkGraphLines(workGraph, includeDetails) {
1646
1768
  console.log(chalk.dim(` Correlation: ${workGraph.correlationPath}`));
1647
1769
  }
1648
1770
  }
1771
+ function printA2ADiscoveryEvidence(evidence) {
1772
+ if (!evidence) {
1773
+ return;
1774
+ }
1775
+ const summary = [
1776
+ evidence.decision ? `decision=${evidence.decision}` : undefined,
1777
+ evidence.reason ? `reason=${evidence.reason}` : undefined,
1778
+ evidence.matchedCount !== undefined
1779
+ ? `matched=${evidence.matchedCount}`
1780
+ : undefined,
1781
+ evidence.candidateCount !== undefined
1782
+ ? `candidates=${evidence.candidateCount}`
1783
+ : undefined,
1784
+ evidence.a2aSkillId ? `skill=${evidence.a2aSkillId}` : undefined,
1785
+ evidence.capability ? `capability=${evidence.capability}` : undefined,
1786
+ ]
1787
+ .filter(Boolean)
1788
+ .join(" ");
1789
+ if (summary) {
1790
+ console.log(chalk.dim(` discovery ${summary}`));
1791
+ }
1792
+ if (evidence.exclusions?.length) {
1793
+ const exclusions = evidence.exclusions
1794
+ .map((exclusion) => [
1795
+ exclusion.reason,
1796
+ exclusion.count !== undefined ? `count=${exclusion.count}` : "",
1797
+ ]
1798
+ .filter(Boolean)
1799
+ .join(":"))
1800
+ .filter(Boolean)
1801
+ .join(", ");
1802
+ if (exclusions) {
1803
+ console.log(chalk.dim(` exclusions ${exclusions}`));
1804
+ }
1805
+ }
1806
+ }
1649
1807
  export const isA2AWaitCompletionState = isTerminalA2AState;
1650
1808
  function discoveredPeerJson(candidate) {
1651
1809
  return {
@@ -1701,6 +1859,59 @@ function suffixedPeerName(baseName, suffix) {
1701
1859
  const suffixText = `-${suffix}`;
1702
1860
  return normalizePeerName(`${baseName.slice(0, 80 - suffixText.length)}${suffixText}`);
1703
1861
  }
1862
+ function a2ADiscoveryEvidenceMetadata(evidence) {
1863
+ if (!evidence) {
1864
+ return {};
1865
+ }
1866
+ return (compactA2APeerMetadata({
1867
+ platformDiscoverySchema: evidence.schema,
1868
+ platformDiscoveryDecision: evidence.decision,
1869
+ platformDiscoveryReason: evidence.reason,
1870
+ platformDiscoveryWorkspaceId: evidence.workspaceId,
1871
+ platformDiscoveryCapability: evidence.capability,
1872
+ platformDiscoveryAgentType: evidence.agentType,
1873
+ platformDiscoveryA2ASkillId: evidence.a2aSkillId,
1874
+ platformDiscoveryTaskClass: evidence.taskClass,
1875
+ platformDiscoveryRequireA2ADispatch: evidence.requireA2ADispatch,
1876
+ platformDiscoverySurface: evidence.surface,
1877
+ platformDiscoveryStatus: evidence.status,
1878
+ platformDiscoveryCandidateCount: evidence.candidateCount,
1879
+ platformDiscoveryMatchedCount: evidence.matchedCount,
1880
+ }) ?? {});
1881
+ }
1882
+ function a2APeerMetadataWithoutDiscoveryEvidence(metadata) {
1883
+ if (!metadata) {
1884
+ return undefined;
1885
+ }
1886
+ const entries = Object.entries(metadata).filter(([key]) => !key.startsWith("platformDiscovery"));
1887
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
1888
+ }
1889
+ function a2ADiscoverySelectionPayload(selection) {
1890
+ if (!selection) {
1891
+ return undefined;
1892
+ }
1893
+ return compactA2AUnknownRecord({
1894
+ source: selection.source,
1895
+ ...a2ADiscoveryEvidenceMetadata(selection.evidence),
1896
+ selectedAgentId: selection.selectedAgentId,
1897
+ selectedAgentName: selection.selectedAgentName,
1898
+ selectedEndpointUrl: selection.selectedEndpointUrl,
1899
+ selectedEndpointKind: selection.selectedEndpointKind,
1900
+ score: selection.score,
1901
+ reasons: selection.reasons,
1902
+ candidateCount: selection.candidateCount,
1903
+ matchedCount: selection.matchedCount,
1904
+ });
1905
+ }
1906
+ function compactA2AUnknownRecord(record) {
1907
+ const entries = Object.entries(record).filter(([, value]) => {
1908
+ if (value === undefined) {
1909
+ return false;
1910
+ }
1911
+ return !Array.isArray(value) || value.length > 0;
1912
+ });
1913
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
1914
+ }
1704
1915
  function compactA2APeerMetadata(record) {
1705
1916
  const entries = Object.entries(record).filter((entry) => entry[1] !== undefined);
1706
1917
  return entries.length > 0 ? Object.fromEntries(entries) : undefined;
@@ -1836,6 +2047,7 @@ function printA2AHelp() {
1836
2047
  maestro a2a delegate --platform --from-agent-id <agent-id> [--to-agent-id <agent-id>|--capability <capability>] --skill <skill-id> <text> [--json]
1837
2048
  maestro a2a control <delegation-id> --mode steer|followup|collect|interrupt|cancel [--workspace-id <id>] [message]
1838
2049
  maestro a2a graph <delegation-id> [--workspace-id <id>] [--json]
2050
+ maestro a2a telemetry --events <path> --swarm-id <id> [--json]
1839
2051
  maestro a2a reply <peer> <task-id> <text> [--wait] [--work-graph]
1840
2052
  maestro a2a send <peer> <text> [--wait] [--tasks <path>] [--work-graph]
1841
2053
  maestro a2a tasks [peer] [--json] [--refresh] [--work-graph]