@evalops/maestro 0.10.17 → 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 (930) 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/init.d.ts.map +1 -1
  143. package/dist/cli/commands/init.js +6 -0
  144. package/dist/cli/commands/init.js.map +1 -1
  145. package/dist/cli/commands/modes.d.ts +8 -0
  146. package/dist/cli/commands/modes.d.ts.map +1 -0
  147. package/dist/cli/commands/modes.js +151 -0
  148. package/dist/cli/commands/modes.js.map +1 -0
  149. package/dist/cli/commands/operating-plane.d.ts +14 -0
  150. package/dist/cli/commands/operating-plane.d.ts.map +1 -0
  151. package/dist/cli/commands/operating-plane.js +160 -0
  152. package/dist/cli/commands/operating-plane.js.map +1 -0
  153. package/dist/cli/commands/run.d.ts +87 -0
  154. package/dist/cli/commands/run.d.ts.map +1 -0
  155. package/dist/cli/commands/run.js +356 -0
  156. package/dist/cli/commands/run.js.map +1 -0
  157. package/dist/cli/commands/scenario.d.ts +7 -0
  158. package/dist/cli/commands/scenario.d.ts.map +1 -0
  159. package/dist/cli/commands/scenario.js +195 -0
  160. package/dist/cli/commands/scenario.js.map +1 -0
  161. package/dist/cli/commands/skill.d.ts +7 -0
  162. package/dist/cli/commands/skill.d.ts.map +1 -0
  163. package/dist/cli/commands/skill.js +286 -0
  164. package/dist/cli/commands/skill.js.map +1 -0
  165. package/dist/cli/headless-protocol.d.ts +55 -1
  166. package/dist/cli/headless-protocol.d.ts.map +1 -1
  167. package/dist/cli/headless-protocol.js +446 -7
  168. package/dist/cli/headless-protocol.js.map +1 -1
  169. package/dist/cli/headless-runtime-selection.d.ts +38 -0
  170. package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
  171. package/dist/cli/headless-runtime-selection.js +48 -0
  172. package/dist/cli/headless-runtime-selection.js.map +1 -0
  173. package/dist/cli/headless.d.ts +5 -1
  174. package/dist/cli/headless.d.ts.map +1 -1
  175. package/dist/cli/headless.js +11 -1
  176. package/dist/cli/headless.js.map +1 -1
  177. package/dist/cli/help.d.ts +3 -1
  178. package/dist/cli/help.d.ts.map +1 -1
  179. package/dist/cli/help.js +136 -30
  180. package/dist/cli/help.js.map +1 -1
  181. package/dist/cli/system-prompt.d.ts +22 -4
  182. package/dist/cli/system-prompt.d.ts.map +1 -1
  183. package/dist/cli/system-prompt.js +224 -127
  184. package/dist/cli/system-prompt.js.map +1 -1
  185. package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
  186. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
  187. package/dist/cli-tui/commands/a2a-handlers.js +160 -0
  188. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
  189. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  190. package/dist/cli-tui/commands/command-catalog.js +15 -0
  191. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  192. package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
  193. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
  194. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
  195. package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
  196. package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
  197. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
  198. package/dist/cli-tui/commands/mcp-handlers.js +6 -5
  199. package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
  200. package/dist/cli-tui/commands/types.d.ts +1 -0
  201. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  202. package/dist/cli-tui/commands/types.js.map +1 -1
  203. package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
  204. package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
  205. package/dist/cli-tui/commands/utility-handlers.js +45 -6
  206. package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
  207. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  208. package/dist/cli-tui/run/run-shell-command.js +14 -5
  209. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  210. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  211. package/dist/cli-tui/run/streaming-shell-command.js +14 -5
  212. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  213. package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
  214. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  215. package/dist/cli-tui/selectors/model-selector.js +6 -2
  216. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  217. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  218. package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
  219. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  220. package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
  221. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
  222. package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
  223. package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
  224. package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
  225. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  226. package/dist/cli-tui/utils/runtime-badges.js +7 -0
  227. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  228. package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
  229. package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
  230. package/dist/cli-tui/utils/text-formatting.js +5 -0
  231. package/dist/cli-tui/utils/text-formatting.js.map +1 -1
  232. package/dist/cli.js +49209 -26165
  233. package/dist/cli.js.map +1 -1
  234. package/dist/codex/app-server-client.d.ts +139 -0
  235. package/dist/codex/app-server-client.d.ts.map +1 -0
  236. package/dist/codex/app-server-client.js +352 -0
  237. package/dist/codex/app-server-client.js.map +1 -0
  238. package/dist/codex/compatibility.d.ts +48 -0
  239. package/dist/codex/compatibility.d.ts.map +1 -0
  240. package/dist/codex/compatibility.js +344 -0
  241. package/dist/codex/compatibility.js.map +1 -0
  242. package/dist/codex/subagent-dispatch-table.d.ts +66 -0
  243. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
  244. package/dist/codex/subagent-dispatch-table.js +127 -0
  245. package/dist/codex/subagent-dispatch-table.js.map +1 -0
  246. package/dist/codex/subagent-workgraph.d.ts +56 -0
  247. package/dist/codex/subagent-workgraph.d.ts.map +1 -0
  248. package/dist/codex/subagent-workgraph.js +89 -0
  249. package/dist/codex/subagent-workgraph.js.map +1 -0
  250. package/dist/config/constants.d.ts +3 -1
  251. package/dist/config/constants.d.ts.map +1 -1
  252. package/dist/config/constants.js +9 -0
  253. package/dist/config/constants.js.map +1 -1
  254. package/dist/config/feature-flags.d.ts +10 -1
  255. package/dist/config/feature-flags.d.ts.map +1 -1
  256. package/dist/config/feature-flags.js +17 -6
  257. package/dist/config/feature-flags.js.map +1 -1
  258. package/dist/config/index.d.ts +1 -1
  259. package/dist/config/index.d.ts.map +1 -1
  260. package/dist/config/index.js +1 -1
  261. package/dist/config/index.js.map +1 -1
  262. package/dist/config/toml-config.d.ts +32 -0
  263. package/dist/config/toml-config.d.ts.map +1 -1
  264. package/dist/config/toml-config.js +152 -43
  265. package/dist/config/toml-config.js.map +1 -1
  266. package/dist/connectors/service-client.d.ts.map +1 -1
  267. package/dist/connectors/service-client.js +4 -7
  268. package/dist/connectors/service-client.js.map +1 -1
  269. package/dist/context/manifest-types.d.ts +59 -0
  270. package/dist/context/manifest-types.d.ts.map +1 -0
  271. package/dist/context/manifest-types.js +2 -0
  272. package/dist/context/manifest-types.js.map +1 -0
  273. package/dist/context/manifest.d.ts +16 -0
  274. package/dist/context/manifest.d.ts.map +1 -0
  275. package/dist/context/manifest.js +503 -0
  276. package/dist/context/manifest.js.map +1 -0
  277. package/dist/db/schema.d.ts +10 -1
  278. package/dist/db/schema.d.ts.map +1 -1
  279. package/dist/db/schema.js.map +1 -1
  280. package/dist/evalops/agent-bootstrap.d.ts +1 -0
  281. package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
  282. package/dist/evalops/agent-bootstrap.js +41 -1
  283. package/dist/evalops/agent-bootstrap.js.map +1 -1
  284. package/dist/evalops/env-aliases.d.ts +13 -0
  285. package/dist/evalops/env-aliases.d.ts.map +1 -0
  286. package/dist/evalops/env-aliases.js +60 -0
  287. package/dist/evalops/env-aliases.js.map +1 -0
  288. package/dist/evalops/managed-context.d.ts.map +1 -1
  289. package/dist/evalops/managed-context.js +28 -62
  290. package/dist/evalops/managed-context.js.map +1 -1
  291. package/dist/guardian/config.d.ts.map +1 -1
  292. package/dist/guardian/config.js +1 -0
  293. package/dist/guardian/config.js.map +1 -1
  294. package/dist/guardian/runner.d.ts +2 -0
  295. package/dist/guardian/runner.d.ts.map +1 -1
  296. package/dist/guardian/runner.js +105 -2
  297. package/dist/guardian/runner.js.map +1 -1
  298. package/dist/guardian/types.d.ts +1 -0
  299. package/dist/guardian/types.d.ts.map +1 -1
  300. package/dist/guardian/types.js.map +1 -1
  301. package/dist/index.d.ts +6 -1
  302. package/dist/index.d.ts.map +1 -1
  303. package/dist/index.js +6 -1
  304. package/dist/index.js.map +1 -1
  305. package/dist/main.d.ts.map +1 -1
  306. package/dist/main.js +267 -55
  307. package/dist/main.js.map +1 -1
  308. package/dist/mcp/config.d.ts.map +1 -1
  309. package/dist/mcp/config.js +89 -7
  310. package/dist/mcp/config.js.map +1 -1
  311. package/dist/mcp/manager.d.ts +5 -1
  312. package/dist/mcp/manager.d.ts.map +1 -1
  313. package/dist/mcp/manager.js +159 -4
  314. package/dist/mcp/manager.js.map +1 -1
  315. package/dist/mcp/platform-plugin.d.ts.map +1 -1
  316. package/dist/mcp/platform-plugin.js +9 -26
  317. package/dist/mcp/platform-plugin.js.map +1 -1
  318. package/dist/mcp/schema.d.ts +15 -0
  319. package/dist/mcp/schema.d.ts.map +1 -1
  320. package/dist/mcp/schema.js +24 -0
  321. package/dist/mcp/schema.js.map +1 -1
  322. package/dist/mcp/tool-bridge.d.ts +39 -10
  323. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  324. package/dist/mcp/tool-bridge.js +101 -24
  325. package/dist/mcp/tool-bridge.js.map +1 -1
  326. package/dist/mcp/types.d.ts +27 -0
  327. package/dist/mcp/types.d.ts.map +1 -1
  328. package/dist/mcp/types.js.map +1 -1
  329. package/dist/mcp/workspace-trust.d.ts +10 -0
  330. package/dist/mcp/workspace-trust.d.ts.map +1 -0
  331. package/dist/mcp/workspace-trust.js +295 -0
  332. package/dist/mcp/workspace-trust.js.map +1 -0
  333. package/dist/memory/service-client.d.ts +1 -0
  334. package/dist/memory/service-client.d.ts.map +1 -1
  335. package/dist/memory/service-client.js +194 -9
  336. package/dist/memory/service-client.js.map +1 -1
  337. package/dist/models/builtin.d.ts.map +1 -1
  338. package/dist/models/builtin.js +66 -25
  339. package/dist/models/builtin.js.map +1 -1
  340. package/dist/models/config-loader.d.ts +10 -10
  341. package/dist/models/config-loader.d.ts.map +1 -1
  342. package/dist/models/config-loader.js +2 -0
  343. package/dist/models/config-loader.js.map +1 -1
  344. package/dist/models/registry.d.ts +1 -0
  345. package/dist/models/registry.d.ts.map +1 -1
  346. package/dist/models/registry.js +1 -0
  347. package/dist/models/registry.js.map +1 -1
  348. package/dist/oauth/device-identity.d.ts.map +1 -1
  349. package/dist/oauth/device-identity.js +1 -3
  350. package/dist/oauth/device-identity.js.map +1 -1
  351. package/dist/oauth/evalops.d.ts.map +1 -1
  352. package/dist/oauth/evalops.js +2 -5
  353. package/dist/oauth/evalops.js.map +1 -1
  354. package/dist/opentelemetry.d.ts.map +1 -1
  355. package/dist/opentelemetry.js +12 -12
  356. package/dist/opentelemetry.js.map +1 -1
  357. package/dist/package-version.d.ts +2 -0
  358. package/dist/package-version.d.ts.map +1 -0
  359. package/dist/package-version.js +11 -0
  360. package/dist/package-version.js.map +1 -0
  361. package/dist/packages/constants.d.ts +3 -0
  362. package/dist/packages/constants.d.ts.map +1 -0
  363. package/dist/packages/constants.js +3 -0
  364. package/dist/packages/constants.js.map +1 -0
  365. package/dist/packages/inspection.d.ts.map +1 -1
  366. package/dist/packages/inspection.js +2 -1
  367. package/dist/packages/inspection.js.map +1 -1
  368. package/dist/packages/search.d.ts.map +1 -1
  369. package/dist/packages/search.js +1 -1
  370. package/dist/packages/search.js.map +1 -1
  371. package/dist/platform/a2a-capability-market.d.ts +21 -0
  372. package/dist/platform/a2a-capability-market.d.ts.map +1 -0
  373. package/dist/platform/a2a-capability-market.js +176 -0
  374. package/dist/platform/a2a-capability-market.js.map +1 -0
  375. package/dist/platform/a2a-client.d.ts +217 -0
  376. package/dist/platform/a2a-client.d.ts.map +1 -0
  377. package/dist/platform/a2a-client.js +589 -0
  378. package/dist/platform/a2a-client.js.map +1 -0
  379. package/dist/platform/a2a-fleet.d.ts +41 -0
  380. package/dist/platform/a2a-fleet.d.ts.map +1 -0
  381. package/dist/platform/a2a-fleet.js +109 -0
  382. package/dist/platform/a2a-fleet.js.map +1 -0
  383. package/dist/platform/a2a-maestro-peer.d.ts +20 -0
  384. package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
  385. package/dist/platform/a2a-maestro-peer.js +176 -0
  386. package/dist/platform/a2a-maestro-peer.js.map +1 -0
  387. package/dist/platform/a2a-peer-pairing.d.ts +107 -0
  388. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
  389. package/dist/platform/a2a-peer-pairing.js +489 -0
  390. package/dist/platform/a2a-peer-pairing.js.map +1 -0
  391. package/dist/platform/a2a-peer-registry.d.ts +68 -0
  392. package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
  393. package/dist/platform/a2a-peer-registry.js +320 -0
  394. package/dist/platform/a2a-peer-registry.js.map +1 -0
  395. package/dist/platform/a2a-task-ledger.d.ts +86 -0
  396. package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
  397. package/dist/platform/a2a-task-ledger.js +546 -0
  398. package/dist/platform/a2a-task-ledger.js.map +1 -0
  399. package/dist/platform/a2a-work-graph.d.ts +43 -0
  400. package/dist/platform/a2a-work-graph.d.ts.map +1 -0
  401. package/dist/platform/a2a-work-graph.js +267 -0
  402. package/dist/platform/a2a-work-graph.js.map +1 -0
  403. package/dist/platform/agent-registry-client.d.ts +327 -0
  404. package/dist/platform/agent-registry-client.d.ts.map +1 -0
  405. package/dist/platform/agent-registry-client.js +803 -0
  406. package/dist/platform/agent-registry-client.js.map +1 -0
  407. package/dist/platform/agent-runtime-client.d.ts +135 -1
  408. package/dist/platform/agent-runtime-client.d.ts.map +1 -1
  409. package/dist/platform/agent-runtime-client.js +467 -10
  410. package/dist/platform/agent-runtime-client.js.map +1 -1
  411. package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
  412. package/dist/platform/cerebro-facts-client.js +4 -7
  413. package/dist/platform/cerebro-facts-client.js.map +1 -1
  414. package/dist/platform/client.d.ts +2 -0
  415. package/dist/platform/client.d.ts.map +1 -1
  416. package/dist/platform/client.js +7 -14
  417. package/dist/platform/client.js.map +1 -1
  418. package/dist/platform/core-services.d.ts +68 -0
  419. package/dist/platform/core-services.d.ts.map +1 -1
  420. package/dist/platform/core-services.js +68 -0
  421. package/dist/platform/core-services.js.map +1 -1
  422. package/dist/platform/fermata-eval-client.d.ts +195 -0
  423. package/dist/platform/fermata-eval-client.d.ts.map +1 -0
  424. package/dist/platform/fermata-eval-client.js +146 -0
  425. package/dist/platform/fermata-eval-client.js.map +1 -0
  426. package/dist/platform/fermata-scenario-suite.d.ts +99 -0
  427. package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
  428. package/dist/platform/fermata-scenario-suite.js +459 -0
  429. package/dist/platform/fermata-scenario-suite.js.map +1 -0
  430. package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
  431. package/dist/platform/maestro-timeline-client.js +5 -11
  432. package/dist/platform/maestro-timeline-client.js.map +1 -1
  433. package/dist/platform/operating-plane-client.d.ts +156 -0
  434. package/dist/platform/operating-plane-client.d.ts.map +1 -0
  435. package/dist/platform/operating-plane-client.js +131 -0
  436. package/dist/platform/operating-plane-client.js.map +1 -0
  437. package/dist/platform/operating-plane-summary.d.ts +47 -0
  438. package/dist/platform/operating-plane-summary.d.ts.map +1 -0
  439. package/dist/platform/operating-plane-summary.js +209 -0
  440. package/dist/platform/operating-plane-summary.js.map +1 -0
  441. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  442. package/dist/platform/tool-execution-client.js +4 -11
  443. package/dist/platform/tool-execution-client.js.map +1 -1
  444. package/dist/prompts/service-client.d.ts.map +1 -1
  445. package/dist/prompts/service-client.js +3 -5
  446. package/dist/prompts/service-client.js.map +1 -1
  447. package/dist/prompts/system-prompt.d.ts +3 -0
  448. package/dist/prompts/system-prompt.d.ts.map +1 -1
  449. package/dist/prompts/system-prompt.js +13 -3
  450. package/dist/prompts/system-prompt.js.map +1 -1
  451. package/dist/prompts/types.d.ts +2 -0
  452. package/dist/prompts/types.d.ts.map +1 -1
  453. package/dist/prompts/types.js.map +1 -1
  454. package/dist/providers/api-keys.d.ts +1 -1
  455. package/dist/providers/api-keys.d.ts.map +1 -1
  456. package/dist/providers/api-keys.js +2 -1
  457. package/dist/providers/api-keys.js.map +1 -1
  458. package/dist/providers/auth.d.ts.map +1 -1
  459. package/dist/providers/auth.js +48 -25
  460. package/dist/providers/auth.js.map +1 -1
  461. package/dist/remote-runner/attach-client.d.ts.map +1 -1
  462. package/dist/remote-runner/attach-client.js +1 -0
  463. package/dist/remote-runner/attach-client.js.map +1 -1
  464. package/dist/remote-runner/client.d.ts.map +1 -1
  465. package/dist/remote-runner/client.js +4 -7
  466. package/dist/remote-runner/client.js.map +1 -1
  467. package/dist/rpc/rpc-types.d.ts.map +1 -1
  468. package/dist/rpc/rpc-types.js +1 -0
  469. package/dist/rpc/rpc-types.js.map +1 -1
  470. package/dist/safety/action-firewall.d.ts.map +1 -1
  471. package/dist/safety/action-firewall.js +69 -6
  472. package/dist/safety/action-firewall.js.map +1 -1
  473. package/dist/safety/attack-patterns.d.ts.map +1 -1
  474. package/dist/safety/attack-patterns.js +31 -14
  475. package/dist/safety/attack-patterns.js.map +1 -1
  476. package/dist/safety/bash-parser.d.ts.map +1 -1
  477. package/dist/safety/bash-parser.js +4 -3
  478. package/dist/safety/bash-parser.js.map +1 -1
  479. package/dist/safety/execpolicy.d.ts +15 -3
  480. package/dist/safety/execpolicy.d.ts.map +1 -1
  481. package/dist/safety/execpolicy.js +248 -37
  482. package/dist/safety/execpolicy.js.map +1 -1
  483. package/dist/safety/governance-service-client.d.ts.map +1 -1
  484. package/dist/safety/governance-service-client.js +4 -7
  485. package/dist/safety/governance-service-client.js.map +1 -1
  486. package/dist/safety/guarded-files.d.ts +34 -0
  487. package/dist/safety/guarded-files.d.ts.map +1 -0
  488. package/dist/safety/guarded-files.js +372 -0
  489. package/dist/safety/guarded-files.js.map +1 -0
  490. package/dist/safety/loop-detector.d.ts.map +1 -1
  491. package/dist/safety/loop-detector.js +6 -1
  492. package/dist/safety/loop-detector.js.map +1 -1
  493. package/dist/safety/permission-profile.d.ts +47 -0
  494. package/dist/safety/permission-profile.d.ts.map +1 -0
  495. package/dist/safety/permission-profile.js +349 -0
  496. package/dist/safety/permission-profile.js.map +1 -0
  497. package/dist/safety/safety-middleware.d.ts +5 -1
  498. package/dist/safety/safety-middleware.d.ts.map +1 -1
  499. package/dist/safety/safety-middleware.js +3 -2
  500. package/dist/safety/safety-middleware.js.map +1 -1
  501. package/dist/safety/suspicious-patterns.d.ts.map +1 -1
  502. package/dist/safety/suspicious-patterns.js +12 -7
  503. package/dist/safety/suspicious-patterns.js.map +1 -1
  504. package/dist/safety/tool-categorization.js +1 -1
  505. package/dist/safety/tool-categorization.js.map +1 -1
  506. package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
  507. package/dist/safety/validators/path-policy-validator.js +7 -0
  508. package/dist/safety/validators/path-policy-validator.js.map +1 -1
  509. package/dist/sandbox/index.d.ts +6 -1
  510. package/dist/sandbox/index.d.ts.map +1 -1
  511. package/dist/sandbox/index.js +30 -4
  512. package/dist/sandbox/index.js.map +1 -1
  513. package/dist/sandbox/native-sandbox.d.ts +3 -0
  514. package/dist/sandbox/native-sandbox.d.ts.map +1 -1
  515. package/dist/sandbox/native-sandbox.js +139 -18
  516. package/dist/sandbox/native-sandbox.js.map +1 -1
  517. package/dist/sentry.d.ts +17 -0
  518. package/dist/sentry.d.ts.map +1 -0
  519. package/dist/sentry.js +91 -0
  520. package/dist/sentry.js.map +1 -0
  521. package/dist/server/agent-runtime-ledger.d.ts +141 -0
  522. package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
  523. package/dist/server/agent-runtime-ledger.js +334 -0
  524. package/dist/server/agent-runtime-ledger.js.map +1 -0
  525. package/dist/server/agent-trajectory-inspection.d.ts +104 -0
  526. package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
  527. package/dist/server/agent-trajectory-inspection.js +168 -0
  528. package/dist/server/agent-trajectory-inspection.js.map +1 -0
  529. package/dist/server/agent-trajectory-replay.d.ts +56 -0
  530. package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
  531. package/dist/server/agent-trajectory-replay.js +214 -0
  532. package/dist/server/agent-trajectory-replay.js.map +1 -0
  533. package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
  534. package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
  535. package/dist/server/agent-trajectory-scenarios.js +822 -0
  536. package/dist/server/agent-trajectory-scenarios.js.map +1 -0
  537. package/dist/server/agent-trajectory-scorers.d.ts +61 -0
  538. package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
  539. package/dist/server/agent-trajectory-scorers.js +162 -0
  540. package/dist/server/agent-trajectory-scorers.js.map +1 -0
  541. package/dist/server/agent-trajectory-validation.d.ts +7 -0
  542. package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
  543. package/dist/server/agent-trajectory-validation.js +101 -0
  544. package/dist/server/agent-trajectory-validation.js.map +1 -0
  545. package/dist/server/agent-trajectory.d.ts +50 -0
  546. package/dist/server/agent-trajectory.d.ts.map +1 -0
  547. package/dist/server/agent-trajectory.js +159 -0
  548. package/dist/server/agent-trajectory.js.map +1 -0
  549. package/dist/server/app-context.d.ts +18 -0
  550. package/dist/server/app-context.d.ts.map +1 -1
  551. package/dist/server/app-context.js.map +1 -1
  552. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  553. package/dist/server/handlers/headless-sessions.js +64 -27
  554. package/dist/server/handlers/headless-sessions.js.map +1 -1
  555. package/dist/server/handlers/health.d.ts +6 -0
  556. package/dist/server/handlers/health.d.ts.map +1 -1
  557. package/dist/server/handlers/health.js +6 -0
  558. package/dist/server/handlers/health.js.map +1 -1
  559. package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
  560. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  561. package/dist/server/handlers/hosted-runner-drain.js +309 -18
  562. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  563. package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
  564. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
  565. package/dist/server/handlers/hosted-runner-identity.js +43 -0
  566. package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
  567. package/dist/server/handlers/mode.d.ts.map +1 -1
  568. package/dist/server/handlers/mode.js +3 -1
  569. package/dist/server/handlers/mode.js.map +1 -1
  570. package/dist/server/handlers/pending-requests.d.ts.map +1 -1
  571. package/dist/server/handlers/pending-requests.js +336 -51
  572. package/dist/server/handlers/pending-requests.js.map +1 -1
  573. package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
  574. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
  575. package/dist/server/handlers/platform-a2a-push.js +136 -0
  576. package/dist/server/handlers/platform-a2a-push.js.map +1 -0
  577. package/dist/server/handlers/sessions.d.ts.map +1 -1
  578. package/dist/server/handlers/sessions.js +21 -1
  579. package/dist/server/handlers/sessions.js.map +1 -1
  580. package/dist/server/headless-runtime-service.d.ts +9 -2
  581. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  582. package/dist/server/headless-runtime-service.js +39 -0
  583. package/dist/server/headless-runtime-service.js.map +1 -1
  584. package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
  585. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
  586. package/dist/server/hosted-agent-runtime-progress.js +1650 -0
  587. package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
  588. package/dist/server/hosted-runner-lease.d.ts +41 -0
  589. package/dist/server/hosted-runner-lease.d.ts.map +1 -0
  590. package/dist/server/hosted-runner-lease.js +140 -0
  591. package/dist/server/hosted-runner-lease.js.map +1 -0
  592. package/dist/server/hosted-session-manager.d.ts +16 -8
  593. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  594. package/dist/server/hosted-session-manager.js +98 -76
  595. package/dist/server/hosted-session-manager.js.map +1 -1
  596. package/dist/server/junit-xml.d.ts +2 -0
  597. package/dist/server/junit-xml.d.ts.map +1 -0
  598. package/dist/server/junit-xml.js +9 -0
  599. package/dist/server/junit-xml.js.map +1 -0
  600. package/dist/server/routes.d.ts.map +1 -1
  601. package/dist/server/routes.js +6 -0
  602. package/dist/server/routes.js.map +1 -1
  603. package/dist/server/scenario-recorder.d.ts +56 -0
  604. package/dist/server/scenario-recorder.d.ts.map +1 -0
  605. package/dist/server/scenario-recorder.js +109 -0
  606. package/dist/server/scenario-recorder.js.map +1 -0
  607. package/dist/server/scripted-scenario-runner.d.ts +46 -0
  608. package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
  609. package/dist/server/scripted-scenario-runner.js +190 -0
  610. package/dist/server/scripted-scenario-runner.js.map +1 -0
  611. package/dist/server/server-middlewares.d.ts +6 -2
  612. package/dist/server/server-middlewares.d.ts.map +1 -1
  613. package/dist/server/server-middlewares.js +8 -2
  614. package/dist/server/server-middlewares.js.map +1 -1
  615. package/dist/server/server-request-manager.d.ts +9 -1
  616. package/dist/server/server-request-manager.d.ts.map +1 -1
  617. package/dist/server/server-request-manager.js +49 -4
  618. package/dist/server/server-request-manager.js.map +1 -1
  619. package/dist/services/intelligent-router/service.d.ts +2 -0
  620. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  621. package/dist/services/intelligent-router/service.js +4 -0
  622. package/dist/services/intelligent-router/service.js.map +1 -1
  623. package/dist/services/service-authority.d.ts +25 -0
  624. package/dist/services/service-authority.d.ts.map +1 -0
  625. package/dist/services/service-authority.js +143 -0
  626. package/dist/services/service-authority.js.map +1 -0
  627. package/dist/services/workspace-config/service.d.ts +2 -0
  628. package/dist/services/workspace-config/service.d.ts.map +1 -1
  629. package/dist/services/workspace-config/service.js +4 -0
  630. package/dist/services/workspace-config/service.js.map +1 -1
  631. package/dist/session/manager.d.ts +8 -2
  632. package/dist/session/manager.d.ts.map +1 -1
  633. package/dist/session/manager.js +19 -4
  634. package/dist/session/manager.js.map +1 -1
  635. package/dist/session/session-branch.d.ts.map +1 -1
  636. package/dist/session/session-branch.js +5 -1
  637. package/dist/session/session-branch.js.map +1 -1
  638. package/dist/session/session-catalog.d.ts +7 -2
  639. package/dist/session/session-catalog.d.ts.map +1 -1
  640. package/dist/session/session-catalog.js +13 -2
  641. package/dist/session/session-catalog.js.map +1 -1
  642. package/dist/session/session-context.d.ts +6 -2
  643. package/dist/session/session-context.d.ts.map +1 -1
  644. package/dist/session/session-context.js +44 -4
  645. package/dist/session/session-context.js.map +1 -1
  646. package/dist/session/session-graph-projection.d.ts +32 -0
  647. package/dist/session/session-graph-projection.d.ts.map +1 -0
  648. package/dist/session/session-graph-projection.js +133 -0
  649. package/dist/session/session-graph-projection.js.map +1 -0
  650. package/dist/session/types.d.ts +18 -0
  651. package/dist/session/types.d.ts.map +1 -1
  652. package/dist/session/types.js +8 -0
  653. package/dist/session/types.js.map +1 -1
  654. package/dist/session/wire-format.generated.d.ts +3 -0
  655. package/dist/session/wire-format.generated.d.ts.map +1 -1
  656. package/dist/session/wire-format.generated.js +20 -0
  657. package/dist/session/wire-format.generated.js.map +1 -1
  658. package/dist/skills/eval-harness.d.ts +38 -0
  659. package/dist/skills/eval-harness.d.ts.map +1 -0
  660. package/dist/skills/eval-harness.js +112 -0
  661. package/dist/skills/eval-harness.js.map +1 -0
  662. package/dist/skills/index.d.ts +5 -1
  663. package/dist/skills/index.d.ts.map +1 -1
  664. package/dist/skills/index.js +5 -1
  665. package/dist/skills/index.js.map +1 -1
  666. package/dist/skills/linter.d.ts +36 -0
  667. package/dist/skills/linter.d.ts.map +1 -0
  668. package/dist/skills/linter.js +398 -0
  669. package/dist/skills/linter.js.map +1 -0
  670. package/dist/skills/loader.d.ts +36 -6
  671. package/dist/skills/loader.d.ts.map +1 -1
  672. package/dist/skills/loader.js +169 -86
  673. package/dist/skills/loader.js.map +1 -1
  674. package/dist/skills/package-contract.d.ts +45 -0
  675. package/dist/skills/package-contract.d.ts.map +1 -0
  676. package/dist/skills/package-contract.js +153 -0
  677. package/dist/skills/package-contract.js.map +1 -0
  678. package/dist/skills/runtime-activation.d.ts +68 -0
  679. package/dist/skills/runtime-activation.d.ts.map +1 -0
  680. package/dist/skills/runtime-activation.js +228 -0
  681. package/dist/skills/runtime-activation.js.map +1 -0
  682. package/dist/skills/service-client.d.ts.map +1 -1
  683. package/dist/skills/service-client.js +3 -4
  684. package/dist/skills/service-client.js.map +1 -1
  685. package/dist/skills/tool.d.ts.map +1 -1
  686. package/dist/skills/tool.js +2 -0
  687. package/dist/skills/tool.js.map +1 -1
  688. package/dist/skills/types.d.ts +14 -0
  689. package/dist/skills/types.d.ts.map +1 -1
  690. package/dist/skills/types.js.map +1 -1
  691. package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
  692. package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
  693. package/dist/telemetry/agent-operating-plane-context.js +54 -0
  694. package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
  695. package/dist/telemetry/beacon.d.ts +24 -0
  696. package/dist/telemetry/beacon.d.ts.map +1 -0
  697. package/dist/telemetry/beacon.js +115 -0
  698. package/dist/telemetry/beacon.js.map +1 -0
  699. package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
  700. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
  701. package/dist/telemetry/cli-command-aggregator.js +251 -0
  702. package/dist/telemetry/cli-command-aggregator.js.map +1 -0
  703. package/dist/telemetry/cli-startup.d.ts +21 -0
  704. package/dist/telemetry/cli-startup.d.ts.map +1 -0
  705. package/dist/telemetry/cli-startup.js +83 -0
  706. package/dist/telemetry/cli-startup.js.map +1 -0
  707. package/dist/telemetry/disablement.d.ts +13 -0
  708. package/dist/telemetry/disablement.d.ts.map +1 -0
  709. package/dist/telemetry/disablement.js +19 -0
  710. package/dist/telemetry/disablement.js.map +1 -0
  711. package/dist/telemetry/index.d.ts +6 -2
  712. package/dist/telemetry/index.d.ts.map +1 -1
  713. package/dist/telemetry/index.js +6 -2
  714. package/dist/telemetry/index.js.map +1 -1
  715. package/dist/telemetry/maestro-event-bus.d.ts +52 -0
  716. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  717. package/dist/telemetry/maestro-event-bus.js +179 -3
  718. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  719. package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
  720. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  721. package/dist/telemetry/maestro-event-catalog.js +2 -0
  722. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  723. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  724. package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
  725. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  726. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
  727. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
  728. package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
  729. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  730. package/dist/telemetry/mcp-beacon.d.ts +20 -0
  731. package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
  732. package/dist/telemetry/mcp-beacon.js +54 -0
  733. package/dist/telemetry/mcp-beacon.js.map +1 -0
  734. package/dist/telemetry/metadata-normalization.d.ts +7 -0
  735. package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
  736. package/dist/telemetry/metadata-normalization.js +189 -0
  737. package/dist/telemetry/metadata-normalization.js.map +1 -0
  738. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  739. package/dist/telemetry/meter-service-client.js +5 -10
  740. package/dist/telemetry/meter-service-client.js.map +1 -1
  741. package/dist/telemetry/metrics.d.ts +123 -0
  742. package/dist/telemetry/metrics.d.ts.map +1 -0
  743. package/dist/telemetry/metrics.js +184 -0
  744. package/dist/telemetry/metrics.js.map +1 -0
  745. package/dist/telemetry/turn-tracker.d.ts +1 -0
  746. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  747. package/dist/telemetry/turn-tracker.js +22 -1
  748. package/dist/telemetry/turn-tracker.js.map +1 -1
  749. package/dist/telemetry/wide-events.d.ts +31 -1
  750. package/dist/telemetry/wide-events.d.ts.map +1 -1
  751. package/dist/telemetry/wide-events.js +229 -1
  752. package/dist/telemetry/wide-events.js.map +1 -1
  753. package/dist/telemetry.d.ts +39 -3
  754. package/dist/telemetry.d.ts.map +1 -1
  755. package/dist/telemetry.js +160 -3
  756. package/dist/telemetry.js.map +1 -1
  757. package/dist/testing/test-verification-hook.d.ts.map +1 -1
  758. package/dist/testing/test-verification-hook.js +34 -21
  759. package/dist/testing/test-verification-hook.js.map +1 -1
  760. package/dist/tools/apply-patch-parser.d.ts +26 -0
  761. package/dist/tools/apply-patch-parser.d.ts.map +1 -0
  762. package/dist/tools/apply-patch-parser.js +146 -0
  763. package/dist/tools/apply-patch-parser.js.map +1 -0
  764. package/dist/tools/apply-patch.d.ts +42 -0
  765. package/dist/tools/apply-patch.d.ts.map +1 -0
  766. package/dist/tools/apply-patch.js +648 -0
  767. package/dist/tools/apply-patch.js.map +1 -0
  768. package/dist/tools/ask-user.d.ts +1 -0
  769. package/dist/tools/ask-user.d.ts.map +1 -1
  770. package/dist/tools/background/tool-handler.d.ts +1 -0
  771. package/dist/tools/background/tool-handler.d.ts.map +1 -1
  772. package/dist/tools/bash.d.ts +1 -0
  773. package/dist/tools/bash.d.ts.map +1 -1
  774. package/dist/tools/codesearch.d.ts +1 -0
  775. package/dist/tools/codesearch.d.ts.map +1 -1
  776. package/dist/tools/conductor-client.d.ts +1 -0
  777. package/dist/tools/conductor-client.d.ts.map +1 -1
  778. package/dist/tools/conductor-client.js +63 -0
  779. package/dist/tools/conductor-client.js.map +1 -1
  780. package/dist/tools/diff.d.ts +1 -0
  781. package/dist/tools/diff.d.ts.map +1 -1
  782. package/dist/tools/edit.d.ts +1 -0
  783. package/dist/tools/edit.d.ts.map +1 -1
  784. package/dist/tools/extract-document.d.ts +1 -0
  785. package/dist/tools/extract-document.d.ts.map +1 -1
  786. package/dist/tools/find.d.ts +10 -0
  787. package/dist/tools/find.d.ts.map +1 -1
  788. package/dist/tools/find.js +236 -27
  789. package/dist/tools/find.js.map +1 -1
  790. package/dist/tools/gh.d.ts +3 -0
  791. package/dist/tools/gh.d.ts.map +1 -1
  792. package/dist/tools/index.d.ts +50 -0
  793. package/dist/tools/index.d.ts.map +1 -1
  794. package/dist/tools/index.js +4 -0
  795. package/dist/tools/index.js.map +1 -1
  796. package/dist/tools/list.d.ts +1 -0
  797. package/dist/tools/list.d.ts.map +1 -1
  798. package/dist/tools/notebook.d.ts +1 -0
  799. package/dist/tools/notebook.d.ts.map +1 -1
  800. package/dist/tools/oracle.d.ts +1 -0
  801. package/dist/tools/oracle.d.ts.map +1 -1
  802. package/dist/tools/oracle.js +17 -32
  803. package/dist/tools/oracle.js.map +1 -1
  804. package/dist/tools/parallel-execution.d.ts +13 -2
  805. package/dist/tools/parallel-execution.d.ts.map +1 -1
  806. package/dist/tools/parallel-execution.js +178 -7
  807. package/dist/tools/parallel-execution.js.map +1 -1
  808. package/dist/tools/parallel-ripgrep.d.ts +1 -0
  809. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  810. package/dist/tools/pipeline.d.ts +4 -0
  811. package/dist/tools/pipeline.d.ts.map +1 -1
  812. package/dist/tools/read.d.ts +1 -0
  813. package/dist/tools/read.d.ts.map +1 -1
  814. package/dist/tools/search.d.ts +1 -0
  815. package/dist/tools/search.d.ts.map +1 -1
  816. package/dist/tools/status.d.ts +1 -0
  817. package/dist/tools/status.d.ts.map +1 -1
  818. package/dist/tools/todo.d.ts +1 -0
  819. package/dist/tools/todo.d.ts.map +1 -1
  820. package/dist/tools/tool-dsl.d.ts +5 -1
  821. package/dist/tools/tool-dsl.d.ts.map +1 -1
  822. package/dist/tools/tool-dsl.js +1 -0
  823. package/dist/tools/tool-dsl.js.map +1 -1
  824. package/dist/tools/tool-result-cache.d.ts.map +1 -1
  825. package/dist/tools/tool-result-cache.js +1 -0
  826. package/dist/tools/tool-result-cache.js.map +1 -1
  827. package/dist/tools/typebox-tool.d.ts.map +1 -1
  828. package/dist/tools/typebox-tool.js +3 -0
  829. package/dist/tools/typebox-tool.js.map +1 -1
  830. package/dist/tools/webfetch.d.ts +1 -0
  831. package/dist/tools/webfetch.d.ts.map +1 -1
  832. package/dist/tools/websearch.d.ts +1 -0
  833. package/dist/tools/websearch.d.ts.map +1 -1
  834. package/dist/tools/write.d.ts +1 -0
  835. package/dist/tools/write.d.ts.map +1 -1
  836. package/dist/utils/abort-error.d.ts +2 -0
  837. package/dist/utils/abort-error.d.ts.map +1 -0
  838. package/dist/utils/abort-error.js +7 -0
  839. package/dist/utils/abort-error.js.map +1 -0
  840. package/dist/utils/downstream.d.ts.map +1 -1
  841. package/dist/utils/downstream.js +4 -0
  842. package/dist/utils/downstream.js.map +1 -1
  843. package/dist/utils/logger.d.ts +3 -0
  844. package/dist/utils/logger.d.ts.map +1 -1
  845. package/dist/utils/logger.js +14 -3
  846. package/dist/utils/logger.js.map +1 -1
  847. package/dist/utils/path-containment.d.ts +2 -0
  848. package/dist/utils/path-containment.d.ts.map +1 -0
  849. package/dist/utils/path-containment.js +14 -0
  850. package/dist/utils/path-containment.js.map +1 -0
  851. package/dist/utils/prompt-safe-text.d.ts +7 -0
  852. package/dist/utils/prompt-safe-text.d.ts.map +1 -0
  853. package/dist/utils/prompt-safe-text.js +44 -0
  854. package/dist/utils/prompt-safe-text.js.map +1 -0
  855. package/dist/version.json +2 -2
  856. package/dist/web-server.d.ts.map +1 -1
  857. package/dist/web-server.js +32 -7
  858. package/dist/web-server.js.map +1 -1
  859. package/dist/workspace/root-resolver.d.ts +4 -1
  860. package/dist/workspace/root-resolver.d.ts.map +1 -1
  861. package/dist/workspace/root-resolver.js +16 -6
  862. package/dist/workspace/root-resolver.js.map +1 -1
  863. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
  864. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
  865. package/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
  866. package/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
  867. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
  868. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
  869. package/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
  870. package/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
  871. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
  872. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
  873. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
  874. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
  875. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +2 -0
  876. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -1
  877. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +1 -0
  878. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -1
  879. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +280 -5
  880. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
  881. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +36 -1
  882. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
  883. package/node_modules/@evalops/contracts/dist/index.d.ts +15 -1
  884. package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  885. package/node_modules/@evalops/contracts/dist/index.js +6 -0
  886. package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  887. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
  888. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
  889. package/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
  890. package/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
  891. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +91 -0
  892. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
  893. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +92 -61
  894. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
  895. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +3 -0
  896. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -1
  897. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
  898. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
  899. package/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
  900. package/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
  901. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +7 -0
  902. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -1
  903. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +2 -0
  904. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -1
  905. package/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
  906. package/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
  907. package/node_modules/@evalops/contracts/dist/scenario.js +4 -0
  908. package/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
  909. package/node_modules/@evalops/contracts/dist/schemas.d.ts +17 -3
  910. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  911. package/node_modules/@evalops/contracts/dist/schemas.js +16 -0
  912. package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  913. package/node_modules/@evalops/contracts/package.json +1 -1
  914. package/node_modules/@evalops/tui/package.json +1 -1
  915. package/package.json +41 -7
  916. package/skills/incident-triage/SKILL.md +40 -0
  917. package/skills/incident-triage/mcp.json +14 -0
  918. package/skills/incident-triage/reference/triage.md +20 -0
  919. package/skills/incident-triage/toolbox/incident-timeline +22 -0
  920. package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
  921. package/skills/pr-review/SKILL.md +40 -0
  922. package/skills/pr-review/mcp.json +14 -0
  923. package/skills/pr-review/reference/rubric.md +20 -0
  924. package/skills/pr-review/toolbox/review-summary +20 -0
  925. package/skills/pr-review/toolbox/review-summary.cmd +14 -0
  926. package/skills/release-verification/SKILL.md +40 -0
  927. package/skills/release-verification/mcp.json +15 -0
  928. package/skills/release-verification/reference/checklist.md +21 -0
  929. package/skills/release-verification/toolbox/release-readiness +18 -0
  930. package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
@@ -0,0 +1,356 @@
1
+ import chalk from "chalk";
2
+ import { parseMcpToolName } from "../../mcp/names.js";
3
+ import { buildAgentRuntimeLedgerReport, } from "../../server/agent-runtime-ledger.js";
4
+ import { buildAgentTrajectoryInspectionReport, } from "../../server/agent-trajectory-inspection.js";
5
+ import { replayAgentTrajectoryReport, } from "../../server/agent-trajectory-replay.js";
6
+ import { scoreAgentTrajectoryReport, } from "../../server/agent-trajectory-scorers.js";
7
+ import { buildAgentTrajectoryReport, } from "../../server/agent-trajectory.js";
8
+ import { buildComposerRunTimeline } from "../../server/session-timeline.js";
9
+ import { SessionManager } from "../../session/manager.js";
10
+ import { migrateToCurrentVersion } from "../../session/migration.js";
11
+ const RUN_RECONSTRUCTION_SCHEMA = "evalops.maestro.run-reconstruction.v1";
12
+ const RUN_INSPECT_TRAJECTORY_RULES = [
13
+ {
14
+ id: "final-event-has-evidence",
15
+ severity: "error",
16
+ description: "The final answer or runtime terminal event must have evidence.",
17
+ finalEvidenceCoverage: true,
18
+ },
19
+ ];
20
+ function usage() {
21
+ return "Usage: maestro run inspect|ledger|replay|promote <session-id> [--json]";
22
+ }
23
+ function exitWithUsage(message) {
24
+ console.error(chalk.red(message));
25
+ console.error(chalk.dim(usage()));
26
+ process.exit(1);
27
+ }
28
+ function findHeader(entries) {
29
+ return entries.find((entry) => entry.type === "session");
30
+ }
31
+ function promptContextSummary(header, timeline) {
32
+ const manifest = header?.promptContextManifest;
33
+ const entries = Array.isArray(manifest?.entries)
34
+ ? (manifest.entries ?? [])
35
+ : [];
36
+ let projectDocs = 0;
37
+ const mcpServers = new Set();
38
+ for (const entry of entries) {
39
+ if (!entry || typeof entry !== "object")
40
+ continue;
41
+ const kind = entry.kind;
42
+ const sourceKind = entry.sourceKind;
43
+ const resourceKind = entry.resourceKind;
44
+ if (kind === "project_doc" ||
45
+ sourceKind === "project" ||
46
+ sourceKind === "global") {
47
+ projectDocs += 1;
48
+ }
49
+ else if (kind === "mcp_server" || resourceKind === "mcp_server") {
50
+ const serverName = entry.serverName ??
51
+ entry.resourceId ??
52
+ entry.providerId ??
53
+ entry.id;
54
+ mcpServers.add(typeof serverName === "string" ? serverName : "unknown");
55
+ }
56
+ }
57
+ for (const tool of header?.tools ?? []) {
58
+ const mcpTool = parseMcpToolName(tool.name);
59
+ if (mcpTool) {
60
+ mcpServers.add(mcpTool.server);
61
+ }
62
+ }
63
+ for (const item of timeline.items) {
64
+ if (!item.toolName)
65
+ continue;
66
+ const mcpTool = parseMcpToolName(item.toolName);
67
+ if (mcpTool) {
68
+ mcpServers.add(mcpTool.server);
69
+ }
70
+ }
71
+ return {
72
+ entries: entries.length,
73
+ projectDocs,
74
+ mcpServers: mcpServers.size,
75
+ };
76
+ }
77
+ function contextManifestSummary(header, timeline, promptContext) {
78
+ const manifest = header?.unifiedContextManifest;
79
+ const byKind = {};
80
+ const bySource = {};
81
+ const byStatus = {};
82
+ const mcpServers = new Set();
83
+ let mcpResources = 0;
84
+ let mcpPrompts = 0;
85
+ let projectDocs = 0;
86
+ for (const entry of manifest?.entries ?? []) {
87
+ increment(byKind, entry.kind);
88
+ increment(bySource, entry.source);
89
+ increment(byStatus, entry.status);
90
+ if (entry.kind === "project_doc") {
91
+ projectDocs += 1;
92
+ }
93
+ if (entry.kind === "mcp_server") {
94
+ mcpServers.add(entry.serverName ?? entry.id);
95
+ }
96
+ if (entry.kind === "mcp_resource") {
97
+ mcpResources += 1;
98
+ if (entry.serverName) {
99
+ mcpServers.add(entry.serverName);
100
+ }
101
+ }
102
+ if (entry.kind === "mcp_prompt") {
103
+ mcpPrompts += 1;
104
+ if (entry.serverName) {
105
+ mcpServers.add(entry.serverName);
106
+ }
107
+ }
108
+ }
109
+ for (const tool of header?.tools ?? []) {
110
+ const mcpTool = parseMcpToolName(tool.name);
111
+ if (mcpTool) {
112
+ mcpServers.add(mcpTool.server);
113
+ }
114
+ }
115
+ for (const item of timeline.items) {
116
+ if (!item.toolName)
117
+ continue;
118
+ const mcpTool = parseMcpToolName(item.toolName);
119
+ if (mcpTool) {
120
+ mcpServers.add(mcpTool.server);
121
+ }
122
+ }
123
+ const summary = {
124
+ entries: manifest?.entries.length ?? promptContext.entries,
125
+ projectDocs: manifest ? projectDocs : promptContext.projectDocs,
126
+ mcpServers: manifest ? mcpServers.size : promptContext.mcpServers,
127
+ mcpResources,
128
+ mcpPrompts,
129
+ diagnostics: manifest?.diagnostics.length ?? 0,
130
+ byKind,
131
+ bySource,
132
+ byStatus,
133
+ };
134
+ if (manifest) {
135
+ summary.protocolVersion = manifest.protocolVersion;
136
+ summary.version = manifest.version;
137
+ summary.cwd = manifest.cwd;
138
+ summary.projectDocBytesRead = manifest.projectDocs.bytesRead;
139
+ if (manifest.projectDocs.maxBytes !== undefined) {
140
+ summary.projectDocMaxBytes = manifest.projectDocs.maxBytes;
141
+ }
142
+ }
143
+ return summary;
144
+ }
145
+ function increment(map, key) {
146
+ if (typeof key !== "string" || key.length === 0)
147
+ return;
148
+ map[key] = (map[key] ?? 0) + 1;
149
+ }
150
+ function countTimeline(timeline) {
151
+ const byType = {};
152
+ const byStatus = {};
153
+ const byVisibility = {};
154
+ for (const item of timeline.items) {
155
+ increment(byType, item.type);
156
+ increment(byStatus, item.status);
157
+ increment(byVisibility, item.visibility);
158
+ }
159
+ return {
160
+ timelineItems: timeline.items.length,
161
+ byType,
162
+ byStatus,
163
+ byVisibility,
164
+ };
165
+ }
166
+ function buildCoverage(counts, promptContext, contextManifest) {
167
+ return {
168
+ promptInputs: (counts.byType["message.user"] ?? 0) > 0,
169
+ assistantResponses: (counts.byType["message.assistant"] ?? 0) > 0,
170
+ toolRequests: (counts.byType["tool.requested"] ?? 0) > 0,
171
+ toolResults: (counts.byType["tool.completed"] ?? 0) +
172
+ (counts.byType["tool.failed"] ?? 0) >
173
+ 0,
174
+ contextManifest: contextManifest.protocolVersion !== undefined,
175
+ contextDiagnostics: contextManifest.diagnostics > 0,
176
+ fileChanges: (counts.byType["file.changed"] ?? 0) > 0,
177
+ artifacts: (counts.byType["artifact.linked"] ?? 0) > 0,
178
+ policyDecisions: (counts.byType["policy.decision"] ?? 0) > 0,
179
+ diagnostics: (counts.byType["diagnostic.delta"] ?? 0) > 0,
180
+ compactions: (counts.byType["compaction.created"] ?? 0) > 0,
181
+ pendingRequests: (counts.byType["wait.pending"] ?? 0) > 0,
182
+ mcpContext: contextManifest.mcpServers > 0 || promptContext.mcpServers > 0,
183
+ };
184
+ }
185
+ async function buildRunReconstructionReport(sessionId, options = {}) {
186
+ const manager = new SessionManager(false, undefined, {
187
+ sessionDir: options.sessionDir,
188
+ });
189
+ const sessionFile = manager.getSessionFileById(sessionId);
190
+ if (!sessionFile) {
191
+ return null;
192
+ }
193
+ const [session, entries] = await Promise.all([
194
+ manager.loadSession(sessionId),
195
+ manager.loadEntries(sessionId),
196
+ ]);
197
+ if (!session || !entries) {
198
+ return null;
199
+ }
200
+ migrateToCurrentVersion(entries);
201
+ const header = findHeader(entries);
202
+ const timeline = buildComposerRunTimeline({
203
+ sessionId,
204
+ entries,
205
+ messages: session.messages,
206
+ });
207
+ const trajectory = buildAgentTrajectoryReport(timeline);
208
+ const trajectoryReplay = replayAgentTrajectoryReport(trajectory);
209
+ const trajectoryScore = scoreAgentTrajectoryReport(trajectory, RUN_INSPECT_TRAJECTORY_RULES);
210
+ const trajectoryInspection = buildAgentTrajectoryInspectionReport({
211
+ timelineItems: timeline.items,
212
+ trajectory,
213
+ replay: trajectoryReplay,
214
+ score: trajectoryScore,
215
+ });
216
+ const agentRuntimeLedger = buildAgentRuntimeLedgerReport({
217
+ session: {
218
+ id: session.id,
219
+ sessionFile,
220
+ ...(header?.cwd ? { cwd: header.cwd } : {}),
221
+ ...(header?.model ? { model: header.model } : {}),
222
+ },
223
+ timeline,
224
+ trajectory,
225
+ replay: trajectoryReplay,
226
+ });
227
+ const counts = countTimeline(timeline);
228
+ const context = promptContextSummary(header, timeline);
229
+ const contextManifest = contextManifestSummary(header, timeline, context);
230
+ const sessionReport = {
231
+ id: session.id,
232
+ createdAt: session.createdAt,
233
+ updatedAt: session.updatedAt,
234
+ messageCount: session.messageCount,
235
+ sessionFile,
236
+ };
237
+ if (session.title) {
238
+ sessionReport.title = session.title;
239
+ }
240
+ if (session.summary) {
241
+ sessionReport.summary = session.summary;
242
+ }
243
+ if (header?.cwd) {
244
+ sessionReport.cwd = header.cwd;
245
+ }
246
+ if (header?.model) {
247
+ sessionReport.model = header.model;
248
+ }
249
+ return {
250
+ schemaVersion: RUN_RECONSTRUCTION_SCHEMA,
251
+ session: sessionReport,
252
+ counts,
253
+ coverage: buildCoverage(counts, context, contextManifest),
254
+ promptContext: context,
255
+ contextManifest,
256
+ timeline,
257
+ trajectory,
258
+ trajectoryReplay,
259
+ trajectoryScore,
260
+ trajectoryInspection,
261
+ agentRuntimeLedger,
262
+ };
263
+ }
264
+ function renderCoverage(coverage) {
265
+ const labels = [
266
+ ["promptInputs", "prompt inputs"],
267
+ ["assistantResponses", "assistant responses"],
268
+ ["toolRequests", "tool requests"],
269
+ ["toolResults", "tool results"],
270
+ ["contextManifest", "context manifest"],
271
+ ["contextDiagnostics", "context diagnostics"],
272
+ ["fileChanges", "file changes"],
273
+ ["artifacts", "artifacts"],
274
+ ["policyDecisions", "policy decisions"],
275
+ ["diagnostics", "diagnostics"],
276
+ ["compactions", "compactions"],
277
+ ["pendingRequests", "pending waits"],
278
+ ["mcpContext", "MCP context"],
279
+ ];
280
+ return labels
281
+ .map(([key, label]) => `${coverage[key] ? "yes" : "no"} ${label}`)
282
+ .join(", ");
283
+ }
284
+ function renderTimelinePreview(timeline) {
285
+ return timeline.items.slice(0, 12).map((item) => {
286
+ const parts = [
287
+ item.timestamp,
288
+ item.type,
289
+ item.status,
290
+ item.title,
291
+ item.summary,
292
+ ].filter(Boolean);
293
+ return ` - ${parts.join(" | ")}`;
294
+ });
295
+ }
296
+ function renderRunReconstruction(report) {
297
+ const lines = [
298
+ chalk.bold(`Run reconstruction: ${report.session.id}`),
299
+ `Session file: ${report.session.sessionFile}`,
300
+ `Messages: ${report.session.messageCount}`,
301
+ `Timeline items: ${report.counts.timelineItems}`,
302
+ `Trajectory events: ${report.trajectory.counts.events}`,
303
+ `Replay deltas: ${report.trajectoryReplay.counts.deltas} (${report.trajectoryReplay.counts.errors} errors, ${report.trajectoryReplay.counts.warnings} warnings)`,
304
+ `Trajectory score: ${report.trajectoryScore.counts.failed} failed, ${report.trajectoryScore.counts.warnings} warnings across ${report.trajectoryScore.counts.rules} rule(s)`,
305
+ `Replay lab: ${report.trajectoryInspection.counts.jumpTargets} event/source jump target(s), redaction=${report.trajectoryInspection.redaction.default}`,
306
+ `AgentRuntime ledger: ${report.agentRuntimeLedger.counts.entries} entries, ${report.agentRuntimeLedger.counts.promotionOperations} dry-run promotion op(s), replay deterministic=${report.agentRuntimeLedger.replay.deterministic ? "yes" : "no"}`,
307
+ `Coverage: ${renderCoverage(report.coverage)}`,
308
+ `Prompt context: ${report.promptContext.entries} entries (${report.promptContext.projectDocs} docs, ${report.promptContext.mcpServers} MCP servers)`,
309
+ `Context manifest: ${report.contextManifest.entries} entries (${report.contextManifest.projectDocs} docs, ${report.contextManifest.mcpServers} MCP servers, ${report.contextManifest.mcpResources} resources, ${report.contextManifest.mcpPrompts} prompts, ${report.contextManifest.diagnostics} diagnostics)`,
310
+ "",
311
+ chalk.bold("Timeline preview"),
312
+ ...renderTimelinePreview(report.timeline),
313
+ ];
314
+ if (report.timeline.items.length > 12) {
315
+ lines.push(` ... ${report.timeline.items.length - 12} more item(s)`);
316
+ }
317
+ return lines.join("\n");
318
+ }
319
+ export async function handleRunCommand(subcommand, args = [], options = {}) {
320
+ if (subcommand !== "inspect" &&
321
+ subcommand !== "ledger" &&
322
+ subcommand !== "replay" &&
323
+ subcommand !== "promote") {
324
+ exitWithUsage("Run subcommand required.");
325
+ }
326
+ const sessionId = args.find((arg) => !arg.startsWith("-"));
327
+ if (!sessionId) {
328
+ exitWithUsage("Session id required.");
329
+ }
330
+ const report = await buildRunReconstructionReport(sessionId, options);
331
+ if (!report) {
332
+ exitWithUsage(`Session not found: ${sessionId}`);
333
+ }
334
+ if (subcommand === "ledger") {
335
+ console.log(JSON.stringify(report.agentRuntimeLedger, null, 2));
336
+ return;
337
+ }
338
+ if (subcommand === "replay") {
339
+ console.log(JSON.stringify(report.agentRuntimeLedger.replay, null, 2));
340
+ return;
341
+ }
342
+ if (subcommand === "promote") {
343
+ console.log(JSON.stringify(report.agentRuntimeLedger.promotion, null, 2));
344
+ return;
345
+ }
346
+ if (options.json || args.includes("--json")) {
347
+ console.log(JSON.stringify(report, null, 2));
348
+ return;
349
+ }
350
+ console.log(renderRunReconstruction(report));
351
+ }
352
+ export const testing = {
353
+ buildRunReconstructionReport,
354
+ renderRunReconstruction,
355
+ };
356
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport { parseMcpToolName } from \"../../mcp/names.js\";\nimport {\n\ttype AgentRuntimeLedgerReport,\n\tbuildAgentRuntimeLedgerReport,\n} from \"../../server/agent-runtime-ledger.js\";\nimport {\n\ttype AgentTrajectoryInspectionReport,\n\tbuildAgentTrajectoryInspectionReport,\n} from \"../../server/agent-trajectory-inspection.js\";\nimport {\n\ttype AgentTrajectoryReplayReport,\n\treplayAgentTrajectoryReport,\n} from \"../../server/agent-trajectory-replay.js\";\nimport {\n\ttype AgentTrajectoryScoreReport,\n\ttype AgentTrajectoryScorerRule,\n\tscoreAgentTrajectoryReport,\n} from \"../../server/agent-trajectory-scorers.js\";\nimport {\n\ttype AgentTrajectoryReport,\n\tbuildAgentTrajectoryReport,\n} from \"../../server/agent-trajectory.js\";\nimport { buildComposerRunTimeline } from \"../../server/session-timeline.js\";\nimport { SessionManager } from \"../../session/manager.js\";\nimport { migrateToCurrentVersion } from \"../../session/migration.js\";\nimport type { SessionEntry, SessionHeaderEntry } from \"../../session/types.js\";\n\nconst RUN_RECONSTRUCTION_SCHEMA = \"evalops.maestro.run-reconstruction.v1\";\nconst RUN_INSPECT_TRAJECTORY_RULES: AgentTrajectoryScorerRule[] = [\n\t{\n\t\tid: \"final-event-has-evidence\",\n\t\tseverity: \"error\",\n\t\tdescription:\n\t\t\t\"The final answer or runtime terminal event must have evidence.\",\n\t\tfinalEvidenceCoverage: true,\n\t},\n];\n\ntype ComposerRunTimeline = ReturnType<typeof buildComposerRunTimeline>;\ntype ComposerRunTimelineItem = ComposerRunTimeline[\"items\"][number];\n\ninterface RunInspectOptions {\n\tjson?: boolean;\n\tsessionDir?: string;\n}\n\ninterface ReconstructionCountSummary {\n\ttimelineItems: number;\n\tbyType: Record<string, number>;\n\tbyStatus: Record<string, number>;\n\tbyVisibility: Record<string, number>;\n}\n\ninterface ReconstructionCoverage {\n\tpromptInputs: boolean;\n\tassistantResponses: boolean;\n\ttoolRequests: boolean;\n\ttoolResults: boolean;\n\tcontextManifest: boolean;\n\tcontextDiagnostics: boolean;\n\tfileChanges: boolean;\n\tartifacts: boolean;\n\tpolicyDecisions: boolean;\n\tdiagnostics: boolean;\n\tcompactions: boolean;\n\tpendingRequests: boolean;\n\tmcpContext: boolean;\n}\n\ninterface PromptContextSummary {\n\tentries: number;\n\tprojectDocs: number;\n\tmcpServers: number;\n}\n\ninterface ContextManifestSummary {\n\tprotocolVersion?: string;\n\tversion?: number;\n\tcwd?: string;\n\tentries: number;\n\tprojectDocs: number;\n\tmcpServers: number;\n\tmcpResources: number;\n\tmcpPrompts: number;\n\tdiagnostics: number;\n\tbyKind: Record<string, number>;\n\tbySource: Record<string, number>;\n\tbyStatus: Record<string, number>;\n\tprojectDocBytesRead?: number;\n\tprojectDocMaxBytes?: number;\n}\n\ninterface RunReconstructionReport {\n\tschemaVersion: typeof RUN_RECONSTRUCTION_SCHEMA;\n\tsession: {\n\t\tid: string;\n\t\ttitle?: string;\n\t\tsummary?: string;\n\t\tcreatedAt: string;\n\t\tupdatedAt: string;\n\t\tmessageCount: number;\n\t\tsessionFile: string;\n\t\tcwd?: string;\n\t\tmodel?: string;\n\t};\n\tcounts: ReconstructionCountSummary;\n\tcoverage: ReconstructionCoverage;\n\tpromptContext: PromptContextSummary;\n\tcontextManifest: ContextManifestSummary;\n\ttimeline: ComposerRunTimeline;\n\ttrajectory: AgentTrajectoryReport;\n\ttrajectoryReplay: AgentTrajectoryReplayReport;\n\ttrajectoryScore: AgentTrajectoryScoreReport;\n\ttrajectoryInspection: AgentTrajectoryInspectionReport;\n\tagentRuntimeLedger: AgentRuntimeLedgerReport;\n}\n\nfunction usage(): string {\n\treturn \"Usage: maestro run inspect|ledger|replay|promote <session-id> [--json]\";\n}\n\nfunction exitWithUsage(message: string): never {\n\tconsole.error(chalk.red(message));\n\tconsole.error(chalk.dim(usage()));\n\tprocess.exit(1);\n}\n\nfunction findHeader(entries: SessionEntry[]): SessionHeaderEntry | undefined {\n\treturn entries.find(\n\t\t(entry): entry is SessionHeaderEntry => entry.type === \"session\",\n\t);\n}\n\nfunction promptContextSummary(\n\theader: SessionHeaderEntry | undefined,\n\ttimeline: ComposerRunTimeline,\n): PromptContextSummary {\n\tconst manifest = header?.promptContextManifest;\n\tconst entries = Array.isArray(\n\t\t(manifest as { entries?: unknown } | undefined)?.entries,\n\t)\n\t\t? ((manifest as { entries: unknown[] }).entries ?? [])\n\t\t: [];\n\tlet projectDocs = 0;\n\tconst mcpServers = new Set<string>();\n\tfor (const entry of entries) {\n\t\tif (!entry || typeof entry !== \"object\") continue;\n\t\tconst kind = (entry as { kind?: unknown }).kind;\n\t\tconst sourceKind = (entry as { sourceKind?: unknown }).sourceKind;\n\t\tconst resourceKind = (entry as { resourceKind?: unknown }).resourceKind;\n\t\tif (\n\t\t\tkind === \"project_doc\" ||\n\t\t\tsourceKind === \"project\" ||\n\t\t\tsourceKind === \"global\"\n\t\t) {\n\t\t\tprojectDocs += 1;\n\t\t} else if (kind === \"mcp_server\" || resourceKind === \"mcp_server\") {\n\t\t\tconst serverName =\n\t\t\t\t(entry as { serverName?: unknown }).serverName ??\n\t\t\t\t(entry as { resourceId?: unknown }).resourceId ??\n\t\t\t\t(entry as { providerId?: unknown }).providerId ??\n\t\t\t\t(entry as { id?: unknown }).id;\n\t\t\tmcpServers.add(typeof serverName === \"string\" ? serverName : \"unknown\");\n\t\t}\n\t}\n\tfor (const tool of header?.tools ?? []) {\n\t\tconst mcpTool = parseMcpToolName(tool.name);\n\t\tif (mcpTool) {\n\t\t\tmcpServers.add(mcpTool.server);\n\t\t}\n\t}\n\tfor (const item of timeline.items) {\n\t\tif (!item.toolName) continue;\n\t\tconst mcpTool = parseMcpToolName(item.toolName);\n\t\tif (mcpTool) {\n\t\t\tmcpServers.add(mcpTool.server);\n\t\t}\n\t}\n\treturn {\n\t\tentries: entries.length,\n\t\tprojectDocs,\n\t\tmcpServers: mcpServers.size,\n\t};\n}\n\nfunction contextManifestSummary(\n\theader: SessionHeaderEntry | undefined,\n\ttimeline: ComposerRunTimeline,\n\tpromptContext: PromptContextSummary,\n): ContextManifestSummary {\n\tconst manifest = header?.unifiedContextManifest;\n\tconst byKind: Record<string, number> = {};\n\tconst bySource: Record<string, number> = {};\n\tconst byStatus: Record<string, number> = {};\n\tconst mcpServers = new Set<string>();\n\tlet mcpResources = 0;\n\tlet mcpPrompts = 0;\n\tlet projectDocs = 0;\n\n\tfor (const entry of manifest?.entries ?? []) {\n\t\tincrement(byKind, entry.kind);\n\t\tincrement(bySource, entry.source);\n\t\tincrement(byStatus, entry.status);\n\t\tif (entry.kind === \"project_doc\") {\n\t\t\tprojectDocs += 1;\n\t\t}\n\t\tif (entry.kind === \"mcp_server\") {\n\t\t\tmcpServers.add(entry.serverName ?? entry.id);\n\t\t}\n\t\tif (entry.kind === \"mcp_resource\") {\n\t\t\tmcpResources += 1;\n\t\t\tif (entry.serverName) {\n\t\t\t\tmcpServers.add(entry.serverName);\n\t\t\t}\n\t\t}\n\t\tif (entry.kind === \"mcp_prompt\") {\n\t\t\tmcpPrompts += 1;\n\t\t\tif (entry.serverName) {\n\t\t\t\tmcpServers.add(entry.serverName);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const tool of header?.tools ?? []) {\n\t\tconst mcpTool = parseMcpToolName(tool.name);\n\t\tif (mcpTool) {\n\t\t\tmcpServers.add(mcpTool.server);\n\t\t}\n\t}\n\tfor (const item of timeline.items) {\n\t\tif (!item.toolName) continue;\n\t\tconst mcpTool = parseMcpToolName(item.toolName);\n\t\tif (mcpTool) {\n\t\t\tmcpServers.add(mcpTool.server);\n\t\t}\n\t}\n\n\tconst summary: ContextManifestSummary = {\n\t\tentries: manifest?.entries.length ?? promptContext.entries,\n\t\tprojectDocs: manifest ? projectDocs : promptContext.projectDocs,\n\t\tmcpServers: manifest ? mcpServers.size : promptContext.mcpServers,\n\t\tmcpResources,\n\t\tmcpPrompts,\n\t\tdiagnostics: manifest?.diagnostics.length ?? 0,\n\t\tbyKind,\n\t\tbySource,\n\t\tbyStatus,\n\t};\n\tif (manifest) {\n\t\tsummary.protocolVersion = manifest.protocolVersion;\n\t\tsummary.version = manifest.version;\n\t\tsummary.cwd = manifest.cwd;\n\t\tsummary.projectDocBytesRead = manifest.projectDocs.bytesRead;\n\t\tif (manifest.projectDocs.maxBytes !== undefined) {\n\t\t\tsummary.projectDocMaxBytes = manifest.projectDocs.maxBytes;\n\t\t}\n\t}\n\treturn summary;\n}\n\nfunction increment(map: Record<string, number>, key: unknown): void {\n\tif (typeof key !== \"string\" || key.length === 0) return;\n\tmap[key] = (map[key] ?? 0) + 1;\n}\n\nfunction countTimeline(\n\ttimeline: ComposerRunTimeline,\n): ReconstructionCountSummary {\n\tconst byType: Record<string, number> = {};\n\tconst byStatus: Record<string, number> = {};\n\tconst byVisibility: Record<string, number> = {};\n\tfor (const item of timeline.items) {\n\t\tincrement(byType, item.type);\n\t\tincrement(byStatus, item.status);\n\t\tincrement(byVisibility, item.visibility);\n\t}\n\treturn {\n\t\ttimelineItems: timeline.items.length,\n\t\tbyType,\n\t\tbyStatus,\n\t\tbyVisibility,\n\t};\n}\n\nfunction buildCoverage(\n\tcounts: ReconstructionCountSummary,\n\tpromptContext: PromptContextSummary,\n\tcontextManifest: ContextManifestSummary,\n): ReconstructionCoverage {\n\treturn {\n\t\tpromptInputs: (counts.byType[\"message.user\"] ?? 0) > 0,\n\t\tassistantResponses: (counts.byType[\"message.assistant\"] ?? 0) > 0,\n\t\ttoolRequests: (counts.byType[\"tool.requested\"] ?? 0) > 0,\n\t\ttoolResults:\n\t\t\t(counts.byType[\"tool.completed\"] ?? 0) +\n\t\t\t\t(counts.byType[\"tool.failed\"] ?? 0) >\n\t\t\t0,\n\t\tcontextManifest: contextManifest.protocolVersion !== undefined,\n\t\tcontextDiagnostics: contextManifest.diagnostics > 0,\n\t\tfileChanges: (counts.byType[\"file.changed\"] ?? 0) > 0,\n\t\tartifacts: (counts.byType[\"artifact.linked\"] ?? 0) > 0,\n\t\tpolicyDecisions: (counts.byType[\"policy.decision\"] ?? 0) > 0,\n\t\tdiagnostics: (counts.byType[\"diagnostic.delta\"] ?? 0) > 0,\n\t\tcompactions: (counts.byType[\"compaction.created\"] ?? 0) > 0,\n\t\tpendingRequests: (counts.byType[\"wait.pending\"] ?? 0) > 0,\n\t\tmcpContext: contextManifest.mcpServers > 0 || promptContext.mcpServers > 0,\n\t};\n}\n\nasync function buildRunReconstructionReport(\n\tsessionId: string,\n\toptions: RunInspectOptions = {},\n): Promise<RunReconstructionReport | null> {\n\tconst manager = new SessionManager(false, undefined, {\n\t\tsessionDir: options.sessionDir,\n\t});\n\tconst sessionFile = manager.getSessionFileById(sessionId);\n\tif (!sessionFile) {\n\t\treturn null;\n\t}\n\tconst [session, entries] = await Promise.all([\n\t\tmanager.loadSession(sessionId),\n\t\tmanager.loadEntries(sessionId),\n\t]);\n\tif (!session || !entries) {\n\t\treturn null;\n\t}\n\tmigrateToCurrentVersion(entries);\n\n\tconst header = findHeader(entries);\n\tconst timeline = buildComposerRunTimeline({\n\t\tsessionId,\n\t\tentries,\n\t\tmessages: session.messages,\n\t});\n\tconst trajectory = buildAgentTrajectoryReport(timeline);\n\tconst trajectoryReplay = replayAgentTrajectoryReport(trajectory);\n\tconst trajectoryScore = scoreAgentTrajectoryReport(\n\t\ttrajectory,\n\t\tRUN_INSPECT_TRAJECTORY_RULES,\n\t);\n\tconst trajectoryInspection = buildAgentTrajectoryInspectionReport({\n\t\ttimelineItems: timeline.items,\n\t\ttrajectory,\n\t\treplay: trajectoryReplay,\n\t\tscore: trajectoryScore,\n\t});\n\tconst agentRuntimeLedger = buildAgentRuntimeLedgerReport({\n\t\tsession: {\n\t\t\tid: session.id,\n\t\t\tsessionFile,\n\t\t\t...(header?.cwd ? { cwd: header.cwd } : {}),\n\t\t\t...(header?.model ? { model: header.model } : {}),\n\t\t},\n\t\ttimeline,\n\t\ttrajectory,\n\t\treplay: trajectoryReplay,\n\t});\n\tconst counts = countTimeline(timeline);\n\tconst context = promptContextSummary(header, timeline);\n\tconst contextManifest = contextManifestSummary(header, timeline, context);\n\n\tconst sessionReport: RunReconstructionReport[\"session\"] = {\n\t\tid: session.id,\n\t\tcreatedAt: session.createdAt,\n\t\tupdatedAt: session.updatedAt,\n\t\tmessageCount: session.messageCount,\n\t\tsessionFile,\n\t};\n\tif (session.title) {\n\t\tsessionReport.title = session.title;\n\t}\n\tif (session.summary) {\n\t\tsessionReport.summary = session.summary;\n\t}\n\tif (header?.cwd) {\n\t\tsessionReport.cwd = header.cwd;\n\t}\n\tif (header?.model) {\n\t\tsessionReport.model = header.model;\n\t}\n\n\treturn {\n\t\tschemaVersion: RUN_RECONSTRUCTION_SCHEMA,\n\t\tsession: sessionReport,\n\t\tcounts,\n\t\tcoverage: buildCoverage(counts, context, contextManifest),\n\t\tpromptContext: context,\n\t\tcontextManifest,\n\t\ttimeline,\n\t\ttrajectory,\n\t\ttrajectoryReplay,\n\t\ttrajectoryScore,\n\t\ttrajectoryInspection,\n\t\tagentRuntimeLedger,\n\t};\n}\n\nfunction renderCoverage(coverage: ReconstructionCoverage): string {\n\tconst labels: Array<[keyof ReconstructionCoverage, string]> = [\n\t\t[\"promptInputs\", \"prompt inputs\"],\n\t\t[\"assistantResponses\", \"assistant responses\"],\n\t\t[\"toolRequests\", \"tool requests\"],\n\t\t[\"toolResults\", \"tool results\"],\n\t\t[\"contextManifest\", \"context manifest\"],\n\t\t[\"contextDiagnostics\", \"context diagnostics\"],\n\t\t[\"fileChanges\", \"file changes\"],\n\t\t[\"artifacts\", \"artifacts\"],\n\t\t[\"policyDecisions\", \"policy decisions\"],\n\t\t[\"diagnostics\", \"diagnostics\"],\n\t\t[\"compactions\", \"compactions\"],\n\t\t[\"pendingRequests\", \"pending waits\"],\n\t\t[\"mcpContext\", \"MCP context\"],\n\t];\n\treturn labels\n\t\t.map(([key, label]) => `${coverage[key] ? \"yes\" : \"no\"} ${label}`)\n\t\t.join(\", \");\n}\n\nfunction renderTimelinePreview(timeline: ComposerRunTimeline): string[] {\n\treturn timeline.items.slice(0, 12).map((item: ComposerRunTimelineItem) => {\n\t\tconst parts = [\n\t\t\titem.timestamp,\n\t\t\titem.type,\n\t\t\titem.status,\n\t\t\titem.title,\n\t\t\titem.summary,\n\t\t].filter(Boolean);\n\t\treturn ` - ${parts.join(\" | \")}`;\n\t});\n}\n\nfunction renderRunReconstruction(report: RunReconstructionReport): string {\n\tconst lines = [\n\t\tchalk.bold(`Run reconstruction: ${report.session.id}`),\n\t\t`Session file: ${report.session.sessionFile}`,\n\t\t`Messages: ${report.session.messageCount}`,\n\t\t`Timeline items: ${report.counts.timelineItems}`,\n\t\t`Trajectory events: ${report.trajectory.counts.events}`,\n\t\t`Replay deltas: ${report.trajectoryReplay.counts.deltas} (${report.trajectoryReplay.counts.errors} errors, ${report.trajectoryReplay.counts.warnings} warnings)`,\n\t\t`Trajectory score: ${report.trajectoryScore.counts.failed} failed, ${report.trajectoryScore.counts.warnings} warnings across ${report.trajectoryScore.counts.rules} rule(s)`,\n\t\t`Replay lab: ${report.trajectoryInspection.counts.jumpTargets} event/source jump target(s), redaction=${report.trajectoryInspection.redaction.default}`,\n\t\t`AgentRuntime ledger: ${report.agentRuntimeLedger.counts.entries} entries, ${report.agentRuntimeLedger.counts.promotionOperations} dry-run promotion op(s), replay deterministic=${report.agentRuntimeLedger.replay.deterministic ? \"yes\" : \"no\"}`,\n\t\t`Coverage: ${renderCoverage(report.coverage)}`,\n\t\t`Prompt context: ${report.promptContext.entries} entries (${report.promptContext.projectDocs} docs, ${report.promptContext.mcpServers} MCP servers)`,\n\t\t`Context manifest: ${report.contextManifest.entries} entries (${report.contextManifest.projectDocs} docs, ${report.contextManifest.mcpServers} MCP servers, ${report.contextManifest.mcpResources} resources, ${report.contextManifest.mcpPrompts} prompts, ${report.contextManifest.diagnostics} diagnostics)`,\n\t\t\"\",\n\t\tchalk.bold(\"Timeline preview\"),\n\t\t...renderTimelinePreview(report.timeline),\n\t];\n\tif (report.timeline.items.length > 12) {\n\t\tlines.push(` ... ${report.timeline.items.length - 12} more item(s)`);\n\t}\n\treturn lines.join(\"\\n\");\n}\n\nexport async function handleRunCommand(\n\tsubcommand?: string,\n\targs: string[] = [],\n\toptions: RunInspectOptions = {},\n): Promise<void> {\n\tif (\n\t\tsubcommand !== \"inspect\" &&\n\t\tsubcommand !== \"ledger\" &&\n\t\tsubcommand !== \"replay\" &&\n\t\tsubcommand !== \"promote\"\n\t) {\n\t\texitWithUsage(\"Run subcommand required.\");\n\t}\n\tconst sessionId = args.find((arg) => !arg.startsWith(\"-\"));\n\tif (!sessionId) {\n\t\texitWithUsage(\"Session id required.\");\n\t}\n\n\tconst report = await buildRunReconstructionReport(sessionId, options);\n\tif (!report) {\n\t\texitWithUsage(`Session not found: ${sessionId}`);\n\t}\n\n\tif (subcommand === \"ledger\") {\n\t\tconsole.log(JSON.stringify(report.agentRuntimeLedger, null, 2));\n\t\treturn;\n\t}\n\tif (subcommand === \"replay\") {\n\t\tconsole.log(JSON.stringify(report.agentRuntimeLedger.replay, null, 2));\n\t\treturn;\n\t}\n\tif (subcommand === \"promote\") {\n\t\tconsole.log(JSON.stringify(report.agentRuntimeLedger.promotion, null, 2));\n\t\treturn;\n\t}\n\n\tif (options.json || args.includes(\"--json\")) {\n\t\tconsole.log(JSON.stringify(report, null, 2));\n\t\treturn;\n\t}\n\n\tconsole.log(renderRunReconstruction(report));\n}\n\nexport const testing = {\n\tbuildRunReconstructionReport,\n\trenderRunReconstruction,\n};\n"]}
@@ -0,0 +1,7 @@
1
+ interface ScenarioCommandOptions {
2
+ json?: boolean;
3
+ junitPath?: string;
4
+ }
5
+ export declare function handleScenarioCommand(subcommand: string | undefined, args: string[], options?: ScenarioCommandOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scenario.ts"],"names":[],"mappings":"AAyBA,UAAU,sBAAsB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA8GD,wBAAsB,qBAAqB,CAC1C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,sBAA2B,GAClC,OAAO,CAAC,IAAI,CAAC,CA+If"}
@@ -0,0 +1,195 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname, isAbsolute, resolve } from "node:path";
3
+ import { MAESTRO_SCRIPTED_SCENARIO_SCHEMA } from "@evalops/contracts";
4
+ import chalk from "chalk";
5
+ import { parseScriptedScenario } from "../../agent/providers/scripted.js";
6
+ import { isRemoteScenarioSource, readScenarioJsonSource, scenarioSourceBaseDir, scenarioSourceLabel, } from "../../agent/scenario-source.js";
7
+ import { evaluateAgentTrajectoryScenario, loadAgentTrajectoryScenarioInputs, parseAgentTrajectoryScenario, scenarioResultToJunit, } from "../../server/agent-trajectory-scenarios.js";
8
+ import { evaluateScriptedScenario, scriptedScenarioResultToJunit, } from "../../server/scripted-scenario-runner.js";
9
+ function usage() {
10
+ console.error(chalk.red('Scenario command required. Try "maestro scenario validate <path>" or "maestro scenario run <path>".'));
11
+ process.exit(1);
12
+ }
13
+ function valueAfter(args, flag) {
14
+ const index = args.indexOf(flag);
15
+ if (index === -1)
16
+ return undefined;
17
+ return args[index + 1];
18
+ }
19
+ function positionalArgs(args) {
20
+ const result = [];
21
+ for (let index = 0; index < args.length; index++) {
22
+ const arg = args[index];
23
+ if (!arg)
24
+ continue;
25
+ if (arg === "--json")
26
+ continue;
27
+ if (arg === "--junit") {
28
+ index++;
29
+ continue;
30
+ }
31
+ if (arg.startsWith("-"))
32
+ continue;
33
+ result.push(arg);
34
+ }
35
+ return result;
36
+ }
37
+ function writeJunit(path, content) {
38
+ const fullPath = resolve(path);
39
+ mkdirSync(dirname(fullPath), { recursive: true });
40
+ writeFileSync(fullPath, content);
41
+ }
42
+ function isScriptedReplayJson(value) {
43
+ return (typeof value === "object" &&
44
+ value !== null &&
45
+ !Array.isArray(value) &&
46
+ value.schemaVersion ===
47
+ MAESTRO_SCRIPTED_SCENARIO_SCHEMA);
48
+ }
49
+ function outcomeMatchedExpected(result) {
50
+ return result.scenario.expectedOutcome === result.scenario.observedOutcome;
51
+ }
52
+ const AGENT_TRAJECTORY_SOURCE_PATH_FIELDS = [
53
+ "trajectoryPath",
54
+ "replayPath",
55
+ "scorePath",
56
+ "inspectionPath",
57
+ "workspaceManifestPath",
58
+ "baselineTrajectoryPath",
59
+ "candidateTrajectoryPath",
60
+ "baselineScorePath",
61
+ "candidateScorePath",
62
+ ];
63
+ function rejectRemoteTrajectoryScenarioRelativeSources(source, scenario) {
64
+ if (!isRemoteScenarioSource(source)) {
65
+ return;
66
+ }
67
+ for (const field of AGENT_TRAJECTORY_SOURCE_PATH_FIELDS) {
68
+ const path = scenario.source[field];
69
+ if (path && !isAbsolute(path)) {
70
+ throw new Error(`Remote scenario ${scenarioSourceLabel(source)} source.${field} must use an absolute path; relative paths are not supported for remote trajectory scenarios.`);
71
+ }
72
+ }
73
+ }
74
+ function rejectRemoteScriptedScenarioRelativeFileAssertions(source, scenario) {
75
+ if (!isRemoteScenarioSource(source)) {
76
+ return;
77
+ }
78
+ for (const assertion of scenario.assertions ?? []) {
79
+ if ((assertion.kind === "file_exists" ||
80
+ assertion.kind === "file_contents") &&
81
+ assertion.path &&
82
+ !isAbsolute(assertion.path)) {
83
+ throw new Error(`Remote scripted scenario ${scenarioSourceLabel(source)} assertion ${assertion.id} path must be absolute; relative file assertions are not supported for remote scripted scenarios.`);
84
+ }
85
+ }
86
+ }
87
+ export async function handleScenarioCommand(subcommand, args, options = {}) {
88
+ if (!subcommand || subcommand === "help") {
89
+ usage();
90
+ }
91
+ const positional = positionalArgs(args);
92
+ const scenarioPath = positional[0];
93
+ if (!scenarioPath) {
94
+ usage();
95
+ }
96
+ if (subcommand === "validate") {
97
+ const scenarioJson = await readScenarioJsonSource(scenarioPath);
98
+ const scenarioLabel = scenarioSourceLabel(scenarioPath);
99
+ const isScriptedReplay = isScriptedReplayJson(scenarioJson);
100
+ if (isScriptedReplay) {
101
+ const scenario = parseScriptedScenario(scenarioJson, scenarioLabel);
102
+ rejectRemoteScriptedScenarioRelativeFileAssertions(scenarioPath, scenario);
103
+ if (options.json || args.includes("--json")) {
104
+ console.log(JSON.stringify({
105
+ status: "pass",
106
+ schemaVersion: scenario.schemaVersion,
107
+ scenarioId: scenario.id,
108
+ frames: scenario.frames.length,
109
+ }, null, 2));
110
+ return;
111
+ }
112
+ console.log(chalk.green(`Validated scripted replay ${scenario.id} (${scenario.frames.length} frame(s)).`));
113
+ return;
114
+ }
115
+ const scenario = parseAgentTrajectoryScenario(scenarioJson, scenarioLabel);
116
+ rejectRemoteTrajectoryScenarioRelativeSources(scenarioPath, scenario);
117
+ if (options.json || args.includes("--json")) {
118
+ console.log(JSON.stringify({
119
+ status: "pass",
120
+ schemaVersion: scenario.schemaVersion,
121
+ scenarioId: scenario.id,
122
+ assertions: scenario.assertions.length,
123
+ }, null, 2));
124
+ return;
125
+ }
126
+ console.log(chalk.green(`Validated scenario ${scenario.id} (${scenario.assertions.length} assertion(s)).`));
127
+ return;
128
+ }
129
+ if (subcommand === "run") {
130
+ const scenarioJson = await readScenarioJsonSource(scenarioPath);
131
+ const scenarioLabel = scenarioSourceLabel(scenarioPath);
132
+ const baseDir = scenarioSourceBaseDir(scenarioPath);
133
+ const isScriptedReplay = isScriptedReplayJson(scenarioJson);
134
+ const junitPath = options.junitPath ?? valueAfter(args, "--junit");
135
+ if (isScriptedReplay) {
136
+ const scenario = parseScriptedScenario(scenarioJson, scenarioLabel);
137
+ rejectRemoteScriptedScenarioRelativeFileAssertions(scenarioPath, scenario);
138
+ const result = evaluateScriptedScenario(scenario, {
139
+ baseDir,
140
+ });
141
+ if (junitPath) {
142
+ writeJunit(junitPath, scriptedScenarioResultToJunit(result));
143
+ }
144
+ if (options.json || args.includes("--json")) {
145
+ console.log(JSON.stringify(result, null, 2));
146
+ }
147
+ else {
148
+ const summary = `${result.counts.passed}/${result.counts.assertions} passed, ${result.counts.failed} failed, ${result.counts.warnings} warning(s)`;
149
+ const color = outcomeMatchedExpected(result) ? chalk.green : chalk.red;
150
+ console.log(color(`Scripted scenario ${result.scenario.id}: ${summary}`));
151
+ for (const assertion of result.assertions) {
152
+ const marker = assertion.status === "pass"
153
+ ? chalk.green("PASS")
154
+ : assertion.status === "warn"
155
+ ? chalk.yellow("WARN")
156
+ : chalk.red("FAIL");
157
+ console.log(` ${marker} ${assertion.id}: ${assertion.message}`);
158
+ }
159
+ }
160
+ if (!outcomeMatchedExpected(result)) {
161
+ process.exit(1);
162
+ }
163
+ return;
164
+ }
165
+ const scenario = parseAgentTrajectoryScenario(scenarioJson, scenarioLabel);
166
+ rejectRemoteTrajectoryScenarioRelativeSources(scenarioPath, scenario);
167
+ const result = evaluateAgentTrajectoryScenario(scenario, loadAgentTrajectoryScenarioInputs(scenario, baseDir));
168
+ if (junitPath) {
169
+ writeJunit(junitPath, scenarioResultToJunit(result));
170
+ }
171
+ if (options.json || args.includes("--json")) {
172
+ console.log(JSON.stringify(result, null, 2));
173
+ }
174
+ else {
175
+ const summary = `${result.counts.passed}/${result.counts.assertions} passed, ${result.counts.failed} failed, ${result.counts.warnings} warning(s)`;
176
+ const color = outcomeMatchedExpected(result) ? chalk.green : chalk.red;
177
+ console.log(color(`Scenario ${result.scenario.id}: ${summary}`));
178
+ for (const assertion of result.assertions) {
179
+ const marker = assertion.status === "pass"
180
+ ? chalk.green("PASS")
181
+ : assertion.status === "warn"
182
+ ? chalk.yellow("WARN")
183
+ : chalk.red("FAIL");
184
+ console.log(` ${marker} ${assertion.id}: ${assertion.message}`);
185
+ }
186
+ }
187
+ if (!outcomeMatchedExpected(result)) {
188
+ process.exit(1);
189
+ }
190
+ return;
191
+ }
192
+ console.error(chalk.red(`Unknown scenario subcommand: ${subcommand}`));
193
+ usage();
194
+ }
195
+ //# sourceMappingURL=scenario.js.map