@evalops/maestro 0.10.18 → 0.10.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (922) hide show
  1. package/README.md +56 -1
  2. package/dist/agent/action-approval.d.ts +12 -2
  3. package/dist/agent/action-approval.d.ts.map +1 -1
  4. package/dist/agent/action-approval.js +19 -32
  5. package/dist/agent/action-approval.js.map +1 -1
  6. package/dist/agent/agent.d.ts +1 -0
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.js +26 -0
  9. package/dist/agent/agent.js.map +1 -1
  10. package/dist/agent/compaction.d.ts +2 -0
  11. package/dist/agent/compaction.d.ts.map +1 -1
  12. package/dist/agent/compaction.js +4 -2
  13. package/dist/agent/compaction.js.map +1 -1
  14. package/dist/agent/index.d.ts +1 -1
  15. package/dist/agent/index.d.ts.map +1 -1
  16. package/dist/agent/index.js +1 -1
  17. package/dist/agent/index.js.map +1 -1
  18. package/dist/agent/modes.d.ts +56 -4
  19. package/dist/agent/modes.d.ts.map +1 -1
  20. package/dist/agent/modes.js +163 -2
  21. package/dist/agent/modes.js.map +1 -1
  22. package/dist/agent/prompt-recovery.d.ts.map +1 -1
  23. package/dist/agent/prompt-recovery.js +1 -3
  24. package/dist/agent/prompt-recovery.js.map +1 -1
  25. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  26. package/dist/agent/providers/anthropic.js +9 -1
  27. package/dist/agent/providers/anthropic.js.map +1 -1
  28. package/dist/agent/providers/codex-app-server.d.ts +12 -0
  29. package/dist/agent/providers/codex-app-server.d.ts.map +1 -0
  30. package/dist/agent/providers/codex-app-server.js +788 -0
  31. package/dist/agent/providers/codex-app-server.js.map +1 -0
  32. package/dist/agent/providers/google-gemini-cli.js +14 -3
  33. package/dist/agent/providers/google.js +22 -3
  34. package/dist/agent/providers/scripted.d.ts +11 -0
  35. package/dist/agent/providers/scripted.d.ts.map +1 -0
  36. package/dist/agent/providers/scripted.js +399 -0
  37. package/dist/agent/providers/scripted.js.map +1 -0
  38. package/dist/agent/providers/vertex.js +14 -3
  39. package/dist/agent/scenario-source.d.ts +19 -0
  40. package/dist/agent/scenario-source.d.ts.map +1 -0
  41. package/dist/agent/scenario-source.js +112 -0
  42. package/dist/agent/scenario-source.js.map +1 -0
  43. package/dist/agent/subagent-specs.d.ts +1 -1
  44. package/dist/agent/subagent-specs.js +1 -1
  45. package/dist/agent/subagent-specs.js.map +1 -1
  46. package/dist/agent/swarm/executor.d.ts +25 -0
  47. package/dist/agent/swarm/executor.d.ts.map +1 -1
  48. package/dist/agent/swarm/executor.js +795 -20
  49. package/dist/agent/swarm/executor.js.map +1 -1
  50. package/dist/agent/swarm/runtime-events.d.ts +11 -0
  51. package/dist/agent/swarm/runtime-events.d.ts.map +1 -0
  52. package/dist/agent/swarm/runtime-events.js +26 -0
  53. package/dist/agent/swarm/runtime-events.js.map +1 -0
  54. package/dist/agent/swarm/types.d.ts +78 -0
  55. package/dist/agent/swarm/types.d.ts.map +1 -1
  56. package/dist/agent/swarm/types.js.map +1 -1
  57. package/dist/agent/tracing.d.ts +1 -1
  58. package/dist/agent/tracing.d.ts.map +1 -1
  59. package/dist/agent/tracing.js +17 -9
  60. package/dist/agent/tracing.js.map +1 -1
  61. package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
  62. package/dist/agent/transport/create-provider-stream.js +14 -0
  63. package/dist/agent/transport/create-provider-stream.js.map +1 -1
  64. package/dist/agent/transport/stable-stringify.d.ts +2 -0
  65. package/dist/agent/transport/stable-stringify.d.ts.map +1 -0
  66. package/dist/agent/transport/stable-stringify.js +14 -0
  67. package/dist/agent/transport/stable-stringify.js.map +1 -0
  68. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  69. package/dist/agent/transport/tool-execution-bridge.js +2 -15
  70. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  71. package/dist/agent/transport/tool-safety-pipeline.d.ts +5 -1
  72. package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
  73. package/dist/agent/transport/tool-safety-pipeline.js +184 -36
  74. package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
  75. package/dist/agent/transport.d.ts +8 -0
  76. package/dist/agent/transport.d.ts.map +1 -1
  77. package/dist/agent/transport.js +1613 -68
  78. package/dist/agent/transport.js.map +1 -1
  79. package/dist/agent/types.d.ts +170 -2
  80. package/dist/agent/types.d.ts.map +1 -1
  81. package/dist/agent/types.js.map +1 -1
  82. package/dist/api/enterprise-routes.d.ts.map +1 -1
  83. package/dist/api/enterprise-routes.js +34 -3
  84. package/dist/api/enterprise-routes.js.map +1 -1
  85. package/dist/app-server/in-process-client.d.ts +32 -0
  86. package/dist/app-server/in-process-client.d.ts.map +1 -0
  87. package/dist/app-server/in-process-client.js +73 -0
  88. package/dist/app-server/in-process-client.js.map +1 -0
  89. package/dist/app-server/session-api.d.ts +36 -0
  90. package/dist/app-server/session-api.d.ts.map +1 -0
  91. package/dist/app-server/session-api.js +713 -0
  92. package/dist/app-server/session-api.js.map +1 -0
  93. package/dist/approvals/platform-action-approval.d.ts +3 -1
  94. package/dist/approvals/platform-action-approval.d.ts.map +1 -1
  95. package/dist/approvals/platform-action-approval.js +16 -9
  96. package/dist/approvals/platform-action-approval.js.map +1 -1
  97. package/dist/approvals/service-client.d.ts.map +1 -1
  98. package/dist/approvals/service-client.js +7 -7
  99. package/dist/approvals/service-client.js.map +1 -1
  100. package/dist/audit/logger.d.ts +4 -4
  101. package/dist/bootstrap/agent-creation-setup.d.ts +4 -0
  102. package/dist/bootstrap/agent-creation-setup.d.ts.map +1 -1
  103. package/dist/bootstrap/agent-creation-setup.js +3 -1
  104. package/dist/bootstrap/agent-creation-setup.js.map +1 -1
  105. package/dist/bootstrap/auth-setup.js +1 -1
  106. package/dist/bootstrap/auth-setup.js.map +1 -1
  107. package/dist/bootstrap/event-subscriptions-setup.d.ts +6 -0
  108. package/dist/bootstrap/event-subscriptions-setup.d.ts.map +1 -1
  109. package/dist/bootstrap/event-subscriptions-setup.js +26 -2
  110. package/dist/bootstrap/event-subscriptions-setup.js.map +1 -1
  111. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  112. package/dist/bootstrap/model-resolution-setup.js +4 -1
  113. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  114. package/dist/bootstrap/tools-setup.d.ts +2 -1
  115. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  116. package/dist/bootstrap/tools-setup.js +5 -1
  117. package/dist/bootstrap/tools-setup.js.map +1 -1
  118. package/dist/cli/args.d.ts +9 -1
  119. package/dist/cli/args.d.ts.map +1 -1
  120. package/dist/cli/args.js +130 -5
  121. package/dist/cli/args.js.map +1 -1
  122. package/dist/cli/commands/a2a.d.ts +9 -0
  123. package/dist/cli/commands/a2a.d.ts.map +1 -0
  124. package/dist/cli/commands/a2a.js +1714 -0
  125. package/dist/cli/commands/a2a.js.map +1 -0
  126. package/dist/cli/commands/agents.d.ts +16 -2
  127. package/dist/cli/commands/agents.d.ts.map +1 -1
  128. package/dist/cli/commands/agents.js +223 -35
  129. package/dist/cli/commands/agents.js.map +1 -1
  130. package/dist/cli/commands/codex.d.ts +1 -1
  131. package/dist/cli/commands/codex.d.ts.map +1 -1
  132. package/dist/cli/commands/codex.js +145 -39
  133. package/dist/cli/commands/codex.js.map +1 -1
  134. package/dist/cli/commands/context.d.ts +10 -0
  135. package/dist/cli/commands/context.d.ts.map +1 -0
  136. package/dist/cli/commands/context.js +176 -0
  137. package/dist/cli/commands/context.js.map +1 -0
  138. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  139. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  140. package/dist/cli/commands/hosted-runner.js +9 -1
  141. package/dist/cli/commands/hosted-runner.js.map +1 -1
  142. package/dist/cli/commands/modes.d.ts +8 -0
  143. package/dist/cli/commands/modes.d.ts.map +1 -0
  144. package/dist/cli/commands/modes.js +151 -0
  145. package/dist/cli/commands/modes.js.map +1 -0
  146. package/dist/cli/commands/operating-plane.d.ts +14 -0
  147. package/dist/cli/commands/operating-plane.d.ts.map +1 -0
  148. package/dist/cli/commands/operating-plane.js +160 -0
  149. package/dist/cli/commands/operating-plane.js.map +1 -0
  150. package/dist/cli/commands/run.d.ts +87 -0
  151. package/dist/cli/commands/run.d.ts.map +1 -0
  152. package/dist/cli/commands/run.js +356 -0
  153. package/dist/cli/commands/run.js.map +1 -0
  154. package/dist/cli/commands/scenario.d.ts +7 -0
  155. package/dist/cli/commands/scenario.d.ts.map +1 -0
  156. package/dist/cli/commands/scenario.js +195 -0
  157. package/dist/cli/commands/scenario.js.map +1 -0
  158. package/dist/cli/commands/skill.d.ts +7 -0
  159. package/dist/cli/commands/skill.d.ts.map +1 -0
  160. package/dist/cli/commands/skill.js +286 -0
  161. package/dist/cli/commands/skill.js.map +1 -0
  162. package/dist/cli/headless-protocol.d.ts +55 -1
  163. package/dist/cli/headless-protocol.d.ts.map +1 -1
  164. package/dist/cli/headless-protocol.js +446 -7
  165. package/dist/cli/headless-protocol.js.map +1 -1
  166. package/dist/cli/headless-runtime-selection.d.ts +38 -0
  167. package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
  168. package/dist/cli/headless-runtime-selection.js +48 -0
  169. package/dist/cli/headless-runtime-selection.js.map +1 -0
  170. package/dist/cli/headless.d.ts +5 -1
  171. package/dist/cli/headless.d.ts.map +1 -1
  172. package/dist/cli/headless.js +11 -1
  173. package/dist/cli/headless.js.map +1 -1
  174. package/dist/cli/help.d.ts +3 -1
  175. package/dist/cli/help.d.ts.map +1 -1
  176. package/dist/cli/help.js +135 -30
  177. package/dist/cli/help.js.map +1 -1
  178. package/dist/cli/system-prompt.d.ts +22 -4
  179. package/dist/cli/system-prompt.d.ts.map +1 -1
  180. package/dist/cli/system-prompt.js +224 -127
  181. package/dist/cli/system-prompt.js.map +1 -1
  182. package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
  183. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
  184. package/dist/cli-tui/commands/a2a-handlers.js +160 -0
  185. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
  186. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  187. package/dist/cli-tui/commands/command-catalog.js +15 -0
  188. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  189. package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
  190. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
  191. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
  192. package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
  193. package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
  194. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
  195. package/dist/cli-tui/commands/mcp-handlers.js +6 -5
  196. package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
  197. package/dist/cli-tui/commands/types.d.ts +1 -0
  198. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  199. package/dist/cli-tui/commands/types.js.map +1 -1
  200. package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
  201. package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
  202. package/dist/cli-tui/commands/utility-handlers.js +45 -6
  203. package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
  204. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  205. package/dist/cli-tui/run/run-shell-command.js +14 -5
  206. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  207. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  208. package/dist/cli-tui/run/streaming-shell-command.js +14 -5
  209. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  210. package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
  211. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  212. package/dist/cli-tui/selectors/model-selector.js +6 -2
  213. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  214. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  215. package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
  216. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  217. package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
  218. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
  219. package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
  220. package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
  221. package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
  222. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  223. package/dist/cli-tui/utils/runtime-badges.js +7 -0
  224. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  225. package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
  226. package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
  227. package/dist/cli-tui/utils/text-formatting.js +5 -0
  228. package/dist/cli-tui/utils/text-formatting.js.map +1 -1
  229. package/dist/cli.js +49158 -26161
  230. package/dist/cli.js.map +1 -1
  231. package/dist/codex/app-server-client.d.ts +139 -0
  232. package/dist/codex/app-server-client.d.ts.map +1 -0
  233. package/dist/codex/app-server-client.js +352 -0
  234. package/dist/codex/app-server-client.js.map +1 -0
  235. package/dist/codex/compatibility.d.ts +48 -0
  236. package/dist/codex/compatibility.d.ts.map +1 -0
  237. package/dist/codex/compatibility.js +344 -0
  238. package/dist/codex/compatibility.js.map +1 -0
  239. package/dist/codex/subagent-dispatch-table.d.ts +66 -0
  240. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
  241. package/dist/codex/subagent-dispatch-table.js +127 -0
  242. package/dist/codex/subagent-dispatch-table.js.map +1 -0
  243. package/dist/codex/subagent-workgraph.d.ts +56 -0
  244. package/dist/codex/subagent-workgraph.d.ts.map +1 -0
  245. package/dist/codex/subagent-workgraph.js +89 -0
  246. package/dist/codex/subagent-workgraph.js.map +1 -0
  247. package/dist/config/constants.d.ts +3 -1
  248. package/dist/config/constants.d.ts.map +1 -1
  249. package/dist/config/constants.js +9 -0
  250. package/dist/config/constants.js.map +1 -1
  251. package/dist/config/feature-flags.d.ts +10 -1
  252. package/dist/config/feature-flags.d.ts.map +1 -1
  253. package/dist/config/feature-flags.js +17 -6
  254. package/dist/config/feature-flags.js.map +1 -1
  255. package/dist/config/index.d.ts +1 -1
  256. package/dist/config/index.d.ts.map +1 -1
  257. package/dist/config/index.js +1 -1
  258. package/dist/config/index.js.map +1 -1
  259. package/dist/config/toml-config.d.ts +32 -0
  260. package/dist/config/toml-config.d.ts.map +1 -1
  261. package/dist/config/toml-config.js +152 -43
  262. package/dist/config/toml-config.js.map +1 -1
  263. package/dist/connectors/service-client.d.ts.map +1 -1
  264. package/dist/connectors/service-client.js +4 -7
  265. package/dist/connectors/service-client.js.map +1 -1
  266. package/dist/context/manifest-types.d.ts +59 -0
  267. package/dist/context/manifest-types.d.ts.map +1 -0
  268. package/dist/context/manifest-types.js +2 -0
  269. package/dist/context/manifest-types.js.map +1 -0
  270. package/dist/context/manifest.d.ts +16 -0
  271. package/dist/context/manifest.d.ts.map +1 -0
  272. package/dist/context/manifest.js +503 -0
  273. package/dist/context/manifest.js.map +1 -0
  274. package/dist/db/schema.d.ts +10 -1
  275. package/dist/db/schema.d.ts.map +1 -1
  276. package/dist/db/schema.js.map +1 -1
  277. package/dist/evalops/env-aliases.d.ts +13 -0
  278. package/dist/evalops/env-aliases.d.ts.map +1 -0
  279. package/dist/evalops/env-aliases.js +60 -0
  280. package/dist/evalops/env-aliases.js.map +1 -0
  281. package/dist/evalops/managed-context.d.ts.map +1 -1
  282. package/dist/evalops/managed-context.js +28 -62
  283. package/dist/evalops/managed-context.js.map +1 -1
  284. package/dist/guardian/config.d.ts.map +1 -1
  285. package/dist/guardian/config.js +1 -0
  286. package/dist/guardian/config.js.map +1 -1
  287. package/dist/guardian/runner.d.ts +2 -0
  288. package/dist/guardian/runner.d.ts.map +1 -1
  289. package/dist/guardian/runner.js +105 -2
  290. package/dist/guardian/runner.js.map +1 -1
  291. package/dist/guardian/types.d.ts +1 -0
  292. package/dist/guardian/types.d.ts.map +1 -1
  293. package/dist/guardian/types.js.map +1 -1
  294. package/dist/index.d.ts +5 -1
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +5 -1
  297. package/dist/index.js.map +1 -1
  298. package/dist/main.d.ts.map +1 -1
  299. package/dist/main.js +267 -55
  300. package/dist/main.js.map +1 -1
  301. package/dist/mcp/config.d.ts.map +1 -1
  302. package/dist/mcp/config.js +89 -7
  303. package/dist/mcp/config.js.map +1 -1
  304. package/dist/mcp/manager.d.ts +5 -1
  305. package/dist/mcp/manager.d.ts.map +1 -1
  306. package/dist/mcp/manager.js +159 -4
  307. package/dist/mcp/manager.js.map +1 -1
  308. package/dist/mcp/platform-plugin.d.ts.map +1 -1
  309. package/dist/mcp/platform-plugin.js +9 -26
  310. package/dist/mcp/platform-plugin.js.map +1 -1
  311. package/dist/mcp/schema.d.ts +15 -0
  312. package/dist/mcp/schema.d.ts.map +1 -1
  313. package/dist/mcp/schema.js +24 -0
  314. package/dist/mcp/schema.js.map +1 -1
  315. package/dist/mcp/tool-bridge.d.ts +39 -10
  316. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  317. package/dist/mcp/tool-bridge.js +101 -24
  318. package/dist/mcp/tool-bridge.js.map +1 -1
  319. package/dist/mcp/types.d.ts +27 -0
  320. package/dist/mcp/types.d.ts.map +1 -1
  321. package/dist/mcp/types.js.map +1 -1
  322. package/dist/mcp/workspace-trust.d.ts +10 -0
  323. package/dist/mcp/workspace-trust.d.ts.map +1 -0
  324. package/dist/mcp/workspace-trust.js +295 -0
  325. package/dist/mcp/workspace-trust.js.map +1 -0
  326. package/dist/memory/service-client.d.ts +1 -0
  327. package/dist/memory/service-client.d.ts.map +1 -1
  328. package/dist/memory/service-client.js +194 -9
  329. package/dist/memory/service-client.js.map +1 -1
  330. package/dist/models/builtin.d.ts.map +1 -1
  331. package/dist/models/builtin.js +66 -25
  332. package/dist/models/builtin.js.map +1 -1
  333. package/dist/models/config-loader.d.ts +10 -10
  334. package/dist/models/config-loader.d.ts.map +1 -1
  335. package/dist/models/config-loader.js +2 -0
  336. package/dist/models/config-loader.js.map +1 -1
  337. package/dist/models/registry.d.ts +1 -0
  338. package/dist/models/registry.d.ts.map +1 -1
  339. package/dist/models/registry.js +1 -0
  340. package/dist/models/registry.js.map +1 -1
  341. package/dist/oauth/device-identity.d.ts.map +1 -1
  342. package/dist/oauth/device-identity.js +1 -3
  343. package/dist/oauth/device-identity.js.map +1 -1
  344. package/dist/oauth/evalops.d.ts.map +1 -1
  345. package/dist/oauth/evalops.js +2 -5
  346. package/dist/oauth/evalops.js.map +1 -1
  347. package/dist/opentelemetry.d.ts.map +1 -1
  348. package/dist/opentelemetry.js +12 -12
  349. package/dist/opentelemetry.js.map +1 -1
  350. package/dist/package-version.d.ts +2 -0
  351. package/dist/package-version.d.ts.map +1 -0
  352. package/dist/package-version.js +11 -0
  353. package/dist/package-version.js.map +1 -0
  354. package/dist/packages/constants.d.ts +3 -0
  355. package/dist/packages/constants.d.ts.map +1 -0
  356. package/dist/packages/constants.js +3 -0
  357. package/dist/packages/constants.js.map +1 -0
  358. package/dist/packages/inspection.d.ts.map +1 -1
  359. package/dist/packages/inspection.js +2 -1
  360. package/dist/packages/inspection.js.map +1 -1
  361. package/dist/packages/search.d.ts.map +1 -1
  362. package/dist/packages/search.js +1 -1
  363. package/dist/packages/search.js.map +1 -1
  364. package/dist/platform/a2a-capability-market.d.ts +21 -0
  365. package/dist/platform/a2a-capability-market.d.ts.map +1 -0
  366. package/dist/platform/a2a-capability-market.js +176 -0
  367. package/dist/platform/a2a-capability-market.js.map +1 -0
  368. package/dist/platform/a2a-client.d.ts +119 -0
  369. package/dist/platform/a2a-client.d.ts.map +1 -1
  370. package/dist/platform/a2a-client.js +413 -24
  371. package/dist/platform/a2a-client.js.map +1 -1
  372. package/dist/platform/a2a-fleet.d.ts +41 -0
  373. package/dist/platform/a2a-fleet.d.ts.map +1 -0
  374. package/dist/platform/a2a-fleet.js +109 -0
  375. package/dist/platform/a2a-fleet.js.map +1 -0
  376. package/dist/platform/a2a-maestro-peer.d.ts +20 -0
  377. package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
  378. package/dist/platform/a2a-maestro-peer.js +176 -0
  379. package/dist/platform/a2a-maestro-peer.js.map +1 -0
  380. package/dist/platform/a2a-peer-pairing.d.ts +107 -0
  381. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
  382. package/dist/platform/a2a-peer-pairing.js +489 -0
  383. package/dist/platform/a2a-peer-pairing.js.map +1 -0
  384. package/dist/platform/a2a-peer-registry.d.ts +68 -0
  385. package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
  386. package/dist/platform/a2a-peer-registry.js +320 -0
  387. package/dist/platform/a2a-peer-registry.js.map +1 -0
  388. package/dist/platform/a2a-task-ledger.d.ts +86 -0
  389. package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
  390. package/dist/platform/a2a-task-ledger.js +546 -0
  391. package/dist/platform/a2a-task-ledger.js.map +1 -0
  392. package/dist/platform/a2a-work-graph.d.ts +43 -0
  393. package/dist/platform/a2a-work-graph.d.ts.map +1 -0
  394. package/dist/platform/a2a-work-graph.js +267 -0
  395. package/dist/platform/a2a-work-graph.js.map +1 -0
  396. package/dist/platform/agent-registry-client.d.ts +327 -0
  397. package/dist/platform/agent-registry-client.d.ts.map +1 -0
  398. package/dist/platform/agent-registry-client.js +803 -0
  399. package/dist/platform/agent-registry-client.js.map +1 -0
  400. package/dist/platform/agent-runtime-client.d.ts +135 -1
  401. package/dist/platform/agent-runtime-client.d.ts.map +1 -1
  402. package/dist/platform/agent-runtime-client.js +467 -10
  403. package/dist/platform/agent-runtime-client.js.map +1 -1
  404. package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
  405. package/dist/platform/cerebro-facts-client.js +4 -7
  406. package/dist/platform/cerebro-facts-client.js.map +1 -1
  407. package/dist/platform/client.d.ts.map +1 -1
  408. package/dist/platform/client.js +3 -12
  409. package/dist/platform/client.js.map +1 -1
  410. package/dist/platform/core-services.d.ts +68 -0
  411. package/dist/platform/core-services.d.ts.map +1 -1
  412. package/dist/platform/core-services.js +68 -0
  413. package/dist/platform/core-services.js.map +1 -1
  414. package/dist/platform/fermata-eval-client.d.ts +195 -0
  415. package/dist/platform/fermata-eval-client.d.ts.map +1 -0
  416. package/dist/platform/fermata-eval-client.js +146 -0
  417. package/dist/platform/fermata-eval-client.js.map +1 -0
  418. package/dist/platform/fermata-scenario-suite.d.ts +99 -0
  419. package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
  420. package/dist/platform/fermata-scenario-suite.js +459 -0
  421. package/dist/platform/fermata-scenario-suite.js.map +1 -0
  422. package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
  423. package/dist/platform/maestro-timeline-client.js +5 -11
  424. package/dist/platform/maestro-timeline-client.js.map +1 -1
  425. package/dist/platform/operating-plane-client.d.ts +156 -0
  426. package/dist/platform/operating-plane-client.d.ts.map +1 -0
  427. package/dist/platform/operating-plane-client.js +131 -0
  428. package/dist/platform/operating-plane-client.js.map +1 -0
  429. package/dist/platform/operating-plane-summary.d.ts +47 -0
  430. package/dist/platform/operating-plane-summary.d.ts.map +1 -0
  431. package/dist/platform/operating-plane-summary.js +209 -0
  432. package/dist/platform/operating-plane-summary.js.map +1 -0
  433. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  434. package/dist/platform/tool-execution-client.js +4 -11
  435. package/dist/platform/tool-execution-client.js.map +1 -1
  436. package/dist/prompts/service-client.d.ts.map +1 -1
  437. package/dist/prompts/service-client.js +3 -5
  438. package/dist/prompts/service-client.js.map +1 -1
  439. package/dist/prompts/system-prompt.d.ts +3 -0
  440. package/dist/prompts/system-prompt.d.ts.map +1 -1
  441. package/dist/prompts/system-prompt.js +13 -3
  442. package/dist/prompts/system-prompt.js.map +1 -1
  443. package/dist/prompts/types.d.ts +2 -0
  444. package/dist/prompts/types.d.ts.map +1 -1
  445. package/dist/prompts/types.js.map +1 -1
  446. package/dist/providers/api-keys.d.ts +1 -1
  447. package/dist/providers/api-keys.d.ts.map +1 -1
  448. package/dist/providers/api-keys.js +2 -1
  449. package/dist/providers/api-keys.js.map +1 -1
  450. package/dist/providers/auth.d.ts.map +1 -1
  451. package/dist/providers/auth.js +48 -25
  452. package/dist/providers/auth.js.map +1 -1
  453. package/dist/remote-runner/attach-client.d.ts.map +1 -1
  454. package/dist/remote-runner/attach-client.js +1 -0
  455. package/dist/remote-runner/attach-client.js.map +1 -1
  456. package/dist/remote-runner/client.d.ts.map +1 -1
  457. package/dist/remote-runner/client.js +4 -7
  458. package/dist/remote-runner/client.js.map +1 -1
  459. package/dist/rpc/rpc-types.d.ts.map +1 -1
  460. package/dist/rpc/rpc-types.js +1 -0
  461. package/dist/rpc/rpc-types.js.map +1 -1
  462. package/dist/safety/action-firewall.d.ts.map +1 -1
  463. package/dist/safety/action-firewall.js +69 -6
  464. package/dist/safety/action-firewall.js.map +1 -1
  465. package/dist/safety/attack-patterns.d.ts.map +1 -1
  466. package/dist/safety/attack-patterns.js +31 -14
  467. package/dist/safety/attack-patterns.js.map +1 -1
  468. package/dist/safety/bash-parser.d.ts.map +1 -1
  469. package/dist/safety/bash-parser.js +4 -3
  470. package/dist/safety/bash-parser.js.map +1 -1
  471. package/dist/safety/execpolicy.d.ts +15 -3
  472. package/dist/safety/execpolicy.d.ts.map +1 -1
  473. package/dist/safety/execpolicy.js +248 -37
  474. package/dist/safety/execpolicy.js.map +1 -1
  475. package/dist/safety/governance-service-client.d.ts.map +1 -1
  476. package/dist/safety/governance-service-client.js +4 -7
  477. package/dist/safety/governance-service-client.js.map +1 -1
  478. package/dist/safety/guarded-files.d.ts +34 -0
  479. package/dist/safety/guarded-files.d.ts.map +1 -0
  480. package/dist/safety/guarded-files.js +372 -0
  481. package/dist/safety/guarded-files.js.map +1 -0
  482. package/dist/safety/loop-detector.d.ts.map +1 -1
  483. package/dist/safety/loop-detector.js +6 -1
  484. package/dist/safety/loop-detector.js.map +1 -1
  485. package/dist/safety/permission-profile.d.ts +47 -0
  486. package/dist/safety/permission-profile.d.ts.map +1 -0
  487. package/dist/safety/permission-profile.js +349 -0
  488. package/dist/safety/permission-profile.js.map +1 -0
  489. package/dist/safety/safety-middleware.d.ts +5 -1
  490. package/dist/safety/safety-middleware.d.ts.map +1 -1
  491. package/dist/safety/safety-middleware.js +3 -2
  492. package/dist/safety/safety-middleware.js.map +1 -1
  493. package/dist/safety/suspicious-patterns.d.ts.map +1 -1
  494. package/dist/safety/suspicious-patterns.js +12 -7
  495. package/dist/safety/suspicious-patterns.js.map +1 -1
  496. package/dist/safety/tool-categorization.js +1 -1
  497. package/dist/safety/tool-categorization.js.map +1 -1
  498. package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
  499. package/dist/safety/validators/path-policy-validator.js +7 -0
  500. package/dist/safety/validators/path-policy-validator.js.map +1 -1
  501. package/dist/sandbox/index.d.ts +6 -1
  502. package/dist/sandbox/index.d.ts.map +1 -1
  503. package/dist/sandbox/index.js +30 -4
  504. package/dist/sandbox/index.js.map +1 -1
  505. package/dist/sandbox/native-sandbox.d.ts +3 -0
  506. package/dist/sandbox/native-sandbox.d.ts.map +1 -1
  507. package/dist/sandbox/native-sandbox.js +139 -18
  508. package/dist/sandbox/native-sandbox.js.map +1 -1
  509. package/dist/sentry.d.ts +17 -0
  510. package/dist/sentry.d.ts.map +1 -0
  511. package/dist/sentry.js +91 -0
  512. package/dist/sentry.js.map +1 -0
  513. package/dist/server/agent-runtime-ledger.d.ts +141 -0
  514. package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
  515. package/dist/server/agent-runtime-ledger.js +334 -0
  516. package/dist/server/agent-runtime-ledger.js.map +1 -0
  517. package/dist/server/agent-trajectory-inspection.d.ts +104 -0
  518. package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
  519. package/dist/server/agent-trajectory-inspection.js +168 -0
  520. package/dist/server/agent-trajectory-inspection.js.map +1 -0
  521. package/dist/server/agent-trajectory-replay.d.ts +56 -0
  522. package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
  523. package/dist/server/agent-trajectory-replay.js +214 -0
  524. package/dist/server/agent-trajectory-replay.js.map +1 -0
  525. package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
  526. package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
  527. package/dist/server/agent-trajectory-scenarios.js +822 -0
  528. package/dist/server/agent-trajectory-scenarios.js.map +1 -0
  529. package/dist/server/agent-trajectory-scorers.d.ts +61 -0
  530. package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
  531. package/dist/server/agent-trajectory-scorers.js +162 -0
  532. package/dist/server/agent-trajectory-scorers.js.map +1 -0
  533. package/dist/server/agent-trajectory-validation.d.ts +7 -0
  534. package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
  535. package/dist/server/agent-trajectory-validation.js +101 -0
  536. package/dist/server/agent-trajectory-validation.js.map +1 -0
  537. package/dist/server/agent-trajectory.d.ts +50 -0
  538. package/dist/server/agent-trajectory.d.ts.map +1 -0
  539. package/dist/server/agent-trajectory.js +159 -0
  540. package/dist/server/agent-trajectory.js.map +1 -0
  541. package/dist/server/app-context.d.ts +18 -0
  542. package/dist/server/app-context.d.ts.map +1 -1
  543. package/dist/server/app-context.js.map +1 -1
  544. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  545. package/dist/server/handlers/headless-sessions.js +64 -27
  546. package/dist/server/handlers/headless-sessions.js.map +1 -1
  547. package/dist/server/handlers/health.d.ts +6 -0
  548. package/dist/server/handlers/health.d.ts.map +1 -1
  549. package/dist/server/handlers/health.js +6 -0
  550. package/dist/server/handlers/health.js.map +1 -1
  551. package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
  552. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  553. package/dist/server/handlers/hosted-runner-drain.js +309 -18
  554. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  555. package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
  556. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
  557. package/dist/server/handlers/hosted-runner-identity.js +43 -0
  558. package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
  559. package/dist/server/handlers/mode.d.ts.map +1 -1
  560. package/dist/server/handlers/mode.js +3 -1
  561. package/dist/server/handlers/mode.js.map +1 -1
  562. package/dist/server/handlers/pending-requests.d.ts.map +1 -1
  563. package/dist/server/handlers/pending-requests.js +336 -51
  564. package/dist/server/handlers/pending-requests.js.map +1 -1
  565. package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
  566. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
  567. package/dist/server/handlers/platform-a2a-push.js +136 -0
  568. package/dist/server/handlers/platform-a2a-push.js.map +1 -0
  569. package/dist/server/handlers/sessions.d.ts.map +1 -1
  570. package/dist/server/handlers/sessions.js +21 -1
  571. package/dist/server/handlers/sessions.js.map +1 -1
  572. package/dist/server/headless-runtime-service.d.ts +9 -2
  573. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  574. package/dist/server/headless-runtime-service.js +39 -0
  575. package/dist/server/headless-runtime-service.js.map +1 -1
  576. package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
  577. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
  578. package/dist/server/hosted-agent-runtime-progress.js +1650 -0
  579. package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
  580. package/dist/server/hosted-runner-lease.d.ts +41 -0
  581. package/dist/server/hosted-runner-lease.d.ts.map +1 -0
  582. package/dist/server/hosted-runner-lease.js +140 -0
  583. package/dist/server/hosted-runner-lease.js.map +1 -0
  584. package/dist/server/hosted-session-manager.d.ts +16 -8
  585. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  586. package/dist/server/hosted-session-manager.js +98 -76
  587. package/dist/server/hosted-session-manager.js.map +1 -1
  588. package/dist/server/junit-xml.d.ts +2 -0
  589. package/dist/server/junit-xml.d.ts.map +1 -0
  590. package/dist/server/junit-xml.js +9 -0
  591. package/dist/server/junit-xml.js.map +1 -0
  592. package/dist/server/routes.d.ts.map +1 -1
  593. package/dist/server/routes.js +6 -0
  594. package/dist/server/routes.js.map +1 -1
  595. package/dist/server/scenario-recorder.d.ts +56 -0
  596. package/dist/server/scenario-recorder.d.ts.map +1 -0
  597. package/dist/server/scenario-recorder.js +109 -0
  598. package/dist/server/scenario-recorder.js.map +1 -0
  599. package/dist/server/scripted-scenario-runner.d.ts +46 -0
  600. package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
  601. package/dist/server/scripted-scenario-runner.js +190 -0
  602. package/dist/server/scripted-scenario-runner.js.map +1 -0
  603. package/dist/server/server-middlewares.d.ts +6 -2
  604. package/dist/server/server-middlewares.d.ts.map +1 -1
  605. package/dist/server/server-middlewares.js +8 -2
  606. package/dist/server/server-middlewares.js.map +1 -1
  607. package/dist/server/server-request-manager.d.ts +9 -1
  608. package/dist/server/server-request-manager.d.ts.map +1 -1
  609. package/dist/server/server-request-manager.js +49 -4
  610. package/dist/server/server-request-manager.js.map +1 -1
  611. package/dist/services/intelligent-router/service.d.ts +2 -0
  612. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  613. package/dist/services/intelligent-router/service.js +4 -0
  614. package/dist/services/intelligent-router/service.js.map +1 -1
  615. package/dist/services/service-authority.d.ts +25 -0
  616. package/dist/services/service-authority.d.ts.map +1 -0
  617. package/dist/services/service-authority.js +143 -0
  618. package/dist/services/service-authority.js.map +1 -0
  619. package/dist/services/workspace-config/service.d.ts +2 -0
  620. package/dist/services/workspace-config/service.d.ts.map +1 -1
  621. package/dist/services/workspace-config/service.js +4 -0
  622. package/dist/services/workspace-config/service.js.map +1 -1
  623. package/dist/session/manager.d.ts +8 -2
  624. package/dist/session/manager.d.ts.map +1 -1
  625. package/dist/session/manager.js +19 -4
  626. package/dist/session/manager.js.map +1 -1
  627. package/dist/session/session-branch.d.ts.map +1 -1
  628. package/dist/session/session-branch.js +5 -1
  629. package/dist/session/session-branch.js.map +1 -1
  630. package/dist/session/session-catalog.d.ts +7 -2
  631. package/dist/session/session-catalog.d.ts.map +1 -1
  632. package/dist/session/session-catalog.js +13 -2
  633. package/dist/session/session-catalog.js.map +1 -1
  634. package/dist/session/session-context.d.ts +6 -2
  635. package/dist/session/session-context.d.ts.map +1 -1
  636. package/dist/session/session-context.js +44 -4
  637. package/dist/session/session-context.js.map +1 -1
  638. package/dist/session/session-graph-projection.d.ts +32 -0
  639. package/dist/session/session-graph-projection.d.ts.map +1 -0
  640. package/dist/session/session-graph-projection.js +133 -0
  641. package/dist/session/session-graph-projection.js.map +1 -0
  642. package/dist/session/types.d.ts +18 -0
  643. package/dist/session/types.d.ts.map +1 -1
  644. package/dist/session/types.js +8 -0
  645. package/dist/session/types.js.map +1 -1
  646. package/dist/session/wire-format.generated.d.ts +3 -0
  647. package/dist/session/wire-format.generated.d.ts.map +1 -1
  648. package/dist/session/wire-format.generated.js +20 -0
  649. package/dist/session/wire-format.generated.js.map +1 -1
  650. package/dist/skills/eval-harness.d.ts +38 -0
  651. package/dist/skills/eval-harness.d.ts.map +1 -0
  652. package/dist/skills/eval-harness.js +112 -0
  653. package/dist/skills/eval-harness.js.map +1 -0
  654. package/dist/skills/index.d.ts +5 -1
  655. package/dist/skills/index.d.ts.map +1 -1
  656. package/dist/skills/index.js +5 -1
  657. package/dist/skills/index.js.map +1 -1
  658. package/dist/skills/linter.d.ts +36 -0
  659. package/dist/skills/linter.d.ts.map +1 -0
  660. package/dist/skills/linter.js +398 -0
  661. package/dist/skills/linter.js.map +1 -0
  662. package/dist/skills/loader.d.ts +36 -6
  663. package/dist/skills/loader.d.ts.map +1 -1
  664. package/dist/skills/loader.js +169 -86
  665. package/dist/skills/loader.js.map +1 -1
  666. package/dist/skills/package-contract.d.ts +45 -0
  667. package/dist/skills/package-contract.d.ts.map +1 -0
  668. package/dist/skills/package-contract.js +153 -0
  669. package/dist/skills/package-contract.js.map +1 -0
  670. package/dist/skills/runtime-activation.d.ts +68 -0
  671. package/dist/skills/runtime-activation.d.ts.map +1 -0
  672. package/dist/skills/runtime-activation.js +228 -0
  673. package/dist/skills/runtime-activation.js.map +1 -0
  674. package/dist/skills/service-client.d.ts.map +1 -1
  675. package/dist/skills/service-client.js +3 -4
  676. package/dist/skills/service-client.js.map +1 -1
  677. package/dist/skills/tool.d.ts.map +1 -1
  678. package/dist/skills/tool.js +2 -0
  679. package/dist/skills/tool.js.map +1 -1
  680. package/dist/skills/types.d.ts +14 -0
  681. package/dist/skills/types.d.ts.map +1 -1
  682. package/dist/skills/types.js.map +1 -1
  683. package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
  684. package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
  685. package/dist/telemetry/agent-operating-plane-context.js +54 -0
  686. package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
  687. package/dist/telemetry/beacon.d.ts +24 -0
  688. package/dist/telemetry/beacon.d.ts.map +1 -0
  689. package/dist/telemetry/beacon.js +115 -0
  690. package/dist/telemetry/beacon.js.map +1 -0
  691. package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
  692. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
  693. package/dist/telemetry/cli-command-aggregator.js +251 -0
  694. package/dist/telemetry/cli-command-aggregator.js.map +1 -0
  695. package/dist/telemetry/cli-startup.d.ts +21 -0
  696. package/dist/telemetry/cli-startup.d.ts.map +1 -0
  697. package/dist/telemetry/cli-startup.js +83 -0
  698. package/dist/telemetry/cli-startup.js.map +1 -0
  699. package/dist/telemetry/disablement.d.ts +13 -0
  700. package/dist/telemetry/disablement.d.ts.map +1 -0
  701. package/dist/telemetry/disablement.js +19 -0
  702. package/dist/telemetry/disablement.js.map +1 -0
  703. package/dist/telemetry/index.d.ts +6 -2
  704. package/dist/telemetry/index.d.ts.map +1 -1
  705. package/dist/telemetry/index.js +6 -2
  706. package/dist/telemetry/index.js.map +1 -1
  707. package/dist/telemetry/maestro-event-bus.d.ts +52 -0
  708. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  709. package/dist/telemetry/maestro-event-bus.js +179 -3
  710. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  711. package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
  712. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  713. package/dist/telemetry/maestro-event-catalog.js +2 -0
  714. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  715. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  716. package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
  717. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  718. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
  719. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
  720. package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
  721. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  722. package/dist/telemetry/mcp-beacon.d.ts +20 -0
  723. package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
  724. package/dist/telemetry/mcp-beacon.js +54 -0
  725. package/dist/telemetry/mcp-beacon.js.map +1 -0
  726. package/dist/telemetry/metadata-normalization.d.ts +7 -0
  727. package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
  728. package/dist/telemetry/metadata-normalization.js +189 -0
  729. package/dist/telemetry/metadata-normalization.js.map +1 -0
  730. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  731. package/dist/telemetry/meter-service-client.js +5 -10
  732. package/dist/telemetry/meter-service-client.js.map +1 -1
  733. package/dist/telemetry/metrics.d.ts +123 -0
  734. package/dist/telemetry/metrics.d.ts.map +1 -0
  735. package/dist/telemetry/metrics.js +184 -0
  736. package/dist/telemetry/metrics.js.map +1 -0
  737. package/dist/telemetry/turn-tracker.d.ts +1 -0
  738. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  739. package/dist/telemetry/turn-tracker.js +22 -1
  740. package/dist/telemetry/turn-tracker.js.map +1 -1
  741. package/dist/telemetry/wide-events.d.ts +31 -1
  742. package/dist/telemetry/wide-events.d.ts.map +1 -1
  743. package/dist/telemetry/wide-events.js +229 -1
  744. package/dist/telemetry/wide-events.js.map +1 -1
  745. package/dist/telemetry.d.ts +39 -3
  746. package/dist/telemetry.d.ts.map +1 -1
  747. package/dist/telemetry.js +160 -3
  748. package/dist/telemetry.js.map +1 -1
  749. package/dist/testing/test-verification-hook.d.ts.map +1 -1
  750. package/dist/testing/test-verification-hook.js +34 -21
  751. package/dist/testing/test-verification-hook.js.map +1 -1
  752. package/dist/tools/apply-patch-parser.d.ts +26 -0
  753. package/dist/tools/apply-patch-parser.d.ts.map +1 -0
  754. package/dist/tools/apply-patch-parser.js +146 -0
  755. package/dist/tools/apply-patch-parser.js.map +1 -0
  756. package/dist/tools/apply-patch.d.ts +42 -0
  757. package/dist/tools/apply-patch.d.ts.map +1 -0
  758. package/dist/tools/apply-patch.js +648 -0
  759. package/dist/tools/apply-patch.js.map +1 -0
  760. package/dist/tools/ask-user.d.ts +1 -0
  761. package/dist/tools/ask-user.d.ts.map +1 -1
  762. package/dist/tools/background/tool-handler.d.ts +1 -0
  763. package/dist/tools/background/tool-handler.d.ts.map +1 -1
  764. package/dist/tools/bash.d.ts +1 -0
  765. package/dist/tools/bash.d.ts.map +1 -1
  766. package/dist/tools/codesearch.d.ts +1 -0
  767. package/dist/tools/codesearch.d.ts.map +1 -1
  768. package/dist/tools/conductor-client.d.ts +1 -0
  769. package/dist/tools/conductor-client.d.ts.map +1 -1
  770. package/dist/tools/conductor-client.js +63 -0
  771. package/dist/tools/conductor-client.js.map +1 -1
  772. package/dist/tools/diff.d.ts +1 -0
  773. package/dist/tools/diff.d.ts.map +1 -1
  774. package/dist/tools/edit.d.ts +1 -0
  775. package/dist/tools/edit.d.ts.map +1 -1
  776. package/dist/tools/extract-document.d.ts +1 -0
  777. package/dist/tools/extract-document.d.ts.map +1 -1
  778. package/dist/tools/find.d.ts +10 -0
  779. package/dist/tools/find.d.ts.map +1 -1
  780. package/dist/tools/find.js +236 -27
  781. package/dist/tools/find.js.map +1 -1
  782. package/dist/tools/gh.d.ts +3 -0
  783. package/dist/tools/gh.d.ts.map +1 -1
  784. package/dist/tools/index.d.ts +50 -0
  785. package/dist/tools/index.d.ts.map +1 -1
  786. package/dist/tools/index.js +4 -0
  787. package/dist/tools/index.js.map +1 -1
  788. package/dist/tools/list.d.ts +1 -0
  789. package/dist/tools/list.d.ts.map +1 -1
  790. package/dist/tools/notebook.d.ts +1 -0
  791. package/dist/tools/notebook.d.ts.map +1 -1
  792. package/dist/tools/oracle.d.ts +1 -0
  793. package/dist/tools/oracle.d.ts.map +1 -1
  794. package/dist/tools/oracle.js +17 -32
  795. package/dist/tools/oracle.js.map +1 -1
  796. package/dist/tools/parallel-execution.d.ts +13 -2
  797. package/dist/tools/parallel-execution.d.ts.map +1 -1
  798. package/dist/tools/parallel-execution.js +178 -7
  799. package/dist/tools/parallel-execution.js.map +1 -1
  800. package/dist/tools/parallel-ripgrep.d.ts +1 -0
  801. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  802. package/dist/tools/pipeline.d.ts +4 -0
  803. package/dist/tools/pipeline.d.ts.map +1 -1
  804. package/dist/tools/read.d.ts +1 -0
  805. package/dist/tools/read.d.ts.map +1 -1
  806. package/dist/tools/search.d.ts +1 -0
  807. package/dist/tools/search.d.ts.map +1 -1
  808. package/dist/tools/status.d.ts +1 -0
  809. package/dist/tools/status.d.ts.map +1 -1
  810. package/dist/tools/todo.d.ts +1 -0
  811. package/dist/tools/todo.d.ts.map +1 -1
  812. package/dist/tools/tool-dsl.d.ts +5 -1
  813. package/dist/tools/tool-dsl.d.ts.map +1 -1
  814. package/dist/tools/tool-dsl.js +1 -0
  815. package/dist/tools/tool-dsl.js.map +1 -1
  816. package/dist/tools/tool-result-cache.d.ts.map +1 -1
  817. package/dist/tools/tool-result-cache.js +1 -0
  818. package/dist/tools/tool-result-cache.js.map +1 -1
  819. package/dist/tools/typebox-tool.d.ts.map +1 -1
  820. package/dist/tools/typebox-tool.js +3 -0
  821. package/dist/tools/typebox-tool.js.map +1 -1
  822. package/dist/tools/webfetch.d.ts +1 -0
  823. package/dist/tools/webfetch.d.ts.map +1 -1
  824. package/dist/tools/websearch.d.ts +1 -0
  825. package/dist/tools/websearch.d.ts.map +1 -1
  826. package/dist/tools/write.d.ts +1 -0
  827. package/dist/tools/write.d.ts.map +1 -1
  828. package/dist/utils/abort-error.d.ts +2 -0
  829. package/dist/utils/abort-error.d.ts.map +1 -0
  830. package/dist/utils/abort-error.js +7 -0
  831. package/dist/utils/abort-error.js.map +1 -0
  832. package/dist/utils/downstream.d.ts.map +1 -1
  833. package/dist/utils/downstream.js +4 -0
  834. package/dist/utils/downstream.js.map +1 -1
  835. package/dist/utils/logger.d.ts +3 -0
  836. package/dist/utils/logger.d.ts.map +1 -1
  837. package/dist/utils/logger.js +14 -3
  838. package/dist/utils/logger.js.map +1 -1
  839. package/dist/utils/path-containment.d.ts +2 -0
  840. package/dist/utils/path-containment.d.ts.map +1 -0
  841. package/dist/utils/path-containment.js +14 -0
  842. package/dist/utils/path-containment.js.map +1 -0
  843. package/dist/utils/prompt-safe-text.d.ts +7 -0
  844. package/dist/utils/prompt-safe-text.d.ts.map +1 -0
  845. package/dist/utils/prompt-safe-text.js +44 -0
  846. package/dist/utils/prompt-safe-text.js.map +1 -0
  847. package/dist/version.json +2 -2
  848. package/dist/web-server.d.ts.map +1 -1
  849. package/dist/web-server.js +32 -7
  850. package/dist/web-server.js.map +1 -1
  851. package/dist/workspace/root-resolver.d.ts +4 -1
  852. package/dist/workspace/root-resolver.d.ts.map +1 -1
  853. package/dist/workspace/root-resolver.js +16 -6
  854. package/dist/workspace/root-resolver.js.map +1 -1
  855. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
  856. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
  857. package/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
  858. package/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
  859. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
  860. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
  861. package/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
  862. package/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
  863. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
  864. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
  865. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
  866. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
  867. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +2 -0
  868. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -1
  869. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +1 -0
  870. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -1
  871. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +280 -5
  872. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
  873. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +36 -1
  874. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
  875. package/node_modules/@evalops/contracts/dist/index.d.ts +15 -1
  876. package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  877. package/node_modules/@evalops/contracts/dist/index.js +6 -0
  878. package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  879. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
  880. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
  881. package/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
  882. package/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
  883. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +91 -0
  884. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
  885. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +92 -61
  886. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
  887. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +3 -0
  888. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -1
  889. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
  890. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
  891. package/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
  892. package/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
  893. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +7 -0
  894. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -1
  895. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +2 -0
  896. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -1
  897. package/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
  898. package/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
  899. package/node_modules/@evalops/contracts/dist/scenario.js +4 -0
  900. package/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
  901. package/node_modules/@evalops/contracts/dist/schemas.d.ts +17 -3
  902. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  903. package/node_modules/@evalops/contracts/dist/schemas.js +16 -0
  904. package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  905. package/node_modules/@evalops/contracts/package.json +1 -1
  906. package/node_modules/@evalops/tui/package.json +1 -1
  907. package/package.json +41 -7
  908. package/skills/incident-triage/SKILL.md +40 -0
  909. package/skills/incident-triage/mcp.json +14 -0
  910. package/skills/incident-triage/reference/triage.md +20 -0
  911. package/skills/incident-triage/toolbox/incident-timeline +22 -0
  912. package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
  913. package/skills/pr-review/SKILL.md +40 -0
  914. package/skills/pr-review/mcp.json +14 -0
  915. package/skills/pr-review/reference/rubric.md +20 -0
  916. package/skills/pr-review/toolbox/review-summary +20 -0
  917. package/skills/pr-review/toolbox/review-summary.cmd +14 -0
  918. package/skills/release-verification/SKILL.md +40 -0
  919. package/skills/release-verification/mcp.json +15 -0
  920. package/skills/release-verification/reference/checklist.md +21 -0
  921. package/skills/release-verification/toolbox/release-readiness +18 -0
  922. package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../src/cli/commands/scenario.ts"],"names":[],"mappings":"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","sourcesContent":["import { mkdirSync, writeFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, resolve } from \"node:path\";\nimport { MAESTRO_SCRIPTED_SCENARIO_SCHEMA } from \"@evalops/contracts\";\nimport chalk from \"chalk\";\nimport { parseScriptedScenario } from \"../../agent/providers/scripted.js\";\nimport {\n\tisRemoteScenarioSource,\n\treadScenarioJsonSource,\n\tscenarioSourceBaseDir,\n\tscenarioSourceLabel,\n} from \"../../agent/scenario-source.js\";\nimport {\n\ttype MaestroScenario,\n\tevaluateAgentTrajectoryScenario,\n\tloadAgentTrajectoryScenarioInputs,\n\tparseAgentTrajectoryScenario,\n\tscenarioResultToJunit,\n} from \"../../server/agent-trajectory-scenarios.js\";\nimport {\n\tevaluateScriptedScenario,\n\tscriptedScenarioResultToJunit,\n} from \"../../server/scripted-scenario-runner.js\";\n\ntype ScriptedScenario = ReturnType<typeof parseScriptedScenario>;\n\ninterface ScenarioCommandOptions {\n\tjson?: boolean;\n\tjunitPath?: string;\n}\n\ninterface ScenarioOutcomeResult {\n\tscenario: {\n\t\texpectedOutcome: \"pass\" | \"fail\";\n\t\tobservedOutcome: \"pass\" | \"fail\";\n\t};\n}\n\nfunction usage(): never {\n\tconsole.error(\n\t\tchalk.red(\n\t\t\t'Scenario command required. Try \"maestro scenario validate <path>\" or \"maestro scenario run <path>\".',\n\t\t),\n\t);\n\tprocess.exit(1);\n}\n\nfunction valueAfter(args: string[], flag: string): string | undefined {\n\tconst index = args.indexOf(flag);\n\tif (index === -1) return undefined;\n\treturn args[index + 1];\n}\n\nfunction positionalArgs(args: string[]): string[] {\n\tconst result: string[] = [];\n\tfor (let index = 0; index < args.length; index++) {\n\t\tconst arg = args[index];\n\t\tif (!arg) continue;\n\t\tif (arg === \"--json\") continue;\n\t\tif (arg === \"--junit\") {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg.startsWith(\"-\")) continue;\n\t\tresult.push(arg);\n\t}\n\treturn result;\n}\n\nfunction writeJunit(path: string, content: string): void {\n\tconst fullPath = resolve(path);\n\tmkdirSync(dirname(fullPath), { recursive: true });\n\twriteFileSync(fullPath, content);\n}\n\nfunction isScriptedReplayJson(value: unknown): boolean {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t!Array.isArray(value) &&\n\t\t(value as { schemaVersion?: unknown }).schemaVersion ===\n\t\t\tMAESTRO_SCRIPTED_SCENARIO_SCHEMA\n\t);\n}\n\nfunction outcomeMatchedExpected(result: ScenarioOutcomeResult): boolean {\n\treturn result.scenario.expectedOutcome === result.scenario.observedOutcome;\n}\n\nconst AGENT_TRAJECTORY_SOURCE_PATH_FIELDS = [\n\t\"trajectoryPath\",\n\t\"replayPath\",\n\t\"scorePath\",\n\t\"inspectionPath\",\n\t\"workspaceManifestPath\",\n\t\"baselineTrajectoryPath\",\n\t\"candidateTrajectoryPath\",\n\t\"baselineScorePath\",\n\t\"candidateScorePath\",\n] as const satisfies readonly (keyof MaestroScenario[\"source\"])[];\n\nfunction rejectRemoteTrajectoryScenarioRelativeSources(\n\tsource: string,\n\tscenario: MaestroScenario,\n): void {\n\tif (!isRemoteScenarioSource(source)) {\n\t\treturn;\n\t}\n\tfor (const field of AGENT_TRAJECTORY_SOURCE_PATH_FIELDS) {\n\t\tconst path = scenario.source[field];\n\t\tif (path && !isAbsolute(path)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Remote scenario ${scenarioSourceLabel(source)} source.${field} must use an absolute path; relative paths are not supported for remote trajectory scenarios.`,\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction rejectRemoteScriptedScenarioRelativeFileAssertions(\n\tsource: string,\n\tscenario: ScriptedScenario,\n): void {\n\tif (!isRemoteScenarioSource(source)) {\n\t\treturn;\n\t}\n\tfor (const assertion of scenario.assertions ?? []) {\n\t\tif (\n\t\t\t(assertion.kind === \"file_exists\" ||\n\t\t\t\tassertion.kind === \"file_contents\") &&\n\t\t\tassertion.path &&\n\t\t\t!isAbsolute(assertion.path)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Remote scripted scenario ${scenarioSourceLabel(source)} assertion ${assertion.id} path must be absolute; relative file assertions are not supported for remote scripted scenarios.`,\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport async function handleScenarioCommand(\n\tsubcommand: string | undefined,\n\targs: string[],\n\toptions: ScenarioCommandOptions = {},\n): Promise<void> {\n\tif (!subcommand || subcommand === \"help\") {\n\t\tusage();\n\t}\n\tconst positional = positionalArgs(args);\n\tconst scenarioPath = positional[0];\n\tif (!scenarioPath) {\n\t\tusage();\n\t}\n\n\tif (subcommand === \"validate\") {\n\t\tconst scenarioJson = await readScenarioJsonSource(scenarioPath);\n\t\tconst scenarioLabel = scenarioSourceLabel(scenarioPath);\n\t\tconst isScriptedReplay = isScriptedReplayJson(scenarioJson);\n\t\tif (isScriptedReplay) {\n\t\t\tconst scenario = parseScriptedScenario(scenarioJson, scenarioLabel);\n\t\t\trejectRemoteScriptedScenarioRelativeFileAssertions(\n\t\t\t\tscenarioPath,\n\t\t\t\tscenario,\n\t\t\t);\n\t\t\tif (options.json || args.includes(\"--json\")) {\n\t\t\t\tconsole.log(\n\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatus: \"pass\",\n\t\t\t\t\t\t\tschemaVersion: scenario.schemaVersion,\n\t\t\t\t\t\t\tscenarioId: scenario.id,\n\t\t\t\t\t\t\tframes: scenario.frames.length,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconsole.log(\n\t\t\t\tchalk.green(\n\t\t\t\t\t`Validated scripted replay ${scenario.id} (${scenario.frames.length} frame(s)).`,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst scenario = parseAgentTrajectoryScenario(scenarioJson, scenarioLabel);\n\t\trejectRemoteTrajectoryScenarioRelativeSources(scenarioPath, scenario);\n\t\tif (options.json || args.includes(\"--json\")) {\n\t\t\tconsole.log(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: \"pass\",\n\t\t\t\t\t\tschemaVersion: scenario.schemaVersion,\n\t\t\t\t\t\tscenarioId: scenario.id,\n\t\t\t\t\t\tassertions: scenario.assertions.length,\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tconsole.log(\n\t\t\tchalk.green(\n\t\t\t\t`Validated scenario ${scenario.id} (${scenario.assertions.length} assertion(s)).`,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tif (subcommand === \"run\") {\n\t\tconst scenarioJson = await readScenarioJsonSource(scenarioPath);\n\t\tconst scenarioLabel = scenarioSourceLabel(scenarioPath);\n\t\tconst baseDir = scenarioSourceBaseDir(scenarioPath);\n\t\tconst isScriptedReplay = isScriptedReplayJson(scenarioJson);\n\t\tconst junitPath = options.junitPath ?? valueAfter(args, \"--junit\");\n\t\tif (isScriptedReplay) {\n\t\t\tconst scenario = parseScriptedScenario(scenarioJson, scenarioLabel);\n\t\t\trejectRemoteScriptedScenarioRelativeFileAssertions(\n\t\t\t\tscenarioPath,\n\t\t\t\tscenario,\n\t\t\t);\n\t\t\tconst result = evaluateScriptedScenario(scenario, {\n\t\t\t\tbaseDir,\n\t\t\t});\n\t\t\tif (junitPath) {\n\t\t\t\twriteJunit(junitPath, scriptedScenarioResultToJunit(result));\n\t\t\t}\n\t\t\tif (options.json || args.includes(\"--json\")) {\n\t\t\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\t\t} else {\n\t\t\t\tconst summary = `${result.counts.passed}/${result.counts.assertions} passed, ${result.counts.failed} failed, ${result.counts.warnings} warning(s)`;\n\t\t\t\tconst color = outcomeMatchedExpected(result) ? chalk.green : chalk.red;\n\t\t\t\tconsole.log(\n\t\t\t\t\tcolor(`Scripted scenario ${result.scenario.id}: ${summary}`),\n\t\t\t\t);\n\t\t\t\tfor (const assertion of result.assertions) {\n\t\t\t\t\tconst marker =\n\t\t\t\t\t\tassertion.status === \"pass\"\n\t\t\t\t\t\t\t? chalk.green(\"PASS\")\n\t\t\t\t\t\t\t: assertion.status === \"warn\"\n\t\t\t\t\t\t\t\t? chalk.yellow(\"WARN\")\n\t\t\t\t\t\t\t\t: chalk.red(\"FAIL\");\n\t\t\t\t\tconsole.log(` ${marker} ${assertion.id}: ${assertion.message}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!outcomeMatchedExpected(result)) {\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst scenario = parseAgentTrajectoryScenario(scenarioJson, scenarioLabel);\n\t\trejectRemoteTrajectoryScenarioRelativeSources(scenarioPath, scenario);\n\t\tconst result = evaluateAgentTrajectoryScenario(\n\t\t\tscenario,\n\t\t\tloadAgentTrajectoryScenarioInputs(scenario, baseDir),\n\t\t);\n\t\tif (junitPath) {\n\t\t\twriteJunit(junitPath, scenarioResultToJunit(result));\n\t\t}\n\t\tif (options.json || args.includes(\"--json\")) {\n\t\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\t} else {\n\t\t\tconst summary = `${result.counts.passed}/${result.counts.assertions} passed, ${result.counts.failed} failed, ${result.counts.warnings} warning(s)`;\n\t\t\tconst color = outcomeMatchedExpected(result) ? chalk.green : chalk.red;\n\t\t\tconsole.log(color(`Scenario ${result.scenario.id}: ${summary}`));\n\t\t\tfor (const assertion of result.assertions) {\n\t\t\t\tconst marker =\n\t\t\t\t\tassertion.status === \"pass\"\n\t\t\t\t\t\t? chalk.green(\"PASS\")\n\t\t\t\t\t\t: assertion.status === \"warn\"\n\t\t\t\t\t\t\t? chalk.yellow(\"WARN\")\n\t\t\t\t\t\t\t: chalk.red(\"FAIL\");\n\t\t\t\tconsole.log(` ${marker} ${assertion.id}: ${assertion.message}`);\n\t\t\t}\n\t\t}\n\t\tif (!outcomeMatchedExpected(result)) {\n\t\t\tprocess.exit(1);\n\t\t}\n\t\treturn;\n\t}\n\n\tconsole.error(chalk.red(`Unknown scenario subcommand: ${subcommand}`));\n\tusage();\n}\n"]}
@@ -0,0 +1,7 @@
1
+ interface SkillCommandContext {
2
+ workspaceDir?: string;
3
+ includeSystemSkills?: boolean;
4
+ }
5
+ export declare function handleSkillCommand(subcommand: string | undefined, args?: string[], options?: SkillCommandContext): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skill.ts"],"names":[],"mappings":"AAmCA,UAAU,mBAAmB;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAqTD,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -0,0 +1,286 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+ import { inspect } from "node:util";
4
+ import chalk from "chalk";
5
+ import { PATHS } from "../../config/constants.js";
6
+ import { addConfiguredPackageSpecToConfig, } from "../../config/index.js";
7
+ import { buildSkillPackagePublishContract, buildSkillRuntimeActivation, evaluateSkillPackages, findSkill, formatSkillEvalText, formatSkillListItem, formatSkillPackagePublishContract, hasSkillEvalFailures, hasSkillLintErrors, lintSkillPaths, loadSkills, scaffoldSkill, skillToDict, } from "../../skills/index.js";
8
+ import { formatSkillLintText } from "../../skills/linter.js";
9
+ function formatSkillHelp() {
10
+ return `maestro skill <command> [options]
11
+
12
+ Commands:
13
+ list List available system, user, and project skills
14
+ inspect <name> Print one skill package manifest
15
+ install <source> Validate and install an OSS skill package
16
+ publish-check <source> Validate an OSS skill package before publishing
17
+ lint [path...] Validate skill packages
18
+ eval [path...] Score skill packages against Agent Core constraints
19
+ new <name> Scaffold a skill package
20
+
21
+ Options:
22
+ --json Emit machine-readable JSON
23
+ --scope <local|project|user> Install scope for 'install' (default: local)
24
+ --dir <path> Base directory for 'new' (default: .maestro/skills)
25
+ --description <text> Description for 'new'
26
+ --force Allow 'new' to overwrite an existing directory
27
+ --describe-toolbox Run Toolbox describe checks during lint
28
+ --help, -h Show this help`;
29
+ }
30
+ function readValue(args, index, flag) {
31
+ const value = args[index + 1];
32
+ if (!value || value.startsWith("-")) {
33
+ throw new Error(`${flag} requires a value`);
34
+ }
35
+ return value;
36
+ }
37
+ function parseScope(value) {
38
+ if (value === "local" || value === "project" || value === "user") {
39
+ return value;
40
+ }
41
+ throw new Error("--scope must be local, project, or user");
42
+ }
43
+ function parseOptions(args) {
44
+ const options = {};
45
+ const positionals = [];
46
+ for (let i = 0; i < args.length; i++) {
47
+ const arg = args[i];
48
+ switch (arg) {
49
+ case "--json":
50
+ options.json = true;
51
+ break;
52
+ case "--scope":
53
+ options.scope = parseScope(readValue(args, i, arg));
54
+ i++;
55
+ break;
56
+ case "--dir":
57
+ options.dir = readValue(args, i, arg);
58
+ i++;
59
+ break;
60
+ case "--description":
61
+ options.description = readValue(args, i, arg);
62
+ i++;
63
+ break;
64
+ case "--force":
65
+ options.force = true;
66
+ break;
67
+ case "--describe-toolbox":
68
+ options.describeToolbox = true;
69
+ break;
70
+ case "--help":
71
+ case "-h":
72
+ positionals.push(arg);
73
+ break;
74
+ default:
75
+ if (arg?.startsWith("-")) {
76
+ throw new Error(`Unknown maestro skill option: ${arg}`);
77
+ }
78
+ if (arg)
79
+ positionals.push(arg);
80
+ }
81
+ }
82
+ return { options, positionals };
83
+ }
84
+ function defaultLintPaths(workspaceDir) {
85
+ const candidates = [
86
+ join(workspaceDir, "skills"),
87
+ join(workspaceDir, ".maestro", "skills"),
88
+ join(PATHS.MAESTRO_HOME, "skills"),
89
+ ].filter((path) => existsSync(path));
90
+ return candidates.length > 0 ? candidates : [join(workspaceDir, "skills")];
91
+ }
92
+ async function handleInstall(workspaceDir, sourceSpec, options) {
93
+ if (!sourceSpec) {
94
+ throw new Error("maestro skill install requires a package source");
95
+ }
96
+ const contract = await buildSkillPackagePublishContract(sourceSpec, {
97
+ cwd: workspaceDir,
98
+ describeToolbox: false,
99
+ });
100
+ if (contract.issues.length > 0) {
101
+ if (options.json) {
102
+ console.log(JSON.stringify({ installed: false, contract }, null, 2));
103
+ }
104
+ else {
105
+ console.log(formatSkillPackagePublishContract(contract));
106
+ console.error(chalk.red("Skill package install blocked by contract issues."));
107
+ }
108
+ process.exitCode = 1;
109
+ return;
110
+ }
111
+ const installed = addConfiguredPackageSpecToConfig({
112
+ workspaceDir,
113
+ scope: options.scope ?? "local",
114
+ spec: sourceSpec,
115
+ });
116
+ if (options.json) {
117
+ console.log(JSON.stringify({ installed: true, config: installed, contract }, null, 2));
118
+ return;
119
+ }
120
+ console.log(chalk.green(`Installed skill package ${contract.package.name ?? sourceSpec}`));
121
+ console.log(chalk.dim(`scope: ${installed.scope}`));
122
+ console.log(chalk.dim(`config: ${installed.path}`));
123
+ console.log(chalk.dim("Run `maestro skill list` to see loaded skills."));
124
+ }
125
+ async function handlePublishCheck(workspaceDir, sourceSpec, options) {
126
+ if (!sourceSpec) {
127
+ throw new Error("maestro skill publish-check requires a package source");
128
+ }
129
+ const contract = await buildSkillPackagePublishContract(sourceSpec, {
130
+ cwd: workspaceDir,
131
+ describeToolbox: options.describeToolbox,
132
+ });
133
+ if (options.json) {
134
+ console.log(JSON.stringify(contract, null, 2));
135
+ }
136
+ else {
137
+ console.log(formatSkillPackagePublishContract(contract));
138
+ }
139
+ if (contract.issues.length > 0) {
140
+ process.exitCode = 1;
141
+ }
142
+ }
143
+ async function handleList(workspaceDir, options, context) {
144
+ const result = loadSkills(workspaceDir, context.includeSystemSkills === undefined
145
+ ? undefined
146
+ : { includeSystem: context.includeSystemSkills });
147
+ if (options.json) {
148
+ console.log(JSON.stringify({
149
+ skills: result.skills.map((skill) => ({
150
+ ...skillToDict(skill),
151
+ sourceType: skill.sourceType,
152
+ sourcePath: skill.sourcePath,
153
+ })),
154
+ errors: result.errors.map((error) => ({
155
+ code: error.code,
156
+ message: error.message,
157
+ path: error.path,
158
+ })),
159
+ }, null, 2));
160
+ return;
161
+ }
162
+ if (result.skills.length === 0) {
163
+ console.log(chalk.dim("No skills found."));
164
+ }
165
+ else {
166
+ for (const skill of result.skills) {
167
+ console.log(formatSkillListItem(skill));
168
+ }
169
+ }
170
+ if (result.errors.length > 0) {
171
+ console.error(chalk.yellow(`\n${result.errors.length} skill load warning(s).`));
172
+ }
173
+ }
174
+ async function handleInspect(workspaceDir, name, options) {
175
+ if (!name) {
176
+ throw new Error("maestro skill inspect requires a skill name");
177
+ }
178
+ const result = loadSkills(workspaceDir);
179
+ const skill = findSkill(result.skills, name);
180
+ if (!skill) {
181
+ throw new Error(`Skill '${name}' not found`);
182
+ }
183
+ const payload = {
184
+ ...skillToDict(skill),
185
+ sourceType: skill.sourceType,
186
+ sourcePath: skill.sourcePath,
187
+ resources: skill.resources,
188
+ resourceDirs: skill.resourceDirs,
189
+ runtimeActivation: buildSkillRuntimeActivation(skill),
190
+ };
191
+ if (options.json) {
192
+ console.log(JSON.stringify(payload, null, 2));
193
+ return;
194
+ }
195
+ console.log(inspect(payload, {
196
+ colors: process.stdout.isTTY,
197
+ compact: false,
198
+ depth: null,
199
+ }));
200
+ }
201
+ async function handleLint(workspaceDir, paths, options) {
202
+ const lintPaths = paths.length > 0 ? paths : defaultLintPaths(workspaceDir);
203
+ const results = await lintSkillPaths(lintPaths, {
204
+ describeToolbox: options.describeToolbox,
205
+ });
206
+ if (options.json) {
207
+ console.log(JSON.stringify({ results }, null, 2));
208
+ }
209
+ else {
210
+ console.log(formatSkillLintText(results));
211
+ }
212
+ if (hasSkillLintErrors(results)) {
213
+ process.exitCode = 1;
214
+ }
215
+ }
216
+ async function handleEval(workspaceDir, paths, options) {
217
+ const evalPaths = paths.length > 0 ? paths : defaultLintPaths(workspaceDir);
218
+ const report = await evaluateSkillPackages(evalPaths.map((path) => ({ path })), {
219
+ describeToolbox: options.describeToolbox,
220
+ });
221
+ if (options.json) {
222
+ console.log(JSON.stringify(report, null, 2));
223
+ }
224
+ else {
225
+ console.log(formatSkillEvalText(report));
226
+ }
227
+ if (hasSkillEvalFailures(report)) {
228
+ process.exitCode = 1;
229
+ }
230
+ }
231
+ async function handleNew(workspaceDir, name, options) {
232
+ if (!name) {
233
+ throw new Error("maestro skill new requires a skill name");
234
+ }
235
+ const baseDir = resolve(workspaceDir, options.dir ?? join(".maestro", "skills"));
236
+ const result = scaffoldSkill(baseDir, name, {
237
+ description: options.description,
238
+ force: options.force,
239
+ });
240
+ if (options.json) {
241
+ console.log(JSON.stringify(result, null, 2));
242
+ return;
243
+ }
244
+ console.log(chalk.green(`Created skill ${result.name}`));
245
+ console.log(chalk.dim(result.directory));
246
+ for (const file of result.files) {
247
+ console.log(` ${file}`);
248
+ }
249
+ }
250
+ export async function handleSkillCommand(subcommand, args = [], options = {}) {
251
+ if (!subcommand ||
252
+ subcommand === "help" ||
253
+ args.includes("--help") ||
254
+ args.includes("-h")) {
255
+ console.log(formatSkillHelp());
256
+ return;
257
+ }
258
+ const { options: parsedOptions, positionals } = parseOptions(args);
259
+ const workspaceDir = options.workspaceDir ?? process.cwd();
260
+ switch (subcommand) {
261
+ case "list":
262
+ await handleList(workspaceDir, parsedOptions, options);
263
+ return;
264
+ case "inspect":
265
+ await handleInspect(workspaceDir, positionals[0], parsedOptions);
266
+ return;
267
+ case "install":
268
+ await handleInstall(workspaceDir, positionals[0], parsedOptions);
269
+ return;
270
+ case "publish-check":
271
+ await handlePublishCheck(workspaceDir, positionals[0], parsedOptions);
272
+ return;
273
+ case "lint":
274
+ await handleLint(workspaceDir, positionals, parsedOptions);
275
+ return;
276
+ case "eval":
277
+ await handleEval(workspaceDir, positionals, parsedOptions);
278
+ return;
279
+ case "new":
280
+ await handleNew(workspaceDir, positionals[0], parsedOptions);
281
+ return;
282
+ default:
283
+ throw new Error(`Unknown maestro skill command: ${subcommand}`);
284
+ }
285
+ }
286
+ //# sourceMappingURL=skill.js.map