@evalops/maestro 0.10.18 → 0.10.20

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 (922) hide show
  1. package/README.md +56 -1
  2. package/dist/agent/action-approval.d.ts +12 -2
  3. package/dist/agent/action-approval.d.ts.map +1 -1
  4. package/dist/agent/action-approval.js +19 -32
  5. package/dist/agent/action-approval.js.map +1 -1
  6. package/dist/agent/agent.d.ts +1 -0
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.js +26 -0
  9. package/dist/agent/agent.js.map +1 -1
  10. package/dist/agent/compaction.d.ts +2 -0
  11. package/dist/agent/compaction.d.ts.map +1 -1
  12. package/dist/agent/compaction.js +4 -2
  13. package/dist/agent/compaction.js.map +1 -1
  14. package/dist/agent/index.d.ts +1 -1
  15. package/dist/agent/index.d.ts.map +1 -1
  16. package/dist/agent/index.js +1 -1
  17. package/dist/agent/index.js.map +1 -1
  18. package/dist/agent/modes.d.ts +56 -4
  19. package/dist/agent/modes.d.ts.map +1 -1
  20. package/dist/agent/modes.js +163 -2
  21. package/dist/agent/modes.js.map +1 -1
  22. package/dist/agent/prompt-recovery.d.ts.map +1 -1
  23. package/dist/agent/prompt-recovery.js +1 -3
  24. package/dist/agent/prompt-recovery.js.map +1 -1
  25. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  26. package/dist/agent/providers/anthropic.js +9 -1
  27. package/dist/agent/providers/anthropic.js.map +1 -1
  28. package/dist/agent/providers/codex-app-server.d.ts +12 -0
  29. package/dist/agent/providers/codex-app-server.d.ts.map +1 -0
  30. package/dist/agent/providers/codex-app-server.js +788 -0
  31. package/dist/agent/providers/codex-app-server.js.map +1 -0
  32. package/dist/agent/providers/google-gemini-cli.js +14 -3
  33. package/dist/agent/providers/google.js +22 -3
  34. package/dist/agent/providers/scripted.d.ts +11 -0
  35. package/dist/agent/providers/scripted.d.ts.map +1 -0
  36. package/dist/agent/providers/scripted.js +399 -0
  37. package/dist/agent/providers/scripted.js.map +1 -0
  38. package/dist/agent/providers/vertex.js +14 -3
  39. package/dist/agent/scenario-source.d.ts +19 -0
  40. package/dist/agent/scenario-source.d.ts.map +1 -0
  41. package/dist/agent/scenario-source.js +112 -0
  42. package/dist/agent/scenario-source.js.map +1 -0
  43. package/dist/agent/subagent-specs.d.ts +1 -1
  44. package/dist/agent/subagent-specs.js +1 -1
  45. package/dist/agent/subagent-specs.js.map +1 -1
  46. package/dist/agent/swarm/executor.d.ts +25 -0
  47. package/dist/agent/swarm/executor.d.ts.map +1 -1
  48. package/dist/agent/swarm/executor.js +795 -20
  49. package/dist/agent/swarm/executor.js.map +1 -1
  50. package/dist/agent/swarm/runtime-events.d.ts +11 -0
  51. package/dist/agent/swarm/runtime-events.d.ts.map +1 -0
  52. package/dist/agent/swarm/runtime-events.js +26 -0
  53. package/dist/agent/swarm/runtime-events.js.map +1 -0
  54. package/dist/agent/swarm/types.d.ts +78 -0
  55. package/dist/agent/swarm/types.d.ts.map +1 -1
  56. package/dist/agent/swarm/types.js.map +1 -1
  57. package/dist/agent/tracing.d.ts +1 -1
  58. package/dist/agent/tracing.d.ts.map +1 -1
  59. package/dist/agent/tracing.js +17 -9
  60. package/dist/agent/tracing.js.map +1 -1
  61. package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
  62. package/dist/agent/transport/create-provider-stream.js +14 -0
  63. package/dist/agent/transport/create-provider-stream.js.map +1 -1
  64. package/dist/agent/transport/stable-stringify.d.ts +2 -0
  65. package/dist/agent/transport/stable-stringify.d.ts.map +1 -0
  66. package/dist/agent/transport/stable-stringify.js +14 -0
  67. package/dist/agent/transport/stable-stringify.js.map +1 -0
  68. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  69. package/dist/agent/transport/tool-execution-bridge.js +2 -15
  70. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  71. package/dist/agent/transport/tool-safety-pipeline.d.ts +5 -1
  72. package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
  73. package/dist/agent/transport/tool-safety-pipeline.js +184 -36
  74. package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
  75. package/dist/agent/transport.d.ts +8 -0
  76. package/dist/agent/transport.d.ts.map +1 -1
  77. package/dist/agent/transport.js +1613 -68
  78. package/dist/agent/transport.js.map +1 -1
  79. package/dist/agent/types.d.ts +170 -2
  80. package/dist/agent/types.d.ts.map +1 -1
  81. package/dist/agent/types.js.map +1 -1
  82. package/dist/api/enterprise-routes.d.ts.map +1 -1
  83. package/dist/api/enterprise-routes.js +34 -3
  84. package/dist/api/enterprise-routes.js.map +1 -1
  85. package/dist/app-server/in-process-client.d.ts +32 -0
  86. package/dist/app-server/in-process-client.d.ts.map +1 -0
  87. package/dist/app-server/in-process-client.js +73 -0
  88. package/dist/app-server/in-process-client.js.map +1 -0
  89. package/dist/app-server/session-api.d.ts +36 -0
  90. package/dist/app-server/session-api.d.ts.map +1 -0
  91. package/dist/app-server/session-api.js +713 -0
  92. package/dist/app-server/session-api.js.map +1 -0
  93. package/dist/approvals/platform-action-approval.d.ts +3 -1
  94. package/dist/approvals/platform-action-approval.d.ts.map +1 -1
  95. package/dist/approvals/platform-action-approval.js +16 -9
  96. package/dist/approvals/platform-action-approval.js.map +1 -1
  97. package/dist/approvals/service-client.d.ts.map +1 -1
  98. package/dist/approvals/service-client.js +7 -7
  99. package/dist/approvals/service-client.js.map +1 -1
  100. package/dist/audit/logger.d.ts +4 -4
  101. package/dist/bootstrap/agent-creation-setup.d.ts +4 -0
  102. package/dist/bootstrap/agent-creation-setup.d.ts.map +1 -1
  103. package/dist/bootstrap/agent-creation-setup.js +3 -1
  104. package/dist/bootstrap/agent-creation-setup.js.map +1 -1
  105. package/dist/bootstrap/auth-setup.js +1 -1
  106. package/dist/bootstrap/auth-setup.js.map +1 -1
  107. package/dist/bootstrap/event-subscriptions-setup.d.ts +6 -0
  108. package/dist/bootstrap/event-subscriptions-setup.d.ts.map +1 -1
  109. package/dist/bootstrap/event-subscriptions-setup.js +26 -2
  110. package/dist/bootstrap/event-subscriptions-setup.js.map +1 -1
  111. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  112. package/dist/bootstrap/model-resolution-setup.js +4 -1
  113. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  114. package/dist/bootstrap/tools-setup.d.ts +2 -1
  115. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  116. package/dist/bootstrap/tools-setup.js +5 -1
  117. package/dist/bootstrap/tools-setup.js.map +1 -1
  118. package/dist/cli/args.d.ts +9 -1
  119. package/dist/cli/args.d.ts.map +1 -1
  120. package/dist/cli/args.js +130 -5
  121. package/dist/cli/args.js.map +1 -1
  122. package/dist/cli/commands/a2a.d.ts +9 -0
  123. package/dist/cli/commands/a2a.d.ts.map +1 -0
  124. package/dist/cli/commands/a2a.js +1714 -0
  125. package/dist/cli/commands/a2a.js.map +1 -0
  126. package/dist/cli/commands/agents.d.ts +16 -2
  127. package/dist/cli/commands/agents.d.ts.map +1 -1
  128. package/dist/cli/commands/agents.js +223 -35
  129. package/dist/cli/commands/agents.js.map +1 -1
  130. package/dist/cli/commands/codex.d.ts +1 -1
  131. package/dist/cli/commands/codex.d.ts.map +1 -1
  132. package/dist/cli/commands/codex.js +145 -39
  133. package/dist/cli/commands/codex.js.map +1 -1
  134. package/dist/cli/commands/context.d.ts +10 -0
  135. package/dist/cli/commands/context.d.ts.map +1 -0
  136. package/dist/cli/commands/context.js +176 -0
  137. package/dist/cli/commands/context.js.map +1 -0
  138. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  139. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  140. package/dist/cli/commands/hosted-runner.js +9 -1
  141. package/dist/cli/commands/hosted-runner.js.map +1 -1
  142. package/dist/cli/commands/modes.d.ts +8 -0
  143. package/dist/cli/commands/modes.d.ts.map +1 -0
  144. package/dist/cli/commands/modes.js +151 -0
  145. package/dist/cli/commands/modes.js.map +1 -0
  146. package/dist/cli/commands/operating-plane.d.ts +14 -0
  147. package/dist/cli/commands/operating-plane.d.ts.map +1 -0
  148. package/dist/cli/commands/operating-plane.js +160 -0
  149. package/dist/cli/commands/operating-plane.js.map +1 -0
  150. package/dist/cli/commands/run.d.ts +87 -0
  151. package/dist/cli/commands/run.d.ts.map +1 -0
  152. package/dist/cli/commands/run.js +356 -0
  153. package/dist/cli/commands/run.js.map +1 -0
  154. package/dist/cli/commands/scenario.d.ts +7 -0
  155. package/dist/cli/commands/scenario.d.ts.map +1 -0
  156. package/dist/cli/commands/scenario.js +195 -0
  157. package/dist/cli/commands/scenario.js.map +1 -0
  158. package/dist/cli/commands/skill.d.ts +7 -0
  159. package/dist/cli/commands/skill.d.ts.map +1 -0
  160. package/dist/cli/commands/skill.js +286 -0
  161. package/dist/cli/commands/skill.js.map +1 -0
  162. package/dist/cli/headless-protocol.d.ts +55 -1
  163. package/dist/cli/headless-protocol.d.ts.map +1 -1
  164. package/dist/cli/headless-protocol.js +446 -7
  165. package/dist/cli/headless-protocol.js.map +1 -1
  166. package/dist/cli/headless-runtime-selection.d.ts +38 -0
  167. package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
  168. package/dist/cli/headless-runtime-selection.js +48 -0
  169. package/dist/cli/headless-runtime-selection.js.map +1 -0
  170. package/dist/cli/headless.d.ts +5 -1
  171. package/dist/cli/headless.d.ts.map +1 -1
  172. package/dist/cli/headless.js +11 -1
  173. package/dist/cli/headless.js.map +1 -1
  174. package/dist/cli/help.d.ts +3 -1
  175. package/dist/cli/help.d.ts.map +1 -1
  176. package/dist/cli/help.js +135 -30
  177. package/dist/cli/help.js.map +1 -1
  178. package/dist/cli/system-prompt.d.ts +22 -4
  179. package/dist/cli/system-prompt.d.ts.map +1 -1
  180. package/dist/cli/system-prompt.js +224 -127
  181. package/dist/cli/system-prompt.js.map +1 -1
  182. package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
  183. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
  184. package/dist/cli-tui/commands/a2a-handlers.js +160 -0
  185. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
  186. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  187. package/dist/cli-tui/commands/command-catalog.js +15 -0
  188. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  189. package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
  190. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
  191. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
  192. package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
  193. package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
  194. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
  195. package/dist/cli-tui/commands/mcp-handlers.js +6 -5
  196. package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
  197. package/dist/cli-tui/commands/types.d.ts +1 -0
  198. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  199. package/dist/cli-tui/commands/types.js.map +1 -1
  200. package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
  201. package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
  202. package/dist/cli-tui/commands/utility-handlers.js +45 -6
  203. package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
  204. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  205. package/dist/cli-tui/run/run-shell-command.js +14 -5
  206. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  207. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  208. package/dist/cli-tui/run/streaming-shell-command.js +14 -5
  209. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  210. package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
  211. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  212. package/dist/cli-tui/selectors/model-selector.js +6 -2
  213. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  214. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  215. package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
  216. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  217. package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
  218. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
  219. package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
  220. package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
  221. package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
  222. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  223. package/dist/cli-tui/utils/runtime-badges.js +7 -0
  224. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  225. package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
  226. package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
  227. package/dist/cli-tui/utils/text-formatting.js +5 -0
  228. package/dist/cli-tui/utils/text-formatting.js.map +1 -1
  229. package/dist/cli.js +49158 -26161
  230. package/dist/cli.js.map +1 -1
  231. package/dist/codex/app-server-client.d.ts +139 -0
  232. package/dist/codex/app-server-client.d.ts.map +1 -0
  233. package/dist/codex/app-server-client.js +352 -0
  234. package/dist/codex/app-server-client.js.map +1 -0
  235. package/dist/codex/compatibility.d.ts +48 -0
  236. package/dist/codex/compatibility.d.ts.map +1 -0
  237. package/dist/codex/compatibility.js +344 -0
  238. package/dist/codex/compatibility.js.map +1 -0
  239. package/dist/codex/subagent-dispatch-table.d.ts +66 -0
  240. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
  241. package/dist/codex/subagent-dispatch-table.js +127 -0
  242. package/dist/codex/subagent-dispatch-table.js.map +1 -0
  243. package/dist/codex/subagent-workgraph.d.ts +56 -0
  244. package/dist/codex/subagent-workgraph.d.ts.map +1 -0
  245. package/dist/codex/subagent-workgraph.js +89 -0
  246. package/dist/codex/subagent-workgraph.js.map +1 -0
  247. package/dist/config/constants.d.ts +3 -1
  248. package/dist/config/constants.d.ts.map +1 -1
  249. package/dist/config/constants.js +9 -0
  250. package/dist/config/constants.js.map +1 -1
  251. package/dist/config/feature-flags.d.ts +10 -1
  252. package/dist/config/feature-flags.d.ts.map +1 -1
  253. package/dist/config/feature-flags.js +17 -6
  254. package/dist/config/feature-flags.js.map +1 -1
  255. package/dist/config/index.d.ts +1 -1
  256. package/dist/config/index.d.ts.map +1 -1
  257. package/dist/config/index.js +1 -1
  258. package/dist/config/index.js.map +1 -1
  259. package/dist/config/toml-config.d.ts +32 -0
  260. package/dist/config/toml-config.d.ts.map +1 -1
  261. package/dist/config/toml-config.js +152 -43
  262. package/dist/config/toml-config.js.map +1 -1
  263. package/dist/connectors/service-client.d.ts.map +1 -1
  264. package/dist/connectors/service-client.js +4 -7
  265. package/dist/connectors/service-client.js.map +1 -1
  266. package/dist/context/manifest-types.d.ts +59 -0
  267. package/dist/context/manifest-types.d.ts.map +1 -0
  268. package/dist/context/manifest-types.js +2 -0
  269. package/dist/context/manifest-types.js.map +1 -0
  270. package/dist/context/manifest.d.ts +16 -0
  271. package/dist/context/manifest.d.ts.map +1 -0
  272. package/dist/context/manifest.js +503 -0
  273. package/dist/context/manifest.js.map +1 -0
  274. package/dist/db/schema.d.ts +10 -1
  275. package/dist/db/schema.d.ts.map +1 -1
  276. package/dist/db/schema.js.map +1 -1
  277. package/dist/evalops/env-aliases.d.ts +13 -0
  278. package/dist/evalops/env-aliases.d.ts.map +1 -0
  279. package/dist/evalops/env-aliases.js +60 -0
  280. package/dist/evalops/env-aliases.js.map +1 -0
  281. package/dist/evalops/managed-context.d.ts.map +1 -1
  282. package/dist/evalops/managed-context.js +28 -62
  283. package/dist/evalops/managed-context.js.map +1 -1
  284. package/dist/guardian/config.d.ts.map +1 -1
  285. package/dist/guardian/config.js +1 -0
  286. package/dist/guardian/config.js.map +1 -1
  287. package/dist/guardian/runner.d.ts +2 -0
  288. package/dist/guardian/runner.d.ts.map +1 -1
  289. package/dist/guardian/runner.js +105 -2
  290. package/dist/guardian/runner.js.map +1 -1
  291. package/dist/guardian/types.d.ts +1 -0
  292. package/dist/guardian/types.d.ts.map +1 -1
  293. package/dist/guardian/types.js.map +1 -1
  294. package/dist/index.d.ts +5 -1
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +5 -1
  297. package/dist/index.js.map +1 -1
  298. package/dist/main.d.ts.map +1 -1
  299. package/dist/main.js +267 -55
  300. package/dist/main.js.map +1 -1
  301. package/dist/mcp/config.d.ts.map +1 -1
  302. package/dist/mcp/config.js +89 -7
  303. package/dist/mcp/config.js.map +1 -1
  304. package/dist/mcp/manager.d.ts +5 -1
  305. package/dist/mcp/manager.d.ts.map +1 -1
  306. package/dist/mcp/manager.js +159 -4
  307. package/dist/mcp/manager.js.map +1 -1
  308. package/dist/mcp/platform-plugin.d.ts.map +1 -1
  309. package/dist/mcp/platform-plugin.js +9 -26
  310. package/dist/mcp/platform-plugin.js.map +1 -1
  311. package/dist/mcp/schema.d.ts +15 -0
  312. package/dist/mcp/schema.d.ts.map +1 -1
  313. package/dist/mcp/schema.js +24 -0
  314. package/dist/mcp/schema.js.map +1 -1
  315. package/dist/mcp/tool-bridge.d.ts +39 -10
  316. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  317. package/dist/mcp/tool-bridge.js +101 -24
  318. package/dist/mcp/tool-bridge.js.map +1 -1
  319. package/dist/mcp/types.d.ts +27 -0
  320. package/dist/mcp/types.d.ts.map +1 -1
  321. package/dist/mcp/types.js.map +1 -1
  322. package/dist/mcp/workspace-trust.d.ts +10 -0
  323. package/dist/mcp/workspace-trust.d.ts.map +1 -0
  324. package/dist/mcp/workspace-trust.js +295 -0
  325. package/dist/mcp/workspace-trust.js.map +1 -0
  326. package/dist/memory/service-client.d.ts +1 -0
  327. package/dist/memory/service-client.d.ts.map +1 -1
  328. package/dist/memory/service-client.js +194 -9
  329. package/dist/memory/service-client.js.map +1 -1
  330. package/dist/models/builtin.d.ts.map +1 -1
  331. package/dist/models/builtin.js +66 -25
  332. package/dist/models/builtin.js.map +1 -1
  333. package/dist/models/config-loader.d.ts +10 -10
  334. package/dist/models/config-loader.d.ts.map +1 -1
  335. package/dist/models/config-loader.js +2 -0
  336. package/dist/models/config-loader.js.map +1 -1
  337. package/dist/models/registry.d.ts +1 -0
  338. package/dist/models/registry.d.ts.map +1 -1
  339. package/dist/models/registry.js +1 -0
  340. package/dist/models/registry.js.map +1 -1
  341. package/dist/oauth/device-identity.d.ts.map +1 -1
  342. package/dist/oauth/device-identity.js +1 -3
  343. package/dist/oauth/device-identity.js.map +1 -1
  344. package/dist/oauth/evalops.d.ts.map +1 -1
  345. package/dist/oauth/evalops.js +2 -5
  346. package/dist/oauth/evalops.js.map +1 -1
  347. package/dist/opentelemetry.d.ts.map +1 -1
  348. package/dist/opentelemetry.js +12 -12
  349. package/dist/opentelemetry.js.map +1 -1
  350. package/dist/package-version.d.ts +2 -0
  351. package/dist/package-version.d.ts.map +1 -0
  352. package/dist/package-version.js +11 -0
  353. package/dist/package-version.js.map +1 -0
  354. package/dist/packages/constants.d.ts +3 -0
  355. package/dist/packages/constants.d.ts.map +1 -0
  356. package/dist/packages/constants.js +3 -0
  357. package/dist/packages/constants.js.map +1 -0
  358. package/dist/packages/inspection.d.ts.map +1 -1
  359. package/dist/packages/inspection.js +2 -1
  360. package/dist/packages/inspection.js.map +1 -1
  361. package/dist/packages/search.d.ts.map +1 -1
  362. package/dist/packages/search.js +1 -1
  363. package/dist/packages/search.js.map +1 -1
  364. package/dist/platform/a2a-capability-market.d.ts +21 -0
  365. package/dist/platform/a2a-capability-market.d.ts.map +1 -0
  366. package/dist/platform/a2a-capability-market.js +176 -0
  367. package/dist/platform/a2a-capability-market.js.map +1 -0
  368. package/dist/platform/a2a-client.d.ts +119 -0
  369. package/dist/platform/a2a-client.d.ts.map +1 -1
  370. package/dist/platform/a2a-client.js +413 -24
  371. package/dist/platform/a2a-client.js.map +1 -1
  372. package/dist/platform/a2a-fleet.d.ts +41 -0
  373. package/dist/platform/a2a-fleet.d.ts.map +1 -0
  374. package/dist/platform/a2a-fleet.js +109 -0
  375. package/dist/platform/a2a-fleet.js.map +1 -0
  376. package/dist/platform/a2a-maestro-peer.d.ts +20 -0
  377. package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
  378. package/dist/platform/a2a-maestro-peer.js +176 -0
  379. package/dist/platform/a2a-maestro-peer.js.map +1 -0
  380. package/dist/platform/a2a-peer-pairing.d.ts +107 -0
  381. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
  382. package/dist/platform/a2a-peer-pairing.js +489 -0
  383. package/dist/platform/a2a-peer-pairing.js.map +1 -0
  384. package/dist/platform/a2a-peer-registry.d.ts +68 -0
  385. package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
  386. package/dist/platform/a2a-peer-registry.js +320 -0
  387. package/dist/platform/a2a-peer-registry.js.map +1 -0
  388. package/dist/platform/a2a-task-ledger.d.ts +86 -0
  389. package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
  390. package/dist/platform/a2a-task-ledger.js +546 -0
  391. package/dist/platform/a2a-task-ledger.js.map +1 -0
  392. package/dist/platform/a2a-work-graph.d.ts +43 -0
  393. package/dist/platform/a2a-work-graph.d.ts.map +1 -0
  394. package/dist/platform/a2a-work-graph.js +267 -0
  395. package/dist/platform/a2a-work-graph.js.map +1 -0
  396. package/dist/platform/agent-registry-client.d.ts +327 -0
  397. package/dist/platform/agent-registry-client.d.ts.map +1 -0
  398. package/dist/platform/agent-registry-client.js +803 -0
  399. package/dist/platform/agent-registry-client.js.map +1 -0
  400. package/dist/platform/agent-runtime-client.d.ts +135 -1
  401. package/dist/platform/agent-runtime-client.d.ts.map +1 -1
  402. package/dist/platform/agent-runtime-client.js +467 -10
  403. package/dist/platform/agent-runtime-client.js.map +1 -1
  404. package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
  405. package/dist/platform/cerebro-facts-client.js +4 -7
  406. package/dist/platform/cerebro-facts-client.js.map +1 -1
  407. package/dist/platform/client.d.ts.map +1 -1
  408. package/dist/platform/client.js +3 -12
  409. package/dist/platform/client.js.map +1 -1
  410. package/dist/platform/core-services.d.ts +68 -0
  411. package/dist/platform/core-services.d.ts.map +1 -1
  412. package/dist/platform/core-services.js +68 -0
  413. package/dist/platform/core-services.js.map +1 -1
  414. package/dist/platform/fermata-eval-client.d.ts +195 -0
  415. package/dist/platform/fermata-eval-client.d.ts.map +1 -0
  416. package/dist/platform/fermata-eval-client.js +146 -0
  417. package/dist/platform/fermata-eval-client.js.map +1 -0
  418. package/dist/platform/fermata-scenario-suite.d.ts +99 -0
  419. package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
  420. package/dist/platform/fermata-scenario-suite.js +459 -0
  421. package/dist/platform/fermata-scenario-suite.js.map +1 -0
  422. package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
  423. package/dist/platform/maestro-timeline-client.js +5 -11
  424. package/dist/platform/maestro-timeline-client.js.map +1 -1
  425. package/dist/platform/operating-plane-client.d.ts +156 -0
  426. package/dist/platform/operating-plane-client.d.ts.map +1 -0
  427. package/dist/platform/operating-plane-client.js +131 -0
  428. package/dist/platform/operating-plane-client.js.map +1 -0
  429. package/dist/platform/operating-plane-summary.d.ts +47 -0
  430. package/dist/platform/operating-plane-summary.d.ts.map +1 -0
  431. package/dist/platform/operating-plane-summary.js +209 -0
  432. package/dist/platform/operating-plane-summary.js.map +1 -0
  433. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  434. package/dist/platform/tool-execution-client.js +4 -11
  435. package/dist/platform/tool-execution-client.js.map +1 -1
  436. package/dist/prompts/service-client.d.ts.map +1 -1
  437. package/dist/prompts/service-client.js +3 -5
  438. package/dist/prompts/service-client.js.map +1 -1
  439. package/dist/prompts/system-prompt.d.ts +3 -0
  440. package/dist/prompts/system-prompt.d.ts.map +1 -1
  441. package/dist/prompts/system-prompt.js +13 -3
  442. package/dist/prompts/system-prompt.js.map +1 -1
  443. package/dist/prompts/types.d.ts +2 -0
  444. package/dist/prompts/types.d.ts.map +1 -1
  445. package/dist/prompts/types.js.map +1 -1
  446. package/dist/providers/api-keys.d.ts +1 -1
  447. package/dist/providers/api-keys.d.ts.map +1 -1
  448. package/dist/providers/api-keys.js +2 -1
  449. package/dist/providers/api-keys.js.map +1 -1
  450. package/dist/providers/auth.d.ts.map +1 -1
  451. package/dist/providers/auth.js +48 -25
  452. package/dist/providers/auth.js.map +1 -1
  453. package/dist/remote-runner/attach-client.d.ts.map +1 -1
  454. package/dist/remote-runner/attach-client.js +1 -0
  455. package/dist/remote-runner/attach-client.js.map +1 -1
  456. package/dist/remote-runner/client.d.ts.map +1 -1
  457. package/dist/remote-runner/client.js +4 -7
  458. package/dist/remote-runner/client.js.map +1 -1
  459. package/dist/rpc/rpc-types.d.ts.map +1 -1
  460. package/dist/rpc/rpc-types.js +1 -0
  461. package/dist/rpc/rpc-types.js.map +1 -1
  462. package/dist/safety/action-firewall.d.ts.map +1 -1
  463. package/dist/safety/action-firewall.js +69 -6
  464. package/dist/safety/action-firewall.js.map +1 -1
  465. package/dist/safety/attack-patterns.d.ts.map +1 -1
  466. package/dist/safety/attack-patterns.js +31 -14
  467. package/dist/safety/attack-patterns.js.map +1 -1
  468. package/dist/safety/bash-parser.d.ts.map +1 -1
  469. package/dist/safety/bash-parser.js +4 -3
  470. package/dist/safety/bash-parser.js.map +1 -1
  471. package/dist/safety/execpolicy.d.ts +15 -3
  472. package/dist/safety/execpolicy.d.ts.map +1 -1
  473. package/dist/safety/execpolicy.js +248 -37
  474. package/dist/safety/execpolicy.js.map +1 -1
  475. package/dist/safety/governance-service-client.d.ts.map +1 -1
  476. package/dist/safety/governance-service-client.js +4 -7
  477. package/dist/safety/governance-service-client.js.map +1 -1
  478. package/dist/safety/guarded-files.d.ts +34 -0
  479. package/dist/safety/guarded-files.d.ts.map +1 -0
  480. package/dist/safety/guarded-files.js +372 -0
  481. package/dist/safety/guarded-files.js.map +1 -0
  482. package/dist/safety/loop-detector.d.ts.map +1 -1
  483. package/dist/safety/loop-detector.js +6 -1
  484. package/dist/safety/loop-detector.js.map +1 -1
  485. package/dist/safety/permission-profile.d.ts +47 -0
  486. package/dist/safety/permission-profile.d.ts.map +1 -0
  487. package/dist/safety/permission-profile.js +349 -0
  488. package/dist/safety/permission-profile.js.map +1 -0
  489. package/dist/safety/safety-middleware.d.ts +5 -1
  490. package/dist/safety/safety-middleware.d.ts.map +1 -1
  491. package/dist/safety/safety-middleware.js +3 -2
  492. package/dist/safety/safety-middleware.js.map +1 -1
  493. package/dist/safety/suspicious-patterns.d.ts.map +1 -1
  494. package/dist/safety/suspicious-patterns.js +12 -7
  495. package/dist/safety/suspicious-patterns.js.map +1 -1
  496. package/dist/safety/tool-categorization.js +1 -1
  497. package/dist/safety/tool-categorization.js.map +1 -1
  498. package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
  499. package/dist/safety/validators/path-policy-validator.js +7 -0
  500. package/dist/safety/validators/path-policy-validator.js.map +1 -1
  501. package/dist/sandbox/index.d.ts +6 -1
  502. package/dist/sandbox/index.d.ts.map +1 -1
  503. package/dist/sandbox/index.js +30 -4
  504. package/dist/sandbox/index.js.map +1 -1
  505. package/dist/sandbox/native-sandbox.d.ts +3 -0
  506. package/dist/sandbox/native-sandbox.d.ts.map +1 -1
  507. package/dist/sandbox/native-sandbox.js +139 -18
  508. package/dist/sandbox/native-sandbox.js.map +1 -1
  509. package/dist/sentry.d.ts +17 -0
  510. package/dist/sentry.d.ts.map +1 -0
  511. package/dist/sentry.js +91 -0
  512. package/dist/sentry.js.map +1 -0
  513. package/dist/server/agent-runtime-ledger.d.ts +141 -0
  514. package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
  515. package/dist/server/agent-runtime-ledger.js +334 -0
  516. package/dist/server/agent-runtime-ledger.js.map +1 -0
  517. package/dist/server/agent-trajectory-inspection.d.ts +104 -0
  518. package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
  519. package/dist/server/agent-trajectory-inspection.js +168 -0
  520. package/dist/server/agent-trajectory-inspection.js.map +1 -0
  521. package/dist/server/agent-trajectory-replay.d.ts +56 -0
  522. package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
  523. package/dist/server/agent-trajectory-replay.js +214 -0
  524. package/dist/server/agent-trajectory-replay.js.map +1 -0
  525. package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
  526. package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
  527. package/dist/server/agent-trajectory-scenarios.js +822 -0
  528. package/dist/server/agent-trajectory-scenarios.js.map +1 -0
  529. package/dist/server/agent-trajectory-scorers.d.ts +61 -0
  530. package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
  531. package/dist/server/agent-trajectory-scorers.js +162 -0
  532. package/dist/server/agent-trajectory-scorers.js.map +1 -0
  533. package/dist/server/agent-trajectory-validation.d.ts +7 -0
  534. package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
  535. package/dist/server/agent-trajectory-validation.js +101 -0
  536. package/dist/server/agent-trajectory-validation.js.map +1 -0
  537. package/dist/server/agent-trajectory.d.ts +50 -0
  538. package/dist/server/agent-trajectory.d.ts.map +1 -0
  539. package/dist/server/agent-trajectory.js +159 -0
  540. package/dist/server/agent-trajectory.js.map +1 -0
  541. package/dist/server/app-context.d.ts +18 -0
  542. package/dist/server/app-context.d.ts.map +1 -1
  543. package/dist/server/app-context.js.map +1 -1
  544. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  545. package/dist/server/handlers/headless-sessions.js +64 -27
  546. package/dist/server/handlers/headless-sessions.js.map +1 -1
  547. package/dist/server/handlers/health.d.ts +6 -0
  548. package/dist/server/handlers/health.d.ts.map +1 -1
  549. package/dist/server/handlers/health.js +6 -0
  550. package/dist/server/handlers/health.js.map +1 -1
  551. package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
  552. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  553. package/dist/server/handlers/hosted-runner-drain.js +309 -18
  554. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  555. package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
  556. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
  557. package/dist/server/handlers/hosted-runner-identity.js +43 -0
  558. package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
  559. package/dist/server/handlers/mode.d.ts.map +1 -1
  560. package/dist/server/handlers/mode.js +3 -1
  561. package/dist/server/handlers/mode.js.map +1 -1
  562. package/dist/server/handlers/pending-requests.d.ts.map +1 -1
  563. package/dist/server/handlers/pending-requests.js +336 -51
  564. package/dist/server/handlers/pending-requests.js.map +1 -1
  565. package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
  566. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
  567. package/dist/server/handlers/platform-a2a-push.js +136 -0
  568. package/dist/server/handlers/platform-a2a-push.js.map +1 -0
  569. package/dist/server/handlers/sessions.d.ts.map +1 -1
  570. package/dist/server/handlers/sessions.js +21 -1
  571. package/dist/server/handlers/sessions.js.map +1 -1
  572. package/dist/server/headless-runtime-service.d.ts +9 -2
  573. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  574. package/dist/server/headless-runtime-service.js +39 -0
  575. package/dist/server/headless-runtime-service.js.map +1 -1
  576. package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
  577. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
  578. package/dist/server/hosted-agent-runtime-progress.js +1650 -0
  579. package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
  580. package/dist/server/hosted-runner-lease.d.ts +41 -0
  581. package/dist/server/hosted-runner-lease.d.ts.map +1 -0
  582. package/dist/server/hosted-runner-lease.js +140 -0
  583. package/dist/server/hosted-runner-lease.js.map +1 -0
  584. package/dist/server/hosted-session-manager.d.ts +16 -8
  585. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  586. package/dist/server/hosted-session-manager.js +98 -76
  587. package/dist/server/hosted-session-manager.js.map +1 -1
  588. package/dist/server/junit-xml.d.ts +2 -0
  589. package/dist/server/junit-xml.d.ts.map +1 -0
  590. package/dist/server/junit-xml.js +9 -0
  591. package/dist/server/junit-xml.js.map +1 -0
  592. package/dist/server/routes.d.ts.map +1 -1
  593. package/dist/server/routes.js +6 -0
  594. package/dist/server/routes.js.map +1 -1
  595. package/dist/server/scenario-recorder.d.ts +56 -0
  596. package/dist/server/scenario-recorder.d.ts.map +1 -0
  597. package/dist/server/scenario-recorder.js +109 -0
  598. package/dist/server/scenario-recorder.js.map +1 -0
  599. package/dist/server/scripted-scenario-runner.d.ts +46 -0
  600. package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
  601. package/dist/server/scripted-scenario-runner.js +190 -0
  602. package/dist/server/scripted-scenario-runner.js.map +1 -0
  603. package/dist/server/server-middlewares.d.ts +6 -2
  604. package/dist/server/server-middlewares.d.ts.map +1 -1
  605. package/dist/server/server-middlewares.js +8 -2
  606. package/dist/server/server-middlewares.js.map +1 -1
  607. package/dist/server/server-request-manager.d.ts +9 -1
  608. package/dist/server/server-request-manager.d.ts.map +1 -1
  609. package/dist/server/server-request-manager.js +49 -4
  610. package/dist/server/server-request-manager.js.map +1 -1
  611. package/dist/services/intelligent-router/service.d.ts +2 -0
  612. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  613. package/dist/services/intelligent-router/service.js +4 -0
  614. package/dist/services/intelligent-router/service.js.map +1 -1
  615. package/dist/services/service-authority.d.ts +25 -0
  616. package/dist/services/service-authority.d.ts.map +1 -0
  617. package/dist/services/service-authority.js +143 -0
  618. package/dist/services/service-authority.js.map +1 -0
  619. package/dist/services/workspace-config/service.d.ts +2 -0
  620. package/dist/services/workspace-config/service.d.ts.map +1 -1
  621. package/dist/services/workspace-config/service.js +4 -0
  622. package/dist/services/workspace-config/service.js.map +1 -1
  623. package/dist/session/manager.d.ts +8 -2
  624. package/dist/session/manager.d.ts.map +1 -1
  625. package/dist/session/manager.js +19 -4
  626. package/dist/session/manager.js.map +1 -1
  627. package/dist/session/session-branch.d.ts.map +1 -1
  628. package/dist/session/session-branch.js +5 -1
  629. package/dist/session/session-branch.js.map +1 -1
  630. package/dist/session/session-catalog.d.ts +7 -2
  631. package/dist/session/session-catalog.d.ts.map +1 -1
  632. package/dist/session/session-catalog.js +13 -2
  633. package/dist/session/session-catalog.js.map +1 -1
  634. package/dist/session/session-context.d.ts +6 -2
  635. package/dist/session/session-context.d.ts.map +1 -1
  636. package/dist/session/session-context.js +44 -4
  637. package/dist/session/session-context.js.map +1 -1
  638. package/dist/session/session-graph-projection.d.ts +32 -0
  639. package/dist/session/session-graph-projection.d.ts.map +1 -0
  640. package/dist/session/session-graph-projection.js +133 -0
  641. package/dist/session/session-graph-projection.js.map +1 -0
  642. package/dist/session/types.d.ts +18 -0
  643. package/dist/session/types.d.ts.map +1 -1
  644. package/dist/session/types.js +8 -0
  645. package/dist/session/types.js.map +1 -1
  646. package/dist/session/wire-format.generated.d.ts +3 -0
  647. package/dist/session/wire-format.generated.d.ts.map +1 -1
  648. package/dist/session/wire-format.generated.js +20 -0
  649. package/dist/session/wire-format.generated.js.map +1 -1
  650. package/dist/skills/eval-harness.d.ts +38 -0
  651. package/dist/skills/eval-harness.d.ts.map +1 -0
  652. package/dist/skills/eval-harness.js +112 -0
  653. package/dist/skills/eval-harness.js.map +1 -0
  654. package/dist/skills/index.d.ts +5 -1
  655. package/dist/skills/index.d.ts.map +1 -1
  656. package/dist/skills/index.js +5 -1
  657. package/dist/skills/index.js.map +1 -1
  658. package/dist/skills/linter.d.ts +36 -0
  659. package/dist/skills/linter.d.ts.map +1 -0
  660. package/dist/skills/linter.js +398 -0
  661. package/dist/skills/linter.js.map +1 -0
  662. package/dist/skills/loader.d.ts +36 -6
  663. package/dist/skills/loader.d.ts.map +1 -1
  664. package/dist/skills/loader.js +169 -86
  665. package/dist/skills/loader.js.map +1 -1
  666. package/dist/skills/package-contract.d.ts +45 -0
  667. package/dist/skills/package-contract.d.ts.map +1 -0
  668. package/dist/skills/package-contract.js +153 -0
  669. package/dist/skills/package-contract.js.map +1 -0
  670. package/dist/skills/runtime-activation.d.ts +68 -0
  671. package/dist/skills/runtime-activation.d.ts.map +1 -0
  672. package/dist/skills/runtime-activation.js +228 -0
  673. package/dist/skills/runtime-activation.js.map +1 -0
  674. package/dist/skills/service-client.d.ts.map +1 -1
  675. package/dist/skills/service-client.js +3 -4
  676. package/dist/skills/service-client.js.map +1 -1
  677. package/dist/skills/tool.d.ts.map +1 -1
  678. package/dist/skills/tool.js +2 -0
  679. package/dist/skills/tool.js.map +1 -1
  680. package/dist/skills/types.d.ts +14 -0
  681. package/dist/skills/types.d.ts.map +1 -1
  682. package/dist/skills/types.js.map +1 -1
  683. package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
  684. package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
  685. package/dist/telemetry/agent-operating-plane-context.js +54 -0
  686. package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
  687. package/dist/telemetry/beacon.d.ts +24 -0
  688. package/dist/telemetry/beacon.d.ts.map +1 -0
  689. package/dist/telemetry/beacon.js +115 -0
  690. package/dist/telemetry/beacon.js.map +1 -0
  691. package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
  692. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
  693. package/dist/telemetry/cli-command-aggregator.js +251 -0
  694. package/dist/telemetry/cli-command-aggregator.js.map +1 -0
  695. package/dist/telemetry/cli-startup.d.ts +21 -0
  696. package/dist/telemetry/cli-startup.d.ts.map +1 -0
  697. package/dist/telemetry/cli-startup.js +83 -0
  698. package/dist/telemetry/cli-startup.js.map +1 -0
  699. package/dist/telemetry/disablement.d.ts +13 -0
  700. package/dist/telemetry/disablement.d.ts.map +1 -0
  701. package/dist/telemetry/disablement.js +19 -0
  702. package/dist/telemetry/disablement.js.map +1 -0
  703. package/dist/telemetry/index.d.ts +6 -2
  704. package/dist/telemetry/index.d.ts.map +1 -1
  705. package/dist/telemetry/index.js +6 -2
  706. package/dist/telemetry/index.js.map +1 -1
  707. package/dist/telemetry/maestro-event-bus.d.ts +52 -0
  708. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  709. package/dist/telemetry/maestro-event-bus.js +179 -3
  710. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  711. package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
  712. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  713. package/dist/telemetry/maestro-event-catalog.js +2 -0
  714. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  715. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  716. package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
  717. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  718. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
  719. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
  720. package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
  721. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  722. package/dist/telemetry/mcp-beacon.d.ts +20 -0
  723. package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
  724. package/dist/telemetry/mcp-beacon.js +54 -0
  725. package/dist/telemetry/mcp-beacon.js.map +1 -0
  726. package/dist/telemetry/metadata-normalization.d.ts +7 -0
  727. package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
  728. package/dist/telemetry/metadata-normalization.js +189 -0
  729. package/dist/telemetry/metadata-normalization.js.map +1 -0
  730. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  731. package/dist/telemetry/meter-service-client.js +5 -10
  732. package/dist/telemetry/meter-service-client.js.map +1 -1
  733. package/dist/telemetry/metrics.d.ts +123 -0
  734. package/dist/telemetry/metrics.d.ts.map +1 -0
  735. package/dist/telemetry/metrics.js +184 -0
  736. package/dist/telemetry/metrics.js.map +1 -0
  737. package/dist/telemetry/turn-tracker.d.ts +1 -0
  738. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  739. package/dist/telemetry/turn-tracker.js +22 -1
  740. package/dist/telemetry/turn-tracker.js.map +1 -1
  741. package/dist/telemetry/wide-events.d.ts +31 -1
  742. package/dist/telemetry/wide-events.d.ts.map +1 -1
  743. package/dist/telemetry/wide-events.js +229 -1
  744. package/dist/telemetry/wide-events.js.map +1 -1
  745. package/dist/telemetry.d.ts +39 -3
  746. package/dist/telemetry.d.ts.map +1 -1
  747. package/dist/telemetry.js +160 -3
  748. package/dist/telemetry.js.map +1 -1
  749. package/dist/testing/test-verification-hook.d.ts.map +1 -1
  750. package/dist/testing/test-verification-hook.js +34 -21
  751. package/dist/testing/test-verification-hook.js.map +1 -1
  752. package/dist/tools/apply-patch-parser.d.ts +26 -0
  753. package/dist/tools/apply-patch-parser.d.ts.map +1 -0
  754. package/dist/tools/apply-patch-parser.js +146 -0
  755. package/dist/tools/apply-patch-parser.js.map +1 -0
  756. package/dist/tools/apply-patch.d.ts +42 -0
  757. package/dist/tools/apply-patch.d.ts.map +1 -0
  758. package/dist/tools/apply-patch.js +648 -0
  759. package/dist/tools/apply-patch.js.map +1 -0
  760. package/dist/tools/ask-user.d.ts +1 -0
  761. package/dist/tools/ask-user.d.ts.map +1 -1
  762. package/dist/tools/background/tool-handler.d.ts +1 -0
  763. package/dist/tools/background/tool-handler.d.ts.map +1 -1
  764. package/dist/tools/bash.d.ts +1 -0
  765. package/dist/tools/bash.d.ts.map +1 -1
  766. package/dist/tools/codesearch.d.ts +1 -0
  767. package/dist/tools/codesearch.d.ts.map +1 -1
  768. package/dist/tools/conductor-client.d.ts +1 -0
  769. package/dist/tools/conductor-client.d.ts.map +1 -1
  770. package/dist/tools/conductor-client.js +63 -0
  771. package/dist/tools/conductor-client.js.map +1 -1
  772. package/dist/tools/diff.d.ts +1 -0
  773. package/dist/tools/diff.d.ts.map +1 -1
  774. package/dist/tools/edit.d.ts +1 -0
  775. package/dist/tools/edit.d.ts.map +1 -1
  776. package/dist/tools/extract-document.d.ts +1 -0
  777. package/dist/tools/extract-document.d.ts.map +1 -1
  778. package/dist/tools/find.d.ts +10 -0
  779. package/dist/tools/find.d.ts.map +1 -1
  780. package/dist/tools/find.js +236 -27
  781. package/dist/tools/find.js.map +1 -1
  782. package/dist/tools/gh.d.ts +3 -0
  783. package/dist/tools/gh.d.ts.map +1 -1
  784. package/dist/tools/index.d.ts +50 -0
  785. package/dist/tools/index.d.ts.map +1 -1
  786. package/dist/tools/index.js +4 -0
  787. package/dist/tools/index.js.map +1 -1
  788. package/dist/tools/list.d.ts +1 -0
  789. package/dist/tools/list.d.ts.map +1 -1
  790. package/dist/tools/notebook.d.ts +1 -0
  791. package/dist/tools/notebook.d.ts.map +1 -1
  792. package/dist/tools/oracle.d.ts +1 -0
  793. package/dist/tools/oracle.d.ts.map +1 -1
  794. package/dist/tools/oracle.js +17 -32
  795. package/dist/tools/oracle.js.map +1 -1
  796. package/dist/tools/parallel-execution.d.ts +13 -2
  797. package/dist/tools/parallel-execution.d.ts.map +1 -1
  798. package/dist/tools/parallel-execution.js +178 -7
  799. package/dist/tools/parallel-execution.js.map +1 -1
  800. package/dist/tools/parallel-ripgrep.d.ts +1 -0
  801. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  802. package/dist/tools/pipeline.d.ts +4 -0
  803. package/dist/tools/pipeline.d.ts.map +1 -1
  804. package/dist/tools/read.d.ts +1 -0
  805. package/dist/tools/read.d.ts.map +1 -1
  806. package/dist/tools/search.d.ts +1 -0
  807. package/dist/tools/search.d.ts.map +1 -1
  808. package/dist/tools/status.d.ts +1 -0
  809. package/dist/tools/status.d.ts.map +1 -1
  810. package/dist/tools/todo.d.ts +1 -0
  811. package/dist/tools/todo.d.ts.map +1 -1
  812. package/dist/tools/tool-dsl.d.ts +5 -1
  813. package/dist/tools/tool-dsl.d.ts.map +1 -1
  814. package/dist/tools/tool-dsl.js +1 -0
  815. package/dist/tools/tool-dsl.js.map +1 -1
  816. package/dist/tools/tool-result-cache.d.ts.map +1 -1
  817. package/dist/tools/tool-result-cache.js +1 -0
  818. package/dist/tools/tool-result-cache.js.map +1 -1
  819. package/dist/tools/typebox-tool.d.ts.map +1 -1
  820. package/dist/tools/typebox-tool.js +3 -0
  821. package/dist/tools/typebox-tool.js.map +1 -1
  822. package/dist/tools/webfetch.d.ts +1 -0
  823. package/dist/tools/webfetch.d.ts.map +1 -1
  824. package/dist/tools/websearch.d.ts +1 -0
  825. package/dist/tools/websearch.d.ts.map +1 -1
  826. package/dist/tools/write.d.ts +1 -0
  827. package/dist/tools/write.d.ts.map +1 -1
  828. package/dist/utils/abort-error.d.ts +2 -0
  829. package/dist/utils/abort-error.d.ts.map +1 -0
  830. package/dist/utils/abort-error.js +7 -0
  831. package/dist/utils/abort-error.js.map +1 -0
  832. package/dist/utils/downstream.d.ts.map +1 -1
  833. package/dist/utils/downstream.js +4 -0
  834. package/dist/utils/downstream.js.map +1 -1
  835. package/dist/utils/logger.d.ts +3 -0
  836. package/dist/utils/logger.d.ts.map +1 -1
  837. package/dist/utils/logger.js +14 -3
  838. package/dist/utils/logger.js.map +1 -1
  839. package/dist/utils/path-containment.d.ts +2 -0
  840. package/dist/utils/path-containment.d.ts.map +1 -0
  841. package/dist/utils/path-containment.js +14 -0
  842. package/dist/utils/path-containment.js.map +1 -0
  843. package/dist/utils/prompt-safe-text.d.ts +7 -0
  844. package/dist/utils/prompt-safe-text.d.ts.map +1 -0
  845. package/dist/utils/prompt-safe-text.js +44 -0
  846. package/dist/utils/prompt-safe-text.js.map +1 -0
  847. package/dist/version.json +2 -2
  848. package/dist/web-server.d.ts.map +1 -1
  849. package/dist/web-server.js +32 -7
  850. package/dist/web-server.js.map +1 -1
  851. package/dist/workspace/root-resolver.d.ts +4 -1
  852. package/dist/workspace/root-resolver.d.ts.map +1 -1
  853. package/dist/workspace/root-resolver.js +16 -6
  854. package/dist/workspace/root-resolver.js.map +1 -1
  855. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
  856. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
  857. package/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
  858. package/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
  859. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
  860. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
  861. package/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
  862. package/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
  863. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
  864. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
  865. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
  866. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
  867. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +2 -0
  868. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -1
  869. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +1 -0
  870. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -1
  871. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +280 -5
  872. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
  873. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +36 -1
  874. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
  875. package/node_modules/@evalops/contracts/dist/index.d.ts +15 -1
  876. package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  877. package/node_modules/@evalops/contracts/dist/index.js +6 -0
  878. package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  879. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
  880. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
  881. package/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
  882. package/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
  883. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +91 -0
  884. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
  885. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +92 -61
  886. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
  887. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +3 -0
  888. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -1
  889. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
  890. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
  891. package/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
  892. package/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
  893. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +7 -0
  894. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -1
  895. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +2 -0
  896. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -1
  897. package/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
  898. package/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
  899. package/node_modules/@evalops/contracts/dist/scenario.js +4 -0
  900. package/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
  901. package/node_modules/@evalops/contracts/dist/schemas.d.ts +17 -3
  902. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  903. package/node_modules/@evalops/contracts/dist/schemas.js +16 -0
  904. package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  905. package/node_modules/@evalops/contracts/package.json +1 -1
  906. package/node_modules/@evalops/tui/package.json +1 -1
  907. package/package.json +41 -7
  908. package/skills/incident-triage/SKILL.md +40 -0
  909. package/skills/incident-triage/mcp.json +14 -0
  910. package/skills/incident-triage/reference/triage.md +20 -0
  911. package/skills/incident-triage/toolbox/incident-timeline +22 -0
  912. package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
  913. package/skills/pr-review/SKILL.md +40 -0
  914. package/skills/pr-review/mcp.json +14 -0
  915. package/skills/pr-review/reference/rubric.md +20 -0
  916. package/skills/pr-review/toolbox/review-summary +20 -0
  917. package/skills/pr-review/toolbox/review-summary.cmd +14 -0
  918. package/skills/release-verification/SKILL.md +40 -0
  919. package/skills/release-verification/mcp.json +15 -0
  920. package/skills/release-verification/reference/checklist.md +21 -0
  921. package/skills/release-verification/toolbox/release-readiness +18 -0
  922. package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
@@ -1,13 +1,20 @@
1
1
  import { constants } from "node:fs";
2
2
  import { access, readFile, stat } from "node:fs/promises";
3
3
  import { basename } from "node:path";
4
- import { headlessProtocolVersion, } from "@evalops/contracts";
4
+ import { headlessConnectionRoles, headlessProtocolVersion, headlessServerRequestTypes, headlessUtilityOperations, } from "@evalops/contracts";
5
5
  import { lookup as lookupMimeType } from "mime-types";
6
+ import { CODEX_SUBAGENT_TOOL_PREFIX, CODEX_SUBAGENT_WORK_GRAPH_SCHEMA, codexSubagentActiveStatus, codexSubagentOperationName, codexSubagentTerminalSuccessStatus, } from "../codex/subagent-workgraph.js";
6
7
  import { appendHeadlessOutput } from "../headless/output-buffer.js";
7
8
  import { isSupportedImageFormat } from "../tools/image-processor.js";
8
9
  import { getCurrentBranch, isInsideGitRepository } from "../utils/git.js";
9
10
  import { normalizePath } from "../utils/path-validation.js";
10
11
  import { summarizeToolUse } from "../utils/tool-use-summary.js";
12
+ export const HEADLESS_SERVER_CAPABILITIES = {
13
+ server_requests: [...headlessServerRequestTypes],
14
+ utility_operations: [...headlessUtilityOperations],
15
+ raw_agent_events: true,
16
+ connection_roles: [...headlessConnectionRoles],
17
+ };
11
18
  export const HEADLESS_PROTOCOL_VERSION = headlessProtocolVersion;
12
19
  export function buildHeadlessRawAgentEventMessage(event) {
13
20
  return {
@@ -31,6 +38,7 @@ export function createHeadlessRuntimeState() {
31
38
  active_utility_commands: [],
32
39
  active_file_watches: [],
33
40
  tracked_tools: [],
41
+ codex_subagent_edges: [],
34
42
  is_ready: false,
35
43
  is_responding: false,
36
44
  };
@@ -45,6 +53,9 @@ function toUnifiedPendingRequestState(kind, request, sessionId) {
45
53
  ...(sessionId !== undefined ? { session_id: sessionId } : {}),
46
54
  tool_call_id: request.call_id,
47
55
  call_id: request.call_id,
56
+ ...(request.tool_execution_id
57
+ ? { tool_execution_id: request.tool_execution_id }
58
+ : {}),
48
59
  ...(request.request_id ? { request_id: request.request_id } : {}),
49
60
  tool_name: request.tool,
50
61
  tool: request.tool,
@@ -54,6 +65,9 @@ function toUnifiedPendingRequestState(kind, request, sessionId) {
54
65
  ? { action_description: request.action_description }
55
66
  : {}),
56
67
  args: request.args,
68
+ ...(request.started_at_ms !== undefined
69
+ ? { started_at_ms: request.started_at_ms }
70
+ : {}),
57
71
  source: "local",
58
72
  };
59
73
  }
@@ -68,6 +82,312 @@ export function syncHeadlessPendingRequests(state) {
68
82
  ];
69
83
  return state.pending_requests;
70
84
  }
85
+ export { CODEX_SUBAGENT_TOOL_PREFIX, CODEX_SUBAGENT_WORK_GRAPH_SCHEMA };
86
+ function isRecord(value) {
87
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
88
+ }
89
+ export function nonEmptyString(value) {
90
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
91
+ }
92
+ export function stringArray(value) {
93
+ return Array.isArray(value)
94
+ ? value.filter((item) => typeof item === "string" && item.length > 0)
95
+ : [];
96
+ }
97
+ export function codexSubagentOperation(tool) {
98
+ return codexSubagentOperationName(tool);
99
+ }
100
+ export function activeCodexSubagentStatus(operation) {
101
+ return codexSubagentActiveStatus(operation) ?? "waiting_for_restore";
102
+ }
103
+ export function codexSubagentStatusIsTerminal(status) {
104
+ switch ((status ?? "").toLowerCase().replace(/[-\s]+/g, "_")) {
105
+ case "closed":
106
+ case "explicitly_closed":
107
+ case "succeeded":
108
+ case "success":
109
+ case "completed":
110
+ case "complete":
111
+ case "done":
112
+ case "acknowledged":
113
+ case "failed":
114
+ case "failure":
115
+ case "error":
116
+ case "cancelled":
117
+ case "canceled":
118
+ return true;
119
+ default:
120
+ return false;
121
+ }
122
+ }
123
+ function terminalCodexSubagentStatus(operation, success) {
124
+ if (!success) {
125
+ return "failed";
126
+ }
127
+ return codexSubagentTerminalSuccessStatus(operation) ?? "completed";
128
+ }
129
+ export function collectCodexChildRuns(args) {
130
+ if (!isRecord(args)) {
131
+ return [];
132
+ }
133
+ const childRunIds = stringArray(args.childRunIds ?? args.child_run_ids);
134
+ const threadIds = stringArray(args.receiverThreadIds ?? args.receiver_thread_ids);
135
+ const graph = args.codexWorkGraph ?? args.codex_work_graph;
136
+ const graphRuns = [];
137
+ if (isRecord(graph)) {
138
+ const graphChildRuns = graph.childRuns ?? graph.child_runs;
139
+ for (const childRun of Array.isArray(graphChildRuns)
140
+ ? graphChildRuns
141
+ : []) {
142
+ if (!isRecord(childRun)) {
143
+ continue;
144
+ }
145
+ graphRuns.push({
146
+ child_run_id: nonEmptyString(childRun.childRunId ?? childRun.child_run_id),
147
+ thread_id: nonEmptyString(childRun.threadId ?? childRun.thread_id),
148
+ status: nonEmptyString(childRun.status ?? childRun.targetStatus ?? childRun.target_status),
149
+ });
150
+ }
151
+ }
152
+ const count = Math.max(childRunIds.length, threadIds.length, graphRuns.length, 1);
153
+ const runs = [];
154
+ for (let index = 0; index < count; index += 1) {
155
+ const threadId = threadIds[index] ?? graphRuns[index]?.thread_id;
156
+ const status = graphRuns[index]?.status ?? codexAgentStateStatus(args, threadId);
157
+ runs.push({
158
+ child_run_id: childRunIds[index] ?? graphRuns[index]?.child_run_id,
159
+ thread_id: threadId,
160
+ ...(status ? { status } : {}),
161
+ });
162
+ }
163
+ return runs.filter((run) => run.child_run_id || run.thread_id);
164
+ }
165
+ function codexAgentStateStatus(args, threadId) {
166
+ if (!threadId) {
167
+ return undefined;
168
+ }
169
+ const agentsStates = args.agentsStates ?? args.agents_states;
170
+ if (!isRecord(agentsStates)) {
171
+ return undefined;
172
+ }
173
+ const agentState = agentsStates[threadId];
174
+ if (!isRecord(agentState)) {
175
+ return undefined;
176
+ }
177
+ return nonEmptyString(agentState.status);
178
+ }
179
+ function hasCodexSubagentArgs(value) {
180
+ if (!isRecord(value)) {
181
+ return false;
182
+ }
183
+ return (hasCodexWorkGraph(value) ||
184
+ stringArray(value.childRunIds ?? value.child_run_ids).length > 0 ||
185
+ stringArray(value.receiverThreadIds ?? value.receiver_thread_ids).length > 0);
186
+ }
187
+ function mergeRecordArgs(base, patch) {
188
+ return {
189
+ ...(isRecord(base) ? base : {}),
190
+ ...patch,
191
+ };
192
+ }
193
+ function codexSubagentToolEndArgs(sourceArgs, details) {
194
+ if (!isRecord(details)) {
195
+ return sourceArgs;
196
+ }
197
+ const wrappedArgs = details.args;
198
+ if (isRecord(wrappedArgs)) {
199
+ return mergeRecordArgs(sourceArgs, wrappedArgs);
200
+ }
201
+ if (hasCodexSubagentArgs(details)) {
202
+ return mergeRecordArgs(sourceArgs, details);
203
+ }
204
+ return sourceArgs;
205
+ }
206
+ const CODEX_SUBAGENT_DETAIL_KEYS = [
207
+ "codexTool",
208
+ "codex_tool",
209
+ "status",
210
+ "threadId",
211
+ "thread_id",
212
+ "turnId",
213
+ "turn_id",
214
+ "senderThreadId",
215
+ "sender_thread_id",
216
+ "receiverThreadIds",
217
+ "receiver_thread_ids",
218
+ "childRunIds",
219
+ "child_run_ids",
220
+ "codexWorkGraph",
221
+ "codex_work_graph",
222
+ "agentsStates",
223
+ "agents_states",
224
+ ];
225
+ const CODEX_SUBAGENT_DETAIL_REDACTED_KEYS = new Set([
226
+ "prompt",
227
+ "model",
228
+ "reasoningEffort",
229
+ "reasoning_effort",
230
+ ]);
231
+ function hasCodexWorkGraph(args) {
232
+ if (!isRecord(args)) {
233
+ return false;
234
+ }
235
+ const graph = args.codexWorkGraph ?? args.codex_work_graph;
236
+ return (isRecord(graph) &&
237
+ (graph.schemaVersion === CODEX_SUBAGENT_WORK_GRAPH_SCHEMA ||
238
+ graph.schema_version === CODEX_SUBAGENT_WORK_GRAPH_SCHEMA));
239
+ }
240
+ function sanitizeCodexSubagentDetailValue(value) {
241
+ if (Array.isArray(value)) {
242
+ return value.map((item) => sanitizeCodexSubagentDetailValue(item));
243
+ }
244
+ if (!isRecord(value)) {
245
+ return value;
246
+ }
247
+ const out = {};
248
+ for (const [key, child] of Object.entries(value)) {
249
+ if (CODEX_SUBAGENT_DETAIL_REDACTED_KEYS.has(key)) {
250
+ continue;
251
+ }
252
+ out[key] = sanitizeCodexSubagentDetailValue(child);
253
+ }
254
+ return out;
255
+ }
256
+ function codexSubagentToolEndDetails(toolName, details) {
257
+ if (!toolName.startsWith(CODEX_SUBAGENT_TOOL_PREFIX) || !isRecord(details)) {
258
+ return undefined;
259
+ }
260
+ const out = {};
261
+ for (const key of CODEX_SUBAGENT_DETAIL_KEYS) {
262
+ if (details[key] !== undefined) {
263
+ out[key] = sanitizeCodexSubagentDetailValue(details[key]);
264
+ }
265
+ }
266
+ return Object.keys(out).length > 0 ? out : undefined;
267
+ }
268
+ export function codexSubagentEdgeKey(edge) {
269
+ return [
270
+ edge.spawn_tool_call_id ?? "",
271
+ edge.wait_tool_call_id ?? "",
272
+ edge.child_run_id ?? "",
273
+ edge.thread_id ?? "",
274
+ edge.operation,
275
+ ].join("\u0000");
276
+ }
277
+ export function buildCodexSubagentContinuityEdges(input) {
278
+ const operation = codexSubagentOperation(input.tool);
279
+ if (!operation) {
280
+ return [];
281
+ }
282
+ const base = {
283
+ operation,
284
+ status: input.status,
285
+ ...(operation === "spawn_agent"
286
+ ? {
287
+ spawn_tool_call_id: input.call_id,
288
+ ...(input.tool_execution_id
289
+ ? { spawn_tool_execution_id: input.tool_execution_id }
290
+ : {}),
291
+ }
292
+ : {
293
+ wait_tool_call_id: input.call_id,
294
+ ...(input.tool_execution_id
295
+ ? { wait_tool_execution_id: input.tool_execution_id }
296
+ : {}),
297
+ }),
298
+ };
299
+ const childRuns = collectCodexChildRuns(input.args);
300
+ return childRuns.length > 0
301
+ ? childRuns.map((childRun) => ({
302
+ ...base,
303
+ ...(childRun.child_run_id
304
+ ? { child_run_id: childRun.child_run_id }
305
+ : {}),
306
+ ...(childRun.thread_id ? { thread_id: childRun.thread_id } : {}),
307
+ status: childRun.status ?? base.status,
308
+ }))
309
+ : [base];
310
+ }
311
+ function upsertCodexSubagentContinuityEdges(state, input) {
312
+ const operation = codexSubagentOperation(input.tool);
313
+ if (!operation ||
314
+ (!input.tool.startsWith(CODEX_SUBAGENT_TOOL_PREFIX) &&
315
+ !hasCodexWorkGraph(input.args))) {
316
+ return;
317
+ }
318
+ const edges = buildCodexSubagentContinuityEdges(input);
319
+ state.codex_subagent_edges ??= [];
320
+ const existing = new Map(state.codex_subagent_edges.map((edge) => [
321
+ codexSubagentEdgeKey(edge),
322
+ edge,
323
+ ]));
324
+ if (edges.some((edge) => edge.child_run_id || edge.thread_id)) {
325
+ for (const [key, edge] of existing) {
326
+ const sameToolCall = edge.spawn_tool_call_id === input.call_id ||
327
+ edge.wait_tool_call_id === input.call_id;
328
+ if (sameToolCall &&
329
+ edge.operation === operation &&
330
+ !edge.child_run_id &&
331
+ !edge.thread_id) {
332
+ existing.delete(key);
333
+ }
334
+ }
335
+ }
336
+ for (const edge of edges) {
337
+ existing.set(codexSubagentEdgeKey(edge), edge);
338
+ }
339
+ if ((input.status === "closed" || input.status === "completed") &&
340
+ (operation === "close_agent" || operation === "wait_agent")) {
341
+ const closedChildIds = new Set(edges.map((edge) => edge.child_run_id).filter(Boolean));
342
+ const closedThreadIds = new Set(edges.map((edge) => edge.thread_id).filter(Boolean));
343
+ for (const [key, edge] of existing) {
344
+ if (edge.operation === operation ||
345
+ codexSubagentStatusIsTerminal(edge.status)) {
346
+ continue;
347
+ }
348
+ const sameChild = (edge.child_run_id && closedChildIds.has(edge.child_run_id)) ||
349
+ (edge.thread_id && closedThreadIds.has(edge.thread_id));
350
+ if (sameChild) {
351
+ existing.set(key, { ...edge, status: "completed" });
352
+ }
353
+ }
354
+ }
355
+ state.codex_subagent_edges = [...existing.values()].sort((left, right) => codexSubagentEdgeKey(left).localeCompare(codexSubagentEdgeKey(right)));
356
+ }
357
+ function markCodexSubagentEdgesFailedForCall(state, callId) {
358
+ if (!callId) {
359
+ return;
360
+ }
361
+ state.codex_subagent_edges ??= [];
362
+ state.codex_subagent_edges = state.codex_subagent_edges
363
+ .map((edge) => {
364
+ const matches = edge.spawn_tool_call_id === callId || edge.wait_tool_call_id === callId;
365
+ if (!matches || codexSubagentStatusIsTerminal(edge.status)) {
366
+ return edge;
367
+ }
368
+ return { ...edge, status: "failed" };
369
+ })
370
+ .sort((left, right) => codexSubagentEdgeKey(left).localeCompare(codexSubagentEdgeKey(right)));
371
+ }
372
+ function failCodexSubagentContinuityEdge(state, callId) {
373
+ const source = state.tracked_tools.find((tool) => tool.call_id === callId) ??
374
+ state.pending_approvals.find((approval) => approval.call_id === callId) ??
375
+ state.pending_client_tools.find((request) => request.call_id === callId) ??
376
+ state.pending_mcp_elicitations.find((request) => request.call_id === callId) ??
377
+ state.pending_user_inputs.find((request) => request.call_id === callId) ??
378
+ state.pending_tool_retries.find((request) => request.call_id === callId);
379
+ const operation = source ? codexSubagentOperation(source.tool) : undefined;
380
+ if (source && operation) {
381
+ upsertCodexSubagentContinuityEdges(state, {
382
+ call_id: callId,
383
+ tool_execution_id: source.tool_execution_id,
384
+ tool: source.tool,
385
+ args: source.args,
386
+ status: terminalCodexSubagentStatus(operation, false),
387
+ });
388
+ }
389
+ markCodexSubagentEdgesFailedForCall(state, callId);
390
+ }
71
391
  export function headlessViewerCanSend(msg) {
72
392
  switch (msg.type) {
73
393
  case "hello":
@@ -107,6 +427,9 @@ function getPendingRequestId(request) {
107
427
  function toPendingRequestState(params) {
108
428
  return {
109
429
  call_id: params.call_id,
430
+ ...(params.tool_execution_id
431
+ ? { tool_execution_id: params.tool_execution_id }
432
+ : {}),
110
433
  ...(params.request_id !== params.call_id
111
434
  ? { request_id: params.request_id }
112
435
  : {}),
@@ -117,6 +440,9 @@ function toPendingRequestState(params) {
117
440
  ? { action_description: params.action_description }
118
441
  : {}),
119
442
  args: params.args,
443
+ ...(params.started_at_ms !== undefined
444
+ ? { started_at_ms: params.started_at_ms }
445
+ : {}),
120
446
  };
121
447
  }
122
448
  const MAX_HEADLESS_ATTACHMENT_BYTES = Number.parseInt(process.env.MAESTRO_HEADLESS_MAX_ATTACHMENT_BYTES || "", 10) || 10 * 1024 * 1024;
@@ -320,6 +646,9 @@ export class HeadlessProtocolTranslator {
320
646
  {
321
647
  type: "tool_call",
322
648
  call_id: event.toolCallId,
649
+ ...(event.toolExecutionId
650
+ ? { tool_execution_id: event.toolExecutionId }
651
+ : {}),
323
652
  tool: event.toolName,
324
653
  args: event.args,
325
654
  requires_approval: false,
@@ -342,13 +671,18 @@ export class HeadlessProtocolTranslator {
342
671
  },
343
672
  ];
344
673
  }
345
- case "tool_execution_end":
674
+ case "tool_execution_end": {
346
675
  this.noteToolExecution(event.toolName, undefined, event.summaryLabel, !event.isError);
676
+ const details = codexSubagentToolEndDetails(event.toolName, event.result.details);
347
677
  return [
348
678
  {
349
679
  type: "tool_end",
350
680
  call_id: event.toolCallId,
681
+ ...(event.toolExecutionId
682
+ ? { tool_execution_id: event.toolExecutionId }
683
+ : {}),
351
684
  success: !event.isError,
685
+ ...(details ? { tool: event.toolName, details } : {}),
352
686
  ...(event.errorCode ? { error_code: event.errorCode } : {}),
353
687
  ...(event.approvalRequestId
354
688
  ? { approval_request_id: event.approvalRequestId }
@@ -358,6 +692,7 @@ export class HeadlessProtocolTranslator {
358
692
  : {}),
359
693
  },
360
694
  ];
695
+ }
361
696
  case "tool_batch_summary": {
362
697
  const message = event.summary.trim();
363
698
  if (!message) {
@@ -375,6 +710,9 @@ export class HeadlessProtocolTranslator {
375
710
  {
376
711
  type: "tool_call",
377
712
  call_id: event.request.id,
713
+ ...(event.request.platform?.toolExecutionId
714
+ ? { tool_execution_id: event.request.platform.toolExecutionId }
715
+ : {}),
378
716
  tool: event.request.toolName,
379
717
  args: event.request.args,
380
718
  requires_approval: true,
@@ -384,6 +722,9 @@ export class HeadlessProtocolTranslator {
384
722
  request_id: event.request.id,
385
723
  request_type: "approval",
386
724
  call_id: event.request.id,
725
+ ...(event.request.platform?.toolExecutionId
726
+ ? { tool_execution_id: event.request.platform.toolExecutionId }
727
+ : {}),
387
728
  tool: event.request.toolName,
388
729
  ...(event.request.displayName
389
730
  ? { display_name: event.request.displayName }
@@ -396,6 +737,9 @@ export class HeadlessProtocolTranslator {
396
737
  : {}),
397
738
  args: event.request.args,
398
739
  reason: event.request.reason,
740
+ ...(event.request.startedAtMs !== undefined
741
+ ? { started_at_ms: event.request.startedAtMs }
742
+ : {}),
399
743
  },
400
744
  ];
401
745
  case "error":
@@ -456,6 +800,12 @@ export class HeadlessProtocolTranslator {
456
800
  resolution: event.decision.approved ? "approved" : "denied",
457
801
  reason: event.decision.reason,
458
802
  resolved_by: event.decision.resolvedBy,
803
+ ...(event.request.startedAtMs !== undefined
804
+ ? { started_at_ms: event.request.startedAtMs }
805
+ : {}),
806
+ ...(event.decision.resolvedAtMs !== undefined
807
+ ? { resolved_at_ms: event.decision.resolvedAtMs }
808
+ : {}),
459
809
  },
460
810
  ];
461
811
  default:
@@ -464,11 +814,13 @@ export class HeadlessProtocolTranslator {
464
814
  }
465
815
  buildReadyMessage(agent, sessionManager) {
466
816
  const model = agent.state.model;
817
+ const executorType = model.provider === "scripted-replay" ? "replay" : "live";
467
818
  return {
468
819
  type: "ready",
469
820
  protocol_version: HEADLESS_PROTOCOL_VERSION,
470
821
  model: model.id,
471
822
  provider: model.provider,
823
+ executor_type: executorType,
472
824
  session_id: sessionManager.getSessionId() ?? null,
473
825
  };
474
826
  }
@@ -491,6 +843,7 @@ export class HeadlessProtocolTranslator {
491
843
  client_protocol_version: metadata.client_protocol_version,
492
844
  client_info: metadata.client_info,
493
845
  capabilities: metadata.capabilities,
846
+ server_capabilities: metadata.server_capabilities ?? HEADLESS_SERVER_CAPABILITIES,
494
847
  opt_out_notifications: metadata.opt_out_notifications,
495
848
  role: metadata.role,
496
849
  controller_connection_id: metadata.controller_connection_id,
@@ -648,6 +1001,9 @@ function applyOutgoingHeadlessMessageInner(state, msg) {
648
1001
  state.is_responding = true;
649
1002
  return;
650
1003
  case "tool_response":
1004
+ if (!msg.approved) {
1005
+ failCodexSubagentContinuityEdge(state, msg.call_id);
1006
+ }
651
1007
  state.pending_approvals = state.pending_approvals.filter((approval) => approval.call_id !== msg.call_id);
652
1008
  if (!msg.approved) {
653
1009
  state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id);
@@ -668,9 +1024,14 @@ function applyOutgoingHeadlessMessageInner(state, msg) {
668
1024
  return;
669
1025
  case "server_request_response":
670
1026
  if (msg.request_type === "approval") {
1027
+ const pendingApproval = state.pending_approvals.find((approval) => getPendingRequestId(approval) === msg.request_id);
1028
+ const callId = pendingApproval?.call_id ?? msg.request_id;
1029
+ if (!msg.approved) {
1030
+ failCodexSubagentContinuityEdge(state, callId);
1031
+ }
671
1032
  state.pending_approvals = state.pending_approvals.filter((approval) => getPendingRequestId(approval) !== msg.request_id);
672
1033
  if (!msg.approved) {
673
- state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.request_id);
1034
+ state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== callId && tool.call_id !== msg.request_id);
674
1035
  }
675
1036
  }
676
1037
  else if (msg.request_type === "client_tool") {
@@ -730,6 +1091,7 @@ function applyIncomingHeadlessMessageInner(state, msg) {
730
1091
  state.client_protocol_version = msg.client_protocol_version;
731
1092
  state.client_info = msg.client_info;
732
1093
  state.capabilities = msg.capabilities;
1094
+ state.server_capabilities = msg.server_capabilities;
733
1095
  state.opt_out_notifications = msg.opt_out_notifications;
734
1096
  state.connection_role = msg.role;
735
1097
  state.controller_connection_id = msg.controller_connection_id;
@@ -738,6 +1100,7 @@ function applyIncomingHeadlessMessageInner(state, msg) {
738
1100
  state.protocol_version = msg.protocol_version;
739
1101
  state.model = msg.model;
740
1102
  state.provider = msg.provider;
1103
+ state.executor_type = msg.executor_type ?? "live";
741
1104
  state.session_id = msg.session_id;
742
1105
  state.is_ready = true;
743
1106
  return;
@@ -785,10 +1148,18 @@ function applyIncomingHeadlessMessageInner(state, msg) {
785
1148
  state.is_responding = false;
786
1149
  return;
787
1150
  case "tool_call":
1151
+ upsertCodexSubagentContinuityEdges(state, {
1152
+ call_id: msg.call_id,
1153
+ tool_execution_id: msg.tool_execution_id,
1154
+ tool: msg.tool,
1155
+ args: msg.args,
1156
+ status: activeCodexSubagentStatus(codexSubagentOperation(msg.tool) ?? ""),
1157
+ });
788
1158
  state.tracked_tools = [
789
1159
  ...state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id),
790
1160
  {
791
1161
  call_id: msg.call_id,
1162
+ tool_execution_id: msg.tool_execution_id,
792
1163
  tool: msg.tool,
793
1164
  args: msg.args,
794
1165
  },
@@ -798,6 +1169,7 @@ function applyIncomingHeadlessMessageInner(state, msg) {
798
1169
  ...state.pending_approvals.filter((approval) => approval.call_id !== msg.call_id),
799
1170
  {
800
1171
  call_id: msg.call_id,
1172
+ tool_execution_id: msg.tool_execution_id,
801
1173
  tool: msg.tool,
802
1174
  args: msg.args,
803
1175
  },
@@ -832,7 +1204,25 @@ function applyIncomingHeadlessMessageInner(state, msg) {
832
1204
  ? { ...tool, output: `${tool.output}${msg.content}` }
833
1205
  : tool);
834
1206
  return;
835
- case "tool_end":
1207
+ case "tool_end": {
1208
+ const source = state.tracked_tools.find((tool) => tool.call_id === msg.call_id) ??
1209
+ state.pending_approvals.find((approval) => approval.call_id === msg.call_id) ??
1210
+ state.pending_client_tools.find((request) => request.call_id === msg.call_id) ??
1211
+ state.pending_mcp_elicitations.find((request) => request.call_id === msg.call_id) ??
1212
+ state.pending_user_inputs.find((request) => request.call_id === msg.call_id) ??
1213
+ state.pending_tool_retries.find((request) => request.call_id === msg.call_id);
1214
+ const active = state.active_tools.find((tool) => tool.call_id === msg.call_id);
1215
+ const tool = msg.tool ?? source?.tool ?? active?.tool;
1216
+ const operation = tool ? codexSubagentOperation(tool) : undefined;
1217
+ if (tool && operation) {
1218
+ upsertCodexSubagentContinuityEdges(state, {
1219
+ call_id: msg.call_id,
1220
+ tool_execution_id: msg.tool_execution_id ?? source?.tool_execution_id,
1221
+ tool,
1222
+ args: codexSubagentToolEndArgs(source?.args, msg.details),
1223
+ status: terminalCodexSubagentStatus(operation, msg.success),
1224
+ });
1225
+ }
836
1226
  state.active_tools = state.active_tools.filter((tool) => tool.call_id !== msg.call_id);
837
1227
  state.pending_approvals = state.pending_approvals.filter((approval) => approval.call_id !== msg.call_id);
838
1228
  state.pending_client_tools = state.pending_client_tools.filter((request) => request.call_id !== msg.call_id);
@@ -841,20 +1231,30 @@ function applyIncomingHeadlessMessageInner(state, msg) {
841
1231
  state.pending_tool_retries = state.pending_tool_retries.filter((request) => request.call_id !== msg.call_id);
842
1232
  state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id);
843
1233
  return;
1234
+ }
844
1235
  case "client_tool_request":
845
1236
  state.tracked_tools = [
846
1237
  ...state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id),
847
1238
  {
848
1239
  call_id: msg.call_id,
1240
+ tool_execution_id: msg.tool_execution_id,
849
1241
  tool: msg.tool,
850
1242
  args: msg.args,
851
1243
  },
852
1244
  ];
1245
+ upsertCodexSubagentContinuityEdges(state, {
1246
+ call_id: msg.call_id,
1247
+ tool_execution_id: msg.tool_execution_id,
1248
+ tool: msg.tool,
1249
+ args: msg.args,
1250
+ status: activeCodexSubagentStatus(codexSubagentOperation(msg.tool) ?? ""),
1251
+ });
853
1252
  if (msg.tool === "ask_user") {
854
1253
  state.pending_user_inputs = [
855
1254
  ...state.pending_user_inputs.filter((request) => request.call_id !== msg.call_id),
856
1255
  {
857
1256
  call_id: msg.call_id,
1257
+ tool_execution_id: msg.tool_execution_id,
858
1258
  tool: msg.tool,
859
1259
  args: msg.args,
860
1260
  },
@@ -865,35 +1265,50 @@ function applyIncomingHeadlessMessageInner(state, msg) {
865
1265
  ...state.pending_client_tools.filter((request) => request.call_id !== msg.call_id),
866
1266
  {
867
1267
  call_id: msg.call_id,
1268
+ tool_execution_id: msg.tool_execution_id,
868
1269
  tool: msg.tool,
869
1270
  args: msg.args,
870
1271
  },
871
1272
  ];
872
1273
  }
873
1274
  return;
874
- case "server_request":
875
- if (msg.request_type !== "tool_retry" ||
876
- !state.tracked_tools.some((tool) => tool.call_id === msg.call_id)) {
1275
+ case "server_request": {
1276
+ const trackedTool = state.tracked_tools.find((tool) => tool.call_id === msg.call_id);
1277
+ const toolExecutionId = msg.tool_execution_id ?? trackedTool?.tool_execution_id;
1278
+ const shouldTrackRequest = msg.request_type !== "tool_retry" ||
1279
+ !trackedTool ||
1280
+ trackedTool.tool_execution_id !== toolExecutionId;
1281
+ if (shouldTrackRequest) {
877
1282
  state.tracked_tools = [
878
1283
  ...state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id),
879
1284
  {
880
1285
  call_id: msg.call_id,
1286
+ tool_execution_id: toolExecutionId,
881
1287
  tool: msg.tool,
882
1288
  args: msg.args,
883
1289
  },
884
1290
  ];
885
1291
  }
1292
+ upsertCodexSubagentContinuityEdges(state, {
1293
+ call_id: msg.call_id,
1294
+ tool_execution_id: toolExecutionId,
1295
+ tool: msg.tool,
1296
+ args: msg.args,
1297
+ status: activeCodexSubagentStatus(codexSubagentOperation(msg.tool) ?? ""),
1298
+ });
886
1299
  if (msg.request_type === "approval") {
887
1300
  state.pending_approvals = [
888
1301
  ...state.pending_approvals.filter((approval) => approval.call_id !== msg.call_id),
889
1302
  toPendingRequestState({
890
1303
  call_id: msg.call_id,
1304
+ tool_execution_id: toolExecutionId,
891
1305
  request_id: msg.request_id,
892
1306
  tool: msg.tool,
893
1307
  display_name: msg.display_name,
894
1308
  summary_label: msg.summary_label,
895
1309
  action_description: msg.action_description,
896
1310
  args: msg.args,
1311
+ started_at_ms: msg.started_at_ms,
897
1312
  }),
898
1313
  ];
899
1314
  }
@@ -902,9 +1317,11 @@ function applyIncomingHeadlessMessageInner(state, msg) {
902
1317
  ...state.pending_client_tools.filter((request) => request.call_id !== msg.call_id),
903
1318
  toPendingRequestState({
904
1319
  call_id: msg.call_id,
1320
+ tool_execution_id: toolExecutionId,
905
1321
  request_id: msg.request_id,
906
1322
  tool: msg.tool,
907
1323
  args: msg.args,
1324
+ started_at_ms: msg.started_at_ms,
908
1325
  }),
909
1326
  ];
910
1327
  }
@@ -913,9 +1330,11 @@ function applyIncomingHeadlessMessageInner(state, msg) {
913
1330
  ...state.pending_mcp_elicitations.filter((request) => request.call_id !== msg.call_id),
914
1331
  toPendingRequestState({
915
1332
  call_id: msg.call_id,
1333
+ tool_execution_id: toolExecutionId,
916
1334
  request_id: msg.request_id,
917
1335
  tool: msg.tool,
918
1336
  args: msg.args,
1337
+ started_at_ms: msg.started_at_ms,
919
1338
  }),
920
1339
  ];
921
1340
  }
@@ -924,9 +1343,11 @@ function applyIncomingHeadlessMessageInner(state, msg) {
924
1343
  ...state.pending_user_inputs.filter((request) => request.call_id !== msg.call_id),
925
1344
  toPendingRequestState({
926
1345
  call_id: msg.call_id,
1346
+ tool_execution_id: toolExecutionId,
927
1347
  request_id: msg.request_id,
928
1348
  tool: msg.tool,
929
1349
  args: msg.args,
1350
+ started_at_ms: msg.started_at_ms,
930
1351
  }),
931
1352
  ];
932
1353
  }
@@ -935,23 +1356,28 @@ function applyIncomingHeadlessMessageInner(state, msg) {
935
1356
  ...state.pending_tool_retries.filter((request) => request.call_id !== msg.call_id),
936
1357
  toPendingRequestState({
937
1358
  call_id: msg.call_id,
1359
+ tool_execution_id: toolExecutionId,
938
1360
  request_id: msg.request_id,
939
1361
  tool: msg.tool,
940
1362
  args: msg.args,
1363
+ started_at_ms: msg.started_at_ms,
941
1364
  }),
942
1365
  ];
943
1366
  }
944
1367
  return;
1368
+ }
945
1369
  case "server_request_resolved":
946
1370
  if (msg.request_type === "approval") {
947
1371
  state.pending_approvals = state.pending_approvals.filter((approval) => getPendingRequestId(approval) !== msg.request_id);
948
1372
  if (msg.resolution !== "approved") {
1373
+ failCodexSubagentContinuityEdge(state, msg.call_id);
949
1374
  state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id);
950
1375
  }
951
1376
  }
952
1377
  else if (msg.request_type === "client_tool") {
953
1378
  state.pending_client_tools = state.pending_client_tools.filter((request) => getPendingRequestId(request) !== msg.request_id);
954
1379
  if (msg.resolution === "cancelled") {
1380
+ failCodexSubagentContinuityEdge(state, msg.call_id);
955
1381
  state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id);
956
1382
  }
957
1383
  }
@@ -961,6 +1387,7 @@ function applyIncomingHeadlessMessageInner(state, msg) {
961
1387
  else if (msg.request_type === "user_input") {
962
1388
  state.pending_user_inputs = state.pending_user_inputs.filter((request) => getPendingRequestId(request) !== msg.request_id);
963
1389
  if (msg.resolution !== "answered") {
1390
+ failCodexSubagentContinuityEdge(state, msg.call_id);
964
1391
  state.tracked_tools = state.tracked_tools.filter((tool) => tool.call_id !== msg.call_id);
965
1392
  }
966
1393
  }
@@ -1038,6 +1465,13 @@ function applyIncomingHeadlessMessageInner(state, msg) {
1038
1465
  }
1039
1466
  }
1040
1467
  export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1468
+ const resolvedAtMs = Date.now();
1469
+ const lifecycleTiming = (request) => ({
1470
+ ...(request.started_at_ms !== undefined
1471
+ ? { started_at_ms: request.started_at_ms }
1472
+ : {}),
1473
+ resolved_at_ms: resolvedAtMs,
1474
+ });
1041
1475
  return [
1042
1476
  ...state.pending_approvals.map((approval) => ({
1043
1477
  type: "server_request_resolved",
@@ -1047,6 +1481,7 @@ export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1047
1481
  resolution: "cancelled",
1048
1482
  reason,
1049
1483
  resolved_by: "runtime",
1484
+ ...lifecycleTiming(approval),
1050
1485
  })),
1051
1486
  ...state.pending_client_tools.map((request) => ({
1052
1487
  type: "server_request_resolved",
@@ -1056,6 +1491,7 @@ export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1056
1491
  resolution: "cancelled",
1057
1492
  reason,
1058
1493
  resolved_by: "runtime",
1494
+ ...lifecycleTiming(request),
1059
1495
  })),
1060
1496
  ...state.pending_mcp_elicitations.map((request) => ({
1061
1497
  type: "server_request_resolved",
@@ -1065,6 +1501,7 @@ export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1065
1501
  resolution: "cancelled",
1066
1502
  reason,
1067
1503
  resolved_by: "runtime",
1504
+ ...lifecycleTiming(request),
1068
1505
  })),
1069
1506
  ...state.pending_user_inputs.map((request) => ({
1070
1507
  type: "server_request_resolved",
@@ -1074,6 +1511,7 @@ export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1074
1511
  resolution: "cancelled",
1075
1512
  reason,
1076
1513
  resolved_by: "runtime",
1514
+ ...lifecycleTiming(request),
1077
1515
  })),
1078
1516
  ...state.pending_tool_retries.map((request) => ({
1079
1517
  type: "server_request_resolved",
@@ -1083,6 +1521,7 @@ export function buildHeadlessServerRequestCancellationMessages(state, reason) {
1083
1521
  resolution: "cancelled",
1084
1522
  reason,
1085
1523
  resolved_by: "runtime",
1524
+ ...lifecycleTiming(request),
1086
1525
  })),
1087
1526
  ];
1088
1527
  }