@evalops/maestro 0.10.50 → 0.10.51

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 (406) hide show
  1. package/dist/agent/agent-outcome.d.ts +54 -0
  2. package/dist/agent/agent-outcome.d.ts.map +1 -0
  3. package/dist/agent/agent-outcome.js +142 -0
  4. package/dist/agent/agent-outcome.js.map +1 -0
  5. package/dist/agent/agent-resume.d.ts.map +1 -1
  6. package/dist/agent/agent-resume.js +3 -3
  7. package/dist/agent/agent-resume.js.map +1 -1
  8. package/dist/agent/agent-run-summary.d.ts +37 -0
  9. package/dist/agent/agent-run-summary.d.ts.map +1 -0
  10. package/dist/agent/agent-run-summary.js +15 -0
  11. package/dist/agent/agent-run-summary.js.map +1 -0
  12. package/dist/agent/agent-work-board.d.ts +82 -0
  13. package/dist/agent/agent-work-board.d.ts.map +1 -0
  14. package/dist/agent/agent-work-board.js +312 -0
  15. package/dist/agent/agent-work-board.js.map +1 -0
  16. package/dist/agent/auto-compaction.d.ts +7 -2
  17. package/dist/agent/auto-compaction.d.ts.map +1 -1
  18. package/dist/agent/auto-compaction.js +23 -10
  19. package/dist/agent/auto-compaction.js.map +1 -1
  20. package/dist/agent/mission-artifacts.d.ts +62 -0
  21. package/dist/agent/mission-artifacts.d.ts.map +1 -0
  22. package/dist/agent/mission-artifacts.js +438 -0
  23. package/dist/agent/mission-artifacts.js.map +1 -0
  24. package/dist/agent/mission-manifest.d.ts +139 -3
  25. package/dist/agent/mission-manifest.d.ts.map +1 -1
  26. package/dist/agent/mission-manifest.js +549 -3
  27. package/dist/agent/mission-manifest.js.map +1 -1
  28. package/dist/agent/mission-store.d.ts +80 -0
  29. package/dist/agent/mission-store.d.ts.map +1 -0
  30. package/dist/agent/mission-store.js +603 -0
  31. package/dist/agent/mission-store.js.map +1 -0
  32. package/dist/agent/modes.d.ts +2 -2
  33. package/dist/agent/modes.d.ts.map +1 -1
  34. package/dist/agent/modes.js +10 -3
  35. package/dist/agent/modes.js.map +1 -1
  36. package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
  37. package/dist/agent/providers/codex-app-server.js +1 -3
  38. package/dist/agent/providers/codex-app-server.js.map +1 -1
  39. package/dist/agent/providers/google-gemini-cli.js +203 -107
  40. package/dist/agent/providers/google.js +100 -41
  41. package/dist/agent/providers/scripted.d.ts.map +1 -1
  42. package/dist/agent/providers/scripted.js +1 -3
  43. package/dist/agent/providers/scripted.js.map +1 -1
  44. package/dist/agent/providers/validation.d.ts.map +1 -1
  45. package/dist/agent/providers/validation.js +1 -3
  46. package/dist/agent/providers/validation.js.map +1 -1
  47. package/dist/agent/providers/vertex.js +203 -107
  48. package/dist/agent/snapshot-store.d.ts +32 -0
  49. package/dist/agent/snapshot-store.d.ts.map +1 -0
  50. package/dist/agent/snapshot-store.js +195 -0
  51. package/dist/agent/snapshot-store.js.map +1 -0
  52. package/dist/agent/specialist-profiles.d.ts +36 -0
  53. package/dist/agent/specialist-profiles.d.ts.map +1 -0
  54. package/dist/agent/specialist-profiles.js +159 -0
  55. package/dist/agent/specialist-profiles.js.map +1 -0
  56. package/dist/agent/subagent-specs.d.ts +4 -1
  57. package/dist/agent/subagent-specs.d.ts.map +1 -1
  58. package/dist/agent/subagent-specs.js +81 -8
  59. package/dist/agent/subagent-specs.js.map +1 -1
  60. package/dist/agent/swarm/coverage-gate.d.ts +37 -0
  61. package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
  62. package/dist/agent/swarm/coverage-gate.js +48 -0
  63. package/dist/agent/swarm/coverage-gate.js.map +1 -0
  64. package/dist/agent/swarm/executor.d.ts +1 -0
  65. package/dist/agent/swarm/executor.d.ts.map +1 -1
  66. package/dist/agent/swarm/executor.js +151 -15
  67. package/dist/agent/swarm/executor.js.map +1 -1
  68. package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
  69. package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
  70. package/dist/agent/swarm/orchestrator-prompt.js +48 -0
  71. package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
  72. package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
  73. package/dist/agent/swarm/plan-parser.js +27 -2
  74. package/dist/agent/swarm/plan-parser.js.map +1 -1
  75. package/dist/agent/swarm/types.d.ts +17 -0
  76. package/dist/agent/swarm/types.d.ts.map +1 -1
  77. package/dist/agent/swarm/types.js.map +1 -1
  78. package/dist/agent/swarm/validation-directive.d.ts +21 -0
  79. package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
  80. package/dist/agent/swarm/validation-directive.js +25 -0
  81. package/dist/agent/swarm/validation-directive.js.map +1 -0
  82. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  83. package/dist/agent/transport/tool-execution-bridge.js +4 -1
  84. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  85. package/dist/api/enterprise-routes.d.ts.map +1 -1
  86. package/dist/api/enterprise-routes.js +87 -10
  87. package/dist/api/enterprise-routes.js.map +1 -1
  88. package/dist/api/org-settings-merge.d.ts +12 -0
  89. package/dist/api/org-settings-merge.d.ts.map +1 -0
  90. package/dist/api/org-settings-merge.js +38 -0
  91. package/dist/api/org-settings-merge.js.map +1 -0
  92. package/dist/api/user-settings-merge.d.ts +16 -0
  93. package/dist/api/user-settings-merge.d.ts.map +1 -0
  94. package/dist/api/user-settings-merge.js +37 -0
  95. package/dist/api/user-settings-merge.js.map +1 -0
  96. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
  97. package/dist/app-server/daemon-lifecycle-api.js +1 -3
  98. package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
  99. package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
  100. package/dist/app-server/external-agent-import-api.js +1 -3
  101. package/dist/app-server/external-agent-import-api.js.map +1 -1
  102. package/dist/app-server/network-governance-api.d.ts.map +1 -1
  103. package/dist/app-server/network-governance-api.js +1 -3
  104. package/dist/app-server/network-governance-api.js.map +1 -1
  105. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  106. package/dist/app-server/plugin-bundle-api.js +1 -3
  107. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  108. package/dist/app-server/policy-control-api.d.ts.map +1 -1
  109. package/dist/app-server/policy-control-api.js +1 -3
  110. package/dist/app-server/policy-control-api.js.map +1 -1
  111. package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
  112. package/dist/app-server/protocol-modes-api.js +1 -3
  113. package/dist/app-server/protocol-modes-api.js.map +1 -1
  114. package/dist/cli/args.d.ts +2 -0
  115. package/dist/cli/args.d.ts.map +1 -1
  116. package/dist/cli/args.js +15 -0
  117. package/dist/cli/args.js.map +1 -1
  118. package/dist/cli/commands/a2a.d.ts.map +1 -1
  119. package/dist/cli/commands/a2a.js +1 -3
  120. package/dist/cli/commands/a2a.js.map +1 -1
  121. package/dist/cli/commands/agents.d.ts +4 -0
  122. package/dist/cli/commands/agents.d.ts.map +1 -1
  123. package/dist/cli/commands/agents.js +149 -0
  124. package/dist/cli/commands/agents.js.map +1 -1
  125. package/dist/cli/commands/mission.d.ts +4 -0
  126. package/dist/cli/commands/mission.d.ts.map +1 -0
  127. package/dist/cli/commands/mission.js +196 -0
  128. package/dist/cli/commands/mission.js.map +1 -0
  129. package/dist/cli/commands/value.d.ts +10 -0
  130. package/dist/cli/commands/value.d.ts.map +1 -0
  131. package/dist/cli/commands/value.js +33 -0
  132. package/dist/cli/commands/value.js.map +1 -0
  133. package/dist/cli/headless-protocol.d.ts.map +1 -1
  134. package/dist/cli/headless-protocol.js +1 -3
  135. package/dist/cli/headless-protocol.js.map +1 -1
  136. package/dist/cli/help.d.ts.map +1 -1
  137. package/dist/cli/help.js +10 -0
  138. package/dist/cli/help.js.map +1 -1
  139. package/dist/cli/system-prompt.d.ts.map +1 -1
  140. package/dist/cli/system-prompt.js +38 -7
  141. package/dist/cli/system-prompt.js.map +1 -1
  142. package/dist/cli-runtime.js +7756 -2800
  143. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
  144. package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
  145. package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
  146. package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
  147. package/dist/cli-tui/commands/undo-handlers.js +7 -2
  148. package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
  149. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
  150. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
  151. package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
  152. package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
  153. package/dist/codex/app-server-client.d.ts.map +1 -1
  154. package/dist/codex/app-server-client.js +1 -3
  155. package/dist/codex/app-server-client.js.map +1 -1
  156. package/dist/codex/compatibility.d.ts.map +1 -1
  157. package/dist/codex/compatibility.js +1 -3
  158. package/dist/codex/compatibility.js.map +1 -1
  159. package/dist/codex/subagent-dispatch-table.d.ts +8 -0
  160. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
  161. package/dist/codex/subagent-dispatch-table.js +23 -0
  162. package/dist/codex/subagent-dispatch-table.js.map +1 -1
  163. package/dist/context/manifest.d.ts.map +1 -1
  164. package/dist/context/manifest.js +1 -3
  165. package/dist/context/manifest.js.map +1 -1
  166. package/dist/conversation/render-model.d.ts +0 -36
  167. package/dist/conversation/render-model.d.ts.map +1 -1
  168. package/dist/conversation/render-model.js +1 -3
  169. package/dist/conversation/render-model.js.map +1 -1
  170. package/dist/customer-value/ambient-learning.d.ts +75 -0
  171. package/dist/customer-value/ambient-learning.d.ts.map +1 -0
  172. package/dist/customer-value/ambient-learning.js +472 -0
  173. package/dist/customer-value/ambient-learning.js.map +1 -0
  174. package/dist/customer-value/internal-helpers.d.ts +13 -0
  175. package/dist/customer-value/internal-helpers.d.ts.map +1 -0
  176. package/dist/customer-value/internal-helpers.js +70 -0
  177. package/dist/customer-value/internal-helpers.js.map +1 -0
  178. package/dist/customer-value/report.d.ts +282 -0
  179. package/dist/customer-value/report.d.ts.map +1 -0
  180. package/dist/customer-value/report.js +2085 -0
  181. package/dist/customer-value/report.js.map +1 -0
  182. package/dist/db/schema.d.ts +5 -1
  183. package/dist/db/schema.d.ts.map +1 -1
  184. package/dist/db/schema.js.map +1 -1
  185. package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
  186. package/dist/evalops/agent-bootstrap.js +1 -3
  187. package/dist/evalops/agent-bootstrap.js.map +1 -1
  188. package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
  189. package/dist/evalops/agent-mcp-metadata.js +1 -3
  190. package/dist/evalops/agent-mcp-metadata.js.map +1 -1
  191. package/dist/index.d.ts +1 -0
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +1 -0
  194. package/dist/index.js.map +1 -1
  195. package/dist/installers/maestro-review-workflow.d.ts +38 -0
  196. package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
  197. package/dist/installers/maestro-review-workflow.js +163 -0
  198. package/dist/installers/maestro-review-workflow.js.map +1 -0
  199. package/dist/load-env.d.ts.map +1 -1
  200. package/dist/load-env.js +2 -1
  201. package/dist/load-env.js.map +1 -1
  202. package/dist/main.d.ts.map +1 -1
  203. package/dist/main.js +92 -3
  204. package/dist/main.js.map +1 -1
  205. package/dist/mcp/config.d.ts.map +1 -1
  206. package/dist/mcp/config.js +1 -3
  207. package/dist/mcp/config.js.map +1 -1
  208. package/dist/mcp/elicitation.d.ts.map +1 -1
  209. package/dist/mcp/elicitation.js +1 -3
  210. package/dist/mcp/elicitation.js.map +1 -1
  211. package/dist/mcp/official-registry.d.ts.map +1 -1
  212. package/dist/mcp/official-registry.js +1 -3
  213. package/dist/mcp/official-registry.js.map +1 -1
  214. package/dist/mcp/workspace-trust.d.ts.map +1 -1
  215. package/dist/mcp/workspace-trust.js +1 -3
  216. package/dist/mcp/workspace-trust.js.map +1 -1
  217. package/dist/memory/service-client.d.ts.map +1 -1
  218. package/dist/memory/service-client.js +1 -3
  219. package/dist/memory/service-client.js.map +1 -1
  220. package/dist/models/config-loader.d.ts.map +1 -1
  221. package/dist/models/config-loader.js +1 -3
  222. package/dist/models/config-loader.js.map +1 -1
  223. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
  224. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  225. package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
  226. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  227. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
  228. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
  229. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
  230. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
  231. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  232. package/dist/node_modules/@evalops/tui/package.json +1 -1
  233. package/dist/oauth/connectors.d.ts.map +1 -1
  234. package/dist/oauth/connectors.js +1 -3
  235. package/dist/oauth/connectors.js.map +1 -1
  236. package/dist/oauth/evalops.d.ts.map +1 -1
  237. package/dist/oauth/evalops.js +1 -3
  238. package/dist/oauth/evalops.js.map +1 -1
  239. package/dist/platform/a2a-client.d.ts.map +1 -1
  240. package/dist/platform/a2a-client.js +1 -3
  241. package/dist/platform/a2a-client.js.map +1 -1
  242. package/dist/platform/a2a-cockpit.d.ts +1 -0
  243. package/dist/platform/a2a-cockpit.d.ts.map +1 -1
  244. package/dist/platform/a2a-cockpit.js +42 -11
  245. package/dist/platform/a2a-cockpit.js.map +1 -1
  246. package/dist/platform/a2a-completion-audit.d.ts +1 -1
  247. package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
  248. package/dist/platform/a2a-completion-audit.js +7 -11
  249. package/dist/platform/a2a-completion-audit.js.map +1 -1
  250. package/dist/platform/a2a-maestro-peer.js +16 -0
  251. package/dist/platform/a2a-maestro-peer.js.map +1 -1
  252. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
  253. package/dist/platform/a2a-peer-pairing.js +1 -3
  254. package/dist/platform/a2a-peer-pairing.js.map +1 -1
  255. package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
  256. package/dist/platform/a2a-peer-registry.js +1 -3
  257. package/dist/platform/a2a-peer-registry.js.map +1 -1
  258. package/dist/platform/a2a-task-ledger.d.ts +20 -0
  259. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  260. package/dist/platform/a2a-task-ledger.js +207 -11
  261. package/dist/platform/a2a-task-ledger.js.map +1 -1
  262. package/dist/platform/a2a-work-graph.d.ts.map +1 -1
  263. package/dist/platform/a2a-work-graph.js +1 -3
  264. package/dist/platform/a2a-work-graph.js.map +1 -1
  265. package/dist/platform/operating-layer.d.ts.map +1 -1
  266. package/dist/platform/operating-layer.js +14 -8
  267. package/dist/platform/operating-layer.js.map +1 -1
  268. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  269. package/dist/platform/tool-execution-client.js +19 -2
  270. package/dist/platform/tool-execution-client.js.map +1 -1
  271. package/dist/providers/auth.d.ts.map +1 -1
  272. package/dist/providers/auth.js +1 -3
  273. package/dist/providers/auth.js.map +1 -1
  274. package/dist/runtime/env.d.ts +9 -1
  275. package/dist/runtime/env.d.ts.map +1 -1
  276. package/dist/runtime/env.js +63 -1
  277. package/dist/runtime/env.js.map +1 -1
  278. package/dist/safety/policy.d.ts.map +1 -1
  279. package/dist/safety/policy.js +1 -4
  280. package/dist/safety/policy.js.map +1 -1
  281. package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
  282. package/dist/sandbox/docker-sandbox.js +6 -1
  283. package/dist/sandbox/docker-sandbox.js.map +1 -1
  284. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  285. package/dist/server/handlers/hosted-runner-drain.js +1 -3
  286. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  287. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
  288. package/dist/server/handlers/platform-a2a-push.js +53 -2
  289. package/dist/server/handlers/platform-a2a-push.js.map +1 -1
  290. package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
  291. package/dist/server/handlers/runtime-app-server-ws.js +1 -3
  292. package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
  293. package/dist/server/headless-runtime-service.d.ts +16 -0
  294. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  295. package/dist/server/headless-runtime-service.js +232 -206
  296. package/dist/server/headless-runtime-service.js.map +1 -1
  297. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  298. package/dist/server/hosted-agent-runtime-progress.js +12 -3
  299. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  300. package/dist/server/pending-request-payload.d.ts.map +1 -1
  301. package/dist/server/pending-request-payload.js +1 -3
  302. package/dist/server/pending-request-payload.js.map +1 -1
  303. package/dist/server/route-auth.d.ts.map +1 -1
  304. package/dist/server/route-auth.js +2 -0
  305. package/dist/server/route-auth.js.map +1 -1
  306. package/dist/server/session-serialization.d.ts.map +1 -1
  307. package/dist/server/session-serialization.js +1 -3
  308. package/dist/server/session-serialization.js.map +1 -1
  309. package/dist/services/compliance/normalize.d.ts.map +1 -1
  310. package/dist/services/compliance/normalize.js +1 -3
  311. package/dist/services/compliance/normalize.js.map +1 -1
  312. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  313. package/dist/services/intelligent-router/normalize.js +1 -3
  314. package/dist/services/intelligent-router/normalize.js.map +1 -1
  315. package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
  316. package/dist/services/revenue-attribution/normalize.js +1 -3
  317. package/dist/services/revenue-attribution/normalize.js.map +1 -1
  318. package/dist/services/traces/normalize.d.ts.map +1 -1
  319. package/dist/services/traces/normalize.js +1 -3
  320. package/dist/services/traces/normalize.js.map +1 -1
  321. package/dist/services/workspace-config/normalize.d.ts.map +1 -1
  322. package/dist/services/workspace-config/normalize.js +1 -3
  323. package/dist/services/workspace-config/normalize.js.map +1 -1
  324. package/dist/skills/composer.d.ts.map +1 -1
  325. package/dist/skills/composer.js +13 -1
  326. package/dist/skills/composer.js.map +1 -1
  327. package/dist/skills/index.d.ts +1 -0
  328. package/dist/skills/index.d.ts.map +1 -1
  329. package/dist/skills/index.js +1 -0
  330. package/dist/skills/index.js.map +1 -1
  331. package/dist/skills/learned-guidelines.d.ts +33 -0
  332. package/dist/skills/learned-guidelines.d.ts.map +1 -0
  333. package/dist/skills/learned-guidelines.js +291 -0
  334. package/dist/skills/learned-guidelines.js.map +1 -0
  335. package/dist/skills/linter.d.ts.map +1 -1
  336. package/dist/skills/linter.js +1 -3
  337. package/dist/skills/linter.js.map +1 -1
  338. package/dist/skills/runtime-activation.d.ts +1 -0
  339. package/dist/skills/runtime-activation.d.ts.map +1 -1
  340. package/dist/skills/runtime-activation.js +2 -3
  341. package/dist/skills/runtime-activation.js.map +1 -1
  342. package/dist/skills/tool.d.ts.map +1 -1
  343. package/dist/skills/tool.js +26 -21
  344. package/dist/skills/tool.js.map +1 -1
  345. package/dist/skills/trust-cache.d.ts +7 -0
  346. package/dist/skills/trust-cache.d.ts.map +1 -1
  347. package/dist/skills/trust-cache.js +16 -0
  348. package/dist/skills/trust-cache.js.map +1 -1
  349. package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
  350. package/dist/telemetry/agent-workforce-native-event.js +1 -3
  351. package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
  352. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  353. package/dist/telemetry/maestro-event-bus.js +42 -81
  354. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  355. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  356. package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
  357. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  358. package/dist/telemetry.d.ts.map +1 -1
  359. package/dist/telemetry.js +54 -43
  360. package/dist/telemetry.js.map +1 -1
  361. package/dist/theme/theme-loader.d.ts.map +1 -1
  362. package/dist/theme/theme-loader.js +1 -3
  363. package/dist/theme/theme-loader.js.map +1 -1
  364. package/dist/tools/apply-patch.d.ts.map +1 -1
  365. package/dist/tools/apply-patch.js +76 -8
  366. package/dist/tools/apply-patch.js.map +1 -1
  367. package/dist/tools/diff-preview.d.ts.map +1 -1
  368. package/dist/tools/diff-preview.js +10 -1
  369. package/dist/tools/diff-preview.js.map +1 -1
  370. package/dist/tools/edit.d.ts.map +1 -1
  371. package/dist/tools/edit.js +17 -0
  372. package/dist/tools/edit.js.map +1 -1
  373. package/dist/tools/write.d.ts.map +1 -1
  374. package/dist/tools/write.js +9 -0
  375. package/dist/tools/write.js.map +1 -1
  376. package/dist/undo/tracker.d.ts +5 -0
  377. package/dist/undo/tracker.d.ts.map +1 -1
  378. package/dist/undo/tracker.js +13 -0
  379. package/dist/undo/tracker.js.map +1 -1
  380. package/dist/utils/fs.d.ts +1 -1
  381. package/dist/utils/fs.d.ts.map +1 -1
  382. package/dist/utils/fs.js +29 -2
  383. package/dist/utils/fs.js.map +1 -1
  384. package/dist/utils/git-stash.d.ts.map +1 -1
  385. package/dist/utils/git-stash.js +15 -8
  386. package/dist/utils/git-stash.js.map +1 -1
  387. package/dist/utils/json.d.ts +11 -0
  388. package/dist/utils/json.d.ts.map +1 -1
  389. package/dist/utils/json.js +9 -0
  390. package/dist/utils/json.js.map +1 -1
  391. package/dist/utils/shell-env.d.ts.map +1 -1
  392. package/dist/utils/shell-env.js +2 -0
  393. package/dist/utils/shell-env.js.map +1 -1
  394. package/dist/utils/url-extractor-git.d.ts +26 -0
  395. package/dist/utils/url-extractor-git.d.ts.map +1 -0
  396. package/dist/utils/url-extractor-git.js +259 -0
  397. package/dist/utils/url-extractor-git.js.map +1 -0
  398. package/dist/utils/url-extractor.d.ts.map +1 -1
  399. package/dist/utils/url-extractor.js +23 -251
  400. package/dist/utils/url-extractor.js.map +1 -1
  401. package/dist/version.json +2 -2
  402. package/package.json +310 -306
  403. package/skills/incident-triage/SKILL.md +19 -1
  404. package/skills/install-code-review/SKILL.md +69 -0
  405. package/skills/security-review/SKILL.md +68 -0
  406. package/skills/security-review/reference/rubric.md +85 -0
@@ -1 +1 @@
1
- {"version":3,"file":"operating-layer.js","sourceRoot":"","sources":["../../src/platform/operating-layer.ts"],"names":[],"mappings":"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","sourcesContent":["export const MAESTRO_OPERATING_LAYER_VERSION =\n\t\"evalops.maestro.operating-layer.v1\";\n\nexport type OperatingLayerCapabilityId =\n\t| \"protocol-boundary\"\n\t| \"policy-resolution\"\n\t| \"sync-outbox\"\n\t| \"approval-evidence\"\n\t| \"extension-governance\"\n\t| \"run-readiness\"\n\t| \"run-effectiveness\"\n\t| \"release-canary\";\n\nexport interface OperatingLayerCapability {\n\tid: OperatingLayerCapabilityId;\n\tname: string;\n\tdescription: string;\n\tevidenceKinds: string[];\n}\n\nexport interface OperatingLayerManifest {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tcapabilities: OperatingLayerCapability[];\n}\n\nexport const OPERATING_LAYER_CAPABILITIES: OperatingLayerCapability[] = [\n\t{\n\t\tid: \"protocol-boundary\",\n\t\tname: \"Protocol boundary\",\n\t\tdescription:\n\t\t\t\"Treats versioned protocols as the product integration surface.\",\n\t\tevidenceKinds: [\"protocol.version\", \"protocol.contract\", \"protocol.owner\"],\n\t},\n\t{\n\t\tid: \"policy-resolution\",\n\t\tname: \"Policy resolution\",\n\t\tdescription:\n\t\t\t\"Explains the source and override chain for resolved settings.\",\n\t\tevidenceKinds: [\"policy.subject\", \"policy.source\", \"policy.resolved_value\"],\n\t},\n\t{\n\t\tid: \"sync-outbox\",\n\t\tname: \"Sync outbox\",\n\t\tdescription:\n\t\t\t\"Classifies cloud/session sync outcomes into durable retry actions.\",\n\t\tevidenceKinds: [\"sync.item\", \"sync.outcome\", \"sync.next_action\"],\n\t},\n\t{\n\t\tid: \"approval-evidence\",\n\t\tname: \"Approval evidence\",\n\t\tdescription:\n\t\t\t\"Normalizes permission decisions across tool and product surfaces.\",\n\t\tevidenceKinds: [\n\t\t\t\"approval.request\",\n\t\t\t\"approval.decision\",\n\t\t\t\"approval.surface\",\n\t\t],\n\t},\n\t{\n\t\tid: \"extension-governance\",\n\t\tname: \"Extension governance\",\n\t\tdescription:\n\t\t\t\"Evaluates extensions against marketplace trust and scope policy.\",\n\t\tevidenceKinds: [\n\t\t\t\"extension.source\",\n\t\t\t\"extension.signature\",\n\t\t\t\"extension.scopes\",\n\t\t],\n\t},\n\t{\n\t\tid: \"run-readiness\",\n\t\tname: \"Run readiness\",\n\t\tdescription: \"Scores whether a run has enough evidence to proceed or ship.\",\n\t\tevidenceKinds: [\"readiness.signal\", \"readiness.score\", \"readiness.blocker\"],\n\t},\n\t{\n\t\tid: \"run-effectiveness\",\n\t\tname: \"Run effectiveness\",\n\t\tdescription:\n\t\t\t\"Scores completed work against outcome and confidence signals.\",\n\t\tevidenceKinds: [\n\t\t\t\"effectiveness.signal\",\n\t\t\t\"effectiveness.score\",\n\t\t\t\"effectiveness.evidence\",\n\t\t],\n\t},\n\t{\n\t\tid: \"release-canary\",\n\t\tname: \"Release canary\",\n\t\tdescription:\n\t\t\t\"Defines ordered gates for publish, smoke, replay, and notification.\",\n\t\tevidenceKinds: [\"release.stage\", \"release.gate\", \"release.evidence\"],\n\t},\n];\n\nexport interface ProtocolBoundaryInput {\n\tprotocolId: string;\n\tversion: string;\n\towners?: string[];\n\tcontracts?: string[];\n\tcompatibility?: \"experimental\" | \"stable\" | \"deprecated\";\n}\n\nexport interface ProtocolBoundaryDescriptor extends ProtocolBoundaryInput {\n\tcompatibility: \"experimental\" | \"stable\" | \"deprecated\";\n\treasons: string[];\n}\n\nexport interface PolicyResolutionSource<T = unknown> {\n\tlayer:\n\t\t| \"default\"\n\t\t| \"runtime\"\n\t\t| \"user\"\n\t\t| \"workspace\"\n\t\t| \"project\"\n\t\t| \"organization\"\n\t\t| \"session\";\n\tid: string;\n\tvalue: T;\n\treason?: string;\n}\n\nexport interface PolicyResolutionExplanation<T = unknown> {\n\tsubject: string;\n\tresolvedValue: T | undefined;\n\tactiveSource?: PolicyResolutionSource<T>;\n\tchain: Array<\n\t\tPolicyResolutionSource<T> & {\n\t\t\toverrides: string[];\n\t\t}\n\t>;\n\treasons: string[];\n}\n\nexport type SyncOutboxKind =\n\t| \"session_create\"\n\t| \"session_update\"\n\t| \"message\"\n\t| \"settings\"\n\t| \"artifact\"\n\t| \"approval\";\n\nexport interface SyncOutboxItem {\n\tid: string;\n\tkind: SyncOutboxKind;\n\tsessionId?: string;\n\tstatus: \"pending\" | \"in_flight\" | \"succeeded\" | \"failed\" | \"blocked\";\n\tattempt: number;\n\tmaxAttempts: number;\n}\n\nexport interface SyncOutcome {\n\tok: boolean;\n\tstatusCode?: number;\n\terrorCode?: string;\n}\n\nexport interface SyncOutboxDecision {\n\taction: \"complete\" | \"retry\" | \"self_heal_session\" | \"block\";\n\treason: string;\n\tnextAttempt: number;\n}\n\nexport interface ApprovalDecisionInput {\n\trequestId: string;\n\tsurface: \"cli\" | \"tui\" | \"web\" | \"mcp\" | \"api\";\n\tmode: \"suggest\" | \"ask\" | \"auto\" | \"deny\";\n\tdecision: \"approved\" | \"denied\" | \"expired\";\n\ttoolNames?: string[];\n\tpolicyRefs?: string[];\n}\n\nexport interface ApprovalDecisionEvidence extends ApprovalDecisionInput {\n\tapprovedTools: string[];\n\tblockedTools: string[];\n\treasons: string[];\n}\n\nexport interface ExtensionCandidate {\n\tid: string;\n\tsource: \"builtin\" | \"marketplace\" | \"local\" | \"git\";\n\tpublisher?: string;\n\tsigned?: boolean;\n\tpinnedRef?: string;\n\trequestedScopes?: string[];\n}\n\nexport interface ExtensionGovernancePolicy {\n\tallowedSources?: ExtensionCandidate[\"source\"][];\n\ttrustedPublishers?: string[];\n\tallowedScopes?: string[];\n\trequireSignature?: boolean;\n\trequirePinnedGitRef?: boolean;\n}\n\nexport interface ExtensionGovernanceDecision {\n\tallowed: boolean;\n\tblockers: string[];\n\treasons: string[];\n}\n\nexport interface OperatingLayerSignal {\n\tid: string;\n\tlabel: string;\n\tstatus: \"pass\" | \"warn\" | \"fail\" | \"unknown\";\n\tweight?: number;\n\tevidence?: string[];\n}\n\nexport interface OperatingLayerScoreReport {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tscore: number;\n\tblockers: string[];\n\twarnings: string[];\n\tsignals: OperatingLayerSignal[];\n}\n\nexport interface ReleaseCanaryStage {\n\tid: string;\n\tname: string;\n\trequires: string[];\n\tevidenceKinds: string[];\n}\n\nexport interface ReleaseCanaryPlan {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tstages: ReleaseCanaryStage[];\n\tblockers: string[];\n}\n\nfunction unique(values: string[]): string[] {\n\treturn [...new Set(values)];\n}\n\nfunction normalizedList(values: string[] | undefined): string[] {\n\treturn unique((values ?? []).map((value) => value.trim()).filter(Boolean));\n}\n\nexport function buildOperatingLayerManifest(): OperatingLayerManifest {\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tcapabilities: OPERATING_LAYER_CAPABILITIES,\n\t};\n}\n\nexport function buildProtocolBoundaryDescriptor(\n\tinput: ProtocolBoundaryInput,\n): ProtocolBoundaryDescriptor {\n\tconst owners = normalizedList(input.owners);\n\tconst contracts = normalizedList(input.contracts);\n\tconst reasons = [\n\t\t`protocol:${input.protocolId}`,\n\t\t`version:${input.version}`,\n\t\t...owners.map((owner) => `owner:${owner}`),\n\t\t...contracts.map((contract) => `contract:${contract}`),\n\t];\n\n\treturn {\n\t\t...input,\n\t\towners,\n\t\tcontracts,\n\t\tcompatibility: input.compatibility ?? \"experimental\",\n\t\treasons,\n\t};\n}\n\nexport function explainResolvedPolicy<T>(\n\tsubject: string,\n\tsources: PolicyResolutionSource<T>[],\n): PolicyResolutionExplanation<T> {\n\tconst activeSource = sources.at(-1);\n\treturn {\n\t\tsubject,\n\t\tresolvedValue: activeSource?.value,\n\t\t...(activeSource ? { activeSource } : {}),\n\t\tchain: sources.map((source, index) => ({\n\t\t\t...source,\n\t\t\toverrides: sources.slice(0, index).map((prior) => prior.id),\n\t\t})),\n\t\treasons: [\n\t\t\t`subject:${subject}`,\n\t\t\t...(activeSource ? [`active_source:${activeSource.id}`] : []),\n\t\t\t...sources.flatMap((source) =>\n\t\t\t\tsource.reason ? [`reason:${source.id}:${source.reason}`] : [],\n\t\t\t),\n\t\t],\n\t};\n}\n\nexport function classifySyncOutcome(\n\titem: SyncOutboxItem,\n\toutcome: SyncOutcome,\n): SyncOutboxDecision {\n\tconst nextAttempt = item.attempt + 1;\n\tif (outcome.ok) {\n\t\treturn {\n\t\t\taction: \"complete\",\n\t\t\treason: \"sync_ok\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\tif (item.attempt >= item.maxAttempts) {\n\t\treturn {\n\t\t\taction: \"block\",\n\t\t\treason: outcome.errorCode ?? \"max_attempts_exhausted\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\tif (\n\t\titem.kind !== \"session_create\" &&\n\t\titem.sessionId &&\n\t\t(outcome.statusCode === 404 || outcome.statusCode === 410)\n\t) {\n\t\treturn {\n\t\t\taction: \"self_heal_session\",\n\t\t\treason: \"remote_session_missing\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\treturn {\n\t\taction: \"retry\",\n\t\treason: outcome.errorCode ?? `http_${outcome.statusCode ?? \"unknown\"}`,\n\t\tnextAttempt,\n\t};\n}\n\nexport function buildApprovalDecisionEvidence(\n\tinput: ApprovalDecisionInput,\n): ApprovalDecisionEvidence {\n\tconst toolNames = normalizedList(input.toolNames);\n\tconst approved = input.decision === \"approved\";\n\treturn {\n\t\t...input,\n\t\ttoolNames,\n\t\tpolicyRefs: normalizedList(input.policyRefs),\n\t\tapprovedTools: approved ? toolNames : [],\n\t\tblockedTools: approved ? [] : toolNames,\n\t\treasons: [\n\t\t\t`surface:${input.surface}`,\n\t\t\t`mode:${input.mode}`,\n\t\t\t`decision:${input.decision}`,\n\t\t],\n\t};\n}\n\nexport function evaluateExtensionGovernance(\n\tcandidate: ExtensionCandidate,\n\tpolicy: ExtensionGovernancePolicy = {},\n): ExtensionGovernanceDecision {\n\tconst blockers: string[] = [];\n\tconst reasons = [`source:${candidate.source}`];\n\tconst allowedSources = new Set(policy.allowedSources ?? []);\n\tif (\n\t\tpolicy.allowedSources !== undefined &&\n\t\t!allowedSources.has(candidate.source)\n\t) {\n\t\tblockers.push(`source_not_allowed:${candidate.source}`);\n\t}\n\tif (policy.requireSignature && !candidate.signed) {\n\t\tblockers.push(\"signature_required\");\n\t}\n\tif (\n\t\tpolicy.requirePinnedGitRef &&\n\t\tcandidate.source === \"git\" &&\n\t\t!candidate.pinnedRef\n\t) {\n\t\tblockers.push(\"pinned_git_ref_required\");\n\t}\n\n\tconst trustedPublishers = new Set(policy.trustedPublishers ?? []);\n\tif (\n\t\tcandidate.source === \"marketplace\" &&\n\t\tcandidate.publisher &&\n\t\ttrustedPublishers.has(candidate.publisher)\n\t) {\n\t\treasons.push(`trusted_publisher:${candidate.publisher}`);\n\t} else if (\n\t\tpolicy.trustedPublishers !== undefined &&\n\t\tcandidate.source === \"marketplace\"\n\t) {\n\t\tblockers.push(`publisher_not_trusted:${candidate.publisher ?? \"unknown\"}`);\n\t}\n\n\tconst allowedScopes = new Set(policy.allowedScopes ?? []);\n\tconst requestedScopes = normalizedList(candidate.requestedScopes);\n\tfor (const scope of requestedScopes) {\n\t\tif (policy.allowedScopes !== undefined && !allowedScopes.has(scope)) {\n\t\t\tblockers.push(`scope_not_allowed:${scope}`);\n\t\t}\n\t}\n\treasons.push(...requestedScopes.map((scope) => `scope:${scope}`));\n\tif (candidate.signed) {\n\t\treasons.push(\"signed\");\n\t}\n\tif (candidate.pinnedRef) {\n\t\treasons.push(`pinned_ref:${candidate.pinnedRef}`);\n\t}\n\n\treturn {\n\t\tallowed: blockers.length === 0,\n\t\tblockers: unique(blockers),\n\t\treasons: unique(reasons),\n\t};\n}\n\nexport function buildRunReadinessReport(\n\tsignals: OperatingLayerSignal[],\n): OperatingLayerScoreReport {\n\treturn buildScoreReport(signals, \"readiness\");\n}\n\nexport function buildRunEffectivenessReport(\n\tsignals: OperatingLayerSignal[],\n): OperatingLayerScoreReport {\n\treturn buildScoreReport(signals, \"effectiveness\");\n}\n\nfunction buildScoreReport(\n\tsignals: OperatingLayerSignal[],\n\tprefix: \"readiness\" | \"effectiveness\",\n): OperatingLayerScoreReport {\n\tlet earned = 0;\n\tlet possible = 0;\n\tconst blockers: string[] = [];\n\tconst warnings: string[] = [];\n\n\tfor (const signal of signals) {\n\t\tconst weight = signal.weight ?? 1;\n\t\tif (signal.status !== \"unknown\") {\n\t\t\tpossible += weight;\n\t\t}\n\t\tif (signal.status === \"pass\") {\n\t\t\tearned += weight;\n\t\t}\n\t\tif (signal.status === \"warn\") {\n\t\t\tearned += weight / 2;\n\t\t\twarnings.push(`${prefix}:${signal.id}`);\n\t\t}\n\t\tif (signal.status === \"fail\") {\n\t\t\tblockers.push(`${prefix}:${signal.id}`);\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tscore: possible === 0 ? 0 : Math.round((earned / possible) * 100),\n\t\tblockers,\n\t\twarnings,\n\t\tsignals,\n\t};\n}\n\nexport const DEFAULT_RELEASE_CANARY_STAGES: ReleaseCanaryStage[] = [\n\t{\n\t\tid: \"local_release_gate\",\n\t\tname: \"Local release gate\",\n\t\trequires: [],\n\t\tevidenceKinds: [\"lint\", \"test\", \"build\", \"release.check\"],\n\t},\n\t{\n\t\tid: \"publish_package\",\n\t\tname: \"Publish package\",\n\t\trequires: [\"local_release_gate\"],\n\t\tevidenceKinds: [\"npm.publish\", \"git.tag\", \"github.release\"],\n\t},\n\t{\n\t\tid: \"registry_install_smoke\",\n\t\tname: \"Registry install smoke\",\n\t\trequires: [\"publish_package\"],\n\t\tevidenceKinds: [\"npm.install\", \"cli.smoke\"],\n\t},\n\t{\n\t\tid: \"published_replay_evidence\",\n\t\tname: \"Published replay evidence\",\n\t\trequires: [\"registry_install_smoke\"],\n\t\tevidenceKinds: [\"replay.e2e\", \"evidence.verify\"],\n\t},\n\t{\n\t\tid: \"release_notification\",\n\t\tname: \"Release notification\",\n\t\trequires: [\"published_replay_evidence\"],\n\t\tevidenceKinds: [\"release.notes\", \"channel.notification\"],\n\t},\n];\n\nexport function buildReleaseCanaryPlan(\n\tstages?: ReleaseCanaryStage[],\n): ReleaseCanaryPlan {\n\tconst planStages = cloneReleaseCanaryStages(\n\t\tstages ?? DEFAULT_RELEASE_CANARY_STAGES,\n\t);\n\tconst stageIds = new Set(planStages.map((stage) => stage.id));\n\tconst stageIndexes = new Map<string, number>();\n\tfor (const [index, stage] of planStages.entries()) {\n\t\tif (!stageIndexes.has(stage.id)) {\n\t\t\tstageIndexes.set(stage.id, index);\n\t\t}\n\t}\n\tconst blockers = [\n\t\t...detectDuplicateReleaseCanaryStages(planStages),\n\t\t...planStages.flatMap((stage) =>\n\t\t\tstage.requires\n\t\t\t\t.filter((required) => !stageIds.has(required))\n\t\t\t\t.map((required) => `missing_stage:${stage.id}:${required}`),\n\t\t),\n\t\t...planStages.flatMap((stage, index) =>\n\t\t\tstage.requires\n\t\t\t\t.filter((required) => {\n\t\t\t\t\tconst requiredIndex = stageIndexes.get(required);\n\t\t\t\t\treturn requiredIndex !== undefined && requiredIndex > index;\n\t\t\t\t})\n\t\t\t\t.map((required) => `out_of_order_stage:${stage.id}:${required}`),\n\t\t),\n\t\t...detectReleaseCanaryCycles(planStages),\n\t];\n\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tstages: planStages,\n\t\tblockers,\n\t};\n}\n\nfunction cloneReleaseCanaryStages(\n\tstages: ReleaseCanaryStage[],\n): ReleaseCanaryStage[] {\n\treturn stages.map((stage) => ({\n\t\t...stage,\n\t\trequires: [...stage.requires],\n\t\tevidenceKinds: [...stage.evidenceKinds],\n\t}));\n}\n\nfunction detectDuplicateReleaseCanaryStages(\n\tstages: ReleaseCanaryStage[],\n): string[] {\n\tconst seen = new Set<string>();\n\tconst blockers: string[] = [];\n\tfor (const stage of stages) {\n\t\tif (seen.has(stage.id)) {\n\t\t\tblockers.push(`duplicate_stage:${stage.id}`);\n\t\t}\n\t\tseen.add(stage.id);\n\t}\n\treturn unique(blockers);\n}\n\nfunction detectReleaseCanaryCycles(stages: ReleaseCanaryStage[]): string[] {\n\tconst requirementsById = new Map<string, Set<string>>();\n\tfor (const stage of stages) {\n\t\tconst requirements = requirementsById.get(stage.id) ?? new Set<string>();\n\t\tfor (const required of stage.requires) {\n\t\t\trequirements.add(required);\n\t\t}\n\t\trequirementsById.set(stage.id, requirements);\n\t}\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst blockers: string[] = [];\n\n\tfunction visit(stageId: string, path: string[]): void {\n\t\tif (visiting.has(stageId)) {\n\t\t\tconst cycleStart = path.indexOf(stageId);\n\t\t\tconst cycle = path.slice(cycleStart).join(\">\");\n\t\t\tblockers.push(`cycle:${cycle}`);\n\t\t\treturn;\n\t\t}\n\t\tif (visited.has(stageId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst requirements = requirementsById.get(stageId);\n\t\tif (!requirements) {\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add(stageId);\n\t\tfor (const required of requirements) {\n\t\t\tvisit(required, [...path, required]);\n\t\t}\n\t\tvisiting.delete(stageId);\n\t\tvisited.add(stageId);\n\t}\n\n\tfor (const stage of stages) {\n\t\tvisit(stage.id, [stage.id]);\n\t}\n\n\treturn unique(blockers);\n}\n"]}
1
+ {"version":3,"file":"operating-layer.js","sourceRoot":"","sources":["../../src/platform/operating-layer.ts"],"names":[],"mappings":"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","sourcesContent":["export const MAESTRO_OPERATING_LAYER_VERSION =\n\t\"evalops.maestro.operating-layer.v1\";\n\nexport type OperatingLayerCapabilityId =\n\t| \"protocol-boundary\"\n\t| \"policy-resolution\"\n\t| \"sync-outbox\"\n\t| \"approval-evidence\"\n\t| \"extension-governance\"\n\t| \"run-readiness\"\n\t| \"run-effectiveness\"\n\t| \"release-canary\";\n\nexport interface OperatingLayerCapability {\n\tid: OperatingLayerCapabilityId;\n\tname: string;\n\tdescription: string;\n\tevidenceKinds: string[];\n}\n\nexport interface OperatingLayerManifest {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tcapabilities: OperatingLayerCapability[];\n}\n\nexport const OPERATING_LAYER_CAPABILITIES: OperatingLayerCapability[] = [\n\t{\n\t\tid: \"protocol-boundary\",\n\t\tname: \"Protocol boundary\",\n\t\tdescription:\n\t\t\t\"Treats versioned protocols as the product integration surface.\",\n\t\tevidenceKinds: [\"protocol.version\", \"protocol.contract\", \"protocol.owner\"],\n\t},\n\t{\n\t\tid: \"policy-resolution\",\n\t\tname: \"Policy resolution\",\n\t\tdescription:\n\t\t\t\"Explains the source and override chain for resolved settings.\",\n\t\tevidenceKinds: [\"policy.subject\", \"policy.source\", \"policy.resolved_value\"],\n\t},\n\t{\n\t\tid: \"sync-outbox\",\n\t\tname: \"Sync outbox\",\n\t\tdescription:\n\t\t\t\"Classifies cloud/session sync outcomes into durable retry actions.\",\n\t\tevidenceKinds: [\"sync.item\", \"sync.outcome\", \"sync.next_action\"],\n\t},\n\t{\n\t\tid: \"approval-evidence\",\n\t\tname: \"Approval evidence\",\n\t\tdescription:\n\t\t\t\"Normalizes permission decisions across tool and product surfaces.\",\n\t\tevidenceKinds: [\n\t\t\t\"approval.request\",\n\t\t\t\"approval.decision\",\n\t\t\t\"approval.surface\",\n\t\t],\n\t},\n\t{\n\t\tid: \"extension-governance\",\n\t\tname: \"Extension governance\",\n\t\tdescription:\n\t\t\t\"Evaluates extensions against marketplace trust and scope policy.\",\n\t\tevidenceKinds: [\n\t\t\t\"extension.source\",\n\t\t\t\"extension.signature\",\n\t\t\t\"extension.scopes\",\n\t\t],\n\t},\n\t{\n\t\tid: \"run-readiness\",\n\t\tname: \"Run readiness\",\n\t\tdescription: \"Scores whether a run has enough evidence to proceed or ship.\",\n\t\tevidenceKinds: [\"readiness.signal\", \"readiness.score\", \"readiness.blocker\"],\n\t},\n\t{\n\t\tid: \"run-effectiveness\",\n\t\tname: \"Run effectiveness\",\n\t\tdescription:\n\t\t\t\"Scores completed work against outcome and confidence signals.\",\n\t\tevidenceKinds: [\n\t\t\t\"effectiveness.signal\",\n\t\t\t\"effectiveness.score\",\n\t\t\t\"effectiveness.evidence\",\n\t\t],\n\t},\n\t{\n\t\tid: \"release-canary\",\n\t\tname: \"Release canary\",\n\t\tdescription:\n\t\t\t\"Defines ordered gates for publish, smoke, replay, and notification.\",\n\t\tevidenceKinds: [\"release.stage\", \"release.gate\", \"release.evidence\"],\n\t},\n];\n\nexport interface ProtocolBoundaryInput {\n\tprotocolId: string;\n\tversion: string;\n\towners?: string[];\n\tcontracts?: string[];\n\tcompatibility?: \"experimental\" | \"stable\" | \"deprecated\";\n}\n\nexport interface ProtocolBoundaryDescriptor extends ProtocolBoundaryInput {\n\tcompatibility: \"experimental\" | \"stable\" | \"deprecated\";\n\treasons: string[];\n}\n\nexport interface PolicyResolutionSource<T = unknown> {\n\tlayer:\n\t\t| \"default\"\n\t\t| \"runtime\"\n\t\t| \"user\"\n\t\t| \"workspace\"\n\t\t| \"project\"\n\t\t| \"organization\"\n\t\t| \"session\";\n\tid: string;\n\tvalue: T;\n\treason?: string;\n}\n\nexport interface PolicyResolutionExplanation<T = unknown> {\n\tsubject: string;\n\tresolvedValue: T | undefined;\n\tactiveSource?: PolicyResolutionSource<T>;\n\tchain: Array<\n\t\tPolicyResolutionSource<T> & {\n\t\t\toverrides: string[];\n\t\t}\n\t>;\n\treasons: string[];\n}\n\nexport type SyncOutboxKind =\n\t| \"session_create\"\n\t| \"session_update\"\n\t| \"message\"\n\t| \"settings\"\n\t| \"artifact\"\n\t| \"approval\";\n\nexport interface SyncOutboxItem {\n\tid: string;\n\tkind: SyncOutboxKind;\n\tsessionId?: string;\n\tstatus: \"pending\" | \"in_flight\" | \"succeeded\" | \"failed\" | \"blocked\";\n\tattempt: number;\n\tmaxAttempts: number;\n}\n\nexport interface SyncOutcome {\n\tok: boolean;\n\tstatusCode?: number;\n\terrorCode?: string;\n}\n\nexport interface SyncOutboxDecision {\n\taction: \"complete\" | \"retry\" | \"self_heal_session\" | \"block\";\n\treason: string;\n\tnextAttempt: number;\n}\n\nexport interface ApprovalDecisionInput {\n\trequestId: string;\n\tsurface: \"cli\" | \"tui\" | \"web\" | \"mcp\" | \"api\";\n\tmode: \"suggest\" | \"ask\" | \"auto\" | \"deny\";\n\tdecision: \"approved\" | \"denied\" | \"expired\";\n\ttoolNames?: string[];\n\tpolicyRefs?: string[];\n}\n\nexport interface ApprovalDecisionEvidence extends ApprovalDecisionInput {\n\tapprovedTools: string[];\n\tblockedTools: string[];\n\treasons: string[];\n}\n\nexport interface ExtensionCandidate {\n\tid: string;\n\tsource: \"builtin\" | \"marketplace\" | \"local\" | \"git\";\n\tpublisher?: string;\n\tsigned?: boolean;\n\tpinnedRef?: string;\n\trequestedScopes?: string[];\n}\n\nexport interface ExtensionGovernancePolicy {\n\tallowedSources?: ExtensionCandidate[\"source\"][];\n\ttrustedPublishers?: string[];\n\tallowedScopes?: string[];\n\trequireSignature?: boolean;\n\trequirePinnedGitRef?: boolean;\n}\n\nexport interface ExtensionGovernanceDecision {\n\tallowed: boolean;\n\tblockers: string[];\n\treasons: string[];\n}\n\nexport interface OperatingLayerSignal {\n\tid: string;\n\tlabel: string;\n\tstatus: \"pass\" | \"warn\" | \"fail\" | \"unknown\";\n\tweight?: number;\n\tevidence?: string[];\n}\n\nexport interface OperatingLayerScoreReport {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tscore: number;\n\tblockers: string[];\n\twarnings: string[];\n\tsignals: OperatingLayerSignal[];\n}\n\nexport interface ReleaseCanaryStage {\n\tid: string;\n\tname: string;\n\trequires: string[];\n\tevidenceKinds: string[];\n}\n\nexport interface ReleaseCanaryPlan {\n\tversion: typeof MAESTRO_OPERATING_LAYER_VERSION;\n\tstages: ReleaseCanaryStage[];\n\tblockers: string[];\n}\n\nfunction unique(values: string[]): string[] {\n\treturn [...new Set(values)];\n}\n\nfunction normalizedList(values: string[] | undefined): string[] {\n\treturn unique((values ?? []).map((value) => value.trim()).filter(Boolean));\n}\n\nexport function buildOperatingLayerManifest(): OperatingLayerManifest {\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tcapabilities: OPERATING_LAYER_CAPABILITIES.map((capability) => ({\n\t\t\t...capability,\n\t\t\tevidenceKinds: [...capability.evidenceKinds],\n\t\t})),\n\t};\n}\n\nexport function buildProtocolBoundaryDescriptor(\n\tinput: ProtocolBoundaryInput,\n): ProtocolBoundaryDescriptor {\n\tconst owners = normalizedList(input.owners);\n\tconst contracts = normalizedList(input.contracts);\n\tconst reasons = [\n\t\t`protocol:${input.protocolId}`,\n\t\t`version:${input.version}`,\n\t\t...owners.map((owner) => `owner:${owner}`),\n\t\t...contracts.map((contract) => `contract:${contract}`),\n\t];\n\n\treturn {\n\t\t...input,\n\t\towners,\n\t\tcontracts,\n\t\tcompatibility: input.compatibility ?? \"experimental\",\n\t\treasons,\n\t};\n}\n\nexport function explainResolvedPolicy<T>(\n\tsubject: string,\n\tsources: PolicyResolutionSource<T>[],\n): PolicyResolutionExplanation<T> {\n\tconst activeSource = sources.at(-1);\n\treturn {\n\t\tsubject,\n\t\tresolvedValue: activeSource?.value,\n\t\t...(activeSource ? { activeSource } : {}),\n\t\tchain: sources.map((source, index) => ({\n\t\t\t...source,\n\t\t\toverrides: sources.slice(0, index).map((prior) => prior.id),\n\t\t})),\n\t\treasons: [\n\t\t\t`subject:${subject}`,\n\t\t\t...(activeSource ? [`active_source:${activeSource.id}`] : []),\n\t\t\t...sources.flatMap((source) =>\n\t\t\t\tsource.reason ? [`reason:${source.id}:${source.reason}`] : [],\n\t\t\t),\n\t\t],\n\t};\n}\n\nexport function classifySyncOutcome(\n\titem: SyncOutboxItem,\n\toutcome: SyncOutcome,\n): SyncOutboxDecision {\n\tconst nextAttempt = item.attempt + 1;\n\tif (outcome.ok) {\n\t\treturn {\n\t\t\taction: \"complete\",\n\t\t\treason: \"sync_ok\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\tif (item.attempt >= item.maxAttempts) {\n\t\treturn {\n\t\t\taction: \"block\",\n\t\t\treason: outcome.errorCode ?? \"max_attempts_exhausted\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\tif (\n\t\titem.kind !== \"session_create\" &&\n\t\titem.sessionId &&\n\t\t(outcome.statusCode === 404 || outcome.statusCode === 410)\n\t) {\n\t\treturn {\n\t\t\taction: \"self_heal_session\",\n\t\t\treason: \"remote_session_missing\",\n\t\t\tnextAttempt,\n\t\t};\n\t}\n\n\treturn {\n\t\taction: \"retry\",\n\t\treason: outcome.errorCode ?? `http_${outcome.statusCode ?? \"unknown\"}`,\n\t\tnextAttempt,\n\t};\n}\n\nexport function buildApprovalDecisionEvidence(\n\tinput: ApprovalDecisionInput,\n): ApprovalDecisionEvidence {\n\tconst toolNames = normalizedList(input.toolNames);\n\tconst approved = input.decision === \"approved\";\n\treturn {\n\t\t...input,\n\t\ttoolNames,\n\t\tpolicyRefs: normalizedList(input.policyRefs),\n\t\tapprovedTools: approved ? toolNames : [],\n\t\tblockedTools: approved ? [] : toolNames,\n\t\treasons: [\n\t\t\t`surface:${input.surface}`,\n\t\t\t`mode:${input.mode}`,\n\t\t\t`decision:${input.decision}`,\n\t\t],\n\t};\n}\n\nexport function evaluateExtensionGovernance(\n\tcandidate: ExtensionCandidate,\n\tpolicy: ExtensionGovernancePolicy = {},\n): ExtensionGovernanceDecision {\n\tconst blockers: string[] = [];\n\tconst reasons = [`source:${candidate.source}`];\n\tconst allowedSources = new Set(policy.allowedSources ?? []);\n\tif (\n\t\tpolicy.allowedSources !== undefined &&\n\t\t!allowedSources.has(candidate.source)\n\t) {\n\t\tblockers.push(`source_not_allowed:${candidate.source}`);\n\t}\n\tif (policy.requireSignature && !candidate.signed) {\n\t\tblockers.push(\"signature_required\");\n\t}\n\tconst pinnedRef = candidate.pinnedRef?.trim();\n\tif (policy.requirePinnedGitRef && candidate.source === \"git\" && !pinnedRef) {\n\t\tblockers.push(\"pinned_git_ref_required\");\n\t}\n\n\tconst trustedPublishers = new Set(policy.trustedPublishers ?? []);\n\tif (\n\t\tcandidate.source === \"marketplace\" &&\n\t\tcandidate.publisher &&\n\t\ttrustedPublishers.has(candidate.publisher)\n\t) {\n\t\treasons.push(`trusted_publisher:${candidate.publisher}`);\n\t} else if (\n\t\tpolicy.trustedPublishers !== undefined &&\n\t\tcandidate.source === \"marketplace\"\n\t) {\n\t\tblockers.push(`publisher_not_trusted:${candidate.publisher ?? \"unknown\"}`);\n\t}\n\n\tconst allowedScopes = new Set(policy.allowedScopes ?? []);\n\tconst requestedScopes = normalizedList(candidate.requestedScopes);\n\tfor (const scope of requestedScopes) {\n\t\tif (policy.allowedScopes !== undefined && !allowedScopes.has(scope)) {\n\t\t\tblockers.push(`scope_not_allowed:${scope}`);\n\t\t}\n\t}\n\treasons.push(...requestedScopes.map((scope) => `scope:${scope}`));\n\tif (candidate.signed) {\n\t\treasons.push(\"signed\");\n\t}\n\tif (pinnedRef) {\n\t\treasons.push(`pinned_ref:${pinnedRef}`);\n\t}\n\n\treturn {\n\t\tallowed: blockers.length === 0,\n\t\tblockers: unique(blockers),\n\t\treasons: unique(reasons),\n\t};\n}\n\nexport function buildRunReadinessReport(\n\tsignals: OperatingLayerSignal[],\n): OperatingLayerScoreReport {\n\treturn buildScoreReport(signals, \"readiness\");\n}\n\nexport function buildRunEffectivenessReport(\n\tsignals: OperatingLayerSignal[],\n): OperatingLayerScoreReport {\n\treturn buildScoreReport(signals, \"effectiveness\");\n}\n\nfunction buildScoreReport(\n\tsignals: OperatingLayerSignal[],\n\tprefix: \"readiness\" | \"effectiveness\",\n): OperatingLayerScoreReport {\n\tlet earned = 0;\n\tlet possible = 0;\n\tconst blockers: string[] = [];\n\tconst warnings: string[] = [];\n\n\tfor (const signal of signals) {\n\t\tconst weight = signal.weight ?? 1;\n\t\tif (signal.status !== \"unknown\") {\n\t\t\tpossible += weight;\n\t\t}\n\t\tif (signal.status === \"pass\") {\n\t\t\tearned += weight;\n\t\t}\n\t\tif (signal.status === \"warn\") {\n\t\t\tearned += weight / 2;\n\t\t\twarnings.push(`${prefix}:${signal.id}`);\n\t\t}\n\t\tif (signal.status === \"fail\") {\n\t\t\tblockers.push(`${prefix}:${signal.id}`);\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tscore: possible === 0 ? 0 : Math.round((earned / possible) * 100),\n\t\tblockers,\n\t\twarnings,\n\t\tsignals,\n\t};\n}\n\nexport const DEFAULT_RELEASE_CANARY_STAGES: ReleaseCanaryStage[] =\n\tObject.freeze(\n\t\t[\n\t\t\t{\n\t\t\t\tid: \"local_release_gate\",\n\t\t\t\tname: \"Local release gate\",\n\t\t\t\trequires: [],\n\t\t\t\tevidenceKinds: [\"lint\", \"test\", \"build\", \"release.check\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"publish_package\",\n\t\t\t\tname: \"Publish package\",\n\t\t\t\trequires: [\"local_release_gate\"],\n\t\t\t\tevidenceKinds: [\"npm.publish\", \"git.tag\", \"github.release\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"registry_install_smoke\",\n\t\t\t\tname: \"Registry install smoke\",\n\t\t\t\trequires: [\"publish_package\"],\n\t\t\t\tevidenceKinds: [\"npm.install\", \"cli.smoke\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"published_replay_evidence\",\n\t\t\t\tname: \"Published replay evidence\",\n\t\t\t\trequires: [\"registry_install_smoke\"],\n\t\t\t\tevidenceKinds: [\"replay.e2e\", \"evidence.verify\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"release_notification\",\n\t\t\t\tname: \"Release notification\",\n\t\t\t\trequires: [\"published_replay_evidence\"],\n\t\t\t\tevidenceKinds: [\"release.notes\", \"channel.notification\"],\n\t\t\t},\n\t\t].map((stage) =>\n\t\t\tObject.freeze({\n\t\t\t\t...stage,\n\t\t\t\trequires: Object.freeze([...stage.requires]) as string[],\n\t\t\t\tevidenceKinds: Object.freeze([...stage.evidenceKinds]) as string[],\n\t\t\t}),\n\t\t),\n\t) as ReleaseCanaryStage[];\n\nexport function buildReleaseCanaryPlan(\n\tstages?: ReleaseCanaryStage[],\n): ReleaseCanaryPlan {\n\tconst planStages = cloneReleaseCanaryStages(\n\t\tstages ?? DEFAULT_RELEASE_CANARY_STAGES,\n\t);\n\tconst stageIds = new Set(planStages.map((stage) => stage.id));\n\tconst stageIndexes = new Map<string, number>();\n\tfor (const [index, stage] of planStages.entries()) {\n\t\tif (!stageIndexes.has(stage.id)) {\n\t\t\tstageIndexes.set(stage.id, index);\n\t\t}\n\t}\n\tconst blockers = [\n\t\t...detectDuplicateReleaseCanaryStages(planStages),\n\t\t...planStages.flatMap((stage) =>\n\t\t\tstage.requires\n\t\t\t\t.filter((required) => !stageIds.has(required))\n\t\t\t\t.map((required) => `missing_stage:${stage.id}:${required}`),\n\t\t),\n\t\t...planStages.flatMap((stage, index) =>\n\t\t\tstage.requires\n\t\t\t\t.filter((required) => {\n\t\t\t\t\tconst requiredIndex = stageIndexes.get(required);\n\t\t\t\t\treturn requiredIndex !== undefined && requiredIndex > index;\n\t\t\t\t})\n\t\t\t\t.map((required) => `out_of_order_stage:${stage.id}:${required}`),\n\t\t),\n\t\t...detectReleaseCanaryCycles(planStages),\n\t];\n\n\treturn {\n\t\tversion: MAESTRO_OPERATING_LAYER_VERSION,\n\t\tstages: planStages,\n\t\tblockers,\n\t};\n}\n\nfunction cloneReleaseCanaryStages(\n\tstages: ReleaseCanaryStage[],\n): ReleaseCanaryStage[] {\n\treturn stages.map((stage) => ({\n\t\t...stage,\n\t\trequires: [...stage.requires],\n\t\tevidenceKinds: [...stage.evidenceKinds],\n\t}));\n}\n\nfunction detectDuplicateReleaseCanaryStages(\n\tstages: ReleaseCanaryStage[],\n): string[] {\n\tconst seen = new Set<string>();\n\tconst blockers: string[] = [];\n\tfor (const stage of stages) {\n\t\tif (seen.has(stage.id)) {\n\t\t\tblockers.push(`duplicate_stage:${stage.id}`);\n\t\t}\n\t\tseen.add(stage.id);\n\t}\n\treturn unique(blockers);\n}\n\nfunction detectReleaseCanaryCycles(stages: ReleaseCanaryStage[]): string[] {\n\tconst requirementsById = new Map<string, Set<string>>();\n\tfor (const stage of stages) {\n\t\tconst requirements = requirementsById.get(stage.id) ?? new Set<string>();\n\t\tfor (const required of stage.requires) {\n\t\t\trequirements.add(required);\n\t\t}\n\t\trequirementsById.set(stage.id, requirements);\n\t}\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst blockers: string[] = [];\n\n\tfunction visit(stageId: string, path: string[]): void {\n\t\tif (visiting.has(stageId)) {\n\t\t\tconst cycleStart = path.indexOf(stageId);\n\t\t\tconst cycle = path.slice(cycleStart).join(\">\");\n\t\t\tblockers.push(`cycle:${cycle}`);\n\t\t\treturn;\n\t\t}\n\t\tif (visited.has(stageId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst requirements = requirementsById.get(stageId);\n\t\tif (!requirements) {\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add(stageId);\n\t\tfor (const required of requirements) {\n\t\t\tvisit(required, [...path, required]);\n\t\t}\n\t\tvisiting.delete(stageId);\n\t\tvisited.add(stageId);\n\t}\n\n\tfor (const stage of stages) {\n\t\tvisit(stage.id, [stage.id]);\n\t}\n\n\treturn unique(blockers);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-execution-client.d.ts","sourceRoot":"","sources":["../../src/platform/tool-execution-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-execution-client.d.ts","sourceRoot":"","sources":["../../src/platform/tool-execution-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EVALOPS_ACCESS_TOKEN_ENV_VARS, EVALOPS_ORGANIZATION_ID_ENV_VARS, EVALOPS_WORKSPACE_ID_ENV_VARS, } from "../evalops/env-aliases.js";
2
- import { postPlatformConnect, resolvePlatformServiceConfig, trimString, } from "./client.js";
2
+ import { getEnvValue, postPlatformConnect, resolvePlatformServiceConfig, trimString, } from "./client.js";
3
3
  import { PLATFORM_CONNECT_METHODS, platformConnectMethodPath, platformConnectServicePath, } from "./core-services.js";
4
4
  const DEFAULT_TIMEOUT_MS = 2_500;
5
5
  const DEFAULT_MAX_ATTEMPTS = 2;
@@ -26,6 +26,15 @@ const TOOL_EXECUTION_WORKSPACE_ENV_VARS = [
26
26
  "MAESTRO_REMOTE_RUNNER_WORKSPACE_ID",
27
27
  ...EVALOPS_WORKSPACE_ID_ENV_VARS,
28
28
  ];
29
+ const TOOL_EXECUTION_OBJECTIVE_ENV_VARS = [
30
+ "MAESTRO_OBJECTIVE_ID",
31
+ "MAESTRO_EVALOPS_OBJECTIVE_ID",
32
+ ];
33
+ // Surface identifier for the Platform "codex worker" agent runtime. The
34
+ // operating-chat / tool-execution endpoint requires `objective_id` on the
35
+ // request linkage when this surface is in use (Sentry PLATFORM-5). Kept as a
36
+ // local const to avoid a circular import from shell-env.ts.
37
+ const PLATFORM_WORKER_SURFACE = "platform-agent-runtime";
29
38
  const TOOL_EXECUTION_TIMEOUT_ENV_VARS = [
30
39
  "TOOL_EXECUTION_SERVICE_TIMEOUT_MS",
31
40
  "MAESTRO_TOOL_EXECUTION_SERVICE_TIMEOUT_MS",
@@ -153,6 +162,10 @@ function normalizeExecutionRecord(record) {
153
162
  function stripUndefinedValues(record) {
154
163
  return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
155
164
  }
165
+ function resolveObjectiveId(linkage) {
166
+ return (trimString(linkage.objectiveId) ??
167
+ getEnvValue(TOOL_EXECUTION_OBJECTIVE_ENV_VARS));
168
+ }
156
169
  function normalizeExecuteToolRequest(request) {
157
170
  return stripUndefinedValues({
158
171
  linkage: stripUndefinedValues({
@@ -160,7 +173,7 @@ function normalizeExecuteToolRequest(request) {
160
173
  organizationId: request.linkage.organizationId,
161
174
  agentId: request.linkage.agentId,
162
175
  runId: request.linkage.runId,
163
- objectiveId: request.linkage.objectiveId,
176
+ objectiveId: resolveObjectiveId(request.linkage),
164
177
  stepId: request.linkage.stepId,
165
178
  actorId: request.linkage.actorId,
166
179
  surface: request.linkage.surface,
@@ -227,6 +240,10 @@ async function parseJsonResponse(response, serviceName) {
227
240
  return JSON.parse(text);
228
241
  }
229
242
  export async function executeToolWithPlatform(config, request, signal) {
243
+ if (request.linkage.surface === PLATFORM_WORKER_SURFACE &&
244
+ !resolveObjectiveId(request.linkage)) {
245
+ throw new Error(`operating chat requires an objective_id for the ${PLATFORM_WORKER_SURFACE} surface; set MAESTRO_OBJECTIVE_ID (or MAESTRO_EVALOPS_OBJECTIVE_ID) or pass linkage.objectiveId`);
246
+ }
230
247
  const response = await postPlatformConnect(config, EXECUTE_TOOL_PATH, normalizeExecuteToolRequest(request), {
231
248
  serviceName: "tool execution service",
232
249
  failureMode: "required",
@@ -1 +1 @@
1
- {"version":3,"file":"tool-execution-client.js","sourceRoot":"","sources":["../../src/platform/tool-execution-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tEVALOPS_ACCESS_TOKEN_ENV_VARS,\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n} from \"../evalops/env-aliases.js\";\nimport {\n\ttype PlatformServiceConfig,\n\tgetEnvValue,\n\tpostPlatformConnect,\n\tresolvePlatformServiceConfig,\n\ttrimString,\n} from \"./client.js\";\nimport {\n\tPLATFORM_CONNECT_METHODS,\n\tplatformConnectMethodPath,\n\tplatformConnectServicePath,\n} from \"./core-services.js\";\n\nconst DEFAULT_TIMEOUT_MS = 2_500;\nconst DEFAULT_MAX_ATTEMPTS = 2;\n\nconst TOOL_EXECUTION_BASE_URL_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_URL\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_URL\",\n\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\"EVALOPS_BASE_URL\",\n] as const;\n\nconst TOOL_EXECUTION_TOKEN_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_TOKEN\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_TOKEN\",\n\t...EVALOPS_ACCESS_TOKEN_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_ORGANIZATION_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_ORGANIZATION_ID\",\n\t\"MAESTRO_TOOL_EXECUTION_ORGANIZATION_ID\",\n\t...EVALOPS_ORGANIZATION_ID_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_WORKSPACE_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_WORKSPACE_ID\",\n\t\"MAESTRO_TOOL_EXECUTION_WORKSPACE_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_WORKSPACE_ID\",\n\t...EVALOPS_WORKSPACE_ID_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_TIMEOUT_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_TIMEOUT_MS\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_TIMEOUT_MS\",\n] as const;\n\nconst TOOL_EXECUTION_MAX_ATTEMPTS_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_MAX_ATTEMPTS\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_MAX_ATTEMPTS\",\n] as const;\n\nconst EXECUTE_TOOL_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool,\n);\nconst RESUME_TOOL_EXECUTION_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.resumeToolExecution,\n);\nconst RECORD_TOOL_EXECUTION_OUTPUT_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.recordToolExecutionOutput,\n);\n\nexport type ToolExecutionRiskLevel =\n\t| \"RISK_LEVEL_UNSPECIFIED\"\n\t| \"RISK_LEVEL_LOW\"\n\t| \"RISK_LEVEL_MEDIUM\"\n\t| \"RISK_LEVEL_HIGH\"\n\t| \"RISK_LEVEL_CRITICAL\";\n\nexport type ToolExecutionState =\n\t| \"TOOL_EXECUTION_STATE_UNSPECIFIED\"\n\t| \"TOOL_EXECUTION_STATE_ACCEPTED\"\n\t| \"TOOL_EXECUTION_STATE_POLICY_EVALUATING\"\n\t| \"TOOL_EXECUTION_STATE_WAITING_APPROVAL\"\n\t| \"TOOL_EXECUTION_STATE_RUNNING\"\n\t| \"TOOL_EXECUTION_STATE_SUCCEEDED\"\n\t| \"TOOL_EXECUTION_STATE_FAILED\"\n\t| \"TOOL_EXECUTION_STATE_DENIED\"\n\t| \"TOOL_EXECUTION_STATE_CANCELLED\";\n\nexport interface ToolExecutionLinkage {\n\tworkspaceId: string;\n\torganizationId?: string;\n\tagentId: string;\n\trunId?: string;\n\tobjectiveId?: string;\n\tstepId: string;\n\tactorId?: string;\n\tsurface?: string;\n\tchannelId?: string;\n\tcorrelationId?: string;\n}\n\nexport interface PlatformToolRef {\n\tnamespace: string;\n\tname: string;\n\tversion?: string;\n\tcapability: string;\n\toperation?: string;\n\tidempotent?: boolean;\n\tmutatesResource?: boolean;\n}\n\nexport interface PlatformConnectorRef {\n\tconnectionId?: string;\n\tproviderId?: string;\n\tresourceId?: string;\n\tresourceKind?: string;\n\tcredentialRef?: string;\n\tcredentialEnvironment?: string;\n}\n\nexport interface PlatformToolRetryPolicy {\n\tmaxAttempts?: number;\n\tinitialDelayMs?: number;\n\tmaxDelayMs?: number;\n\tallowNonIdempotentRetry?: boolean;\n}\n\nexport interface ExecutePlatformToolRequest {\n\tlinkage: ToolExecutionLinkage;\n\ttool: PlatformToolRef;\n\tconnector?: PlatformConnectorRef;\n\targuments: Record<string, unknown>;\n\triskLevel?: ToolExecutionRiskLevel;\n\tretryPolicy?: PlatformToolRetryPolicy;\n\tidempotencyKey: string;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface ResumePlatformToolExecutionRequest {\n\texecutionId: string;\n\tapprovalRequestId: string;\n\tresumeToken: string;\n\tapproved: boolean;\n\tdecidedBy?: string;\n\treason?: string;\n}\n\nexport interface PlatformToolOutputProposal {\n\tkind: string;\n\ttargetRef?: string;\n\tpayload?: Record<string, unknown>;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface PlatformToolExecutionOutput {\n\trawOutput?: Record<string, unknown>;\n\tsafeOutput?: Record<string, unknown>;\n\tproposals?: PlatformToolOutputProposal[];\n\tredactions?: string[];\n\tcontentType?: string;\n\toutputDigest?: string;\n\tdurationMs?: number;\n}\n\nexport interface RecordPlatformToolExecutionOutputRequest {\n\texecutionId: string;\n\toutput: PlatformToolExecutionOutput;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface PlatformApprovalWait {\n\tapprovalRequestId?: string;\n\tresumeToken?: string;\n\treason?: string;\n}\n\nexport interface PlatformToolExecutionRecord {\n\tid?: string;\n\tstate?: ToolExecutionState;\n\terrorMessage?: string;\n\tapprovalWait?: PlatformApprovalWait;\n}\n\nexport interface ExecutePlatformToolResponse {\n\texecution: PlatformToolExecutionRecord;\n\tidempotentReplay: boolean;\n}\n\nexport interface ResumePlatformToolExecutionResponse {\n\texecution: PlatformToolExecutionRecord;\n}\n\nexport interface RecordPlatformToolExecutionOutputResponse {\n\texecution: PlatformToolExecutionRecord;\n}\n\nexport interface ToolExecutionServiceConfig extends PlatformServiceConfig {}\n\nfunction stripTrailingSlashes(value: string): string {\n\treturn value.replace(/\\/+$/u, \"\");\n}\n\nfunction normalizeBaseUrl(baseUrl: string): string {\n\tlet normalized = stripTrailingSlashes(baseUrl.trim());\n\tfor (const suffix of [\n\t\tEXECUTE_TOOL_PATH,\n\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\tplatformConnectServicePath(\n\t\t\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool.service,\n\t\t),\n\t]) {\n\t\tif (normalized.endsWith(suffix)) {\n\t\t\tnormalized = stripTrailingSlashes(normalized.slice(0, -suffix.length));\n\t\t}\n\t}\n\treturn normalized;\n}\n\nexport async function resolveToolExecutionServiceConfig(\n\toverrides: Partial<ToolExecutionServiceConfig> = {},\n): Promise<ToolExecutionServiceConfig | null> {\n\tconst config = await resolvePlatformServiceConfig({\n\t\tbaseUrlEnvVars: TOOL_EXECUTION_BASE_URL_ENV_VARS,\n\t\ttokenEnvVars: TOOL_EXECUTION_TOKEN_ENV_VARS,\n\t\torganizationEnvVars: TOOL_EXECUTION_ORGANIZATION_ENV_VARS,\n\t\tworkspaceEnvVars: TOOL_EXECUTION_WORKSPACE_ENV_VARS,\n\t\ttimeoutEnvVars: TOOL_EXECUTION_TIMEOUT_ENV_VARS,\n\t\tmaxAttemptsEnvVars: TOOL_EXECUTION_MAX_ATTEMPTS_ENV_VARS,\n\t\tbaseUrlSuffixes: [\n\t\t\tEXECUTE_TOOL_PATH,\n\t\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\t\tplatformConnectServicePath(\n\t\t\t\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool.service,\n\t\t\t),\n\t\t],\n\t\tdefaultTimeoutMs: DEFAULT_TIMEOUT_MS,\n\t\tdefaultMaxAttempts: DEFAULT_MAX_ATTEMPTS,\n\t\trequireBaseUrl: false,\n\t\trequireOrganizationId: true,\n\t\trequireToken: true,\n\t});\n\tif (!config?.baseUrl || !config.workspaceId) {\n\t\treturn null;\n\t}\n\treturn {\n\t\t...config,\n\t\tbaseUrl: normalizeBaseUrl(\n\t\t\ttrimString(overrides.baseUrl ?? config.baseUrl) ?? config.baseUrl,\n\t\t),\n\t\torganizationId:\n\t\t\ttrimString(overrides.organizationId ?? config.organizationId) ??\n\t\t\tconfig.organizationId,\n\t\tworkspaceId:\n\t\t\ttrimString(overrides.workspaceId ?? config.workspaceId) ??\n\t\t\tconfig.workspaceId,\n\t\ttoken: trimString(overrides.token ?? config.token) ?? config.token,\n\t\ttimeoutMs: overrides.timeoutMs ?? config.timeoutMs,\n\t\tmaxAttempts: overrides.maxAttempts ?? config.maxAttempts,\n\t\tteamId: trimString(overrides.teamId ?? config.teamId),\n\t};\n}\n\nfunction firstString(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): string | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (typeof value === \"string\" && value.trim().length > 0) {\n\t\t\treturn value.trim();\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction firstBoolean(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): boolean | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (typeof value === \"boolean\") {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction objectValue(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): Record<string, unknown> | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (value && typeof value === \"object\" && !Array.isArray(value)) {\n\t\t\treturn value as Record<string, unknown>;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction normalizeExecutionState(\n\tvalue: unknown,\n): ToolExecutionState | undefined {\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\treturn undefined;\n\t}\n\treturn value.trim() as ToolExecutionState;\n}\n\nfunction normalizeApprovalWait(\n\trecord: Record<string, unknown> | undefined,\n): PlatformApprovalWait | undefined {\n\tif (!record) {\n\t\treturn undefined;\n\t}\n\tconst approvalRequestId = firstString(\n\t\trecord,\n\t\t\"approvalRequestId\",\n\t\t\"approval_request_id\",\n\t);\n\tconst resumeToken = firstString(record, \"resumeToken\", \"resume_token\");\n\tconst reason = firstString(record, \"reason\");\n\tif (!approvalRequestId && !resumeToken && !reason) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\t...(approvalRequestId ? { approvalRequestId } : {}),\n\t\t...(resumeToken ? { resumeToken } : {}),\n\t\t...(reason ? { reason } : {}),\n\t};\n}\n\nfunction normalizeExecutionRecord(\n\trecord: Record<string, unknown> | undefined,\n): PlatformToolExecutionRecord {\n\tif (!record) {\n\t\treturn {};\n\t}\n\treturn {\n\t\tid: firstString(record, \"id\"),\n\t\tstate: normalizeExecutionState(record.state),\n\t\terrorMessage: firstString(record, \"errorMessage\", \"error_message\"),\n\t\tapprovalWait: normalizeApprovalWait(\n\t\t\tobjectValue(record, \"approvalWait\", \"approval_wait\"),\n\t\t),\n\t};\n}\n\nfunction stripUndefinedValues(\n\trecord: Record<string, unknown>,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(record).filter(([, value]) => value !== undefined),\n\t);\n}\n\nfunction normalizeExecuteToolRequest(\n\trequest: ExecutePlatformToolRequest,\n): Record<string, unknown> {\n\treturn stripUndefinedValues({\n\t\tlinkage: stripUndefinedValues({\n\t\t\tworkspaceId: request.linkage.workspaceId,\n\t\t\torganizationId: request.linkage.organizationId,\n\t\t\tagentId: request.linkage.agentId,\n\t\t\trunId: request.linkage.runId,\n\t\t\tobjectiveId: request.linkage.objectiveId,\n\t\t\tstepId: request.linkage.stepId,\n\t\t\tactorId: request.linkage.actorId,\n\t\t\tsurface: request.linkage.surface,\n\t\t\tchannelId: request.linkage.channelId,\n\t\t\tcorrelationId: request.linkage.correlationId,\n\t\t}),\n\t\ttool: stripUndefinedValues({\n\t\t\tnamespace: request.tool.namespace,\n\t\t\tname: request.tool.name,\n\t\t\tversion: request.tool.version,\n\t\t\tcapability: request.tool.capability,\n\t\t\toperation: request.tool.operation,\n\t\t\tidempotent: request.tool.idempotent,\n\t\t\tmutatesResource: request.tool.mutatesResource,\n\t\t}),\n\t\tconnector: request.connector\n\t\t\t? stripUndefinedValues({\n\t\t\t\t\tconnectionId: request.connector.connectionId,\n\t\t\t\t\tproviderId: request.connector.providerId,\n\t\t\t\t\tresourceId: request.connector.resourceId,\n\t\t\t\t\tresourceKind: request.connector.resourceKind,\n\t\t\t\t\tcredentialRef: request.connector.credentialRef,\n\t\t\t\t\tcredentialEnvironment: request.connector.credentialEnvironment,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\targuments: request.arguments,\n\t\triskLevel: request.riskLevel,\n\t\tretryPolicy: request.retryPolicy\n\t\t\t? stripUndefinedValues({\n\t\t\t\t\tmaxAttempts: request.retryPolicy.maxAttempts,\n\t\t\t\t\tinitialDelayMs: request.retryPolicy.initialDelayMs,\n\t\t\t\t\tmaxDelayMs: request.retryPolicy.maxDelayMs,\n\t\t\t\t\tallowNonIdempotentRetry: request.retryPolicy.allowNonIdempotentRetry,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tmetadata: request.metadata,\n\t});\n}\n\nfunction normalizeToolExecutionOutput(\n\toutput: PlatformToolExecutionOutput,\n): Record<string, unknown> {\n\treturn stripUndefinedValues({\n\t\trawOutput: output.rawOutput,\n\t\tsafeOutput: output.safeOutput,\n\t\tproposals: output.proposals?.map((proposal) =>\n\t\t\tstripUndefinedValues({\n\t\t\t\tkind: proposal.kind,\n\t\t\t\ttargetRef: proposal.targetRef,\n\t\t\t\tpayload: proposal.payload,\n\t\t\t\tmetadata: proposal.metadata,\n\t\t\t}),\n\t\t),\n\t\tredactions: output.redactions,\n\t\tcontentType: output.contentType,\n\t\toutputDigest: output.outputDigest,\n\t\tdurationMs: output.durationMs,\n\t});\n}\n\nasync function parseJsonResponse(\n\tresponse: Response,\n\tserviceName: string,\n): Promise<Record<string, unknown>> {\n\tconst text = await response.text();\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`${serviceName} returned ${response.status}: ${text || response.statusText}`,\n\t\t);\n\t}\n\tif (!text.trim()) {\n\t\tthrow new Error(`${serviceName} returned empty response`);\n\t}\n\treturn JSON.parse(text) as Record<string, unknown>;\n}\n\nexport async function executeToolWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: ExecutePlatformToolRequest,\n\tsignal?: AbortSignal,\n): Promise<ExecutePlatformToolResponse> {\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tEXECUTE_TOOL_PATH,\n\t\tnormalizeExecuteToolRequest(request),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t\tidempotentReplay:\n\t\t\tfirstBoolean(payload, \"idempotentReplay\", \"idempotent_replay\") === true,\n\t};\n}\n\nexport async function resumeToolExecutionWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: ResumePlatformToolExecutionRequest,\n\tsignal?: AbortSignal,\n): Promise<ResumePlatformToolExecutionResponse> {\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\tstripUndefinedValues({\n\t\t\texecutionId: request.executionId,\n\t\t\tapprovalRequestId: request.approvalRequestId,\n\t\t\tresumeToken: request.resumeToken,\n\t\t\tapproved: request.approved,\n\t\t\tdecidedBy: request.decidedBy,\n\t\t\treason: request.reason,\n\t\t}),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t};\n}\n\nexport async function recordToolExecutionOutputWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: RecordPlatformToolExecutionOutputRequest,\n\tsignal?: AbortSignal,\n): Promise<RecordPlatformToolExecutionOutputResponse> {\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\tstripUndefinedValues({\n\t\t\texecutionId: request.executionId,\n\t\t\toutput: normalizeToolExecutionOutput(request.output),\n\t\t\tmetadata: request.metadata,\n\t\t}),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t};\n}\n"]}
1
+ {"version":3,"file":"tool-execution-client.js","sourceRoot":"","sources":["../../src/platform/tool-execution-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tEVALOPS_ACCESS_TOKEN_ENV_VARS,\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n} from \"../evalops/env-aliases.js\";\nimport {\n\ttype PlatformServiceConfig,\n\tgetEnvValue,\n\tpostPlatformConnect,\n\tresolvePlatformServiceConfig,\n\ttrimString,\n} from \"./client.js\";\nimport {\n\tPLATFORM_CONNECT_METHODS,\n\tplatformConnectMethodPath,\n\tplatformConnectServicePath,\n} from \"./core-services.js\";\n\nconst DEFAULT_TIMEOUT_MS = 2_500;\nconst DEFAULT_MAX_ATTEMPTS = 2;\n\nconst TOOL_EXECUTION_BASE_URL_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_URL\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_URL\",\n\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\"EVALOPS_BASE_URL\",\n] as const;\n\nconst TOOL_EXECUTION_TOKEN_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_TOKEN\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_TOKEN\",\n\t...EVALOPS_ACCESS_TOKEN_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_ORGANIZATION_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_ORGANIZATION_ID\",\n\t\"MAESTRO_TOOL_EXECUTION_ORGANIZATION_ID\",\n\t...EVALOPS_ORGANIZATION_ID_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_WORKSPACE_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_WORKSPACE_ID\",\n\t\"MAESTRO_TOOL_EXECUTION_WORKSPACE_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_WORKSPACE_ID\",\n\t...EVALOPS_WORKSPACE_ID_ENV_VARS,\n] as const;\n\nconst TOOL_EXECUTION_OBJECTIVE_ENV_VARS = [\n\t\"MAESTRO_OBJECTIVE_ID\",\n\t\"MAESTRO_EVALOPS_OBJECTIVE_ID\",\n] as const;\n\n// Surface identifier for the Platform \"codex worker\" agent runtime. The\n// operating-chat / tool-execution endpoint requires `objective_id` on the\n// request linkage when this surface is in use (Sentry PLATFORM-5). Kept as a\n// local const to avoid a circular import from shell-env.ts.\nconst PLATFORM_WORKER_SURFACE = \"platform-agent-runtime\";\n\nconst TOOL_EXECUTION_TIMEOUT_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_TIMEOUT_MS\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_TIMEOUT_MS\",\n] as const;\n\nconst TOOL_EXECUTION_MAX_ATTEMPTS_ENV_VARS = [\n\t\"TOOL_EXECUTION_SERVICE_MAX_ATTEMPTS\",\n\t\"MAESTRO_TOOL_EXECUTION_SERVICE_MAX_ATTEMPTS\",\n] as const;\n\nconst EXECUTE_TOOL_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool,\n);\nconst RESUME_TOOL_EXECUTION_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.resumeToolExecution,\n);\nconst RECORD_TOOL_EXECUTION_OUTPUT_PATH = platformConnectMethodPath(\n\tPLATFORM_CONNECT_METHODS.toolexecution.recordToolExecutionOutput,\n);\n\nexport type ToolExecutionRiskLevel =\n\t| \"RISK_LEVEL_UNSPECIFIED\"\n\t| \"RISK_LEVEL_LOW\"\n\t| \"RISK_LEVEL_MEDIUM\"\n\t| \"RISK_LEVEL_HIGH\"\n\t| \"RISK_LEVEL_CRITICAL\";\n\nexport type ToolExecutionState =\n\t| \"TOOL_EXECUTION_STATE_UNSPECIFIED\"\n\t| \"TOOL_EXECUTION_STATE_ACCEPTED\"\n\t| \"TOOL_EXECUTION_STATE_POLICY_EVALUATING\"\n\t| \"TOOL_EXECUTION_STATE_WAITING_APPROVAL\"\n\t| \"TOOL_EXECUTION_STATE_RUNNING\"\n\t| \"TOOL_EXECUTION_STATE_SUCCEEDED\"\n\t| \"TOOL_EXECUTION_STATE_FAILED\"\n\t| \"TOOL_EXECUTION_STATE_DENIED\"\n\t| \"TOOL_EXECUTION_STATE_CANCELLED\";\n\nexport interface ToolExecutionLinkage {\n\tworkspaceId: string;\n\torganizationId?: string;\n\tagentId: string;\n\trunId?: string;\n\tobjectiveId?: string;\n\tstepId: string;\n\tactorId?: string;\n\tsurface?: string;\n\tchannelId?: string;\n\tcorrelationId?: string;\n}\n\nexport interface PlatformToolRef {\n\tnamespace: string;\n\tname: string;\n\tversion?: string;\n\tcapability: string;\n\toperation?: string;\n\tidempotent?: boolean;\n\tmutatesResource?: boolean;\n}\n\nexport interface PlatformConnectorRef {\n\tconnectionId?: string;\n\tproviderId?: string;\n\tresourceId?: string;\n\tresourceKind?: string;\n\tcredentialRef?: string;\n\tcredentialEnvironment?: string;\n}\n\nexport interface PlatformToolRetryPolicy {\n\tmaxAttempts?: number;\n\tinitialDelayMs?: number;\n\tmaxDelayMs?: number;\n\tallowNonIdempotentRetry?: boolean;\n}\n\nexport interface ExecutePlatformToolRequest {\n\tlinkage: ToolExecutionLinkage;\n\ttool: PlatformToolRef;\n\tconnector?: PlatformConnectorRef;\n\targuments: Record<string, unknown>;\n\triskLevel?: ToolExecutionRiskLevel;\n\tretryPolicy?: PlatformToolRetryPolicy;\n\tidempotencyKey: string;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface ResumePlatformToolExecutionRequest {\n\texecutionId: string;\n\tapprovalRequestId: string;\n\tresumeToken: string;\n\tapproved: boolean;\n\tdecidedBy?: string;\n\treason?: string;\n}\n\nexport interface PlatformToolOutputProposal {\n\tkind: string;\n\ttargetRef?: string;\n\tpayload?: Record<string, unknown>;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface PlatformToolExecutionOutput {\n\trawOutput?: Record<string, unknown>;\n\tsafeOutput?: Record<string, unknown>;\n\tproposals?: PlatformToolOutputProposal[];\n\tredactions?: string[];\n\tcontentType?: string;\n\toutputDigest?: string;\n\tdurationMs?: number;\n}\n\nexport interface RecordPlatformToolExecutionOutputRequest {\n\texecutionId: string;\n\toutput: PlatformToolExecutionOutput;\n\tmetadata?: Record<string, string>;\n}\n\nexport interface PlatformApprovalWait {\n\tapprovalRequestId?: string;\n\tresumeToken?: string;\n\treason?: string;\n}\n\nexport interface PlatformToolExecutionRecord {\n\tid?: string;\n\tstate?: ToolExecutionState;\n\terrorMessage?: string;\n\tapprovalWait?: PlatformApprovalWait;\n}\n\nexport interface ExecutePlatformToolResponse {\n\texecution: PlatformToolExecutionRecord;\n\tidempotentReplay: boolean;\n}\n\nexport interface ResumePlatformToolExecutionResponse {\n\texecution: PlatformToolExecutionRecord;\n}\n\nexport interface RecordPlatformToolExecutionOutputResponse {\n\texecution: PlatformToolExecutionRecord;\n}\n\nexport interface ToolExecutionServiceConfig extends PlatformServiceConfig {}\n\nfunction stripTrailingSlashes(value: string): string {\n\treturn value.replace(/\\/+$/u, \"\");\n}\n\nfunction normalizeBaseUrl(baseUrl: string): string {\n\tlet normalized = stripTrailingSlashes(baseUrl.trim());\n\tfor (const suffix of [\n\t\tEXECUTE_TOOL_PATH,\n\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\tplatformConnectServicePath(\n\t\t\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool.service,\n\t\t),\n\t]) {\n\t\tif (normalized.endsWith(suffix)) {\n\t\t\tnormalized = stripTrailingSlashes(normalized.slice(0, -suffix.length));\n\t\t}\n\t}\n\treturn normalized;\n}\n\nexport async function resolveToolExecutionServiceConfig(\n\toverrides: Partial<ToolExecutionServiceConfig> = {},\n): Promise<ToolExecutionServiceConfig | null> {\n\tconst config = await resolvePlatformServiceConfig({\n\t\tbaseUrlEnvVars: TOOL_EXECUTION_BASE_URL_ENV_VARS,\n\t\ttokenEnvVars: TOOL_EXECUTION_TOKEN_ENV_VARS,\n\t\torganizationEnvVars: TOOL_EXECUTION_ORGANIZATION_ENV_VARS,\n\t\tworkspaceEnvVars: TOOL_EXECUTION_WORKSPACE_ENV_VARS,\n\t\ttimeoutEnvVars: TOOL_EXECUTION_TIMEOUT_ENV_VARS,\n\t\tmaxAttemptsEnvVars: TOOL_EXECUTION_MAX_ATTEMPTS_ENV_VARS,\n\t\tbaseUrlSuffixes: [\n\t\t\tEXECUTE_TOOL_PATH,\n\t\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\t\tplatformConnectServicePath(\n\t\t\t\tPLATFORM_CONNECT_METHODS.toolexecution.executeTool.service,\n\t\t\t),\n\t\t],\n\t\tdefaultTimeoutMs: DEFAULT_TIMEOUT_MS,\n\t\tdefaultMaxAttempts: DEFAULT_MAX_ATTEMPTS,\n\t\trequireBaseUrl: false,\n\t\trequireOrganizationId: true,\n\t\trequireToken: true,\n\t});\n\tif (!config?.baseUrl || !config.workspaceId) {\n\t\treturn null;\n\t}\n\treturn {\n\t\t...config,\n\t\tbaseUrl: normalizeBaseUrl(\n\t\t\ttrimString(overrides.baseUrl ?? config.baseUrl) ?? config.baseUrl,\n\t\t),\n\t\torganizationId:\n\t\t\ttrimString(overrides.organizationId ?? config.organizationId) ??\n\t\t\tconfig.organizationId,\n\t\tworkspaceId:\n\t\t\ttrimString(overrides.workspaceId ?? config.workspaceId) ??\n\t\t\tconfig.workspaceId,\n\t\ttoken: trimString(overrides.token ?? config.token) ?? config.token,\n\t\ttimeoutMs: overrides.timeoutMs ?? config.timeoutMs,\n\t\tmaxAttempts: overrides.maxAttempts ?? config.maxAttempts,\n\t\tteamId: trimString(overrides.teamId ?? config.teamId),\n\t};\n}\n\nfunction firstString(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): string | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (typeof value === \"string\" && value.trim().length > 0) {\n\t\t\treturn value.trim();\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction firstBoolean(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): boolean | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (typeof value === \"boolean\") {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction objectValue(\n\trecord: Record<string, unknown>,\n\t...keys: string[]\n): Record<string, unknown> | undefined {\n\tfor (const key of keys) {\n\t\tconst value = record[key];\n\t\tif (value && typeof value === \"object\" && !Array.isArray(value)) {\n\t\t\treturn value as Record<string, unknown>;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction normalizeExecutionState(\n\tvalue: unknown,\n): ToolExecutionState | undefined {\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\treturn undefined;\n\t}\n\treturn value.trim() as ToolExecutionState;\n}\n\nfunction normalizeApprovalWait(\n\trecord: Record<string, unknown> | undefined,\n): PlatformApprovalWait | undefined {\n\tif (!record) {\n\t\treturn undefined;\n\t}\n\tconst approvalRequestId = firstString(\n\t\trecord,\n\t\t\"approvalRequestId\",\n\t\t\"approval_request_id\",\n\t);\n\tconst resumeToken = firstString(record, \"resumeToken\", \"resume_token\");\n\tconst reason = firstString(record, \"reason\");\n\tif (!approvalRequestId && !resumeToken && !reason) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\t...(approvalRequestId ? { approvalRequestId } : {}),\n\t\t...(resumeToken ? { resumeToken } : {}),\n\t\t...(reason ? { reason } : {}),\n\t};\n}\n\nfunction normalizeExecutionRecord(\n\trecord: Record<string, unknown> | undefined,\n): PlatformToolExecutionRecord {\n\tif (!record) {\n\t\treturn {};\n\t}\n\treturn {\n\t\tid: firstString(record, \"id\"),\n\t\tstate: normalizeExecutionState(record.state),\n\t\terrorMessage: firstString(record, \"errorMessage\", \"error_message\"),\n\t\tapprovalWait: normalizeApprovalWait(\n\t\t\tobjectValue(record, \"approvalWait\", \"approval_wait\"),\n\t\t),\n\t};\n}\n\nfunction stripUndefinedValues(\n\trecord: Record<string, unknown>,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(record).filter(([, value]) => value !== undefined),\n\t);\n}\n\nfunction resolveObjectiveId(linkage: ToolExecutionLinkage): string | undefined {\n\treturn (\n\t\ttrimString(linkage.objectiveId) ??\n\t\tgetEnvValue(TOOL_EXECUTION_OBJECTIVE_ENV_VARS)\n\t);\n}\n\nfunction normalizeExecuteToolRequest(\n\trequest: ExecutePlatformToolRequest,\n): Record<string, unknown> {\n\treturn stripUndefinedValues({\n\t\tlinkage: stripUndefinedValues({\n\t\t\tworkspaceId: request.linkage.workspaceId,\n\t\t\torganizationId: request.linkage.organizationId,\n\t\t\tagentId: request.linkage.agentId,\n\t\t\trunId: request.linkage.runId,\n\t\t\tobjectiveId: resolveObjectiveId(request.linkage),\n\t\t\tstepId: request.linkage.stepId,\n\t\t\tactorId: request.linkage.actorId,\n\t\t\tsurface: request.linkage.surface,\n\t\t\tchannelId: request.linkage.channelId,\n\t\t\tcorrelationId: request.linkage.correlationId,\n\t\t}),\n\t\ttool: stripUndefinedValues({\n\t\t\tnamespace: request.tool.namespace,\n\t\t\tname: request.tool.name,\n\t\t\tversion: request.tool.version,\n\t\t\tcapability: request.tool.capability,\n\t\t\toperation: request.tool.operation,\n\t\t\tidempotent: request.tool.idempotent,\n\t\t\tmutatesResource: request.tool.mutatesResource,\n\t\t}),\n\t\tconnector: request.connector\n\t\t\t? stripUndefinedValues({\n\t\t\t\t\tconnectionId: request.connector.connectionId,\n\t\t\t\t\tproviderId: request.connector.providerId,\n\t\t\t\t\tresourceId: request.connector.resourceId,\n\t\t\t\t\tresourceKind: request.connector.resourceKind,\n\t\t\t\t\tcredentialRef: request.connector.credentialRef,\n\t\t\t\t\tcredentialEnvironment: request.connector.credentialEnvironment,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\targuments: request.arguments,\n\t\triskLevel: request.riskLevel,\n\t\tretryPolicy: request.retryPolicy\n\t\t\t? stripUndefinedValues({\n\t\t\t\t\tmaxAttempts: request.retryPolicy.maxAttempts,\n\t\t\t\t\tinitialDelayMs: request.retryPolicy.initialDelayMs,\n\t\t\t\t\tmaxDelayMs: request.retryPolicy.maxDelayMs,\n\t\t\t\t\tallowNonIdempotentRetry: request.retryPolicy.allowNonIdempotentRetry,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tmetadata: request.metadata,\n\t});\n}\n\nfunction normalizeToolExecutionOutput(\n\toutput: PlatformToolExecutionOutput,\n): Record<string, unknown> {\n\treturn stripUndefinedValues({\n\t\trawOutput: output.rawOutput,\n\t\tsafeOutput: output.safeOutput,\n\t\tproposals: output.proposals?.map((proposal) =>\n\t\t\tstripUndefinedValues({\n\t\t\t\tkind: proposal.kind,\n\t\t\t\ttargetRef: proposal.targetRef,\n\t\t\t\tpayload: proposal.payload,\n\t\t\t\tmetadata: proposal.metadata,\n\t\t\t}),\n\t\t),\n\t\tredactions: output.redactions,\n\t\tcontentType: output.contentType,\n\t\toutputDigest: output.outputDigest,\n\t\tdurationMs: output.durationMs,\n\t});\n}\n\nasync function parseJsonResponse(\n\tresponse: Response,\n\tserviceName: string,\n): Promise<Record<string, unknown>> {\n\tconst text = await response.text();\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`${serviceName} returned ${response.status}: ${text || response.statusText}`,\n\t\t);\n\t}\n\tif (!text.trim()) {\n\t\tthrow new Error(`${serviceName} returned empty response`);\n\t}\n\treturn JSON.parse(text) as Record<string, unknown>;\n}\n\nexport async function executeToolWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: ExecutePlatformToolRequest,\n\tsignal?: AbortSignal,\n): Promise<ExecutePlatformToolResponse> {\n\tif (\n\t\trequest.linkage.surface === PLATFORM_WORKER_SURFACE &&\n\t\t!resolveObjectiveId(request.linkage)\n\t) {\n\t\tthrow new Error(\n\t\t\t`operating chat requires an objective_id for the ${PLATFORM_WORKER_SURFACE} surface; set MAESTRO_OBJECTIVE_ID (or MAESTRO_EVALOPS_OBJECTIVE_ID) or pass linkage.objectiveId`,\n\t\t);\n\t}\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tEXECUTE_TOOL_PATH,\n\t\tnormalizeExecuteToolRequest(request),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t\tidempotentReplay:\n\t\t\tfirstBoolean(payload, \"idempotentReplay\", \"idempotent_replay\") === true,\n\t};\n}\n\nexport async function resumeToolExecutionWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: ResumePlatformToolExecutionRequest,\n\tsignal?: AbortSignal,\n): Promise<ResumePlatformToolExecutionResponse> {\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tRESUME_TOOL_EXECUTION_PATH,\n\t\tstripUndefinedValues({\n\t\t\texecutionId: request.executionId,\n\t\t\tapprovalRequestId: request.approvalRequestId,\n\t\t\tresumeToken: request.resumeToken,\n\t\t\tapproved: request.approved,\n\t\t\tdecidedBy: request.decidedBy,\n\t\t\treason: request.reason,\n\t\t}),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t};\n}\n\nexport async function recordToolExecutionOutputWithPlatform(\n\tconfig: ToolExecutionServiceConfig,\n\trequest: RecordPlatformToolExecutionOutputRequest,\n\tsignal?: AbortSignal,\n): Promise<RecordPlatformToolExecutionOutputResponse> {\n\tconst response = await postPlatformConnect(\n\t\tconfig,\n\t\tRECORD_TOOL_EXECUTION_OUTPUT_PATH,\n\t\tstripUndefinedValues({\n\t\t\texecutionId: request.executionId,\n\t\t\toutput: normalizeToolExecutionOutput(request.output),\n\t\t\tmetadata: request.metadata,\n\t\t}),\n\t\t{\n\t\t\tserviceName: \"tool execution service\",\n\t\t\tfailureMode: \"required\",\n\t\t\ttimeoutMs: config.timeoutMs,\n\t\t\tmaxAttempts: config.maxAttempts,\n\t\t\tsignal,\n\t\t},\n\t);\n\tconst payload = await parseJsonResponse(response, \"tool execution service\");\n\treturn {\n\t\texecution: normalizeExecutionRecord(objectValue(payload, \"execution\")),\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAkBH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,cAAc,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC7B,UAAU,GACV,KAAK,GACL,gBAAgB,GAChB,YAAY,GACZ,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,mBAAmB,GACnB,2BAA2B,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;AAuS9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA+I7E"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAmBH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,cAAc,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC7B,UAAU,GACV,KAAK,GACL,gBAAgB,GAChB,YAAY,GACZ,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,mBAAmB,GACnB,2BAA2B,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;AAmS9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA+I7E"}
@@ -50,6 +50,7 @@
50
50
  import { EVALOPS_ORGANIZATION_ID_ENV_VARS, EVALOPS_WORKSPACE_ID_ENV_VARS, readEvalOpsEnv, } from "../evalops/env-aliases.js";
51
51
  import { getOAuthToken } from "../oauth/index.js";
52
52
  import { loadOAuthCredentials } from "../oauth/storage.js";
53
+ import { isRecord } from "../utils/json.js";
53
54
  import { lookupApiKey } from "./api-keys.js";
54
55
  import { getEvalOpsManagedProviderDefinition, isEvalOpsManagedGatewayEnabled, isEvalOpsManagedProvider, isKnownEvalOpsManagedProvider, } from "./evalops-managed.js";
55
56
  import { getFreshOpenAIOAuthCredential } from "./openai-auth.js";
@@ -76,9 +77,6 @@ function resolveEvalOpsCredentialType(provider) {
76
77
  ? "bearer-token"
77
78
  : "api-key";
78
79
  }
79
- function isRecord(value) {
80
- return typeof value === "object" && value !== null && !Array.isArray(value);
81
- }
82
80
  function getNonEmptyString(value) {
83
81
  return typeof value === "string" && value.trim().length > 0
84
82
  ? value.trim()
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Authentication Resolver - Unified Credential Resolution\n *\n * This module provides a unified authentication resolver that handles\n * multiple credential sources and authentication modes for all supported\n * AI providers. It abstracts the complexity of OAuth, API keys, and\n * environment variables into a single interface.\n *\n * ## Authentication Modes\n *\n * | Mode | Description |\n * |----------|------------------------------------------------|\n * | auto | Try OAuth first, fallback to API keys (default)|\n * | api-key | Only use API keys, skip OAuth |\n *\n * ## Credential Resolution Order\n *\n * 1. **Explicit API key**: Passed directly via options\n * 2. **OAuth tokens**: Provider-specific OAuth flows (if mode allows)\n * 3. **Environment variables**: Standard env var lookup\n * 4. **Custom providers**: From models registry configuration\n *\n * ## Credential Sources\n *\n * | Source | Description |\n * |---------------------|------------------------------------------|\n * | explicit | Passed directly to resolver |\n * | env | From environment variable |\n * | custom_literal | Hardcoded in custom provider config |\n * | custom_env | Env var from custom provider config |\n * | evalops_oauth_file | EvalOps managed OAuth from stored credentials |\n * | openai_oauth_file | OpenAI OAuth from stored credentials |\n * | openai_codex_oauth_file | OpenAI Codex ChatGPT OAuth from stored credentials |\n * | google_oauth_file | Google OAuth from stored credentials |\n *\n * ## Example\n *\n * ```typescript\n * const resolver = createAuthResolver({ mode: 'auto' });\n * const credential = await resolver('anthropic');\n *\n * if (credential) {\n * console.log(`Using ${credential.type} from ${credential.source}`);\n * // Use credential.token for API requests\n * }\n * ```\n *\n * @module providers/auth\n */\n\nimport {\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n\treadEvalOpsEnv,\n} from \"../evalops/env-aliases.js\";\nimport { getOAuthToken } from \"../oauth/index.js\";\nimport { loadOAuthCredentials } from \"../oauth/storage.js\";\nimport { lookupApiKey } from \"./api-keys.js\";\nimport {\n\tgetEvalOpsManagedProviderDefinition,\n\tisEvalOpsManagedGatewayEnabled,\n\tisEvalOpsManagedProvider,\n\tisKnownEvalOpsManagedProvider,\n} from \"./evalops-managed.js\";\nimport { getFreshOpenAIOAuthCredential } from \"./openai-auth.js\";\n\nexport type AuthMode = \"auto\" | \"api-key\";\n\nexport type AuthCredentialType = \"api-key\" | \"bearer-token\";\n\nexport type AuthCredentialSource =\n\t| \"explicit\"\n\t| \"env\"\n\t| \"custom_literal\"\n\t| \"custom_env\"\n\t| \"evalops_agent_key_file\"\n\t| \"evalops_oauth_file\"\n\t| \"openai_oauth_file\"\n\t| \"openai_codex_oauth_file\"\n\t| \"google_oauth_file\"\n\t| \"github_copilot_oauth_file\";\n\nexport interface AuthCredential {\n\tprovider: string;\n\ttoken: string;\n\ttype: AuthCredentialType;\n\tsource: AuthCredentialSource;\n\tenvVar?: string;\n\theaders?: Record<string, string>;\n\tmetadata?: Record<string, unknown>;\n\trequestBody?: Record<string, unknown>;\n}\n\nexport interface AuthResolverOptions {\n\tmode: AuthMode;\n\texplicitApiKey?: string;\n}\n\ntype AuthResolver = (provider: string) => Promise<AuthCredential | undefined>;\n\nfunction isOpenAIProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized !== \"openai-codex\" &&\n\t\t(normalized === \"openai\" ||\n\t\t\tnormalized.startsWith(\"openai/\") ||\n\t\t\tnormalized.includes(\"openai-\"))\n\t);\n}\n\nfunction isOpenAICodexProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn normalized === \"openai-codex\";\n}\n\nfunction isGoogleGeminiCliProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized === \"google-gemini-cli\" || normalized === \"google-antigravity\"\n\t);\n}\n\nfunction isGitHubCopilotProvider(provider: string): boolean {\n\treturn provider.toLowerCase() === \"github-copilot\";\n}\n\nfunction resolveEvalOpsCredentialType(provider: string): AuthCredentialType {\n\treturn getEvalOpsManagedProviderDefinition(provider)?.usesAnthropicOAuth\n\t\t? \"bearer-token\"\n\t\t: \"api-key\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction firstNonEmptyString(...values: unknown[]): string | undefined {\n\tfor (const value of values) {\n\t\tconst candidate = getNonEmptyString(value);\n\t\tif (candidate) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction readFirstEnv(names: readonly string[]): string | undefined {\n\treturn firstNonEmptyString(...names.map((name) => process.env[name]));\n}\n\nfunction getStringArray(value: unknown): string[] {\n\treturn Array.isArray(value)\n\t\t? value\n\t\t\t\t.map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n\t\t\t\t.filter((entry) => entry.length > 0)\n\t\t: [];\n}\n\nfunction isFutureTimestamp(value: unknown): boolean {\n\tconst timestamp = getNonEmptyString(value);\n\treturn !timestamp || Date.parse(timestamp) > Date.now();\n}\n\nfunction resolveEvalOpsAgentMcpAPIKey(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = getNonEmptyString(agentMcp?.apiKey);\n\tif (!apiKey || !isFutureTimestamp(agentMcp?.expiresAt)) {\n\t\treturn undefined;\n\t}\n\tconst scopes = getStringArray(agentMcp?.scopes);\n\tif (scopes.length > 0 && !scopes.includes(\"llm_gateway:invoke\")) {\n\t\treturn undefined;\n\t}\n\treturn apiKey;\n}\n\nfunction resolveEvalOpsOrganizationId(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst candidate = getNonEmptyString(metadata?.organizationId);\n\tif (candidate && candidate.trim().length > 0) {\n\t\treturn candidate.trim();\n\t}\n\treturn readEvalOpsEnv(process.env, EVALOPS_ORGANIZATION_ID_ENV_VARS);\n}\n\nfunction resolveEvalOpsProviderRef(\n\tprovider: string,\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: null;\n\tconst definition = getEvalOpsManagedProviderDefinition(provider);\n\tconst metadataProvider = getNonEmptyString(providerRef?.provider);\n\tconst configuredProvider =\n\t\tprocess.env.MAESTRO_EVALOPS_PROVIDER?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_PROVIDER?.trim();\n\tconst resolvedProvider =\n\t\t(definition && definition.id !== \"evalops\"\n\t\t\t? definition.providerRefProvider\n\t\t\t: undefined) ??\n\t\tmetadataProvider ??\n\t\tconfiguredProvider ??\n\t\tdefinition?.providerRefProvider ??\n\t\t\"openai\";\n\tconst environment =\n\t\tgetNonEmptyString(providerRef?.environment) ??\n\t\tprocess.env.MAESTRO_EVALOPS_ENVIRONMENT?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_ENVIRONMENT?.trim() ??\n\t\t\"prod\";\n\tconst credentialName =\n\t\tgetNonEmptyString(providerRef?.credential_name) ??\n\t\tprocess.env.MAESTRO_EVALOPS_CREDENTIAL_NAME?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME?.trim();\n\tconst teamId =\n\t\tgetNonEmptyString(providerRef?.team_id) ??\n\t\tprocess.env.MAESTRO_EVALOPS_TEAM_ID?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_TEAM_ID?.trim();\n\treturn {\n\t\tprovider: resolvedProvider,\n\t\tenvironment,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamId ? { team_id: teamId } : {}),\n\t};\n}\n\nfunction resolveEvalOpsRequestMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst agentID = firstNonEmptyString(\n\t\tmetadata?.agentId,\n\t\tmetadata?.agent_id,\n\t\tagentMcp?.agentId,\n\t\tagentMcp?.agent_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_AGENT_ID\", \"MAESTRO_AGENT_ID\"]),\n\t);\n\tconst platformRunID = firstNonEmptyString(\n\t\tmetadata?.runId,\n\t\tmetadata?.run_id,\n\t\tagentMcp?.runId,\n\t\tagentMcp?.run_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_RUN_ID\"]),\n\t);\n\tconst agentRunID = firstNonEmptyString(\n\t\tmetadata?.agentRunId,\n\t\tmetadata?.agent_run_id,\n\t\tagentMcp?.agentRunId,\n\t\tagentMcp?.agent_run_id,\n\t\treadFirstEnv([\"MAESTRO_AGENT_RUN_ID\", \"MAESTRO_EVALOPS_AGENT_RUN_ID\"]),\n\t\tplatformRunID,\n\t);\n\tconst runID = platformRunID ?? agentRunID;\n\tconst platformSessionID = firstNonEmptyString(\n\t\tmetadata?.sessionId,\n\t\tmetadata?.session_id,\n\t\tagentMcp?.sessionId,\n\t\tagentMcp?.session_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_SESSION_ID\"]),\n\t);\n\tconst maestroSessionID = firstNonEmptyString(\n\t\tmetadata?.maestroSessionId,\n\t\tmetadata?.maestro_session_id,\n\t\treadFirstEnv([\"MAESTRO_SESSION_ID\"]),\n\t\tplatformSessionID,\n\t);\n\tconst sessionID = platformSessionID ?? maestroSessionID;\n\tconst workspaceID = firstNonEmptyString(\n\t\tmetadata?.workspaceId,\n\t\tmetadata?.workspace_id,\n\t\tagentMcp?.workspaceId,\n\t\tagentMcp?.workspace_id,\n\t\treadEvalOpsEnv(process.env, EVALOPS_WORKSPACE_ID_ENV_VARS),\n\t);\n\tconst objectiveID = firstNonEmptyString(\n\t\tmetadata?.objectiveId,\n\t\tmetadata?.objective_id,\n\t\tagentMcp?.objectiveId,\n\t\tagentMcp?.objective_id,\n\t\treadFirstEnv([\"MAESTRO_OBJECTIVE_ID\", \"MAESTRO_EVALOPS_OBJECTIVE_ID\"]),\n\t);\n\tconst stepID = firstNonEmptyString(\n\t\tmetadata?.agentRunStepId,\n\t\tmetadata?.agent_run_step_id,\n\t\tmetadata?.stepId,\n\t\tmetadata?.step_id,\n\t\tagentMcp?.agentRunStepId,\n\t\tagentMcp?.agent_run_step_id,\n\t\treadFirstEnv([\n\t\t\t\"MAESTRO_AGENT_RUN_STEP_ID\",\n\t\t\t\"MAESTRO_EVALOPS_AGENT_RUN_STEP_ID\",\n\t\t]),\n\t);\n\tconst traceID = firstNonEmptyString(\n\t\tmetadata?.traceId,\n\t\tmetadata?.trace_id,\n\t\tagentMcp?.traceId,\n\t\tagentMcp?.trace_id,\n\t\treadFirstEnv([\"MAESTRO_TRACE_ID\", \"TRACE_ID\"]),\n\t);\n\tconst threadID = firstNonEmptyString(\n\t\tmetadata?.threadId,\n\t\tmetadata?.thread_id,\n\t\tagentMcp?.threadId,\n\t\tagentMcp?.thread_id,\n\t\treadFirstEnv([\"MAESTRO_THREAD_ID\", \"MAESTRO_EVALOPS_THREAD_ID\"]),\n\t);\n\tconst turnID = firstNonEmptyString(\n\t\tmetadata?.turnId,\n\t\tmetadata?.turn_id,\n\t\tagentMcp?.turnId,\n\t\tagentMcp?.turn_id,\n\t\treadFirstEnv([\"MAESTRO_TURN_ID\", \"MAESTRO_EVALOPS_TURN_ID\"]),\n\t);\n\tconst toolCallID = firstNonEmptyString(\n\t\tmetadata?.toolCallId,\n\t\tmetadata?.tool_call_id,\n\t\tagentMcp?.toolCallId,\n\t\tagentMcp?.tool_call_id,\n\t\treadFirstEnv([\"MAESTRO_TOOL_CALL_ID\", \"MAESTRO_EVALOPS_TOOL_CALL_ID\"]),\n\t);\n\tconst workload = firstNonEmptyString(\n\t\tmetadata?.workload,\n\t\tagentMcp?.workload,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_WORKLOAD\", \"MAESTRO_WORKLOAD\"]),\n\t);\n\tconst surface =\n\t\tfirstNonEmptyString(\n\t\t\tmetadata?.surface,\n\t\t\tagentMcp?.surface,\n\t\t\treadFirstEnv([\"MAESTRO_EVALOPS_SURFACE\", \"MAESTRO_SURFACE\"]),\n\t\t) ?? \"maestro\";\n\n\treturn Object.fromEntries(\n\t\tObject.entries({\n\t\t\tagent_id: agentID,\n\t\t\tworkspace_id: workspaceID,\n\t\t\tobjective_id: objectiveID,\n\t\t\trun_id: runID,\n\t\t\tagent_run_id: agentRunID,\n\t\t\tagent_run_step_id: stepID,\n\t\t\tsession_id: sessionID,\n\t\t\tmaestro_session_id: maestroSessionID,\n\t\t\tsurface,\n\t\t\ttrace_id: traceID,\n\t\t\tthread_id: threadID,\n\t\t\tturn_id: turnID,\n\t\t\ttool_call_id: toolCallID,\n\t\t\tworkload,\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n}\n\nfunction buildEvalOpsCredential(\n\tprovider: string,\n\ttoken: string,\n\tsource: AuthCredentialSource,\n\tmetadata?: Record<string, unknown>,\n\tenvVar?: string,\n): AuthCredential | undefined {\n\tconst organizationId = resolveEvalOpsOrganizationId(metadata);\n\tif (!organizationId) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tprovider,\n\t\ttoken,\n\t\ttype: resolveEvalOpsCredentialType(provider),\n\t\tsource,\n\t\tenvVar,\n\t\theaders: {\n\t\t\t\"X-Organization-ID\": organizationId,\n\t\t},\n\t\tmetadata,\n\t\trequestBody: {\n\t\t\tmetadata: resolveEvalOpsRequestMetadata(metadata),\n\t\t\tprovider_ref: resolveEvalOpsProviderRef(provider, metadata),\n\t\t},\n\t};\n}\n\nexport function createAuthResolver(options: AuthResolverOptions): AuthResolver {\n\tconst explicitKey = options.explicitApiKey?.trim();\n\treturn async (provider: string): Promise<AuthCredential | undefined> => {\n\t\tif (\n\t\t\tisKnownEvalOpsManagedProvider(provider) &&\n\t\t\t!isEvalOpsManagedGatewayEnabled()\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst normalizedProvider = provider.toLowerCase();\n\n\t\tif (explicitKey) {\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(provider, explicitKey, \"explicit\");\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: explicitKey,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: \"explicit\",\n\t\t\t};\n\t\t}\n\n\t\tif (isEvalOpsManagedProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst credentials = loadOAuthCredentials(\"evalops\");\n\t\t\tconst agentAPIKey = resolveEvalOpsAgentMcpAPIKey(credentials?.metadata);\n\t\t\tif (agentAPIKey) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tagentAPIKey,\n\t\t\t\t\t\"evalops_agent_key_file\",\n\t\t\t\t\tcredentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst oauthToken = await getOAuthToken(\"evalops\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst refreshedCredentials = loadOAuthCredentials(\"evalops\");\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\toauthToken,\n\t\t\t\t\t\"evalops_oauth_file\",\n\t\t\t\t\trefreshedCredentials?.metadata ?? credentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (isOpenAICodexProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"openai-codex\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"openai-codex\");\n\t\t\t\tconst accountId =\n\t\t\t\t\ttypeof credentials?.metadata?.accountId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.accountId\n\t\t\t\t\t\t: undefined;\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_codex_oauth_file\",\n\t\t\t\t\theaders: accountId ? { \"chatgpt-account-id\": accountId } : undefined,\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Handle OpenAI Auth\n\t\tif (isOpenAIProvider(provider) && options.mode !== \"api-key\") {\n\t\t\t// OpenAI OAuth\n\t\t\tconst oauthCred = await getFreshOpenAIOAuthCredential();\n\t\t\tif (oauthCred?.apiKey) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthCred.apiKey,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_oauth_file\",\n\t\t\t\t\tmetadata: { mode: oauthCred.mode },\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGitHubCopilotProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"github-copilot\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"github-copilot\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"github_copilot_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGoogleGeminiCliProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthProvider =\n\t\t\t\tnormalizedProvider === \"google-antigravity\"\n\t\t\t\t\t? \"google-antigravity\"\n\t\t\t\t\t: \"google-gemini-cli\";\n\t\t\tconst oauthToken = await getOAuthToken(oauthProvider);\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(oauthProvider);\n\t\t\t\tconst projectId =\n\t\t\t\t\ttypeof credentials?.metadata?.projectId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.projectId\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (projectId) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\ttoken: JSON.stringify({ token: oauthToken, projectId }),\n\t\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\t\tsource: \"google_oauth_file\",\n\t\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst lookup = lookupApiKey(provider, explicitKey);\n\t\tif (lookup.key) {\n\t\t\tif (lookup.source === \"missing\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tlookup.key,\n\t\t\t\t\tlookup.source,\n\t\t\t\t\tundefined,\n\t\t\t\t\tlookup.envVar,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: lookup.key,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: lookup.source,\n\t\t\t\tenvVar: lookup.envVar,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t};\n}\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Authentication Resolver - Unified Credential Resolution\n *\n * This module provides a unified authentication resolver that handles\n * multiple credential sources and authentication modes for all supported\n * AI providers. It abstracts the complexity of OAuth, API keys, and\n * environment variables into a single interface.\n *\n * ## Authentication Modes\n *\n * | Mode | Description |\n * |----------|------------------------------------------------|\n * | auto | Try OAuth first, fallback to API keys (default)|\n * | api-key | Only use API keys, skip OAuth |\n *\n * ## Credential Resolution Order\n *\n * 1. **Explicit API key**: Passed directly via options\n * 2. **OAuth tokens**: Provider-specific OAuth flows (if mode allows)\n * 3. **Environment variables**: Standard env var lookup\n * 4. **Custom providers**: From models registry configuration\n *\n * ## Credential Sources\n *\n * | Source | Description |\n * |---------------------|------------------------------------------|\n * | explicit | Passed directly to resolver |\n * | env | From environment variable |\n * | custom_literal | Hardcoded in custom provider config |\n * | custom_env | Env var from custom provider config |\n * | evalops_oauth_file | EvalOps managed OAuth from stored credentials |\n * | openai_oauth_file | OpenAI OAuth from stored credentials |\n * | openai_codex_oauth_file | OpenAI Codex ChatGPT OAuth from stored credentials |\n * | google_oauth_file | Google OAuth from stored credentials |\n *\n * ## Example\n *\n * ```typescript\n * const resolver = createAuthResolver({ mode: 'auto' });\n * const credential = await resolver('anthropic');\n *\n * if (credential) {\n * console.log(`Using ${credential.type} from ${credential.source}`);\n * // Use credential.token for API requests\n * }\n * ```\n *\n * @module providers/auth\n */\n\nimport {\n\tEVALOPS_ORGANIZATION_ID_ENV_VARS,\n\tEVALOPS_WORKSPACE_ID_ENV_VARS,\n\treadEvalOpsEnv,\n} from \"../evalops/env-aliases.js\";\nimport { getOAuthToken } from \"../oauth/index.js\";\nimport { loadOAuthCredentials } from \"../oauth/storage.js\";\nimport { isRecord } from \"../utils/json.js\";\nimport { lookupApiKey } from \"./api-keys.js\";\nimport {\n\tgetEvalOpsManagedProviderDefinition,\n\tisEvalOpsManagedGatewayEnabled,\n\tisEvalOpsManagedProvider,\n\tisKnownEvalOpsManagedProvider,\n} from \"./evalops-managed.js\";\nimport { getFreshOpenAIOAuthCredential } from \"./openai-auth.js\";\n\nexport type AuthMode = \"auto\" | \"api-key\";\n\nexport type AuthCredentialType = \"api-key\" | \"bearer-token\";\n\nexport type AuthCredentialSource =\n\t| \"explicit\"\n\t| \"env\"\n\t| \"custom_literal\"\n\t| \"custom_env\"\n\t| \"evalops_agent_key_file\"\n\t| \"evalops_oauth_file\"\n\t| \"openai_oauth_file\"\n\t| \"openai_codex_oauth_file\"\n\t| \"google_oauth_file\"\n\t| \"github_copilot_oauth_file\";\n\nexport interface AuthCredential {\n\tprovider: string;\n\ttoken: string;\n\ttype: AuthCredentialType;\n\tsource: AuthCredentialSource;\n\tenvVar?: string;\n\theaders?: Record<string, string>;\n\tmetadata?: Record<string, unknown>;\n\trequestBody?: Record<string, unknown>;\n}\n\nexport interface AuthResolverOptions {\n\tmode: AuthMode;\n\texplicitApiKey?: string;\n}\n\ntype AuthResolver = (provider: string) => Promise<AuthCredential | undefined>;\n\nfunction isOpenAIProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized !== \"openai-codex\" &&\n\t\t(normalized === \"openai\" ||\n\t\t\tnormalized.startsWith(\"openai/\") ||\n\t\t\tnormalized.includes(\"openai-\"))\n\t);\n}\n\nfunction isOpenAICodexProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn normalized === \"openai-codex\";\n}\n\nfunction isGoogleGeminiCliProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized === \"google-gemini-cli\" || normalized === \"google-antigravity\"\n\t);\n}\n\nfunction isGitHubCopilotProvider(provider: string): boolean {\n\treturn provider.toLowerCase() === \"github-copilot\";\n}\n\nfunction resolveEvalOpsCredentialType(provider: string): AuthCredentialType {\n\treturn getEvalOpsManagedProviderDefinition(provider)?.usesAnthropicOAuth\n\t\t? \"bearer-token\"\n\t\t: \"api-key\";\n}\n\nfunction getNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction firstNonEmptyString(...values: unknown[]): string | undefined {\n\tfor (const value of values) {\n\t\tconst candidate = getNonEmptyString(value);\n\t\tif (candidate) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction readFirstEnv(names: readonly string[]): string | undefined {\n\treturn firstNonEmptyString(...names.map((name) => process.env[name]));\n}\n\nfunction getStringArray(value: unknown): string[] {\n\treturn Array.isArray(value)\n\t\t? value\n\t\t\t\t.map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n\t\t\t\t.filter((entry) => entry.length > 0)\n\t\t: [];\n}\n\nfunction isFutureTimestamp(value: unknown): boolean {\n\tconst timestamp = getNonEmptyString(value);\n\treturn !timestamp || Date.parse(timestamp) > Date.now();\n}\n\nfunction resolveEvalOpsAgentMcpAPIKey(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = getNonEmptyString(agentMcp?.apiKey);\n\tif (!apiKey || !isFutureTimestamp(agentMcp?.expiresAt)) {\n\t\treturn undefined;\n\t}\n\tconst scopes = getStringArray(agentMcp?.scopes);\n\tif (scopes.length > 0 && !scopes.includes(\"llm_gateway:invoke\")) {\n\t\treturn undefined;\n\t}\n\treturn apiKey;\n}\n\nfunction resolveEvalOpsOrganizationId(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst candidate = getNonEmptyString(metadata?.organizationId);\n\tif (candidate && candidate.trim().length > 0) {\n\t\treturn candidate.trim();\n\t}\n\treturn readEvalOpsEnv(process.env, EVALOPS_ORGANIZATION_ID_ENV_VARS);\n}\n\nfunction resolveEvalOpsProviderRef(\n\tprovider: string,\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: null;\n\tconst definition = getEvalOpsManagedProviderDefinition(provider);\n\tconst metadataProvider = getNonEmptyString(providerRef?.provider);\n\tconst configuredProvider =\n\t\tprocess.env.MAESTRO_EVALOPS_PROVIDER?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_PROVIDER?.trim();\n\tconst resolvedProvider =\n\t\t(definition && definition.id !== \"evalops\"\n\t\t\t? definition.providerRefProvider\n\t\t\t: undefined) ??\n\t\tmetadataProvider ??\n\t\tconfiguredProvider ??\n\t\tdefinition?.providerRefProvider ??\n\t\t\"openai\";\n\tconst environment =\n\t\tgetNonEmptyString(providerRef?.environment) ??\n\t\tprocess.env.MAESTRO_EVALOPS_ENVIRONMENT?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_ENVIRONMENT?.trim() ??\n\t\t\"prod\";\n\tconst credentialName =\n\t\tgetNonEmptyString(providerRef?.credential_name) ??\n\t\tprocess.env.MAESTRO_EVALOPS_CREDENTIAL_NAME?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME?.trim();\n\tconst teamId =\n\t\tgetNonEmptyString(providerRef?.team_id) ??\n\t\tprocess.env.MAESTRO_EVALOPS_TEAM_ID?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_TEAM_ID?.trim();\n\treturn {\n\t\tprovider: resolvedProvider,\n\t\tenvironment,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamId ? { team_id: teamId } : {}),\n\t};\n}\n\nfunction resolveEvalOpsRequestMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst agentID = firstNonEmptyString(\n\t\tmetadata?.agentId,\n\t\tmetadata?.agent_id,\n\t\tagentMcp?.agentId,\n\t\tagentMcp?.agent_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_AGENT_ID\", \"MAESTRO_AGENT_ID\"]),\n\t);\n\tconst platformRunID = firstNonEmptyString(\n\t\tmetadata?.runId,\n\t\tmetadata?.run_id,\n\t\tagentMcp?.runId,\n\t\tagentMcp?.run_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_RUN_ID\"]),\n\t);\n\tconst agentRunID = firstNonEmptyString(\n\t\tmetadata?.agentRunId,\n\t\tmetadata?.agent_run_id,\n\t\tagentMcp?.agentRunId,\n\t\tagentMcp?.agent_run_id,\n\t\treadFirstEnv([\"MAESTRO_AGENT_RUN_ID\", \"MAESTRO_EVALOPS_AGENT_RUN_ID\"]),\n\t\tplatformRunID,\n\t);\n\tconst runID = platformRunID ?? agentRunID;\n\tconst platformSessionID = firstNonEmptyString(\n\t\tmetadata?.sessionId,\n\t\tmetadata?.session_id,\n\t\tagentMcp?.sessionId,\n\t\tagentMcp?.session_id,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_SESSION_ID\"]),\n\t);\n\tconst maestroSessionID = firstNonEmptyString(\n\t\tmetadata?.maestroSessionId,\n\t\tmetadata?.maestro_session_id,\n\t\treadFirstEnv([\"MAESTRO_SESSION_ID\"]),\n\t\tplatformSessionID,\n\t);\n\tconst sessionID = platformSessionID ?? maestroSessionID;\n\tconst workspaceID = firstNonEmptyString(\n\t\tmetadata?.workspaceId,\n\t\tmetadata?.workspace_id,\n\t\tagentMcp?.workspaceId,\n\t\tagentMcp?.workspace_id,\n\t\treadEvalOpsEnv(process.env, EVALOPS_WORKSPACE_ID_ENV_VARS),\n\t);\n\tconst objectiveID = firstNonEmptyString(\n\t\tmetadata?.objectiveId,\n\t\tmetadata?.objective_id,\n\t\tagentMcp?.objectiveId,\n\t\tagentMcp?.objective_id,\n\t\treadFirstEnv([\"MAESTRO_OBJECTIVE_ID\", \"MAESTRO_EVALOPS_OBJECTIVE_ID\"]),\n\t);\n\tconst stepID = firstNonEmptyString(\n\t\tmetadata?.agentRunStepId,\n\t\tmetadata?.agent_run_step_id,\n\t\tmetadata?.stepId,\n\t\tmetadata?.step_id,\n\t\tagentMcp?.agentRunStepId,\n\t\tagentMcp?.agent_run_step_id,\n\t\treadFirstEnv([\n\t\t\t\"MAESTRO_AGENT_RUN_STEP_ID\",\n\t\t\t\"MAESTRO_EVALOPS_AGENT_RUN_STEP_ID\",\n\t\t]),\n\t);\n\tconst traceID = firstNonEmptyString(\n\t\tmetadata?.traceId,\n\t\tmetadata?.trace_id,\n\t\tagentMcp?.traceId,\n\t\tagentMcp?.trace_id,\n\t\treadFirstEnv([\"MAESTRO_TRACE_ID\", \"TRACE_ID\"]),\n\t);\n\tconst threadID = firstNonEmptyString(\n\t\tmetadata?.threadId,\n\t\tmetadata?.thread_id,\n\t\tagentMcp?.threadId,\n\t\tagentMcp?.thread_id,\n\t\treadFirstEnv([\"MAESTRO_THREAD_ID\", \"MAESTRO_EVALOPS_THREAD_ID\"]),\n\t);\n\tconst turnID = firstNonEmptyString(\n\t\tmetadata?.turnId,\n\t\tmetadata?.turn_id,\n\t\tagentMcp?.turnId,\n\t\tagentMcp?.turn_id,\n\t\treadFirstEnv([\"MAESTRO_TURN_ID\", \"MAESTRO_EVALOPS_TURN_ID\"]),\n\t);\n\tconst toolCallID = firstNonEmptyString(\n\t\tmetadata?.toolCallId,\n\t\tmetadata?.tool_call_id,\n\t\tagentMcp?.toolCallId,\n\t\tagentMcp?.tool_call_id,\n\t\treadFirstEnv([\"MAESTRO_TOOL_CALL_ID\", \"MAESTRO_EVALOPS_TOOL_CALL_ID\"]),\n\t);\n\tconst workload = firstNonEmptyString(\n\t\tmetadata?.workload,\n\t\tagentMcp?.workload,\n\t\treadFirstEnv([\"MAESTRO_EVALOPS_WORKLOAD\", \"MAESTRO_WORKLOAD\"]),\n\t);\n\tconst surface =\n\t\tfirstNonEmptyString(\n\t\t\tmetadata?.surface,\n\t\t\tagentMcp?.surface,\n\t\t\treadFirstEnv([\"MAESTRO_EVALOPS_SURFACE\", \"MAESTRO_SURFACE\"]),\n\t\t) ?? \"maestro\";\n\n\treturn Object.fromEntries(\n\t\tObject.entries({\n\t\t\tagent_id: agentID,\n\t\t\tworkspace_id: workspaceID,\n\t\t\tobjective_id: objectiveID,\n\t\t\trun_id: runID,\n\t\t\tagent_run_id: agentRunID,\n\t\t\tagent_run_step_id: stepID,\n\t\t\tsession_id: sessionID,\n\t\t\tmaestro_session_id: maestroSessionID,\n\t\t\tsurface,\n\t\t\ttrace_id: traceID,\n\t\t\tthread_id: threadID,\n\t\t\tturn_id: turnID,\n\t\t\ttool_call_id: toolCallID,\n\t\t\tworkload,\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n}\n\nfunction buildEvalOpsCredential(\n\tprovider: string,\n\ttoken: string,\n\tsource: AuthCredentialSource,\n\tmetadata?: Record<string, unknown>,\n\tenvVar?: string,\n): AuthCredential | undefined {\n\tconst organizationId = resolveEvalOpsOrganizationId(metadata);\n\tif (!organizationId) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tprovider,\n\t\ttoken,\n\t\ttype: resolveEvalOpsCredentialType(provider),\n\t\tsource,\n\t\tenvVar,\n\t\theaders: {\n\t\t\t\"X-Organization-ID\": organizationId,\n\t\t},\n\t\tmetadata,\n\t\trequestBody: {\n\t\t\tmetadata: resolveEvalOpsRequestMetadata(metadata),\n\t\t\tprovider_ref: resolveEvalOpsProviderRef(provider, metadata),\n\t\t},\n\t};\n}\n\nexport function createAuthResolver(options: AuthResolverOptions): AuthResolver {\n\tconst explicitKey = options.explicitApiKey?.trim();\n\treturn async (provider: string): Promise<AuthCredential | undefined> => {\n\t\tif (\n\t\t\tisKnownEvalOpsManagedProvider(provider) &&\n\t\t\t!isEvalOpsManagedGatewayEnabled()\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst normalizedProvider = provider.toLowerCase();\n\n\t\tif (explicitKey) {\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(provider, explicitKey, \"explicit\");\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: explicitKey,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: \"explicit\",\n\t\t\t};\n\t\t}\n\n\t\tif (isEvalOpsManagedProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst credentials = loadOAuthCredentials(\"evalops\");\n\t\t\tconst agentAPIKey = resolveEvalOpsAgentMcpAPIKey(credentials?.metadata);\n\t\t\tif (agentAPIKey) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tagentAPIKey,\n\t\t\t\t\t\"evalops_agent_key_file\",\n\t\t\t\t\tcredentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst oauthToken = await getOAuthToken(\"evalops\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst refreshedCredentials = loadOAuthCredentials(\"evalops\");\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\toauthToken,\n\t\t\t\t\t\"evalops_oauth_file\",\n\t\t\t\t\trefreshedCredentials?.metadata ?? credentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (isOpenAICodexProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"openai-codex\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"openai-codex\");\n\t\t\t\tconst accountId =\n\t\t\t\t\ttypeof credentials?.metadata?.accountId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.accountId\n\t\t\t\t\t\t: undefined;\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_codex_oauth_file\",\n\t\t\t\t\theaders: accountId ? { \"chatgpt-account-id\": accountId } : undefined,\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Handle OpenAI Auth\n\t\tif (isOpenAIProvider(provider) && options.mode !== \"api-key\") {\n\t\t\t// OpenAI OAuth\n\t\t\tconst oauthCred = await getFreshOpenAIOAuthCredential();\n\t\t\tif (oauthCred?.apiKey) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthCred.apiKey,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_oauth_file\",\n\t\t\t\t\tmetadata: { mode: oauthCred.mode },\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGitHubCopilotProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"github-copilot\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"github-copilot\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"github_copilot_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGoogleGeminiCliProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthProvider =\n\t\t\t\tnormalizedProvider === \"google-antigravity\"\n\t\t\t\t\t? \"google-antigravity\"\n\t\t\t\t\t: \"google-gemini-cli\";\n\t\t\tconst oauthToken = await getOAuthToken(oauthProvider);\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(oauthProvider);\n\t\t\t\tconst projectId =\n\t\t\t\t\ttypeof credentials?.metadata?.projectId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.projectId\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (projectId) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\ttoken: JSON.stringify({ token: oauthToken, projectId }),\n\t\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\t\tsource: \"google_oauth_file\",\n\t\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst lookup = lookupApiKey(provider, explicitKey);\n\t\tif (lookup.key) {\n\t\t\tif (lookup.source === \"missing\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tlookup.key,\n\t\t\t\t\tlookup.source,\n\t\t\t\t\tundefined,\n\t\t\t\t\tlookup.envVar,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: lookup.key,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: lookup.source,\n\t\t\t\tenvVar: lookup.envVar,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t};\n}\n"]}
@@ -60,6 +60,9 @@ export interface RuntimeEnv {
60
60
  readonly disableKeychain: boolean;
61
61
  readonly maestroHome: string;
62
62
  readonly maestroAgentDir: string | null;
63
+ readonly missionStoreDir: string | null;
64
+ readonly snapshotBlobDir: string | null;
65
+ readonly skillTrustStrict: boolean;
63
66
  /**
64
67
  * Tri-state parsed signal: true (opt-in), false (opt-out), null (no
65
68
  * signal). For diagnostics that need the raw user string, see
@@ -122,6 +125,9 @@ export interface RuntimeEnv {
122
125
  readonly meterBaseUrl: string | null;
123
126
  readonly meterAccessToken: string | null;
124
127
  readonly meterOrganizationId: string | null;
128
+ readonly ambientLearnerFile: string | null;
129
+ readonly ambientLearnerDefaultFile: string;
130
+ readonly ambientSocketFile: string;
125
131
  }
126
132
  export declare function parseOptionalBoolean(value: string | null): boolean | null;
127
133
  /**
@@ -146,6 +152,8 @@ export declare function createRuntimeEnv(raw: NodeJS.ProcessEnv): RuntimeEnv;
146
152
  * the migration.
147
153
  */
148
154
  export declare function defaultRuntimeEnv(): RuntimeEnv;
155
+ export declare function markRuntimeEnvFinalized(): void;
156
+ export declare function isRuntimeEnvFinalized(): boolean;
149
157
  /**
150
158
  * Drop the cached default snapshot so the next `defaultRuntimeEnv()` call
151
159
  * re-reads `process.env`.
@@ -155,5 +163,5 @@ export declare function defaultRuntimeEnv(): RuntimeEnv;
155
163
  * `process.env` before handing control to migrated modules.
156
164
  */
157
165
  export declare function resetDefaultRuntimeEnv(): void;
158
- export declare const resetDefaultRuntimeEnvForTests: typeof resetDefaultRuntimeEnv;
166
+ export declare function resetDefaultRuntimeEnvForTests(): void;
159
167
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/runtime/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,UAAU;IAE1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAGlC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAGnD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAGpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAiED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAMzE;AAkCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAqDnE;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAM9C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED,eAAO,MAAM,8BAA8B,+BAAyB,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/runtime/env.ts"],"names":[],"mappings":"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"}