@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,5 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
2
  import type { HostedRunnerContext } from "../app-context.js";
3
+ import { type HOSTED_RUNNER_LEASE_PROTOCOL_VERSION } from "../hosted-runner-lease.js";
3
4
  export declare const HOSTED_RUNNER_IDENTITY_PATH = "/.well-known/evalops/remote-runner/identity";
4
5
  export declare const HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION = "evalops.remote-runner.identity.v1";
5
6
  export interface HostedRunnerIdentity {
@@ -8,6 +9,21 @@ export interface HostedRunnerIdentity {
8
9
  owner_instance_id: string;
9
10
  ready: boolean;
10
11
  draining: boolean;
12
+ agent_id?: string;
13
+ agent_run_id?: string;
14
+ a2a_message_id?: string;
15
+ a2a_task_id?: string;
16
+ agent_runtime_worker_queue?: string;
17
+ agent_runtime_correlation_path?: string;
18
+ runtime_lease?: {
19
+ protocol_version: typeof HOSTED_RUNNER_LEASE_PROTOCOL_VERSION;
20
+ state: string;
21
+ generation: number;
22
+ maestro_session_id?: string;
23
+ lease_token_present: boolean;
24
+ heartbeat_at: string;
25
+ updated_at: string;
26
+ };
11
27
  drain_status?: string;
12
28
  drain_manifest_path?: string;
13
29
  drained_at?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-runner-identity.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,eAAO,MAAM,2BAA2B,gDACM,CAAC;AAE/C,eAAO,MAAM,uCAAuC,sCAChB,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACpC,gBAAgB,EAAE,OAAO,uCAAuC,CAAC;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,yBAAyB,CAC9C,YAAY,CAAC,EAAE,mBAAmB,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwBtC;AAED,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,CAAC,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"hosted-runner-identity.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACN,KAAK,oCAAoC,EAEzC,MAAM,2BAA2B,CAAC;AAInC,eAAO,MAAM,2BAA2B,gDACM,CAAC;AAE/C,eAAO,MAAM,uCAAuC,sCAChB,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACpC,gBAAgB,EAAE,OAAO,uCAAuC,CAAC;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,aAAa,CAAC,EAAE;QACf,gBAAgB,EAAE,OAAO,oCAAoC,CAAC;QAC9D,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,yBAAyB,CAC9C,YAAY,CAAC,EAAE,mBAAmB,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAoEtC;AAED,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,CAAC,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -1,3 +1,4 @@
1
+ import { hostedRunnerLeaseSnapshot, } from "../hosted-runner-lease.js";
1
2
  import { sendJson } from "../server-utils.js";
2
3
  import { checkHostedRunnerReadiness } from "./health.js";
3
4
  export const HOSTED_RUNNER_IDENTITY_PATH = "/.well-known/evalops/remote-runner/identity";
@@ -8,12 +9,54 @@ export async function buildHostedRunnerIdentity(hostedRunner) {
8
9
  }
9
10
  const readiness = await checkHostedRunnerReadiness(hostedRunner);
10
11
  const draining = readiness.status === "draining";
12
+ const lease = hostedRunnerLeaseSnapshot(hostedRunner);
11
13
  return {
12
14
  protocol_version: HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION,
13
15
  runner_session_id: hostedRunner.runnerSessionId,
14
16
  owner_instance_id: hostedRunner.ownerInstanceId,
15
17
  ready: readiness.status === "ready",
16
18
  draining,
19
+ ...(hostedRunner.agentId ? { agent_id: hostedRunner.agentId } : {}),
20
+ ...(hostedRunner.agentRunId
21
+ ? { agent_run_id: hostedRunner.agentRunId }
22
+ : {}),
23
+ ...(hostedRunner.a2aMessageId
24
+ ? { a2a_message_id: hostedRunner.a2aMessageId }
25
+ : {}),
26
+ ...(hostedRunner.a2aTaskId ? { a2a_task_id: hostedRunner.a2aTaskId } : {}),
27
+ ...(hostedRunner.lastPlatformA2APush
28
+ ? {
29
+ last_platform_a2a_push: {
30
+ kind: hostedRunner.lastPlatformA2APush.kind,
31
+ task_id: hostedRunner.lastPlatformA2APush.taskId,
32
+ context_id: hostedRunner.lastPlatformA2APush.contextId,
33
+ state: hostedRunner.lastPlatformA2APush.state,
34
+ final: hostedRunner.lastPlatformA2APush.final,
35
+ received_at: hostedRunner.lastPlatformA2APush.receivedAt,
36
+ runtime_event_id: hostedRunner.lastPlatformA2APush.runtimeEventId,
37
+ runtime_event_type: hostedRunner.lastPlatformA2APush.runtimeEventType,
38
+ },
39
+ }
40
+ : {}),
41
+ ...(hostedRunner.agentRuntimeWorkerQueue
42
+ ? { agent_runtime_worker_queue: hostedRunner.agentRuntimeWorkerQueue }
43
+ : {}),
44
+ ...(hostedRunner.agentRuntimeCorrelationPath
45
+ ? {
46
+ agent_runtime_correlation_path: hostedRunner.agentRuntimeCorrelationPath,
47
+ }
48
+ : {}),
49
+ runtime_lease: {
50
+ protocol_version: lease.protocolVersion,
51
+ state: lease.state,
52
+ generation: lease.generation,
53
+ ...(lease.maestroSessionId
54
+ ? { maestro_session_id: lease.maestroSessionId }
55
+ : {}),
56
+ lease_token_present: Boolean(lease.leaseToken),
57
+ heartbeat_at: lease.heartbeatAt,
58
+ updated_at: lease.updatedAt,
59
+ },
17
60
  ...(hostedRunner.lastDrain?.status
18
61
  ? { drain_status: hostedRunner.lastDrain.status }
19
62
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-runner-identity.js","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-identity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,CAAC,MAAM,2BAA2B,GACvC,6CAA6C,CAAC;AAE/C,MAAM,CAAC,MAAM,uCAAuC,GACnD,mCAAmC,CAAC;AAarC,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,YAAkC;IAElC,IAAI,CAAC,YAAY,EAAE,eAAe,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC;IAEjD,OAAO;QACN,gBAAgB,EAAE,uCAAuC;QACzD,iBAAiB,EAAE,YAAY,CAAC,eAAe;QAC/C,iBAAiB,EAAE,YAAY,CAAC,eAAe;QAC/C,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,OAAO;QACnC,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM;YACjC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;YACjD,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY;YACvC,CAAC,CAAC,EAAE,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS;YACpC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;KACN,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,GAAoB,EACpB,GAAmB,EACnB,IAA4B,EAC5B,YAAkC;IAElC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,QAAQ,CACP,GAAG,EACH,GAAG,EACH;YACC,KAAK,EAAE,oCAAoC;SAC3C,EACD,IAAI,EACJ,GAAG,CACH,CAAC;QACF,OAAO;IACR,CAAC;IAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC","sourcesContent":["import type { IncomingMessage, ServerResponse } from \"node:http\";\nimport type { HostedRunnerContext } from \"../app-context.js\";\nimport { sendJson } from \"../server-utils.js\";\nimport { checkHostedRunnerReadiness } from \"./health.js\";\n\nexport const HOSTED_RUNNER_IDENTITY_PATH =\n\t\"/.well-known/evalops/remote-runner/identity\";\n\nexport const HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION =\n\t\"evalops.remote-runner.identity.v1\";\n\nexport interface HostedRunnerIdentity {\n\tprotocol_version: typeof HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION;\n\trunner_session_id: string;\n\towner_instance_id: string;\n\tready: boolean;\n\tdraining: boolean;\n\tdrain_status?: string;\n\tdrain_manifest_path?: string;\n\tdrained_at?: string;\n}\n\nexport async function buildHostedRunnerIdentity(\n\thostedRunner?: HostedRunnerContext,\n): Promise<HostedRunnerIdentity | null> {\n\tif (!hostedRunner?.runnerSessionId || !hostedRunner.ownerInstanceId) {\n\t\treturn null;\n\t}\n\n\tconst readiness = await checkHostedRunnerReadiness(hostedRunner);\n\tconst draining = readiness.status === \"draining\";\n\n\treturn {\n\t\tprotocol_version: HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION,\n\t\trunner_session_id: hostedRunner.runnerSessionId,\n\t\towner_instance_id: hostedRunner.ownerInstanceId,\n\t\tready: readiness.status === \"ready\",\n\t\tdraining,\n\t\t...(hostedRunner.lastDrain?.status\n\t\t\t? { drain_status: hostedRunner.lastDrain.status }\n\t\t\t: {}),\n\t\t...(hostedRunner.lastDrain?.manifestPath\n\t\t\t? { drain_manifest_path: hostedRunner.lastDrain.manifestPath }\n\t\t\t: {}),\n\t\t...(hostedRunner.lastDrain?.drainedAt\n\t\t\t? { drained_at: hostedRunner.lastDrain.drainedAt }\n\t\t\t: {}),\n\t};\n}\n\nexport async function handleHostedRunnerIdentity(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcors: Record<string, string>,\n\thostedRunner?: HostedRunnerContext,\n): Promise<void> {\n\tres.setHeader(\"Cache-Control\", \"no-store\");\n\tconst identity = await buildHostedRunnerIdentity(hostedRunner);\n\tif (!identity) {\n\t\tsendJson(\n\t\t\tres,\n\t\t\t404,\n\t\t\t{\n\t\t\t\terror: \"hosted runner identity unavailable\",\n\t\t\t},\n\t\t\tcors,\n\t\t\treq,\n\t\t);\n\t\treturn;\n\t}\n\n\tsendJson(res, 200, identity, cors, req);\n}\n"]}
1
+ {"version":3,"file":"hosted-runner-identity.js","sourceRoot":"","sources":["../../../src/server/handlers/hosted-runner-identity.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage, ServerResponse } from \"node:http\";\nimport type { HostedRunnerContext } from \"../app-context.js\";\nimport {\n\ttype HOSTED_RUNNER_LEASE_PROTOCOL_VERSION,\n\thostedRunnerLeaseSnapshot,\n} from \"../hosted-runner-lease.js\";\nimport { sendJson } from \"../server-utils.js\";\nimport { checkHostedRunnerReadiness } from \"./health.js\";\n\nexport const HOSTED_RUNNER_IDENTITY_PATH =\n\t\"/.well-known/evalops/remote-runner/identity\";\n\nexport const HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION =\n\t\"evalops.remote-runner.identity.v1\";\n\nexport interface HostedRunnerIdentity {\n\tprotocol_version: typeof HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION;\n\trunner_session_id: string;\n\towner_instance_id: string;\n\tready: boolean;\n\tdraining: boolean;\n\tagent_id?: string;\n\tagent_run_id?: string;\n\ta2a_message_id?: string;\n\ta2a_task_id?: string;\n\tagent_runtime_worker_queue?: string;\n\tagent_runtime_correlation_path?: string;\n\truntime_lease?: {\n\t\tprotocol_version: typeof HOSTED_RUNNER_LEASE_PROTOCOL_VERSION;\n\t\tstate: string;\n\t\tgeneration: number;\n\t\tmaestro_session_id?: string;\n\t\tlease_token_present: boolean;\n\t\theartbeat_at: string;\n\t\tupdated_at: string;\n\t};\n\tdrain_status?: string;\n\tdrain_manifest_path?: string;\n\tdrained_at?: string;\n}\n\nexport async function buildHostedRunnerIdentity(\n\thostedRunner?: HostedRunnerContext,\n): Promise<HostedRunnerIdentity | null> {\n\tif (!hostedRunner?.runnerSessionId || !hostedRunner.ownerInstanceId) {\n\t\treturn null;\n\t}\n\n\tconst readiness = await checkHostedRunnerReadiness(hostedRunner);\n\tconst draining = readiness.status === \"draining\";\n\tconst lease = hostedRunnerLeaseSnapshot(hostedRunner);\n\n\treturn {\n\t\tprotocol_version: HOSTED_RUNNER_IDENTITY_PROTOCOL_VERSION,\n\t\trunner_session_id: hostedRunner.runnerSessionId,\n\t\towner_instance_id: hostedRunner.ownerInstanceId,\n\t\tready: readiness.status === \"ready\",\n\t\tdraining,\n\t\t...(hostedRunner.agentId ? { agent_id: hostedRunner.agentId } : {}),\n\t\t...(hostedRunner.agentRunId\n\t\t\t? { agent_run_id: hostedRunner.agentRunId }\n\t\t\t: {}),\n\t\t...(hostedRunner.a2aMessageId\n\t\t\t? { a2a_message_id: hostedRunner.a2aMessageId }\n\t\t\t: {}),\n\t\t...(hostedRunner.a2aTaskId ? { a2a_task_id: hostedRunner.a2aTaskId } : {}),\n\t\t...(hostedRunner.lastPlatformA2APush\n\t\t\t? {\n\t\t\t\t\tlast_platform_a2a_push: {\n\t\t\t\t\t\tkind: hostedRunner.lastPlatformA2APush.kind,\n\t\t\t\t\t\ttask_id: hostedRunner.lastPlatformA2APush.taskId,\n\t\t\t\t\t\tcontext_id: hostedRunner.lastPlatformA2APush.contextId,\n\t\t\t\t\t\tstate: hostedRunner.lastPlatformA2APush.state,\n\t\t\t\t\t\tfinal: hostedRunner.lastPlatformA2APush.final,\n\t\t\t\t\t\treceived_at: hostedRunner.lastPlatformA2APush.receivedAt,\n\t\t\t\t\t\truntime_event_id: hostedRunner.lastPlatformA2APush.runtimeEventId,\n\t\t\t\t\t\truntime_event_type:\n\t\t\t\t\t\t\thostedRunner.lastPlatformA2APush.runtimeEventType,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(hostedRunner.agentRuntimeWorkerQueue\n\t\t\t? { agent_runtime_worker_queue: hostedRunner.agentRuntimeWorkerQueue }\n\t\t\t: {}),\n\t\t...(hostedRunner.agentRuntimeCorrelationPath\n\t\t\t? {\n\t\t\t\t\tagent_runtime_correlation_path:\n\t\t\t\t\t\thostedRunner.agentRuntimeCorrelationPath,\n\t\t\t\t}\n\t\t\t: {}),\n\t\truntime_lease: {\n\t\t\tprotocol_version: lease.protocolVersion,\n\t\t\tstate: lease.state,\n\t\t\tgeneration: lease.generation,\n\t\t\t...(lease.maestroSessionId\n\t\t\t\t? { maestro_session_id: lease.maestroSessionId }\n\t\t\t\t: {}),\n\t\t\tlease_token_present: Boolean(lease.leaseToken),\n\t\t\theartbeat_at: lease.heartbeatAt,\n\t\t\tupdated_at: lease.updatedAt,\n\t\t},\n\t\t...(hostedRunner.lastDrain?.status\n\t\t\t? { drain_status: hostedRunner.lastDrain.status }\n\t\t\t: {}),\n\t\t...(hostedRunner.lastDrain?.manifestPath\n\t\t\t? { drain_manifest_path: hostedRunner.lastDrain.manifestPath }\n\t\t\t: {}),\n\t\t...(hostedRunner.lastDrain?.drainedAt\n\t\t\t? { drained_at: hostedRunner.lastDrain.drainedAt }\n\t\t\t: {}),\n\t};\n}\n\nexport async function handleHostedRunnerIdentity(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcors: Record<string, string>,\n\thostedRunner?: HostedRunnerContext,\n): Promise<void> {\n\tres.setHeader(\"Cache-Control\", \"no-store\");\n\tconst identity = await buildHostedRunnerIdentity(hostedRunner);\n\tif (!identity) {\n\t\tsendJson(\n\t\t\tres,\n\t\t\t404,\n\t\t\t{\n\t\t\t\terror: \"hosted runner identity unavailable\",\n\t\t\t},\n\t\t\tcors,\n\t\t\treq,\n\t\t);\n\t\treturn;\n\t}\n\n\tsendJson(res, 200, identity, cors, req);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiBjE,wBAAsB,UAAU,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,iBA8FnC"}
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiBjE,wBAAsB,UAAU,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,iBAiGnC"}
@@ -17,7 +17,9 @@ export async function handleMode(req, res, corsHeaders) {
17
17
  }, corsHeaders);
18
18
  }
19
19
  else if (action === "list") {
20
- const modes = getAllModes();
20
+ const includeHidden = url.searchParams.get("includeHidden") === "true" ||
21
+ url.searchParams.get("all") === "true";
22
+ const modes = getAllModes({ includeHidden });
21
23
  sendJson(res, 200, { modes }, corsHeaders);
22
24
  }
23
25
  else if (action === "suggest") {
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../src/server/handlers/mode.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n\ttype AgentMode,\n\tgetAllModes,\n\tgetCurrentMode,\n\tgetModeConfig,\n\tgetModelForMode,\n\tparseMode,\n\tsetCurrentMode,\n\tsuggestMode,\n} from \"../../agent/modes.js\";\nimport {\n\treadJsonBody,\n\trespondWithApiError,\n\tsendJson,\n} from \"../server-utils.js\";\n\nexport async function handleMode(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcorsHeaders: Record<string, string>,\n) {\n\tif (req.method === \"GET\") {\n\t\tconst url = new URL(\n\t\t\treq.url || \"/api/mode\",\n\t\t\t`http://${req.headers.host || \"localhost\"}`,\n\t\t);\n\t\tconst action = url.searchParams.get(\"action\") || \"current\";\n\t\tconst task = url.searchParams.get(\"task\");\n\n\t\ttry {\n\t\t\tif (action === \"current\") {\n\t\t\t\tconst mode = getCurrentMode();\n\t\t\t\tconst config = getModeConfig(mode);\n\t\t\t\tconst model = getModelForMode(mode);\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t200,\n\t\t\t\t\t{\n\t\t\t\t\t\tmode,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t},\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t} else if (action === \"list\") {\n\t\t\t\tconst modes = getAllModes();\n\t\t\t\tsendJson(res, 200, { modes }, corsHeaders);\n\t\t\t} else if (action === \"suggest\") {\n\t\t\t\tconst suggested = suggestMode(task || \"\");\n\t\t\t\tconst config = getModeConfig(suggested);\n\t\t\t\tconst model = getModelForMode(suggested);\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t200,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuggested,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t},\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t400,\n\t\t\t\t\t{ error: \"Invalid action. Use current, list, or suggest.\" },\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\trespondWithApiError(res, error, 500, corsHeaders, req);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (req.method === \"POST\") {\n\t\ttry {\n\t\t\tconst data = await readJsonBody<{ mode: string }>(req);\n\t\t\tconst { mode } = data;\n\n\t\t\tif (!mode) {\n\t\t\t\tsendJson(res, 400, { error: \"Mode is required\" }, corsHeaders);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst parsedMode = parseMode(mode);\n\t\t\tif (!parsedMode) {\n\t\t\t\tsendJson(res, 400, { error: `Unknown mode: ${mode}` }, corsHeaders);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetCurrentMode(parsedMode);\n\t\t\tconst config = getModeConfig(parsedMode);\n\t\t\tconst model = getModelForMode(parsedMode);\n\n\t\t\tsendJson(\n\t\t\t\tres,\n\t\t\t\t200,\n\t\t\t\t{\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tmode: parsedMode,\n\t\t\t\t\tconfig,\n\t\t\t\t\tmodel,\n\t\t\t\t},\n\t\t\t\tcorsHeaders,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\trespondWithApiError(res, error, 500, corsHeaders, req);\n\t\t}\n\t\treturn;\n\t}\n\n\tsendJson(res, 405, { error: \"Method not allowed\" }, corsHeaders);\n}\n"]}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../src/server/handlers/mode.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n\ttype AgentMode,\n\tgetAllModes,\n\tgetCurrentMode,\n\tgetModeConfig,\n\tgetModelForMode,\n\tparseMode,\n\tsetCurrentMode,\n\tsuggestMode,\n} from \"../../agent/modes.js\";\nimport {\n\treadJsonBody,\n\trespondWithApiError,\n\tsendJson,\n} from \"../server-utils.js\";\n\nexport async function handleMode(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcorsHeaders: Record<string, string>,\n) {\n\tif (req.method === \"GET\") {\n\t\tconst url = new URL(\n\t\t\treq.url || \"/api/mode\",\n\t\t\t`http://${req.headers.host || \"localhost\"}`,\n\t\t);\n\t\tconst action = url.searchParams.get(\"action\") || \"current\";\n\t\tconst task = url.searchParams.get(\"task\");\n\n\t\ttry {\n\t\t\tif (action === \"current\") {\n\t\t\t\tconst mode = getCurrentMode();\n\t\t\t\tconst config = getModeConfig(mode);\n\t\t\t\tconst model = getModelForMode(mode);\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t200,\n\t\t\t\t\t{\n\t\t\t\t\t\tmode,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t},\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t} else if (action === \"list\") {\n\t\t\t\tconst includeHidden =\n\t\t\t\t\turl.searchParams.get(\"includeHidden\") === \"true\" ||\n\t\t\t\t\turl.searchParams.get(\"all\") === \"true\";\n\t\t\t\tconst modes = getAllModes({ includeHidden });\n\t\t\t\tsendJson(res, 200, { modes }, corsHeaders);\n\t\t\t} else if (action === \"suggest\") {\n\t\t\t\tconst suggested = suggestMode(task || \"\");\n\t\t\t\tconst config = getModeConfig(suggested);\n\t\t\t\tconst model = getModelForMode(suggested);\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t200,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuggested,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t},\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsendJson(\n\t\t\t\t\tres,\n\t\t\t\t\t400,\n\t\t\t\t\t{ error: \"Invalid action. Use current, list, or suggest.\" },\n\t\t\t\t\tcorsHeaders,\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\trespondWithApiError(res, error, 500, corsHeaders, req);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (req.method === \"POST\") {\n\t\ttry {\n\t\t\tconst data = await readJsonBody<{ mode: string }>(req);\n\t\t\tconst { mode } = data;\n\n\t\t\tif (!mode) {\n\t\t\t\tsendJson(res, 400, { error: \"Mode is required\" }, corsHeaders);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst parsedMode = parseMode(mode);\n\t\t\tif (!parsedMode) {\n\t\t\t\tsendJson(res, 400, { error: `Unknown mode: ${mode}` }, corsHeaders);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetCurrentMode(parsedMode);\n\t\t\tconst config = getModeConfig(parsedMode);\n\t\t\tconst model = getModelForMode(parsedMode);\n\n\t\t\tsendJson(\n\t\t\t\tres,\n\t\t\t\t200,\n\t\t\t\t{\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tmode: parsedMode,\n\t\t\t\t\tconfig,\n\t\t\t\t\tmodel,\n\t\t\t\t},\n\t\t\t\tcorsHeaders,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\trespondWithApiError(res, error, 500, corsHeaders, req);\n\t\t}\n\t\treturn;\n\t}\n\n\tsendJson(res, 405, { error: \"Method not allowed\" }, corsHeaders);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pending-requests.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/pending-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AASjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,KAAK,yBAAyB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAsHF,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,yBAAyB,iBAmFjC"}
1
+ {"version":3,"file":"pending-requests.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/pending-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAWjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS1D,KAAK,yBAAyB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAogBF,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,yBAAyB,iBAiIjC"}
@@ -1,7 +1,102 @@
1
1
  import { ComposerPendingRequestResumeRequestSchema, } from "@evalops/contracts";
2
+ import { resumeAgentRuntimeRun } from "../../platform/agent-runtime-client.js";
3
+ import { isAbortError } from "../../utils/abort-error.js";
4
+ import { getAuthSubject } from "../authz.js";
2
5
  import { serverRequestManager, } from "../server-request-manager.js";
3
6
  import { ApiError, respondWithApiError, sendJson } from "../server-utils.js";
4
7
  import { parseAndValidateJson } from "../validation.js";
8
+ const RESOLVED_RESPONSE_CACHE_TTL_MS = 60_000;
9
+ const PLATFORM_RETRY_CACHE_TTL_MS = 30 * 60_000;
10
+ const resolvedResponseCache = new Map();
11
+ const inFlightResumes = new Map();
12
+ class PendingRequestResolvedPlatformError extends ApiError {
13
+ constructor(message, response, platformRetry) {
14
+ super(502, message);
15
+ this.response = response;
16
+ this.platformRetry = platformRetry;
17
+ }
18
+ }
19
+ function safeIdPart(value) {
20
+ return value.replace(/[^A-Za-z0-9_.:-]+/g, "_").slice(0, 96) || "unknown";
21
+ }
22
+ function nonEmptyString(value) {
23
+ return typeof value === "string" && value.trim().length > 0
24
+ ? value.trim()
25
+ : undefined;
26
+ }
27
+ function pruneResolvedResponseCache(now = Date.now()) {
28
+ for (const [requestId, cached] of resolvedResponseCache) {
29
+ if (cached.expiresAt <= now) {
30
+ resolvedResponseCache.delete(requestId);
31
+ }
32
+ }
33
+ }
34
+ function rememberResolvedResponse(requestId, input, response, subject, platformRetry, now = Date.now()) {
35
+ pruneResolvedResponseCache(now);
36
+ resolvedResponseCache.set(requestId, {
37
+ expiresAt: now +
38
+ (platformRetry
39
+ ? PLATFORM_RETRY_CACHE_TTL_MS
40
+ : RESOLVED_RESPONSE_CACHE_TTL_MS),
41
+ inputFingerprint: resumeInputFingerprint(input, response.request),
42
+ platformRetry,
43
+ response,
44
+ subject,
45
+ });
46
+ }
47
+ function getCachedResolvedEntry(requestId, input, subject, now = Date.now()) {
48
+ pruneResolvedResponseCache(now);
49
+ const cached = resolvedResponseCache.get(requestId);
50
+ if (!cached) {
51
+ return undefined;
52
+ }
53
+ if (cached.subject !== subject) {
54
+ return undefined;
55
+ }
56
+ if (input.kind && input.kind !== cached.response.request.kind) {
57
+ return undefined;
58
+ }
59
+ if (!cachedResponseSessionMatchesInput(cached.response, input)) {
60
+ return undefined;
61
+ }
62
+ if (cached.inputFingerprint !==
63
+ resumeInputFingerprint(input, cached.response.request)) {
64
+ return undefined;
65
+ }
66
+ return cached;
67
+ }
68
+ function cachedResponseSessionMatchesInput(response, input) {
69
+ if (!input.sessionId) {
70
+ return true;
71
+ }
72
+ return response.request.sessionId === input.sessionId;
73
+ }
74
+ function resumeInputFingerprint(input, request) {
75
+ return JSON.stringify({
76
+ kind: input.kind ?? request?.kind,
77
+ sessionId: input.sessionId ?? request?.sessionId,
78
+ decision: input.decision,
79
+ action: input.action,
80
+ content: input.content,
81
+ isError: input.isError === true,
82
+ reason: input.reason,
83
+ });
84
+ }
85
+ function getMatchingInFlightResume(requestId, input, subject) {
86
+ const inFlight = inFlightResumes.get(requestId);
87
+ if (!inFlight) {
88
+ return undefined;
89
+ }
90
+ const inputFingerprint = resumeInputFingerprint(input, {
91
+ kind: inFlight.requestKind,
92
+ sessionId: inFlight.sessionId,
93
+ });
94
+ if (inFlight.subject === subject &&
95
+ inFlight.inputFingerprint === inputFingerprint) {
96
+ return inFlight.promise;
97
+ }
98
+ throw new ApiError(409, "Pending request resume already in progress");
99
+ }
5
100
  function decodeRequestId(params) {
6
101
  const raw = params.requestId?.trim();
7
102
  if (!raw) {
@@ -58,9 +153,9 @@ function platformOperationFor(request) {
58
153
  return undefined;
59
154
  }
60
155
  if (request.kind === "approval") {
61
- return request.platform.source === "tool_execution"
62
- ? "ResumeToolExecution"
63
- : "ResolveApproval";
156
+ return request.platform.source === "approvals_service"
157
+ ? "ResolveApproval"
158
+ : undefined;
64
159
  }
65
160
  if (request.kind === "client_tool" ||
66
161
  request.kind === "mcp_elicitation" ||
@@ -69,7 +164,8 @@ function platformOperationFor(request) {
69
164
  }
70
165
  return undefined;
71
166
  }
72
- function responseFor(request, resolution) {
167
+ function responseFor(request, resolution, platformOperation) {
168
+ const operation = platformOperation ?? platformOperationFor(request);
73
169
  return {
74
170
  success: true,
75
171
  request: {
@@ -77,72 +173,261 @@ function responseFor(request, resolution) {
77
173
  kind: request.kind,
78
174
  sessionId: request.sessionId,
79
175
  resolution,
80
- source: request.platform ? "platform" : "local",
176
+ source: Boolean(request.platform) || operation === "ResumeRun"
177
+ ? "platform"
178
+ : "local",
81
179
  platform: request.platform,
82
- platformOperation: platformOperationFor(request),
180
+ platformOperation: operation,
83
181
  },
84
182
  };
85
183
  }
184
+ function isAgentRuntimeWaitKind(kind) {
185
+ return (kind === "client_tool" ||
186
+ kind === "mcp_elicitation" ||
187
+ kind === "user_input");
188
+ }
189
+ function hostedSessionIdForRequest(request, context) {
190
+ return (nonEmptyString(request.sessionId) ??
191
+ nonEmptyString(context.hostedRunner?.activeMaestroSessionId) ??
192
+ nonEmptyString(context.hostedRunner?.configuredMaestroSessionId));
193
+ }
194
+ function hostedAgentRunIdForRequest(request, context) {
195
+ const hosted = context.hostedRunner;
196
+ const runId = nonEmptyString(hosted?.agentRunId);
197
+ if (!hosted?.enabled || !runId) {
198
+ return undefined;
199
+ }
200
+ const hostedSessionId = nonEmptyString(hosted.activeMaestroSessionId) ??
201
+ nonEmptyString(hosted.configuredMaestroSessionId);
202
+ if (hostedSessionId &&
203
+ request.sessionId &&
204
+ hostedSessionId !== request.sessionId) {
205
+ return undefined;
206
+ }
207
+ return runId;
208
+ }
209
+ function hostedWaitId(sessionId, requestId) {
210
+ return `maestro:${safeIdPart(sessionId)}:wait:${safeIdPart(requestId)}`;
211
+ }
212
+ function hostedResumeEventId(sessionId, requestId) {
213
+ return `maestro:${safeIdPart(sessionId)}:resume:${safeIdPart(requestId)}`;
214
+ }
215
+ function platformResumeError(message) {
216
+ return new ApiError(502, `${message}; local pending request was resolved`);
217
+ }
218
+ async function resumePlatformAgentRuntimeWait(request, resolution, content, isError, context) {
219
+ if (!isAgentRuntimeWaitKind(request.kind)) {
220
+ return undefined;
221
+ }
222
+ const runId = hostedAgentRunIdForRequest(request, context);
223
+ const sessionId = hostedSessionIdForRequest(request, context);
224
+ if (!runId || !sessionId) {
225
+ return undefined;
226
+ }
227
+ const resumeRun = context.platformPendingRequestResume?.resumeRun ?? resumeAgentRuntimeRun;
228
+ try {
229
+ await resumeRun({
230
+ runId,
231
+ waitId: hostedWaitId(sessionId, request.id),
232
+ resumeEventId: hostedResumeEventId(sessionId, request.id),
233
+ payload: {
234
+ maestro_session_id: sessionId,
235
+ request_id: request.id,
236
+ request_type: request.kind,
237
+ call_id: request.callId,
238
+ tool_name: request.toolName,
239
+ resolution,
240
+ resolved_by: "user",
241
+ is_error: isError,
242
+ content,
243
+ },
244
+ });
245
+ }
246
+ catch (error) {
247
+ if (isAbortError(error)) {
248
+ throw error;
249
+ }
250
+ throw platformResumeError("Platform AgentRuntime resume failed");
251
+ }
252
+ return "ResumeRun";
253
+ }
254
+ async function resolvePendingRequest(requestId, input, pendingRequest, context) {
255
+ assertRequestKind(pendingRequest.kind, input.kind);
256
+ assertSessionMatch(pendingRequest, input.sessionId);
257
+ let resolved = false;
258
+ let resolution;
259
+ let platformOperation;
260
+ switch (pendingRequest.kind) {
261
+ case "approval": {
262
+ const decision = requireApprovalDecision(input);
263
+ resolved = serverRequestManager.resolveApproval(requestId, {
264
+ approved: decision === "approved",
265
+ reason: input.reason,
266
+ resolvedBy: "user",
267
+ });
268
+ resolution = decision;
269
+ break;
270
+ }
271
+ case "tool_retry": {
272
+ const action = requireRetryAction(input);
273
+ resolved = serverRequestManager.resolveToolRetry(requestId, {
274
+ action,
275
+ reason: input.reason,
276
+ resolvedBy: "user",
277
+ });
278
+ resolution =
279
+ action === "retry"
280
+ ? "retried"
281
+ : action === "skip"
282
+ ? "skipped"
283
+ : "aborted";
284
+ break;
285
+ }
286
+ case "client_tool":
287
+ case "mcp_elicitation":
288
+ case "user_input": {
289
+ const content = requireClientToolContent(input);
290
+ const isError = input.isError === true;
291
+ resolution = resolutionForClientRequest(pendingRequest.kind, isError);
292
+ const claimed = serverRequestManager.claimClientTool(requestId);
293
+ if (!claimed) {
294
+ break;
295
+ }
296
+ resolved = claimed.resolve(content, isError);
297
+ if (!resolved) {
298
+ break;
299
+ }
300
+ try {
301
+ platformOperation = await resumePlatformAgentRuntimeWait(claimed.request, resolution, content, isError, context);
302
+ }
303
+ catch (error) {
304
+ const localResponse = responseFor(claimed.request, resolution);
305
+ if (isAbortError(error)) {
306
+ return localResponse;
307
+ }
308
+ const message = error instanceof Error
309
+ ? error.message
310
+ : "Platform AgentRuntime resume failed";
311
+ throw new PendingRequestResolvedPlatformError(message, localResponse, {
312
+ content,
313
+ isError,
314
+ request: claimed.request,
315
+ resolution,
316
+ });
317
+ }
318
+ break;
319
+ }
320
+ }
321
+ if (!resolved) {
322
+ throw new ApiError(404, "Pending request not found or already resolved");
323
+ }
324
+ return responseFor(pendingRequest, resolution, platformOperation);
325
+ }
326
+ async function replayCachedPlatformRetry(requestId, input, cached, subject, context) {
327
+ const retry = cached.platformRetry;
328
+ try {
329
+ const platformOperation = await resumePlatformAgentRuntimeWait(retry.request, retry.resolution, retry.content, retry.isError, context);
330
+ const response = responseFor(retry.request, retry.resolution, platformOperation);
331
+ rememberResolvedResponse(requestId, input, response, subject);
332
+ return response;
333
+ }
334
+ catch (error) {
335
+ if (isAbortError(error)) {
336
+ return cached.response;
337
+ }
338
+ rememberResolvedResponse(requestId, input, cached.response, subject, retry);
339
+ throw error;
340
+ }
341
+ }
86
342
  export async function handlePendingRequestResume(req, res, context, params) {
87
343
  const { corsHeaders } = context;
344
+ let requestId;
345
+ let input;
346
+ let subject;
88
347
  try {
89
348
  if (req.method !== "POST") {
90
349
  res.writeHead(405, corsHeaders);
91
350
  res.end();
92
351
  return;
93
352
  }
94
- const requestId = decodeRequestId(params);
95
- const input = await parseAndValidateJson(req, ComposerPendingRequestResumeRequestSchema);
96
- const pendingRequest = serverRequestManager.get(requestId);
353
+ requestId = decodeRequestId(params);
354
+ input = await parseAndValidateJson(req, ComposerPendingRequestResumeRequestSchema);
355
+ subject = getAuthSubject(req);
356
+ const currentRequestId = requestId;
357
+ const currentInput = input;
358
+ const currentSubject = subject;
359
+ const inFlight = getMatchingInFlightResume(currentRequestId, currentInput, currentSubject);
360
+ if (inFlight) {
361
+ sendJson(res, 200, await inFlight, corsHeaders, req);
362
+ return;
363
+ }
364
+ const pendingRequest = serverRequestManager.get(currentRequestId);
97
365
  if (!pendingRequest) {
366
+ const cached = getCachedResolvedEntry(currentRequestId, currentInput, currentSubject);
367
+ if (cached) {
368
+ if (cached.platformRetry) {
369
+ const retryPromise = replayCachedPlatformRetry(currentRequestId, currentInput, {
370
+ platformRetry: cached.platformRetry,
371
+ response: cached.response,
372
+ }, currentSubject, context);
373
+ inFlightResumes.set(currentRequestId, {
374
+ inputFingerprint: cached.inputFingerprint,
375
+ promise: retryPromise,
376
+ requestKind: cached.response.request.kind,
377
+ sessionId: cached.response.request.sessionId,
378
+ subject: currentSubject,
379
+ });
380
+ try {
381
+ const response = await retryPromise;
382
+ sendJson(res, 200, response, corsHeaders, req);
383
+ return;
384
+ }
385
+ catch (error) {
386
+ respondWithApiError(res, error, 400, corsHeaders, req);
387
+ return;
388
+ }
389
+ finally {
390
+ if (inFlightResumes.get(currentRequestId)?.promise === retryPromise) {
391
+ inFlightResumes.delete(currentRequestId);
392
+ }
393
+ }
394
+ }
395
+ sendJson(res, 200, cached.response, corsHeaders, req);
396
+ return;
397
+ }
98
398
  throw new ApiError(404, "Pending request not found or already resolved");
99
399
  }
100
- assertRequestKind(pendingRequest.kind, input.kind);
101
- assertSessionMatch(pendingRequest, input.sessionId);
102
- let resolved = false;
103
- let resolution;
104
- switch (pendingRequest.kind) {
105
- case "approval": {
106
- const decision = requireApprovalDecision(input);
107
- resolved = serverRequestManager.resolveApproval(requestId, {
108
- approved: decision === "approved",
109
- reason: input.reason,
110
- resolvedBy: "user",
111
- });
112
- resolution = decision;
113
- break;
114
- }
115
- case "tool_retry": {
116
- const action = requireRetryAction(input);
117
- resolved = serverRequestManager.resolveToolRetry(requestId, {
118
- action,
119
- reason: input.reason,
120
- resolvedBy: "user",
121
- });
122
- resolution =
123
- action === "retry"
124
- ? "retried"
125
- : action === "skip"
126
- ? "skipped"
127
- : "aborted";
128
- break;
129
- }
130
- case "client_tool":
131
- case "mcp_elicitation":
132
- case "user_input": {
133
- const content = requireClientToolContent(input);
134
- const isError = input.isError === true;
135
- resolved = serverRequestManager.resolveClientTool(requestId, content, isError);
136
- resolution = resolutionForClientRequest(pendingRequest.kind, isError);
137
- break;
138
- }
400
+ const inputFingerprint = resumeInputFingerprint(input, pendingRequest);
401
+ const resumeContext = context;
402
+ const resumePromise = resolvePendingRequest(currentRequestId, currentInput, pendingRequest, resumeContext).then((response) => {
403
+ rememberResolvedResponse(currentRequestId, currentInput, response, currentSubject);
404
+ return response;
405
+ });
406
+ inFlightResumes.set(currentRequestId, {
407
+ inputFingerprint,
408
+ promise: resumePromise,
409
+ requestKind: pendingRequest.kind,
410
+ sessionId: pendingRequest.sessionId,
411
+ subject: currentSubject,
412
+ });
413
+ let response;
414
+ try {
415
+ response = await resumePromise;
139
416
  }
140
- if (!resolved) {
141
- throw new ApiError(404, "Pending request not found or already resolved");
417
+ finally {
418
+ if (inFlightResumes.get(currentRequestId)?.promise === resumePromise) {
419
+ inFlightResumes.delete(currentRequestId);
420
+ }
142
421
  }
143
- sendJson(res, 200, responseFor(pendingRequest, resolution), corsHeaders, req);
422
+ sendJson(res, 200, response, corsHeaders, req);
144
423
  }
145
424
  catch (error) {
425
+ if (error instanceof PendingRequestResolvedPlatformError &&
426
+ requestId &&
427
+ input &&
428
+ subject) {
429
+ rememberResolvedResponse(requestId, input, error.response, subject, error.platformRetry);
430
+ }
146
431
  respondWithApiError(res, error, 400, corsHeaders, req);
147
432
  }
148
433
  }