eve 0.61.1 → 0.63.0

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 (602) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  3. package/dist/src/cli/banner.d.ts +1 -2
  4. package/dist/src/cli/commands/init-install.d.ts +8 -5
  5. package/dist/src/cli/commands/init-install.js +1 -1
  6. package/dist/src/cli/commands/init-project.d.ts +1 -2
  7. package/dist/src/cli/commands/init.js +1 -1
  8. package/dist/src/cli/dev/boot-progress.js +1 -1
  9. package/dist/src/cli/dev/command.js +1 -1
  10. package/dist/src/cli/dev/tui/agent-header.d.ts +1 -10
  11. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  12. package/dist/src/cli/dev/tui/blocks.js +1 -1
  13. package/dist/src/cli/dev/tui/model-picker.d.ts +48 -0
  14. package/dist/src/cli/dev/tui/model-picker.js +1 -0
  15. package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
  16. package/dist/src/cli/dev/tui/registry-result-message.js +2 -1
  17. package/dist/src/cli/dev/tui/runner.d.ts +2 -5
  18. package/dist/src/cli/dev/tui/runner.js +2 -2
  19. package/dist/src/cli/dev/tui/setup-commands.d.ts +1 -1
  20. package/dist/src/cli/dev/tui/setup-commands.js +1 -1
  21. package/dist/src/cli/dev/tui/setup-flow.d.ts +2 -2
  22. package/dist/src/cli/dev/tui/setup-panel.d.ts +1 -26
  23. package/dist/src/cli/dev/tui/setup-panel.js +5 -5
  24. package/dist/src/cli/dev/tui/stream-format.d.ts +0 -7
  25. package/dist/src/cli/dev/tui/stream-format.js +1 -1
  26. package/dist/src/cli/dev/tui/subagent-pump.d.ts +1 -1
  27. package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
  28. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +0 -3
  29. package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
  30. package/dist/src/cli/dev/tui/test/fake-setup-flow-renderer.js +1 -1
  31. package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
  32. package/dist/src/cli/dev/tui/theme.d.ts +0 -8
  33. package/dist/src/cli/dev/tui/theme.js +1 -1
  34. package/dist/src/cli/dev/tui/tui.d.ts +0 -1
  35. package/dist/src/cli/dev/tui/tui.js +1 -1
  36. package/dist/src/cli/run.js +1 -1
  37. package/dist/src/cli/ui/live-row.d.ts +4 -1
  38. package/dist/src/cli/ui/live-row.js +1 -1
  39. package/dist/src/compiled/.vendor-stamp.json +1 -1
  40. package/dist/src/compiler/extension-compatibility.d.ts +29 -8
  41. package/dist/src/compiler/extension-compatibility.js +1 -1
  42. package/dist/src/compiler/manifest.d.ts +0 -5
  43. package/dist/src/compiler/manifest.js +1 -1
  44. package/dist/src/compiler/normalize-agent-config.js +1 -1
  45. package/dist/src/compiler/normalize-manifest.js +1 -1
  46. package/dist/src/compiler/normalize-tool.js +1 -1
  47. package/dist/src/compiler/project-sources.d.ts +1 -1
  48. package/dist/src/compiler/project-sources.js +1 -1
  49. package/dist/src/compiler/source-graph.js +1 -1
  50. package/dist/src/compiler/validate-artifact.js +1 -1
  51. package/dist/src/context/build-dynamic-tools.js +1 -1
  52. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  53. package/dist/src/discover/discover-agent.js +1 -1
  54. package/dist/src/discover/manifest.d.ts +0 -3
  55. package/dist/src/discover/manifest.js +1 -1
  56. package/dist/src/evals/abort.d.ts +2 -0
  57. package/dist/src/evals/abort.js +1 -0
  58. package/dist/src/evals/context.js +1 -1
  59. package/dist/src/evals/define-eval-config.d.ts +2 -2
  60. package/dist/src/evals/define-eval-config.js +1 -1
  61. package/dist/src/evals/define-eval.d.ts +3 -3
  62. package/dist/src/evals/define-eval.js +1 -1
  63. package/dist/src/evals/expect/index.js +1 -1
  64. package/dist/src/evals/expect/levenshtein.d.ts +2 -0
  65. package/dist/src/evals/expect/levenshtein.js +1 -0
  66. package/dist/src/evals/index.d.ts +1 -1
  67. package/dist/src/evals/judge.d.ts +3 -12
  68. package/dist/src/evals/judge.js +2 -2
  69. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  70. package/dist/src/evals/runner/discover.js +1 -1
  71. package/dist/src/evals/runner/execute-task.js +1 -1
  72. package/dist/src/evals/types.d.ts +56 -41
  73. package/dist/src/eve-channel/request.js +1 -1
  74. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  75. package/dist/src/execution/cancel-indexed-session-tasks-step.d.ts +2 -1
  76. package/dist/src/execution/cancel-indexed-session-tasks-step.js +1 -1
  77. package/dist/src/execution/coordination-dispatch-shared.d.ts +1 -6
  78. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  79. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  80. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  81. package/dist/src/execution/legacy-session/interrupt-step.js +1 -1
  82. package/dist/src/execution/node-step.js +1 -1
  83. package/dist/src/execution/proxied-deliver-step.js +1 -1
  84. package/dist/src/execution/route-child-delivery.js +3 -1
  85. package/dist/src/execution/session/admission.js +1 -1
  86. package/dist/src/execution/session/handoff-steps.js +1 -1
  87. package/dist/src/execution/session/handoff.d.ts +2 -1
  88. package/dist/src/execution/session/handoff.js +1 -1
  89. package/dist/src/execution/session/input-queue.d.ts +2 -0
  90. package/dist/src/execution/session/input-queue.js +1 -1
  91. package/dist/src/execution/session/next-input.js +1 -1
  92. package/dist/src/execution/session/turn.js +1 -1
  93. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  94. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  95. package/dist/src/execution/stable-workflow-names.d.ts +0 -1
  96. package/dist/src/execution/stable-workflow-names.js +1 -1
  97. package/dist/src/execution/tasks/child/notify.d.ts +44 -0
  98. package/dist/src/execution/tasks/child/notify.js +1 -0
  99. package/dist/src/execution/tasks/parent/control-shared.d.ts +2 -5
  100. package/dist/src/execution/tasks/parent/control-shared.js +1 -1
  101. package/dist/src/execution/tasks/parent/delegate.d.ts +8 -36
  102. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  103. package/dist/src/execution/tasks/parent/dispatch.d.ts +3 -5
  104. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  105. package/dist/src/execution/tasks/parent/hitl-proxy-steps.d.ts +4 -1
  106. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  107. package/dist/src/execution/tasks/parent/run-parent.d.ts +5 -19
  108. package/dist/src/execution/tasks/parent/run-parent.js +1 -1
  109. package/dist/src/execution/tasks/parent/task-cancel.d.ts +6 -5
  110. package/dist/src/execution/tasks/parent/task-cancel.js +1 -1
  111. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  112. package/dist/src/execution/tool-auth.d.ts +3 -9
  113. package/dist/src/execution/tool-auth.js +1 -1
  114. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  115. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  116. package/dist/src/execution/tools/subagent/accept-event-step.js +1 -1
  117. package/dist/src/execution/tools/subagent/emit-event-step.d.ts +11 -0
  118. package/dist/src/execution/tools/subagent/emit-event-step.js +1 -0
  119. package/dist/src/execution/tools/subagent/invoke-agent.d.ts +5 -7
  120. package/dist/src/execution/tools/subagent/invoke-agent.js +1 -1
  121. package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
  122. package/dist/src/execution/tools/subagent/invoke-step.d.ts +3 -2
  123. package/dist/src/execution/tools/subagent/invoke-step.js +1 -1
  124. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +0 -1
  125. package/dist/src/execution/tools/subagent/task-agent-requests.js +1 -1
  126. package/dist/src/execution/tools/subagent/task-cancel.d.ts +1 -1
  127. package/dist/src/execution/tools/subagent/task-cancel.js +1 -1
  128. package/dist/src/execution/tools/workflow/background.d.ts +1 -1
  129. package/dist/src/execution/tools/workflow/background.js +1 -1
  130. package/dist/src/execution/tools/workflow/body.d.ts +0 -2
  131. package/dist/src/execution/tools/workflow/body.js +1 -1
  132. package/dist/src/execution/tools/workflow/cancel.d.ts +4 -3
  133. package/dist/src/execution/tools/workflow/cancel.js +1 -1
  134. package/dist/src/execution/tools/workflow/cancellation-policy.d.ts +2 -0
  135. package/dist/src/execution/tools/workflow/cancellation-policy.js +1 -0
  136. package/dist/src/execution/tools/workflow/messages.d.ts +0 -1
  137. package/dist/src/execution/tools/workflow/owner-channels.d.ts +6 -6
  138. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +5 -9
  139. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  140. package/dist/src/execution/tools/workflow/owner.d.ts +6 -2
  141. package/dist/src/execution/tools/workflow/owner.js +1 -1
  142. package/dist/src/execution/tools/workflow/start.js +1 -1
  143. package/dist/src/execution/tools/workflow/types.d.ts +11 -19
  144. package/dist/src/execution/tools/workflow/types.js +1 -1
  145. package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +13 -0
  146. package/dist/src/execution/tools/workflow/workflow-owner-background.js +1 -0
  147. package/dist/src/execution/tools/workflow/workflow-owner-blocking.d.ts +12 -0
  148. package/dist/src/execution/tools/workflow/workflow-owner-blocking.js +1 -0
  149. package/dist/src/execution/tools/workflow/workflow.d.ts +3 -3
  150. package/dist/src/execution/tools/workflow/workflow.js +1 -1
  151. package/dist/src/execution/workflow-runtime.d.ts +0 -4
  152. package/dist/src/execution/workflow-runtime.js +1 -1
  153. package/dist/src/harness/background-tools.d.ts +3 -5
  154. package/dist/src/harness/coordination.js +1 -1
  155. package/dist/src/harness/emission.js +1 -1
  156. package/dist/src/harness/execute-tool.d.ts +2 -29
  157. package/dist/src/harness/tool-loop.js +1 -1
  158. package/dist/src/harness/tool-model-output.js +1 -1
  159. package/dist/src/harness/tools.js +1 -1
  160. package/dist/src/harness/workflow-tool-runs.d.ts +53 -18
  161. package/dist/src/harness/workflow-tool-runs.js +1 -1
  162. package/dist/src/instrumentation/dispatch.js +1 -1
  163. package/dist/src/instrumentation/lifecycle.d.ts +2 -4
  164. package/dist/src/instrumentation/provider.d.ts +8 -16
  165. package/dist/src/instrumentation/provider.js +1 -1
  166. package/dist/src/instrumentation/providers.js +1 -1
  167. package/dist/src/instrumentation/runtime-context.d.ts +2 -5
  168. package/dist/src/instrumentation/runtime-context.js +1 -1
  169. package/dist/src/instrumentation/runtime.d.ts +1 -4
  170. package/dist/src/instrumentation/runtime.js +1 -1
  171. package/dist/src/instrumentation/setup-context.d.ts +0 -5
  172. package/dist/src/internal/application/compiled-artifacts.d.ts +4 -7
  173. package/dist/src/internal/application/compiled-artifacts.js +2 -4
  174. package/dist/src/internal/application/package.js +1 -1
  175. package/dist/src/internal/authored-definition/core.js +1 -1
  176. package/dist/src/internal/authored-package-boundary.js +1 -1
  177. package/dist/src/internal/authored-runtime-modules.d.ts +1 -1
  178. package/dist/src/internal/authored-runtime-modules.js +1 -1
  179. package/dist/src/internal/instrumentation-layout.d.ts +6 -20
  180. package/dist/src/internal/instrumentation-layout.js +1 -1
  181. package/dist/src/internal/materialized-authored-modules.d.ts +2 -5
  182. package/dist/src/internal/materialized-authored-modules.js +1 -1
  183. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  184. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  185. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  186. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  187. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  188. package/dist/src/protocol/message.d.ts +4 -4
  189. package/dist/src/public/instrumentation/index.d.ts +4 -102
  190. package/dist/src/public/instrumentation/index.js +1 -1
  191. package/dist/src/public/instrumentation/otel.d.ts +1 -2
  192. package/dist/src/public/tools/index.d.ts +2 -2
  193. package/dist/src/runtime/agent/resolve-model.js +1 -1
  194. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  195. package/dist/src/runtime/resolve-agent.js +1 -1
  196. package/dist/src/runtime/sessions/turn.d.ts +10 -8
  197. package/dist/src/runtime/subagents/registry.js +1 -1
  198. package/dist/src/runtime/subagents/workflow.js +1 -1
  199. package/dist/src/runtime/tools/registry.js +1 -1
  200. package/dist/src/sandbox/backends/default.d.ts +2 -11
  201. package/dist/src/sandbox/backends/default.js +1 -1
  202. package/dist/src/sandbox/backends/probes.d.ts +7 -0
  203. package/dist/src/sandbox/backends/probes.js +1 -0
  204. package/dist/src/self-modification/agent.d.ts +5 -12
  205. package/dist/src/self-modification/agent.js +1 -1
  206. package/dist/src/self-modification/extension/classify-registry-item.d.ts +1 -1
  207. package/dist/src/self-modification/extension/extension.d.ts +5 -0
  208. package/dist/src/self-modification/extension/extension.js +1 -1
  209. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +19 -0
  210. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -0
  211. package/dist/src/self-modification/extension/subagents/agent/instructions.js +37 -0
  212. package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +26 -0
  213. package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -0
  214. package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/publish.d.ts +2 -2
  215. package/dist/src/self-modification/extension/subagents/agent/tools/publish.js +1 -0
  216. package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/registry_add.d.ts +2 -2
  217. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.js +1 -0
  218. package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_registry.js +1 -1
  219. package/dist/src/self-modification/git-workspace.d.ts +1 -1
  220. package/dist/src/self-modification/git-workspace.js +1 -1
  221. package/dist/src/self-modification/migration.d.ts +10 -0
  222. package/dist/src/self-modification/migration.js +28 -0
  223. package/dist/src/self-modification/proposal.d.ts +1 -1
  224. package/dist/src/self-modification/proposal.js +1 -1
  225. package/dist/src/self-modification/sandbox.d.ts +6 -20
  226. package/dist/src/self-modification/sandbox.js +1 -1
  227. package/dist/src/self-modification/setup.js +7 -6
  228. package/dist/src/setup/flows/model.d.ts +5 -5
  229. package/dist/src/setup/flows/registry.js +1 -2
  230. package/dist/src/setup/integrations/self-modification/setup.d.ts +6 -3
  231. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  232. package/dist/src/setup/scaffold/create/project.js +1 -1
  233. package/dist/src/setup/scaffold/index.d.ts +1 -0
  234. package/dist/src/setup/scaffold/index.js +1 -1
  235. package/dist/src/setup/scaffold/update/dependencies.d.ts +12 -0
  236. package/dist/src/setup/scaffold/update/dependencies.js +1 -0
  237. package/dist/src/setup/scaffold/version-tokens.d.ts +1 -0
  238. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  239. package/dist/src/shared/action-types.d.ts +0 -4
  240. package/dist/src/shared/action-types.js +1 -1
  241. package/dist/src/shared/agent-definition.d.ts +0 -9
  242. package/dist/src/shared/trace-policy.d.ts +0 -3
  243. package/dist/src/shared/trace-policy.js +1 -1
  244. package/dist/src/tasks/delivery-context.js +2 -2
  245. package/dist/src/tasks/notification.d.ts +4 -0
  246. package/dist/src/tasks/notification.js +1 -0
  247. package/dist/src/tasks/session-task-cohorts.d.ts +1 -12
  248. package/dist/src/tasks/session-task-cohorts.js +1 -1
  249. package/dist/src/tasks/transitions.d.ts +5 -2
  250. package/dist/src/tasks/transitions.js +1 -1
  251. package/dist/src/tasks/types.d.ts +2 -52
  252. package/dist/src/tasks/types.js +1 -1
  253. package/dist/src/tools/definition.d.ts +1 -25
  254. package/dist/src/tools/definition.js +1 -1
  255. package/dist/src/tools/dynamic.d.ts +1 -3
  256. package/dist/src/tools/framework/agent.d.ts +16 -22
  257. package/dist/src/tools/framework/agent.js +1 -1
  258. package/dist/src/tools/workflow-definition.d.ts +16 -5
  259. package/dist/src/tracing/agent-invocation-coordinator.js +1 -1
  260. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  261. package/dist/src/tracing/content-span-processor.js +1 -1
  262. package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -4
  263. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  264. package/dist/src/tracing/otel-declaration.d.ts +5 -4
  265. package/dist/src/tracing/otel-declaration.js +1 -1
  266. package/dist/src/tracing/span-export-policy.d.ts +1 -3
  267. package/docs/agent-config.md +1 -1
  268. package/docs/concepts/execution-model-and-durability.mdx +4 -5
  269. package/docs/concepts/security-model.md +4 -1
  270. package/docs/concepts/sessions-runs-and-streaming.md +2 -2
  271. package/docs/evals/assertions.mdx +6 -2
  272. package/docs/evals/cases.mdx +4 -6
  273. package/docs/evals/judge.mdx +99 -56
  274. package/docs/evals/overview.mdx +8 -6
  275. package/docs/evals/reporters.mdx +1 -1
  276. package/docs/guides/dev-tui.md +22 -10
  277. package/docs/guides/evaluate.md +4 -0
  278. package/docs/guides/frontend/overview.mdx +1 -1
  279. package/docs/guides/hooks.md +1 -1
  280. package/docs/guides/instrumentation/{providers.mdx → instrumentation.mdx} +39 -43
  281. package/docs/guides/instrumentation/meta.json +1 -1
  282. package/docs/guides/instrumentation/migration.md +97 -0
  283. package/docs/guides/instrumentation/otel.mdx +95 -33
  284. package/docs/install-integrations.mdx +1 -1
  285. package/docs/reference/agent-files.md +2 -2
  286. package/docs/reference/cli.md +1 -1
  287. package/docs/reference/typescript-api.md +4 -2
  288. package/docs/subagents/index.mdx +12 -9
  289. package/docs/tools/overview.mdx +26 -34
  290. package/docs/tools/workflows.mdx +31 -24
  291. package/package.json +1 -2
  292. package/dist/src/cli/dev/tui/model-editor.d.ts +0 -103
  293. package/dist/src/cli/dev/tui/model-editor.js +0 -1
  294. package/dist/src/compiler/instrumentation-layout-config.d.ts +0 -3
  295. package/dist/src/compiler/instrumentation-layout-config.js +0 -1
  296. package/dist/src/evals/autoevals-client.d.ts +0 -14
  297. package/dist/src/evals/autoevals-client.js +0 -2
  298. package/dist/src/execution/tasks/child/steps.d.ts +0 -81
  299. package/dist/src/execution/tasks/child/steps.js +0 -1
  300. package/dist/src/execution/tasks/child/workflow.d.ts +0 -28
  301. package/dist/src/execution/tasks/child/workflow.js +0 -1
  302. package/dist/src/execution/tools/subagent/emit-called-step.d.ts +0 -9
  303. package/dist/src/execution/tools/subagent/emit-called-step.js +0 -1
  304. package/dist/src/execution/tools/workflow/run-control.d.ts +0 -14
  305. package/dist/src/execution/tools/workflow/run-control.js +0 -1
  306. package/dist/src/instrumentation/config.d.ts +0 -13
  307. package/dist/src/instrumentation/config.js +0 -1
  308. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/ajv.js +0 -1
  309. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js +0 -1
  310. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js +0 -2
  311. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js +0 -1
  312. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js +0 -1
  313. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/index.js +0 -1
  314. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/names.js +0 -1
  315. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js +0 -1
  316. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js +0 -1
  317. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js +0 -1
  318. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/util.js +0 -1
  319. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js +0 -1
  320. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -1
  321. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js +0 -4
  322. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js +0 -1
  323. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js +0 -1
  324. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js +0 -1
  325. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js +0 -1
  326. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/core.js +0 -1
  327. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/data.js +0 -1
  328. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-draft-07.js +0 -1
  329. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js +0 -1
  330. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js +0 -1
  331. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js +0 -1
  332. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js +0 -1
  333. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -1
  334. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -1
  335. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -1
  336. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -1
  337. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -1
  338. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -4
  339. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -1
  340. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -1
  341. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -1
  342. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -1
  343. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -1
  344. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -1
  345. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -1
  346. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -1
  347. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -1
  348. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -1
  349. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -1
  350. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js +0 -1
  351. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js +0 -1
  352. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js +0 -1
  353. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js +0 -1
  354. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -1
  355. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -1
  356. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft7.js +0 -1
  357. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js +0 -1
  358. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js +0 -1
  359. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js +0 -1
  360. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js +0 -1
  361. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -1
  362. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js +0 -1
  363. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -1
  364. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -1
  365. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -1
  366. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -1
  367. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -1
  368. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -1
  369. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js +0 -1
  370. package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -1
  371. package/dist/src/node_modules/.pnpm/autoevals@0.0.132_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0_/node_modules/autoevals/jsdist/index.js +0 -384
  372. package/dist/src/node_modules/.pnpm/compute-cosine-similarity@1.1.0/node_modules/compute-cosine-similarity/lib/index.js +0 -1
  373. package/dist/src/node_modules/.pnpm/compute-dot@1.1.0/node_modules/compute-dot/lib/index.js +0 -1
  374. package/dist/src/node_modules/.pnpm/compute-l2norm@1.1.0/node_modules/compute-l2norm/lib/index.js +0 -1
  375. package/dist/src/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +0 -1
  376. package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js +0 -1
  377. package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js +0 -1
  378. package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js +0 -1
  379. package/dist/src/node_modules/.pnpm/js-levenshtein@1.1.6/node_modules/js-levenshtein/index.js +0 -1
  380. package/dist/src/node_modules/.pnpm/js-yaml@4.3.2/node_modules/js-yaml/dist/js-yaml.js +0 -34
  381. package/dist/src/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +0 -1
  382. package/dist/src/node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.js +0 -4
  383. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/_vendor/partial-json-parser/parser.js +0 -2
  384. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/auth/workload-identity-auth.js +0 -1
  385. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/azure.js +0 -1
  386. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/bedrock.js +0 -1
  387. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/client.js +0 -11
  388. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/api-promise.js +0 -1
  389. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/error.js +0 -1
  390. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/pagination.js +0 -1
  391. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/resource.js +0 -1
  392. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/streaming.js +0 -3
  393. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/uploads.js +0 -1
  394. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/error.js +0 -1
  395. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/index.js +0 -1
  396. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/decoders/line.js +0 -3
  397. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/detect-platform.js +0 -1
  398. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/errors.js +0 -1
  399. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/headers.js +0 -1
  400. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/parse.js +0 -1
  401. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/provider.js +0 -1
  402. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/formats.js +0 -1
  403. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/stringify.js +0 -1
  404. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/utils.js +0 -1
  405. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/request-options.js +0 -1
  406. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/shims.js +0 -1
  407. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/to-file.js +0 -1
  408. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/tslib.js +0 -1
  409. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/uploads.js +0 -2
  410. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/base64.js +0 -1
  411. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/bytes.js +0 -1
  412. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/env.js +0 -1
  413. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/log.js +0 -1
  414. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/path.js +0 -2
  415. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/query.js +0 -1
  416. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/sleep.js +0 -1
  417. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/uuid.js +0 -1
  418. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/values.js +0 -1
  419. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils.js +0 -1
  420. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/AbstractChatCompletionRunner.js +0 -1
  421. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/AssistantStream.js +0 -1
  422. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionRunner.js +0 -1
  423. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionStream.js +0 -1
  424. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionStreamingRunner.js +0 -1
  425. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/EventStream.js +0 -1
  426. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ResponsesParser.js +0 -1
  427. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/RunnableFunction.js +0 -1
  428. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/Util.js +0 -1
  429. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/chatCompletionUtils.js +0 -1
  430. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/parser.js +0 -1
  431. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/responses/ResponseAccumulator.js +0 -1
  432. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/responses/ResponseStream.js +0 -1
  433. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/admin.js +0 -1
  434. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/admin-api-keys.js +0 -1
  435. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/audit-logs.js +0 -1
  436. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/certificates.js +0 -1
  437. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/data-retention.js +0 -1
  438. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/groups.js +0 -1
  439. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/roles.js +0 -1
  440. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/users.js +0 -1
  441. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/invites.js +0 -1
  442. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/organization.js +0 -1
  443. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/api-keys.js +0 -1
  444. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/certificates.js +0 -1
  445. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/data-retention.js +0 -1
  446. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/groups/groups.js +0 -1
  447. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/groups/roles.js +0 -1
  448. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +0 -1
  449. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/model-permissions.js +0 -1
  450. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/projects.js +0 -1
  451. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/rate-limits.js +0 -1
  452. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/roles.js +0 -1
  453. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/service-accounts/api-keys.js +0 -1
  454. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/service-accounts/service-accounts.js +0 -1
  455. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +0 -1
  456. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/spend-limit.js +0 -1
  457. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/users/roles.js +0 -1
  458. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/users/users.js +0 -1
  459. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/roles.js +0 -1
  460. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/spend-alerts.js +0 -1
  461. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/spend-limit.js +0 -1
  462. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/usage.js +0 -1
  463. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/users/roles.js +0 -1
  464. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/users/users.js +0 -1
  465. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/audio.js +0 -1
  466. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/speech.js +0 -1
  467. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/transcriptions.js +0 -1
  468. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/translations.js +0 -1
  469. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/batches.js +0 -1
  470. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/assistants.js +0 -1
  471. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/beta.js +0 -1
  472. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/chatkit.js +0 -1
  473. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/sessions.js +0 -1
  474. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/threads.js +0 -1
  475. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/realtime.js +0 -1
  476. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/sessions.js +0 -1
  477. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/transcription-sessions.js +0 -1
  478. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/input-items.js +0 -1
  479. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/input-tokens.js +0 -1
  480. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/responses.js +0 -1
  481. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/messages.js +0 -1
  482. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/runs/runs.js +0 -1
  483. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/runs/steps.js +0 -1
  484. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/threads.js +0 -1
  485. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/chat.js +0 -1
  486. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/completions.js +0 -1
  487. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/index.js +0 -1
  488. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/messages.js +0 -1
  489. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/index.js +0 -1
  490. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/completions.js +0 -1
  491. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/containers.js +0 -1
  492. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/files/content.js +0 -1
  493. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/files/files.js +0 -1
  494. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/conversations/conversations.js +0 -1
  495. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/conversations/items.js +0 -1
  496. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/embeddings.js +0 -1
  497. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/evals.js +0 -1
  498. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/runs/output-items.js +0 -1
  499. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/runs/runs.js +0 -1
  500. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/files.js +0 -1
  501. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/alpha/alpha.js +0 -1
  502. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/alpha/graders.js +0 -1
  503. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.js +0 -1
  504. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +0 -1
  505. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/fine-tuning.js +0 -1
  506. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +0 -1
  507. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/jobs/jobs.js +0 -1
  508. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/methods.js +0 -1
  509. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/graders/grader-models.js +0 -1
  510. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/graders/graders.js +0 -1
  511. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/images.js +0 -1
  512. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/index.js +0 -1
  513. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/models.js +0 -1
  514. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/moderations.js +0 -1
  515. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/calls.js +0 -1
  516. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/client-secrets.js +0 -1
  517. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/realtime.js +0 -1
  518. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/input-items.js +0 -1
  519. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/input-tokens.js +0 -1
  520. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/responses.js +0 -1
  521. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/shared.js +0 -1
  522. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/content.js +0 -1
  523. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/skills.js +0 -1
  524. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/versions/content.js +0 -1
  525. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/versions/versions.js +0 -1
  526. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/uploads/parts.js +0 -1
  527. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/uploads/uploads.js +0 -1
  528. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/file-batches.js +0 -1
  529. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/files.js +0 -1
  530. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/vector-stores.js +0 -1
  531. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/videos.js +0 -1
  532. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks/index.js +0 -1
  533. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks/webhooks.js +0 -1
  534. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks.js +0 -1
  535. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/streaming.js +0 -1
  536. package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/version.js +0 -1
  537. package/dist/src/node_modules/.pnpm/validate.io-array@1.0.6/node_modules/validate.io-array/lib/index.js +0 -1
  538. package/dist/src/node_modules/.pnpm/validate.io-function@1.0.2/node_modules/validate.io-function/lib/index.js +0 -1
  539. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +0 -1
  540. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +0 -1
  541. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +0 -1
  542. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +0 -1
  543. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/index.js +0 -1
  544. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +0 -1
  545. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseTypes.js +0 -1
  546. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +0 -1
  547. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +0 -1
  548. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +0 -1
  549. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +0 -1
  550. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +0 -1
  551. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +0 -1
  552. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +0 -1
  553. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +0 -1
  554. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +0 -1
  555. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +0 -1
  556. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +0 -1
  557. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +0 -1
  558. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +0 -1
  559. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +0 -1
  560. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +0 -1
  561. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +0 -1
  562. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +0 -1
  563. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +0 -1
  564. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +0 -1
  565. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +0 -1
  566. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +0 -1
  567. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +0 -1
  568. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +0 -1
  569. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +0 -1
  570. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +0 -1
  571. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -3
  572. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +0 -1
  573. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +0 -1
  574. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +0 -1
  575. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +0 -1
  576. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +0 -1
  577. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +0 -1
  578. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js +0 -1
  579. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +0 -1
  580. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +0 -1
  581. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js +0 -1
  582. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +0 -1
  583. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +0 -1
  584. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  585. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +0 -1
  586. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/index.js +0 -1
  587. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +0 -1
  588. package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js +0 -1
  589. package/dist/src/self-modification/extension/instructions.js +0 -37
  590. package/dist/src/self-modification/extension/tools/publish.js +0 -1
  591. package/dist/src/self-modification/extension/tools/registry_add.js +0 -1
  592. package/dist/src/tasks/session-index.d.ts +0 -65
  593. package/dist/src/tasks/session-index.js +0 -1
  594. package/dist/src/tools/task.d.ts +0 -55
  595. package/dist/src/tools/task.js +0 -1
  596. package/docs/guides/instrumentation/overview.md +0 -199
  597. /package/dist/src/self-modification/extension/{instructions.d.ts → subagents/agent/instructions.d.ts} +0 -0
  598. /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/edit_file.d.ts +0 -0
  599. /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/edit_file.js +0 -0
  600. /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_models.d.ts +0 -0
  601. /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_models.js +0 -0
  602. /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_registry.d.ts +0 -0
@@ -1 +1 @@
1
- import{AuthKey,InitiatorAuthKey,SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{createSubagentCalledEvent}from"#protocol/message.js";import{workflowEntryReference}from"#execution/workflow-runtime.js";import{getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{deriveAgentOperationId}from"#subagents/handles/operation-id.js";import{readDurableSession,replaceDurableSessionSnapshot}from"#execution/durable-session-store.js";import{getAgentHandleStore,writeHandles}from"#subagents/handles/store.js";import{projectToDurableSession}from"#execution/session.js";import{findSessionTaskEntry}from"#tasks/session-index.js";import{AGENT_BUSY,AGENT_MISMATCH,AGENT_UNREACHABLE,formatAgentBusyMessage}from"#subagents/agent-handle-errors.js";import{clearProxyInputRequestsForChild,clearProxyInputRequestsForTask}from"#harness/proxy-input-requests.js";import{readLatestTaskView}from"#execution/tasks/parent/run-parent.js";import{accumulateSessionUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{abandonAgentInvocationOwners,applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{isTerminalTaskStatus}from"#tasks/types.js";import{createSubagentReceiptIdentity}from"#execution/tools/subagent/receipt-identity.js";import{createAgentErrorResult,dispatchToClaimedAgentAddress}from"#subagents/handle-dispatch.js";import{createAgentContinuationBundle}from"#subagents/continuation-bundle.js";import{startSubagent}from"#execution/tools/subagent/start.js";import{prepareOwnerAgentInvocation}from"#execution/tools/subagent/invoke-preparation.js";import{prepareAgentInvocationTrace}from"#tracing/agent-invocation-coordinator.js";import{flushAgentInvocationTraces,settleAgentInvocationTrace}from"#tracing/agent-invocation-terminal.js";async function dispatchAgentInvocation(e){let t=readDurableSession(e.sessionState),n=getAgentHandleStore(t.state)?.handles??[],r=await prepareOwnerAgentInvocation({invocation:e.request.input,invocationId:e.request.invocationId,knownAgentIds:n.map(e=>e.identity.id),serializedContext:e.invocationContext??e.serializedContext,sessionState:e.sessionState,taskId:e.taskId}),i=r.plan[0];if(i===void 0)throw Error(`Agent invocation produced no executable plan entry.`);if(i.kind===`reject`)return{kind:`failed`,result:i.result,serializedContext:e.serializedContext,sessionState:e.sessionState};let a=i.kind===`start`?i.target.action:i.action,o=prepareAgentInvocationTrace({conversation:r.inheritedConversation,invocation:a,ownerId:e.ownerId,serializedContext:e.serializedContext,sessionId:r.session.sessionId,sessionState:t.state,startTimeMs:Date.now(),taskId:e.taskId,turnId:r.batch.event.turnId}),s=r.activityObserver===void 0||e.activityWorkIdentity===void 0?void 0:{sink:r.activityObserver.sink,workIdentity:e.activityWorkIdentity},c=r.session,currentAgentHandles=()=>getAgentHandleStore(c.state)?.handles??[],sessionState=()=>replaceDurableSessionSnapshot({session:projectToDurableSession(c),state:e.sessionState}),failed=async e=>({kind:`failed`,result:e,serializedContext:await flushAgentInvocationTraces(o.fail(e)),sessionState:sessionState()}),applyHandleCommand=e=>{let t=applyTaskAgentHandleCommand(c,e);return c=t.session,t.result},l,u;if(i.kind===`resume`){let t=currentAgentHandles().filter(t=>t.phase===`claimed`&&t.ownerId===e.ownerId&&t.callId===i.action.callId&&t.identity.id===i.agentId);if(t.length>1)throw Error(`Invocation owner "${e.ownerId}" has multiple claims for "${i.action.callId}".`);let n=t[0];if(n===void 0){let t=deriveAgentOperationId({callId:i.action.callId,parentSessionId:r.session.sessionId,parentTurnId:r.batch.event.turnId}),a=applyHandleCommand({agentId:i.agentId,callId:i.action.callId,expectedTarget:i.action.kind===`remote-agent-call`?`remote`:`local`,invokedName:i.action.kind===`remote-agent-call`?i.action.remoteAgentName:i.action.subagentName,kind:`claim`,operationId:t,ownerId:e.ownerId});if(n=readClaimedHandle(a),n===void 0)return failed(createTaskClaimError(i.action,i.agentId,a))}let a=createAgentContinuationBundle({action:i.action,bundle:r.bundle,dynamicRemoteAgent:i.dynamicRemoteAgent});l=await dispatchToClaimedAgentAddress({activityObserver:s,action:i.action,auth:r.auth,bundle:a,currentSession:c,handle:n,reply:e.taskId===void 0?{kind:`reply`,parentToken:e.replyTo}:{kind:`reply`,parentToken:e.replyTo,taskId:e.taskId}}),l.kind===`error`&&l.deliveryPermanent===!0&&applyHandleCommand({agentId:i.agentId,kind:`remove`,ownerId:e.ownerId}),u=n.identity.id}else{let t=i.target.action,n=currentAgentHandles().filter(n=>n.phase===`reserved`&&n.ownerId===e.ownerId&&n.callId===t.callId&&n.identity.name===t.name&&n.identity.nodeId===t.nodeId),a=n.length===1?{identity:n[0].identity,operation:{id:n[0].operationId}}:createSubagentReceiptIdentity({callId:t.callId,subagentName:t.kind===`remote-agent-call`?t.remoteAgentName:t.subagentName,nodeId:t.nodeId,parentSessionId:r.session.sessionId,parentTurnId:r.batch.event.turnId});if(n.length>1)throw Error(`Invocation owner "${e.ownerId}" has multiple reservations for "${t.callId}".`);if(n.length===0&&applyHandleCommand({identity:a.identity,callId:t.callId,kind:`reserve`,operationId:a.operation.id,ownerId:e.ownerId}).kind!==`ready`)throw Error(`Agent handle store rejected start operation "${a.operation.id}".`);if(l=await startSubagent({auth:r.auth,batchEvent:r.batch.event,bundle:r.bundle,callbackBaseUrl:e.callbackBaseUrl,capabilities:r.capabilities,channelMetadata:r.channelMetadata,inheritedConversation:r.inheritedConversation,currentSession:c,fanoutSize:r.fanoutSize,initiatorAuth:r.initiatorAuth,localDevRequest:r.localDevRequest,parentContinuationToken:e.replyTo,activityObserver:r.activityObserver,taskActivityObserver:s,sandboxSessionId:r.sandboxSessionId,session:c,taskId:e.taskId,target:i.target,trace:o.dispatch}),u=a.identity.id,l.kind===`error`)applyHandleCommand({agentId:u,kind:`remove`,ownerId:e.ownerId});else if(readClaimedHandle(applyHandleCommand({address:l.address,kind:`confirm`,operationId:a.operation.id,ownerId:e.ownerId}))===void 0)throw Error(`Agent handle store could not confirm start operation "${a.operation.id}".`)}if(l.kind===`error`)return failed(l.result);let d=i.kind===`resume`?i.action:i.target.action,f=i.kind===`resume`?i.dynamicRemoteAgent:i.target.kind===`remote`?i.target.dynamicRemoteAgent:void 0,p=createSubagentCalledEvent({agentId:u,callId:l.callId,childSessionId:l.address.sessionId,name:l.name,remote:l.address.kind===`agent/remote`?{resolverId:f===void 0?d.nodeId:f.credentialsStepId,url:l.address.url}:void 0,sequence:r.batch.event.sequence,sessionId:r.session.sessionId,toolName:l.toolName,turnId:r.batch.event.turnId,workflowId:workflowEntryReference.workflowId});return e.emit!==void 0&&await e.emit(p),{kind:`dispatched`,agentId:u,event:p,serializedContext:o.serializedContext,sessionState:sessionState()}}async function dispatchTaskAgentInvocationStep(e){"use step";let t,n;if(e.taskId!==void 0){let r=readDurableSession(e.sessionState),i=findSessionTaskEntry(r.state,e.taskId);if(i===void 0)return{kind:`not-admitted`,sessionState:e.sessionState};let a=await readLatestTaskView({taskRunId:i.taskRunId});if(a===void 0||isTerminalTaskStatus(a.status))return{kind:`not-admitted`,sessionState:e.sessionState};if(`legacy`in i.dispatchContext)return missingTaskDispatchContext(e);n=i.dispatchContext,i.metadata.kind===`subagent`&&(t=i.activityWorkIdentity)}return await dispatchAgentInvocation({...e,activityWorkIdentity:t,callbackBaseUrl:resolveWorkflowCallbackBaseUrl(getWorkflowMetadata().url),invocationContext:n===void 0?void 0:applyTaskDispatchContext(e.serializedContext,n)})}function missingTaskDispatchContext(e){return{kind:`failed`,result:{callId:e.request.invocationId,isError:!0,kind:`subagent-result`,origin:`dispatch`,output:{code:`AGENT_INVOCATION_AUTH_UNAVAILABLE`,message:`The background task predates captured authentication context.`},subagentName:e.request.input.target},sessionState:e.sessionState}}function applyTaskDispatchContext(e,t){let n={...e,[AuthKey.name]:t.auth.current,[InitiatorAuthKey.name]:t.auth.initiator};for(let[e,r]of[[SessionDynamicSubagentSelectionsKey.name,t.sessionDynamicSubagentSelections],[TurnDynamicSubagentSelectionsKey.name,t.turnDynamicSubagentSelections]])r===void 0?delete n[e]:n[e]=r;return n}async function settleTaskAgentInvocationStep(e){"use step";let t=readDurableSession(e.sessionState),n=await flushAgentInvocationTraces(settleAgentInvocationTrace({acceptedAtMs:Date.now(),result:e.result,serializedContext:e.serializedContext,sessionId:t.sessionId})),r=getAgentHandleStore(t.state)?.handles??[],i=r.filter(t=>t.phase===`claimed`&&t.ownerId===e.ownerId),a=i.find(t=>t.phase===`claimed`&&t.callId===e.result.callId)??(i.length===1?i[0]:void 0);if(a?.phase!==`claimed`)return{serializedContext:n,sessionState:e.sessionState};let o=e.result.outcome.kind===`terminal`?r.filter(e=>e!==a):r.map(t=>t===a?e.result.outcome.result.kind===`cancelled`?{address:a.address,identity:a.identity,lastStatus:`(cancelled)`,phase:`parked`}:{address:a.address,identity:a.identity,phase:`available`}:t),s=writeHandles(t,o);return e.result.outcome.kind===`terminal`&&(s=e.taskId===void 0?`continuationToken`in a.address?clearProxyInputRequestsForChild(s,a.address.continuationToken):s:clearProxyInputRequestsForTask(s,e.taskId)),e.accumulateUsage!==!1&&(s=setTurnUsageState(s,accumulateSessionUsage({previous:getTurnUsageState(s.state),usage:e.result.outcome.usageDelta}))),{serializedContext:n,sessionState:replaceDurableSessionSnapshot({session:s,state:e.sessionState})}}async function releaseAgentInvocationOwnerStep(e){"use step";let t=readDurableSession(e.sessionState),n=e.cancelled?abandonAgentInvocationOwners(t,new Set([e.ownerId])):applyTaskAgentHandleCommand(t,{kind:`release-owner`,ownerId:e.ownerId}).session;return{sessionState:n===t?e.sessionState:replaceDurableSessionSnapshot({session:n,state:e.sessionState})}}function readClaimedHandle(e){let t=e.kind===`ready`?e.handle:void 0;return t?.phase===`claimed`?t:void 0}function createTaskClaimError(e,t,n){return n.kind===`mismatch`?createAgentErrorResult({action:e,code:AGENT_MISMATCH,message:`Agent "${t}" no longer matches this subagent definition. Start a new agent instead.`}):n.kind===`busy`?createAgentErrorResult({action:e,code:AGENT_BUSY,message:formatAgentBusyMessage({agentId:t,agentName:n.handle.identity.name,ownerId:`ownerId`in n.handle?n.handle.ownerId:void 0})}):createAgentErrorResult({action:e,code:AGENT_UNREACHABLE,message:`Agent with id "${t}" is no longer reachable.`})}export{dispatchAgentInvocation,dispatchTaskAgentInvocationStep,releaseAgentInvocationOwnerStep,settleTaskAgentInvocationStep};
1
+ import{AuthKey,InitiatorAuthKey,SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{createSubagentCalledEvent}from"#protocol/message.js";import{workflowEntryReference}from"#execution/workflow-runtime.js";import{getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{deriveAgentOperationId}from"#subagents/handles/operation-id.js";import{readDurableSession,replaceDurableSessionSnapshot}from"#execution/durable-session-store.js";import{findBackgroundWorkflowToolRun,readWorkflowTaskView}from"#harness/workflow-tool-runs.js";import{getAgentHandleStore,writeHandles}from"#subagents/handles/store.js";import{projectToDurableSession}from"#execution/session.js";import{AGENT_BUSY,AGENT_MISMATCH,AGENT_UNREACHABLE,formatAgentBusyMessage}from"#subagents/agent-handle-errors.js";import{clearProxyInputRequestsForChild,clearProxyInputRequestsForTask}from"#harness/proxy-input-requests.js";import{accumulateSessionUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{abandonAgentInvocationOwners,applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{createSubagentReceiptIdentity}from"#execution/tools/subagent/receipt-identity.js";import{createAgentErrorResult,dispatchToClaimedAgentAddress}from"#subagents/handle-dispatch.js";import{createAgentContinuationBundle}from"#subagents/continuation-bundle.js";import{startSubagent}from"#execution/tools/subagent/start.js";import{prepareOwnerAgentInvocation}from"#execution/tools/subagent/invoke-preparation.js";import{prepareAgentInvocationTrace}from"#tracing/agent-invocation-coordinator.js";import{flushAgentInvocationTraces,settleAgentInvocationTrace}from"#tracing/agent-invocation-terminal.js";async function dispatchAgentInvocation(e){let t=readDurableSession(e.sessionState),n=getAgentHandleStore(t.state)?.handles??[],r=await prepareOwnerAgentInvocation({invocation:e.request.input,invocationId:e.request.invocationId,knownAgentIds:n.map(e=>e.identity.id),serializedContext:e.invocationContext??e.serializedContext,sessionState:e.sessionState,taskId:e.taskId}),i=r.plan[0];if(i===void 0)throw Error(`Agent invocation produced no executable plan entry.`);if(i.kind===`reject`)return{kind:`failed`,result:i.result,serializedContext:e.serializedContext,sessionState:e.sessionState};let a=i.kind===`start`?i.target.action:i.action,o=prepareAgentInvocationTrace({conversation:r.inheritedConversation,invocation:a,ownerId:e.ownerId,serializedContext:e.serializedContext,sessionId:r.session.sessionId,sessionState:t.state,startTimeMs:Date.now(),taskId:e.taskId,turnId:r.batch.event.turnId}),s=r.activityObserver===void 0||e.activityWorkIdentity===void 0?void 0:{sink:r.activityObserver.sink,workIdentity:e.activityWorkIdentity},c=r.session,currentAgentHandles=()=>getAgentHandleStore(c.state)?.handles??[],sessionState=()=>replaceDurableSessionSnapshot({session:projectToDurableSession(c),state:e.sessionState}),failed=async e=>({kind:`failed`,result:e,serializedContext:await flushAgentInvocationTraces(o.fail(e)),sessionState:sessionState()}),applyHandleCommand=e=>{let t=applyTaskAgentHandleCommand(c,e);return c=t.session,t.result},l,u;if(i.kind===`resume`){let t=currentAgentHandles().filter(t=>t.phase===`claimed`&&t.ownerId===e.ownerId&&t.callId===i.action.callId&&t.identity.id===i.agentId);if(t.length>1)throw Error(`Invocation owner "${e.ownerId}" has multiple claims for "${i.action.callId}".`);let n=t[0];if(n===void 0){let t=deriveAgentOperationId({callId:i.action.callId,parentSessionId:r.session.sessionId,parentTurnId:r.batch.event.turnId}),a=applyHandleCommand({agentId:i.agentId,callId:i.action.callId,expectedTarget:i.action.kind===`remote-agent-call`?`remote`:`local`,invokedName:i.action.kind===`remote-agent-call`?i.action.remoteAgentName:i.action.subagentName,kind:`claim`,operationId:t,ownerId:e.ownerId});if(n=readClaimedHandle(a),n===void 0)return failed(createTaskClaimError(i.action,i.agentId,a))}let a=createAgentContinuationBundle({action:i.action,bundle:r.bundle,dynamicRemoteAgent:i.dynamicRemoteAgent});l=await dispatchToClaimedAgentAddress({activityObserver:s,action:i.action,auth:r.auth,bundle:a,currentSession:c,handle:n,reply:e.taskId===void 0?{kind:`reply`,parentToken:e.replyTo}:{kind:`reply`,parentToken:e.replyTo,taskId:e.taskId}}),l.kind===`error`&&l.deliveryPermanent===!0&&applyHandleCommand({agentId:i.agentId,kind:`remove`,ownerId:e.ownerId}),u=n.identity.id}else{let t=i.target.action,n=currentAgentHandles().filter(n=>n.phase===`reserved`&&n.ownerId===e.ownerId&&n.callId===t.callId&&n.identity.name===t.name&&n.identity.nodeId===t.nodeId),a=n.length===1?{identity:n[0].identity,operation:{id:n[0].operationId}}:createSubagentReceiptIdentity({callId:t.callId,subagentName:t.kind===`remote-agent-call`?t.remoteAgentName:t.subagentName,nodeId:t.nodeId,parentSessionId:r.session.sessionId,parentTurnId:r.batch.event.turnId});if(n.length>1)throw Error(`Invocation owner "${e.ownerId}" has multiple reservations for "${t.callId}".`);if(n.length===0&&applyHandleCommand({identity:a.identity,callId:t.callId,kind:`reserve`,operationId:a.operation.id,ownerId:e.ownerId}).kind!==`ready`)throw Error(`Agent handle store rejected start operation "${a.operation.id}".`);if(l=await startSubagent({auth:r.auth,batchEvent:r.batch.event,bundle:r.bundle,callbackBaseUrl:e.callbackBaseUrl,capabilities:r.capabilities,channelMetadata:r.channelMetadata,inheritedConversation:r.inheritedConversation,currentSession:c,fanoutSize:r.fanoutSize,initiatorAuth:r.initiatorAuth,localDevRequest:r.localDevRequest,parentContinuationToken:e.replyTo,activityObserver:r.activityObserver,taskActivityObserver:s,sandboxSessionId:r.sandboxSessionId,session:c,taskId:e.taskId,target:i.target,trace:o.dispatch}),u=a.identity.id,l.kind===`error`)applyHandleCommand({agentId:u,kind:`remove`,ownerId:e.ownerId});else if(readClaimedHandle(applyHandleCommand({address:l.address,kind:`confirm`,operationId:a.operation.id,ownerId:e.ownerId}))===void 0)throw Error(`Agent handle store could not confirm start operation "${a.operation.id}".`)}if(l.kind===`error`)return failed(l.result);let d=i.kind===`resume`?i.action:i.target.action,f=i.kind===`resume`?i.dynamicRemoteAgent:i.target.kind===`remote`?i.target.dynamicRemoteAgent:void 0,p=createSubagentCalledEvent({agentId:u,callId:l.callId,childSessionId:l.address.sessionId,name:l.name,remote:l.address.kind===`agent/remote`?{resolverId:f===void 0?d.nodeId:f.credentialsStepId,url:l.address.url}:void 0,sequence:r.batch.event.sequence,sessionId:r.session.sessionId,toolName:l.toolName,turnId:r.batch.event.turnId,workflowId:workflowEntryReference.workflowId});return e.emit!==void 0&&await e.emit(p),{kind:`dispatched`,agentId:u,event:p,serializedContext:o.serializedContext,sessionState:sessionState()}}async function dispatchTaskAgentInvocationStep(e){"use step";let t,n;if(e.taskId!==void 0){let r=readDurableSession(e.sessionState),i=findBackgroundWorkflowToolRun(r.state,e.taskId);if(i===void 0||readWorkflowTaskView(i.task)!==void 0)return{kind:`not-admitted`,sessionState:e.sessionState};n=i.task.dispatchContext,i.task.metadata.kind===`subagent`&&(t=i.task.activityWorkIdentity)}return await dispatchAgentInvocation({...e,activityWorkIdentity:t,callbackBaseUrl:resolveWorkflowCallbackBaseUrl(getWorkflowMetadata().url),invocationContext:n===void 0?void 0:applyTaskDispatchContext(e.serializedContext,n)})}function applyTaskDispatchContext(e,t){let n={...e,[AuthKey.name]:t.auth.current,[InitiatorAuthKey.name]:t.auth.initiator};for(let[e,r]of[[SessionDynamicSubagentSelectionsKey.name,t.sessionDynamicSubagentSelections],[TurnDynamicSubagentSelectionsKey.name,t.turnDynamicSubagentSelections]])r===void 0?delete n[e]:n[e]=r;return n}async function settleTaskAgentInvocationStep(e){"use step";let t=readDurableSession(e.sessionState),n=getAgentHandleStore(t.state)?.handles??[],r=n.find(t=>t.phase===`claimed`&&t.ownerId===e.ownerId&&t.callId===e.result.callId);if(r?.phase!==`claimed`)return{settled:!1,serializedContext:e.serializedContext,sessionState:e.sessionState};let i=await flushAgentInvocationTraces(settleAgentInvocationTrace({acceptedAtMs:Date.now(),result:e.result,serializedContext:e.serializedContext,sessionId:t.sessionId})),a=e.result.outcome.kind===`terminal`?n.filter(e=>e!==r):n.map(t=>t===r?e.result.outcome.result.kind===`cancelled`?{address:r.address,identity:r.identity,lastStatus:`(cancelled)`,phase:`parked`}:{address:r.address,identity:r.identity,phase:`available`}:t),o=writeHandles(t,a);e.result.outcome.kind===`terminal`&&(o=e.taskId===void 0?`continuationToken`in r.address?clearProxyInputRequestsForChild(o,r.address.continuationToken):o:clearProxyInputRequestsForTask(o,e.taskId)),o=setTurnUsageState(o,accumulateSessionUsage({previous:getTurnUsageState(o.state),usage:e.result.outcome.usageDelta}));let s=e.taskId===void 0?void 0:findBackgroundWorkflowToolRun(o.state,e.taskId),c=s?.task.metadata.kind===`subagent`&&s.callId===e.result.callId;return{settled:!0,completion:e.result.outcome.result.kind!==`succeeded`||c?void 0:{type:`subagent.completed`,data:{callId:e.result.callId,subagentName:e.result.subagentName,output:typeof e.result.output==`string`?e.result.output:JSON.stringify(e.result.output)}},serializedContext:i,sessionState:replaceDurableSessionSnapshot({session:o,state:e.sessionState})}}async function releaseAgentInvocationOwnerStep(e){"use step";let t=readDurableSession(e.sessionState),n=e.cancelled?abandonAgentInvocationOwners(t,new Set([e.ownerId])):applyTaskAgentHandleCommand(t,{kind:`release-owner`,ownerId:e.ownerId}).session;return{sessionState:n===t?e.sessionState:replaceDurableSessionSnapshot({session:n,state:e.sessionState})}}function readClaimedHandle(e){let t=e.kind===`ready`?e.handle:void 0;return t?.phase===`claimed`?t:void 0}function createTaskClaimError(e,t,n){return n.kind===`mismatch`?createAgentErrorResult({action:e,code:AGENT_MISMATCH,message:`Agent "${t}" no longer matches this subagent definition. Start a new agent instead.`}):n.kind===`busy`?createAgentErrorResult({action:e,code:AGENT_BUSY,message:formatAgentBusyMessage({agentId:t,agentName:n.handle.identity.name,ownerId:`ownerId`in n.handle?n.handle.ownerId:void 0})}):createAgentErrorResult({action:e,code:AGENT_UNREACHABLE,message:`Agent with id "${t}" is no longer reachable.`})}export{dispatchAgentInvocation,dispatchTaskAgentInvocationStep,releaseAgentInvocationOwnerStep,settleTaskAgentInvocationStep};
@@ -1,7 +1,6 @@
1
1
  import type { DurableSessionState } from "#execution/durable-session-store.js";
2
2
  import type { TaskAgentRequestDelivery } from "#tasks/types.js";
3
3
  export interface AgentRequestDelivery {
4
- readonly accumulateUsage?: boolean;
5
4
  readonly ownerId: string;
6
5
  readonly replyTo: TaskAgentRequestDelivery["replyTo"];
7
6
  readonly request: TaskAgentRequestDelivery["request"];
@@ -1 +1 @@
1
- import{dispatchTaskAgentInvocationStep,settleTaskAgentInvocationStep}from"#execution/tools/subagent/invoke-step.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{emitTaskSubagentCalledStep}from"#execution/tools/subagent/emit-called-step.js";async function applyTaskAgentRequest(e,t){let{request:n}=e;switch(n.kind){case`agent-settled`:{let r=await settleTaskAgentInvocationStep({accumulateUsage:e.accumulateUsage,ownerId:e.ownerId,result:n.result,serializedContext:t.serializedContext,sessionState:t.sessionState,taskId:e.taskId});return{serializedContext:r.serializedContext,sessionState:r.sessionState}}case`agent-invoke`:{let r=await dispatchTaskAgentInvocationStep({ownerId:e.ownerId,replyTo:e.replyTo,request:n,serializedContext:t.serializedContext,sessionState:t.sessionState,taskId:e.taskId});switch(r.kind){case`dispatched`:return{serializedContext:(await emitTaskSubagentCalledStep({event:r.event,sessionWritable:t.sessionWritable,serializedContext:r.serializedContext??t.serializedContext})).serializedContext,sessionState:r.sessionState};case`failed`:return await resumeHookStep(e.replyTo,{kind:`runtime-action-result`,results:[r.result]}),{serializedContext:r.serializedContext??t.serializedContext,sessionState:r.sessionState};case`not-admitted`:return{serializedContext:t.serializedContext,sessionState:r.sessionState}}}}}export{applyTaskAgentRequest};
1
+ import{emitSubagentEventStep}from"#execution/tools/subagent/emit-event-step.js";import{dispatchTaskAgentInvocationStep,settleTaskAgentInvocationStep}from"#execution/tools/subagent/invoke-step.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";async function applyTaskAgentRequest(e,t){let{request:n}=e;switch(n.kind){case`agent-settled`:{let r=await settleTaskAgentInvocationStep({ownerId:e.ownerId,result:n.result,serializedContext:t.serializedContext,sessionState:t.sessionState,taskId:e.taskId}),i=r.serializedContext;return r.completion!==void 0&&(i=(await emitSubagentEventStep({event:r.completion,sessionWritable:t.sessionWritable,serializedContext:i,sessionState:r.sessionState})).serializedContext),await resumeHookStep(e.replyTo,{kind:`agent-settled`,callId:n.result.callId},{ifPresent:!0}),{serializedContext:i,sessionState:r.sessionState}}case`agent-invoke`:{let r=await dispatchTaskAgentInvocationStep({ownerId:e.ownerId,replyTo:e.replyTo,request:n,serializedContext:t.serializedContext,sessionState:t.sessionState,taskId:e.taskId});switch(r.kind){case`dispatched`:return{serializedContext:(await emitSubagentEventStep({event:r.event,sessionWritable:t.sessionWritable,serializedContext:r.serializedContext??t.serializedContext,sessionState:r.sessionState})).serializedContext,sessionState:r.sessionState};case`failed`:return await resumeHookStep(e.replyTo,{kind:`runtime-action-result`,results:[r.result]}),{serializedContext:r.serializedContext??t.serializedContext,sessionState:r.sessionState};case`not-admitted`:return{serializedContext:t.serializedContext,sessionState:r.sessionState}}}}}export{applyTaskAgentRequest};
@@ -1,6 +1,6 @@
1
1
  import type { TaskExecutorCancel } from "#execution/tasks/parent/task-cancel.js";
2
2
  import { type DurableSessionState } from "#execution/durable-session-store.js";
3
- /** Cancels the active child turn owned by a background subagent task. */
3
+ /** Cancels all child turns still owned by a background task. */
4
4
  export declare const cancelBackgroundAgentTask: TaskExecutorCancel;
5
5
  /** Cancels a child turn still claimed by a completed workflow-tool run. */
6
6
  export declare function cancelAgentInvocationOwnerStep(input: {
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{requestWorkflowTurnCancellation}from"#execution/workflow-runtime.js";import{deserializeContext}from"#context/serialize.js";import{readDurableSession}from"#execution/durable-session-store.js";import{cancelRemoteAgentTurn,resolveRemoteAgentForAction}from"#subagents/remote-dispatch.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{getDynamicSubagentSelection}from"#context/dynamic-subagent-lifecycle.js";const log=createLogger(`execution.agent-invocation-cancel`),cancelBackgroundAgentTask=async e=>{if(e.session===void 0||e.serializedContext===void 0)return;let t=e.session,n=getAgentHandleStore(t.state)?.handles.find(t=>t.phase===`claimed`&&t.ownerId===e.entry.taskId);if(n===void 0||n.phase!==`claimed`)return;if(n.address.kind!==`agent/remote`){await requestWorkflowTurnCancellation({sessionId:n.address.sessionId});return}let r=await deserializeContext(e.serializedContext),i=r.require(BundleKey),a=getDynamicSubagentSelection(r,n.identity.nodeId),o=resolveRemoteAgentForAction({dynamicRemoteAgent:a?.kind===`remote`?a.remoteAgent:void 0,nodeId:n.identity.nodeId,registry:i.subagentRegistry.subagentsByNodeId,remoteAgentName:n.identity.name});await cancelRemoteAgentTurn({remote:{...o,url:n.address.url},sessionId:n.address.sessionId})};async function cancelAgentInvocationOwnerStep(e){"use step";let t=readDurableSession(e.sessionState),n=(getAgentHandleStore(t.state)?.handles??[]).filter(t=>t.phase===`claimed`&&t.ownerId===e.ownerId);if(n.length===0)return;let r=n.some(e=>e.address.kind===`agent/remote`)?await deserializeContext(e.serializedContext):void 0;await Promise.all(n.map(async t=>{try{if(t.address.kind!==`agent/remote`){await requestWorkflowTurnCancellation({sessionId:t.address.sessionId});return}let e=r.require(BundleKey),n=getDynamicSubagentSelection(r,t.identity.nodeId),i=resolveRemoteAgentForAction({dynamicRemoteAgent:n?.kind===`remote`?n.remoteAgent:void 0,nodeId:t.identity.nodeId,registry:e.subagentRegistry.subagentsByNodeId,remoteAgentName:t.identity.name});await cancelRemoteAgentTurn({remote:{...i,url:t.address.url},sessionId:t.address.sessionId})}catch(n){logError(log,`failed to cancel workflow-owned agent turn`,n,{agentId:t.identity.id,childSessionId:t.address.sessionId,ownerId:e.ownerId})}}))}export{cancelAgentInvocationOwnerStep,cancelBackgroundAgentTask};
1
+ import{createLogger,logError}from"#internal/logging.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{requestWorkflowTurnCancellation}from"#execution/workflow-runtime.js";import{deserializeContext}from"#context/serialize.js";import{readDurableSession}from"#execution/durable-session-store.js";import{cancelRemoteAgentTurn,resolveRemoteAgentForAction}from"#subagents/remote-dispatch.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{getDynamicSubagentSelection}from"#context/dynamic-subagent-lifecycle.js";const log=createLogger(`execution.agent-invocation-cancel`),cancelBackgroundAgentTask=async e=>{e.session!==void 0&&e.serializedContext!==void 0&&await cancelAgentInvocationOwner({ownerId:e.entry.task.taskId,serializedContext:e.serializedContext,session:e.session})};async function cancelAgentInvocationOwnerStep(e){"use step";try{await cancelAgentInvocationOwner({ownerId:e.ownerId,serializedContext:e.serializedContext,session:readDurableSession(e.sessionState)})}catch(t){logError(log,`failed to cancel workflow-owned agent turn`,t,{ownerId:e.ownerId})}}async function cancelAgentInvocationOwner(e){let t=(getAgentHandleStore(e.session.state)?.handles??[]).filter(t=>t.phase===`claimed`&&t.ownerId===e.ownerId);if(t.length===0)return;let n,r=(await Promise.allSettled(t.map(async t=>{if(t.address.kind!==`agent/remote`){await requestWorkflowTurnCancellation({sessionId:t.address.sessionId});return}n??=deserializeContext(e.serializedContext);let r=await n,i=r.require(BundleKey),a=getDynamicSubagentSelection(r,t.identity.nodeId),o=resolveRemoteAgentForAction({dynamicRemoteAgent:a?.kind===`remote`?a.remoteAgent:void 0,nodeId:t.identity.nodeId,registry:i.subagentRegistry.subagentsByNodeId,remoteAgentName:t.identity.name});await cancelRemoteAgentTurn({remote:{...o,url:t.address.url},sessionId:t.address.sessionId})}))).filter(e=>e.status===`rejected`);if(r.length>0)throw AggregateError(r.map(e=>e.reason),`Failed to cancel owned agent turns.`)}export{cancelAgentInvocationOwnerStep,cancelBackgroundAgentTask};
@@ -4,8 +4,8 @@ import { parseJsonObject, type JsonValue } from "#shared/json.js";
4
4
  export interface WorkflowToolHarnessDefinitionInput {
5
5
  readonly definition: HarnessToolDefinition;
6
6
  readonly executeInput?: (input: unknown) => JsonValue;
7
+ /** Selected agent definition's runtime graph ID; absent for authored workflow tools. */
7
8
  readonly nodeId?: string;
8
- readonly resultKind?: "subagent" | "tool";
9
9
  readonly workflowId: string;
10
10
  }
11
11
  export declare function createWorkflowToolHarnessDefinition(input: WorkflowToolHarnessDefinitionInput): HarnessToolDefinition;
@@ -1 +1 @@
1
- import{UNSPECIFIED_INPUT_SCHEMA,toInputSchema,toOutputSchema}from"#tools/schema.js";import{parseJsonObject}from"#shared/json.js";function createWorkflowToolHarnessDefinition(e){let t=e.definition,n={executeInput:e.executeInput,nodeId:e.nodeId,resultKind:e.resultKind,workflowId:e.workflowId};return t.execution===`background`?{...t,...n,execute:createWorkflowToolBackgroundExecute({toolName:t.name,workflowId:e.workflowId})}:{...t,...n,execute:void 0}}function createPreparedWorkflowToolHarnessDefinition(e){if(e.task===void 0)throw Error(`Prepared tool "${e.name}" is not backed by a workflow task.`);return createWorkflowToolHarnessDefinition({definition:{behavior:e.behavior,description:e.description,execution:e.execution,inputSchema:toInputSchema(e.inputSchema)??UNSPECIFIED_INPUT_SCHEMA,name:e.name,outputSchema:toOutputSchema(e.outputSchema),rootOnly:e.rootOnly},nodeId:e.task.nodeId,resultKind:e.task.resultKind,workflowId:e.task.workflowId})}function createWorkflowToolBackgroundExecute(e){return(t,n,r)=>{throw Error(`Background workflow tool "${e.toolName}" must be started by the task runtime (${e.workflowId}).`)}}function parseWorkflowToolInput(e,t){try{return parseJsonObject(e)}catch(e){throw TypeError(`Tool "${t}" is a workflow, so its parsed input must be a JSON object.`,{cause:e})}}export{createPreparedWorkflowToolHarnessDefinition,createWorkflowToolBackgroundExecute,createWorkflowToolHarnessDefinition,parseWorkflowToolInput};
1
+ import{parseJsonObject}from"#shared/json.js";import{UNSPECIFIED_INPUT_SCHEMA,toInputSchema,toOutputSchema}from"#tools/schema.js";function createWorkflowToolHarnessDefinition(e){let t=e.definition,n={executeInput:e.executeInput,nodeId:e.nodeId,workflowId:e.workflowId};return t.execution===`background`?{...t,...n,execute:createWorkflowToolBackgroundExecute({toolName:t.name,workflowId:e.workflowId})}:{...t,...n,execute:void 0}}function createPreparedWorkflowToolHarnessDefinition(e){if(e.task===void 0)throw Error(`Prepared tool "${e.name}" is not backed by a workflow task.`);return createWorkflowToolHarnessDefinition({definition:{behavior:e.behavior,description:e.description,execution:e.execution,inputSchema:toInputSchema(e.inputSchema)??UNSPECIFIED_INPUT_SCHEMA,name:e.name,outputSchema:toOutputSchema(e.outputSchema),rootOnly:e.rootOnly},nodeId:e.task.nodeId,workflowId:e.task.workflowId})}function createWorkflowToolBackgroundExecute(e){return(t,n)=>{throw Error(`Background workflow tool "${e.toolName}" must be started by the task runtime (${e.workflowId}).`)}}function parseWorkflowToolInput(e,t){try{return parseJsonObject(e)}catch(e){throw TypeError(`Tool "${t}" is a workflow, so its parsed input must be a JSON object.`,{cause:e})}}export{createPreparedWorkflowToolHarnessDefinition,createWorkflowToolBackgroundExecute,createWorkflowToolHarnessDefinition,parseWorkflowToolInput};
@@ -8,10 +8,8 @@ export interface WorkflowBodyDefinition {
8
8
  readonly callId: string;
9
9
  readonly executeInput?: JsonValue;
10
10
  readonly input: JsonObject;
11
- readonly resultKind?: "subagent" | "tool";
12
11
  readonly session: SessionContext["session"];
13
12
  readonly stepIndex: number;
14
- readonly taskId?: string;
15
13
  readonly toolName: string;
16
14
  readonly workflowId: string;
17
15
  }
@@ -1 +1 @@
1
- import{getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{createTaskMessage}from"#tools/task.js";import{ask,attachWorkflowToolRunContext}from"#execution/tools/workflow/ask.js";import{agent}from"#execution/tools/subagent/invoke-agent.js";import"#execution/tools/workflow/messages.js";import{readRegisteredWorkflow}from"#execution/workflow-registry.js";async function executeWorkflowBody(e,t){let n=createWorkflowBodyRef(e),r=createWorkflowBodyContext(e,t);attachWorkflowToolRunContext(r,{from:n,owner:e.owner});let i=0;try{let t=resolveWorkflowToolExecute(e),a=e.execution===`background`?createWorkflowTaskExec(e):void 0,o=t(e.executeInput??e.input,r,a),s;if(!isAsyncIterable(o))s=await o;else{let t=o[Symbol.asyncIterator](),r,a=await t.next();for(;a.done!==!0;){r=a.value;let o={from:n,update:a.value};await resumeHookStep(e.owner.inbox,{kind:`report`,...o}),i+=1,a=await t.next()}s=a.value??(e.execution===`blocking`?r:void 0)??null}return{outcome:{output:s,status:`completed`},reportCount:i}}catch(e){return t.aborted?{outcome:{reason:t.reason instanceof Error?t.reason.message:String(t.reason??``),status:`cancelled`},reportCount:i}:{outcome:{error:normalizeSerializableError(e),status:`failed`},reportCount:i}}}function createWorkflowBodyRef(e){return{callId:e.callId,execution:e.execution,input:e.input,resultKind:e.resultKind,runId:e.runId??getWorkflowMetadata().workflowRunId,sequence:e.session.turn.sequence,stepIndex:e.stepIndex,toolName:e.toolName,turnId:e.session.turn.id}}function resolveWorkflowToolExecute(e){let t=readRegisteredWorkflow(e.workflowId);if(typeof t!=`function`)throw Error(`Tool "${e.toolName}" is not registered as a workflow in this deployment (${e.workflowId}). The tool was renamed or removed after this run started.`);return t}function createWorkflowBodyContext(e,t){let unavailable=(t,n)=>{throw Error(`ctx.${t} is not available inside a workflow tool; ${n}. Tool "${e.toolName}" runs as a durable workflow body, which only replays deterministic code.`)},n={agent:((e,t)=>agent(n,e,t)),agents:Object.freeze(Object.fromEntries(Object.entries(e.agents??{}).map(([e,t])=>[e,Object.freeze({...t})]))),ask:e=>ask(n,e),abortSignal:t,callId:e.callId,getSandbox:()=>unavailable(`getSandbox()`,`the session sandbox belongs to the turn`),getSkill:()=>unavailable(`getSkill()`,`skills are read through the session sandbox`),getToken:()=>unavailable(`getToken()`,`pass ctx directly to a "use step" helper to resolve credentials`),requireAuth:()=>unavailable(`requireAuth()`,`pass ctx directly to a "use step" helper to request authorization`),session:e.session,toolName:e.toolName};return n}function createWorkflowTaskExec(e){if(e.taskId===void 0)throw Error(`Background workflow tool "${e.toolName}" has no task id.`);return{binding:{taskId:e.taskId,token:e.taskId},postMessage:createTaskMessage,send(){throw Error(`task.send() was replaced by yielded task descriptors.`)},session:void 0,task:void 0,taskId:e.taskId}}function isAsyncIterable(e){return typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`}export{createWorkflowBodyRef,executeWorkflowBody};
1
+ import{getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{ask,attachWorkflowToolRunContext}from"#execution/tools/workflow/ask.js";import{agent}from"#execution/tools/subagent/invoke-agent.js";import"#execution/tools/workflow/messages.js";import{readRegisteredWorkflow}from"#execution/workflow-registry.js";async function executeWorkflowBody(e,t){let n=createWorkflowBodyRef(e),r=createWorkflowBodyContext(e,t);attachWorkflowToolRunContext(r,{from:n,owner:e.owner});let i=0;try{let t=resolveWorkflowToolExecute(e)(e.executeInput??e.input,r),a;if(!isAsyncIterable(t))a=await t;else{let r=t[Symbol.asyncIterator](),o,s=await r.next();for(;s.done!==!0;){o=s.value;let t={from:n,update:s.value};await resumeHookStep(e.owner.inbox,{kind:`report`,...t}),i+=1,s=await r.next()}a=s.value??(e.execution===`blocking`?o:void 0)??null}return{outcome:{output:a,status:`completed`},reportCount:i}}catch(e){return t.aborted?{outcome:{reason:t.reason instanceof Error?t.reason.message:String(t.reason??``),status:`cancelled`},reportCount:i}:{outcome:{error:normalizeSerializableError(e),status:`failed`},reportCount:i}}}function createWorkflowBodyRef(e){return{callId:e.callId,execution:e.execution,input:e.input,runId:e.runId??getWorkflowMetadata().workflowRunId,sequence:e.session.turn.sequence,stepIndex:e.stepIndex,toolName:e.toolName,turnId:e.session.turn.id}}function resolveWorkflowToolExecute(e){let t=readRegisteredWorkflow(e.workflowId);if(typeof t!=`function`)throw Error(`Tool "${e.toolName}" is not registered as a workflow in this deployment (${e.workflowId}). The tool was renamed or removed after this run started.`);return t}function createWorkflowBodyContext(e,t){let unavailable=(t,n)=>{throw Error(`ctx.${t} is not available inside a workflow tool; ${n}. Tool "${e.toolName}" runs as a durable workflow body, which only replays deterministic code.`)},n={agent:((e,t)=>agent(n,e,t)),agents:Object.freeze(Object.fromEntries(Object.entries(e.agents??{}).map(([e,t])=>[e,Object.freeze({...t})]))),ask:e=>ask(n,e),abortSignal:t,callId:e.callId,getSandbox:()=>unavailable(`getSandbox()`,`the session sandbox belongs to the turn`),getSkill:()=>unavailable(`getSkill()`,`skills are read through the session sandbox`),getToken:()=>unavailable(`getToken()`,`pass ctx directly to a "use step" helper to resolve credentials`),requireAuth:()=>unavailable(`requireAuth()`,`pass ctx directly to a "use step" helper to request authorization`),session:e.session,toolName:e.toolName};return n}function isAsyncIterable(e){return typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`}export{createWorkflowBodyRef,executeWorkflowBody};
@@ -1,10 +1,11 @@
1
1
  import type { WorkflowToolRunAddress } from "#execution/tools/workflow/types.js";
2
2
  /**
3
- * Asks the run to cancel itself; cancels it outright only if the message cannot
4
- * be delivered. Failures are logged, not thrown: the caller has already
5
- * committed the cancellation the run was serving.
3
+ * Asks the run to cancel itself, then bounds cooperative cleanup. Failures are
4
+ * logged: the caller has already committed cancellation of the calling turn.
6
5
  */
7
6
  export declare function cancelWorkflowToolRun(run: WorkflowToolRunAddress, reason: string): Promise<void>;
7
+ /** Allows cooperative cleanup, then forcibly stops a still-live run. */
8
+ export declare function settleWorkflowToolRunCancellation(runId: string, reason: string, cooperative?: boolean): Promise<void>;
8
9
  export declare function cancelWorkflowToolRunStep(input: {
9
10
  readonly reason: string;
10
11
  readonly run: WorkflowToolRunAddress;
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{cancelRun,getWorld,resumeHook}from"#internal/workflow/runtime.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";const log=createLogger(`execution.workflow-tool-run`);async function cancelWorkflowToolRun(e,t){let n={kind:`cancel`,reason:t};try{await resumeHook(e.hookToken,n);return}catch(t){isTaskWorkflowTargetGone(t)||logError(log,`failed to signal a workflow tool run to cancel; cancelling it outright`,t,{runId:e.runId})}try{await cancelRun(await getWorld(),e.runId,{cancelReason:t})}catch(t){if(isTaskWorkflowTargetGone(t))return;logError(log,`failed to cancel workflow tool run; it may run to completion`,t,{runId:e.runId})}}async function cancelWorkflowToolRunStep(e){"use step";await cancelWorkflowToolRun(e.run,e.reason)}export{cancelWorkflowToolRun,cancelWorkflowToolRunStep};
1
+ import{createLogger,logError}from"#internal/logging.js";import{cancelRun,getRun,getWorld,resumeHook}from"#internal/workflow/runtime.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{WORKFLOW_CANCELLATION_SETTLE_MS}from"#execution/tools/workflow/cancellation-policy.js";const log=createLogger(`execution.workflow-tool-run`);async function cancelWorkflowToolRun(e,t){let n={kind:`cancel`,reason:t},r=!1;try{await resumeHook(e.hookToken,n),r=!0}catch(t){isTaskWorkflowTargetGone(t)||logError(log,`failed to signal a workflow tool run to cancel; cancelling it outright`,t,{runId:e.runId})}try{await settleWorkflowToolRunCancellation(e.runId,t,r)}catch(t){if(isTaskWorkflowTargetGone(t))return;logError(log,`failed to cancel workflow tool run; it may run to completion`,t,{runId:e.runId})}}async function settleWorkflowToolRunCancellation(e,t,n=!0){if(n){let t=Date.now()+WORKFLOW_CANCELLATION_SETTLE_MS;for(;Date.now()<t;){try{let t=await getRun(e).status;if(t!==`pending`&&t!==`running`)return}catch(e){if(isTaskWorkflowTargetGone(e))return;throw e}await new Promise(e=>setTimeout(e,250))}}try{await cancelRun(await getWorld(),e,{cancelReason:t})}catch(e){if(isTaskWorkflowTargetGone(e))return;throw e}}async function cancelWorkflowToolRunStep(e){"use step";await cancelWorkflowToolRun(e.run,e.reason)}export{cancelWorkflowToolRun,cancelWorkflowToolRunStep,settleWorkflowToolRunCancellation};
@@ -0,0 +1,2 @@
1
+ export declare const WORKFLOW_CANCELLATION_CLEANUP_MS = 30000;
2
+ export declare const WORKFLOW_CANCELLATION_SETTLE_MS: number;
@@ -0,0 +1 @@
1
+ const WORKFLOW_CANCELLATION_CLEANUP_MS=3e4,WORKFLOW_CANCELLATION_SETTLE_MS=35e3;export{WORKFLOW_CANCELLATION_CLEANUP_MS,WORKFLOW_CANCELLATION_SETTLE_MS};
@@ -39,7 +39,6 @@ export interface WorkflowToolRunRef {
39
39
  readonly callId: string;
40
40
  readonly execution: "background" | "blocking";
41
41
  readonly input: JsonObject;
42
- readonly resultKind?: "subagent" | "tool";
43
42
  readonly runId: string;
44
43
  readonly sequence: number;
45
44
  readonly stepIndex: number;
@@ -15,15 +15,15 @@ export interface ChannelReader<C extends string, T> {
15
15
  pending?: Promise<void>;
16
16
  }
17
17
  export declare function createChannelReader<C extends string, T>(channel: C, iterable: AsyncIterable<T>): ChannelReader<C, T>;
18
- export type ChannelRead<R extends readonly ChannelReader<string, unknown>[]> = {
19
- [I in keyof R]: R[I] extends ChannelReader<infer C, infer T> ? {
20
- readonly channel: C;
21
- readonly next: IteratorResult<T>;
22
- } : never;
23
- }[number];
18
+ type ChannelReadResult<R> = R extends ChannelReader<infer C, infer T> ? {
19
+ readonly channel: C;
20
+ readonly next: IteratorResult<T>;
21
+ } : never;
22
+ export type ChannelRead<R extends readonly ChannelReader<string, unknown>[]> = ChannelReadResult<R[number]>;
24
23
  /**
25
24
  * Channel reads wake the loop with `undefined` after buffering their result;
26
25
  * a cancel wins the race outright.
27
26
  */
28
27
  export declare function raceChannelReads<const R extends readonly ChannelReader<string, unknown>[]>(readers: R): Promise<ChannelRead<R>>;
29
28
  export declare function raceChannelReads<const R extends readonly ChannelReader<string, unknown>[]>(readers: R, cancelled: Promise<"cancel"> | undefined): Promise<ChannelRead<R> | "cancel">;
29
+ export {};
@@ -1,13 +1,9 @@
1
1
  import type { SubagentInputRequestHookPayload } from "#channel/types.js";
2
- import type { WorkflowToolRunOutcomeMessage, WorkflowToolRunReport, WorkflowToolRunRequestMessage } from "#execution/tools/workflow/messages.js";
2
+ import type { WorkflowToolRunOutcomeMessage, WorkflowToolRunRequestMessage } from "#execution/tools/workflow/messages.js";
3
3
  import type { RuntimeToolResultActionResult } from "#shared/action-types.js";
4
- import type { RuntimeSubagentResult } from "#shared/action-types.js";
5
- import type { WorkflowToolRunTaskInputRequest } from "#execution/tasks/child/workflow.js";
6
- import type { TaskCommand, TaskInboundMessage, TaskInboundUpdate } from "#tasks/types.js";
4
+ import type { InputRequest } from "#shared/input.js";
5
+ import { type JsonValue } from "#shared/json.js";
7
6
  export declare function workflowToolRunOutcomeToToolResult(message: WorkflowToolRunOutcomeMessage): RuntimeToolResultActionResult;
8
- /** Reads a blocking agent result returned through an ordinary run outcome. */
9
- export declare function workflowToolRunOutcomeToSubagentResult(message: WorkflowToolRunOutcomeMessage): RuntimeSubagentResult;
10
- export declare function workflowToolRunOutcomeToTaskCommand(message: WorkflowToolRunOutcomeMessage): TaskCommand;
11
- export declare function workflowToolRunReportToTaskPayload(report: WorkflowToolRunReport, taskId: string, updateIndex: number): TaskInboundMessage | TaskInboundUpdate;
7
+ export declare function workflowToolRunFailureOutput(message: WorkflowToolRunOutcomeMessage): JsonValue;
12
8
  export declare function workflowToolRunRequestToInputRequestPayload(message: WorkflowToolRunRequestMessage): SubagentInputRequestHookPayload;
13
- export declare function workflowToolRunRequestToTaskInputRequest(message: WorkflowToolRunRequestMessage): WorkflowToolRunTaskInputRequest;
9
+ export declare function workflowToolRunInputRequests(message: WorkflowToolRunRequestMessage): readonly InputRequest[];
@@ -1 +1 @@
1
- import{parseJsonValue}from"#shared/json.js";import{SUBAGENT_EXECUTION_FAILED}from"#subagents/agent-handle-errors.js";import{isTaskMessage}from"#tools/task.js";function workflowToolRunOutcomeToToolResult(e){let{from:t,result:n}=e;return n.status===`completed`?{callId:t.callId,kind:`tool-result`,output:n.output,toolName:t.toolName}:{callId:t.callId,isError:!0,kind:`tool-result`,output:n.status===`failed`?errorMessage(n.error):n.reason??`The workflow tool run was cancelled.`,toolName:t.toolName}}function workflowToolRunOutcomeToSubagentResult(e){if(e.result.status===`completed`&&isRuntimeSubagentResult(e.result.output))return e.result.output;let t=e.result.status===`failed`?errorMessage(e.result.error):e.result.status===`cancelled`?e.result.reason??`The agent invocation was cancelled.`:`The agent invocation returned an invalid result.`;return{callId:e.from.callId,isError:!0,kind:`subagent-result`,origin:`dispatch`,output:t,subagentName:e.from.toolName}}function workflowToolRunOutcomeToTaskCommand(e){return e.result.status===`completed`?{data:e.result.output,kind:`complete`}:e.result.status===`failed`?{data:e.from.resultKind===`subagent`?subagentFailureOutput(e.result.error):errorMessage(e.result.error),kind:`fail`}:{kind:`cancel`}}function subagentFailureOutput(e){let t=parseJsonValueOrUndefined(e);return t!==void 0&&typeof t==`object`&&t&&!Array.isArray(t)&&typeof Reflect.get(t,`code`)==`string`?t:{code:SUBAGENT_EXECUTION_FAILED,message:errorMessage(e)}}function workflowToolRunReportToTaskPayload(e,t,n){return isTaskMessage(e.update)?{callId:e.from.callId,kind:`task-message`,message:e.update.message,messageEpoch:t,messageIndex:n}:{callId:e.from.callId,kind:`task-update`,message:typeof e.update==`string`?e.update:JSON.stringify(e.update),updateEpoch:t,updateIndex:n}}function isRuntimeSubagentResult(e){if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`origin`);return Reflect.get(e,`kind`)===`subagent-result`&&(t===`child`||t===`dispatch`)}function errorMessage(e){if(typeof e==`object`&&e&&`message`in e){let t=e.message;if(typeof t==`string`)return t}return String(e)}function parseJsonValueOrUndefined(e){try{return parseJsonValue(e)}catch{return}}function workflowToolRunRequestToInputRequestPayload(e){let{from:t,replyTo:n,request:r,requestCoordinates:i}=e;return{callId:t.callId,childContinuationToken:n,childSessionId:t.runId,event:{requests:r.kind===`input-batch`?r.requests:[normalizeInputRequest(r,t,n)],sequence:i?.sequence??t.sequence,stepIndex:i?.stepIndex??t.stepIndex,turnId:i?.turnId??t.turnId},kind:`subagent-input-request`,subagentName:t.toolName}}function workflowToolRunRequestToTaskInputRequest(e){let{from:t,replyTo:n,request:r,requestCoordinates:i}=e,a={kind:`task-input-request`,replyTo:n,sequence:i?.sequence??t.sequence,stepIndex:i?.stepIndex??t.stepIndex,turnId:i?.turnId??t.turnId};return r.kind===`input-batch`?{...a,requests:r.requests}:{...a,request:normalizeInputRequest(r,t,n)}}function normalizeInputRequest(e,t,n){switch(e.kind){case`agent-invoke`:case`agent-settled`:throw TypeError(`A workflow agent request cannot be normalized as human input.`);case`authorization-request`:throw TypeError(`A workflow authorization event cannot be normalized as human input.`);case`ask`:return normalizeAskRequest(e.request,t,n);default:return e}}function normalizeAskRequest(e,t,n){if(typeof e.prompt!=`string`||e.prompt.length===0)throw TypeError("A workflow tool run request needs a non-empty `prompt`.");let r={action:{callId:t.callId,input:t.input,kind:`tool-call`,toolName:t.toolName},kind:`question`,prompt:e.prompt,requestId:n};return e.allowFreeform!==void 0&&(r.allowFreeform=e.allowFreeform),e.display!==void 0&&(r.display=e.display),e.options!==void 0&&(r.options=[...e.options]),r}export{workflowToolRunOutcomeToSubagentResult,workflowToolRunOutcomeToTaskCommand,workflowToolRunOutcomeToToolResult,workflowToolRunReportToTaskPayload,workflowToolRunRequestToInputRequestPayload,workflowToolRunRequestToTaskInputRequest};
1
+ import{parseJsonValue}from"#shared/json.js";function workflowToolRunOutcomeToToolResult(e){let{from:t,result:n}=e;return n.status===`completed`?{callId:t.callId,kind:`tool-result`,output:n.output,toolName:t.toolName}:{callId:t.callId,isError:!0,kind:`tool-result`,output:n.status===`failed`?workflowToolRunFailureOutput(e):n.reason??`The workflow tool run was cancelled.`,toolName:t.toolName}}function workflowToolRunFailureOutput(e){if(e.result.status!==`failed`)throw TypeError(`Expected a failed workflow outcome.`);let t=parseJsonValueOrUndefined(e.result.error);return t!==void 0&&typeof t==`object`&&t&&!Array.isArray(t)&&typeof Reflect.get(t,`code`)==`string`?t:errorMessage(e.result.error)}function errorMessage(e){if(typeof e==`object`&&e&&`message`in e){let t=e.message;if(typeof t==`string`)return t}return String(e)}function parseJsonValueOrUndefined(e){try{return parseJsonValue(e)}catch{return}}function workflowToolRunRequestToInputRequestPayload(e){let{from:t,replyTo:n,requestCoordinates:r}=e;return{callId:t.callId,childContinuationToken:n,childSessionId:t.runId,event:{requests:workflowToolRunInputRequests(e),sequence:r?.sequence??t.sequence,stepIndex:r?.stepIndex??t.stepIndex,turnId:r?.turnId??t.turnId},kind:`subagent-input-request`,subagentName:t.toolName}}function workflowToolRunInputRequests(e){return e.request.kind===`input-batch`?e.request.requests:[normalizeInputRequest(e.request,e.from,e.replyTo)]}function normalizeInputRequest(e,t,n){switch(e.kind){case`agent-invoke`:case`agent-settled`:throw TypeError(`A workflow agent request cannot be normalized as human input.`);case`authorization-request`:throw TypeError(`A workflow authorization event cannot be normalized as human input.`);case`ask`:return normalizeAskRequest(e.request,t,n);default:return e}}function normalizeAskRequest(e,t,n){if(typeof e.prompt!=`string`||e.prompt.length===0)throw TypeError("A workflow tool run request needs a non-empty `prompt`.");let r={action:{callId:t.callId,input:t.input,kind:`tool-call`,toolName:t.toolName},kind:`question`,prompt:e.prompt,requestId:n};return e.allowFreeform!==void 0&&(r.allowFreeform=e.allowFreeform),e.display!==void 0&&(r.display=e.display),e.options!==void 0&&(r.options=[...e.options]),r}export{workflowToolRunFailureOutput,workflowToolRunInputRequests,workflowToolRunOutcomeToToolResult,workflowToolRunRequestToInputRequestPayload};
@@ -1,9 +1,13 @@
1
- import type { WorkflowToolRunMessage, WorkflowToolRunOwner } from "#execution/tools/workflow/messages.js";
1
+ import type { WorkflowToolRunMessage, WorkflowToolRunRequestMessage, WorkflowToolAuthorizationRequest, WorkflowToolRunOwner } from "#execution/tools/workflow/messages.js";
2
2
  import { type ChannelReader } from "#execution/tools/workflow/owner-channels.js";
3
3
  export interface WorkflowToolRunOwnerInbox {
4
4
  dispose(): Promise<void>;
5
5
  readonly owner: WorkflowToolRunOwner;
6
6
  readonly reader: ChannelReader<"workflow", WorkflowToolRunMessage>;
7
7
  }
8
- /** Background task workflows have their own lifecycle, outside a session inbox. */
8
+ /** Receives body messages before routing them to the turn or session owner. */
9
9
  export declare function openWorkflowToolRunOwnerInbox(): WorkflowToolRunOwnerInbox;
10
+ /** Acknowledge only step-owned events, after delivery or deliberate discard. */
11
+ export declare function deliverWorkflowAuthorization(message: WorkflowToolRunRequestMessage & {
12
+ readonly request: WorkflowToolAuthorizationRequest;
13
+ }, deliver: () => Promise<void>): Promise<void>;
@@ -1 +1 @@
1
- import{createHook}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{createChannelReader}from"#execution/tools/workflow/owner-channels.js";function openWorkflowToolRunOwnerInbox(){let e=createHook();return{dispose:()=>disposeHook(e),owner:{inbox:e.token},reader:createChannelReader(`workflow`,e)}}export{openWorkflowToolRunOwnerInbox};
1
+ import{createHook}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{createChannelReader}from"#execution/tools/workflow/owner-channels.js";function openWorkflowToolRunOwnerInbox(){let e=createHook();return{dispose:()=>disposeHook(e),owner:{inbox:e.token},reader:createChannelReader(`workflow`,e)}}async function deliverWorkflowAuthorization(e,t){await t(),e.request.event.childSessionId===e.from.runId&&await resumeHookStep(e.replyTo,null,{ifPresent:!0})}export{deliverWorkflowAuthorization,openWorkflowToolRunOwnerInbox};
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{toError}from"#shared/errors.js";import{startWorkflowOnCurrentDeployment,workflowToolRunWorkflowReference}from"#execution/workflow-runtime.js";import{recordWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{createRuntimeToolResultFromValue}from"#harness/action-result-helpers.js";const log=createLogger(`execution.workflow-tool-run`);async function startWorkflowToolRun(e){let t=crypto.randomUUID();return{hookToken:t,runId:(await startWorkflowOnCurrentDeployment(workflowToolRunWorkflowReference,[{...e,hookToken:t}])).runId}}async function startWorkflowTask(e){let{task:t,batchEvent:n,session:r}=e;try{let i=await startWorkflowToolRun({agents:e.agents,callId:t.callId,executeInput:t.executeInput,input:t.input,owner:e.owner,resultKind:t.resultKind,session:{auth:{current:e.auth,initiator:e.initiatorAuth},id:r.sessionId,parent:e.parentSession,turn:{id:n.turnId,sequence:n.sequence}},stepIndex:n.stepIndex,toolName:t.toolName,workflowId:t.workflowId});return{session:recordWorkflowToolRun(r,{callId:t.callId,hookToken:i.hookToken,resultKind:t.resultKind??`tool`,runId:i.runId,toolName:t.toolName})}}catch(e){return logError(log,`workflow tool run failed to start`,e,{callId:t.callId,toolName:t.toolName}),{result:createRuntimeToolResultFromValue({callId:t.callId,isError:!0,output:toError(e),toolName:t.toolName}),session:r}}}export{startWorkflowTask,startWorkflowToolRun};
1
+ import{createLogger,logError}from"#internal/logging.js";import{toError}from"#shared/errors.js";import{startWorkflowOnCurrentDeployment,workflowToolRunWorkflowReference}from"#execution/workflow-runtime.js";import{registerWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{createRuntimeToolResultFromValue}from"#harness/action-result-helpers.js";const log=createLogger(`execution.workflow-tool-run`);async function startWorkflowToolRun(e){let t=crypto.randomUUID();return{hookToken:t,runId:(await startWorkflowOnCurrentDeployment(workflowToolRunWorkflowReference,[{...e,hookToken:t}])).runId}}async function startWorkflowTask(e){let{task:t,batchEvent:n,session:r}=e;try{let i=await startWorkflowToolRun({agents:e.agents,callId:t.callId,executeInput:t.executeInput,input:t.input,owner:e.owner,session:{auth:{current:e.auth,initiator:e.initiatorAuth},id:r.sessionId,parent:e.parentSession,turn:{id:n.turnId,sequence:n.sequence}},stepIndex:n.stepIndex,toolName:t.toolName,workflowId:t.workflowId});return{session:registerWorkflowToolRun(r,{callId:t.callId,lifetime:`turn`,origin:{turnId:n.turnId,stepIndex:n.stepIndex},address:i,toolName:t.toolName})}}catch(e){return logError(log,`workflow tool run failed to start`,e,{callId:t.callId,toolName:t.toolName}),{result:createRuntimeToolResultFromValue({callId:t.callId,isError:!0,output:toError(e),toolName:t.toolName}),session:r}}}export{startWorkflowTask,startWorkflowToolRun};
@@ -1,28 +1,20 @@
1
- import type { SessionContext } from "#context/session-context.js";
2
- import type { JsonObject, JsonValue } from "#shared/json.js";
3
- import type { TaskExecutorBinding } from "#tools/task.js";
1
+ import type { ActivityObserverConfig } from "#channel/types.js";
2
+ import type { TaskView } from "#tasks/types.js";
3
+ import type { WorkflowBodyDefinition } from "#execution/tools/workflow/body.js";
4
4
  import type { WorkflowToolRunOwner } from "#execution/tools/workflow/messages.js";
5
- import type { WorkflowAgentMetadata } from "#tools/workflow-definition.js";
6
- export type WorkflowToolRunSessionContext = SessionContext["session"];
7
- export declare const WORKFLOW_TOOL_EXECUTOR_KIND = "workflow-tool";
8
- /** Private task executor binding for the workflow tool run doing the task's work. */
9
- export declare function createWorkflowToolExecutorBinding(input: WorkflowToolRunAddress): TaskExecutorBinding;
10
- export declare function readWorkflowToolExecutorAddress(executor: TaskExecutorBinding | undefined): WorkflowToolRunAddress | undefined;
11
- export interface WorkflowToolRunInput {
12
- readonly agents: Readonly<Record<string, WorkflowAgentMetadata>>;
13
- readonly callId: string;
5
+ export interface WorkflowToolRunInput extends WorkflowBodyDefinition {
14
6
  readonly execution?: "background" | "blocking";
15
- readonly executeInput?: JsonValue;
16
7
  readonly hookToken: string;
17
- readonly input: JsonObject;
18
8
  readonly owner: WorkflowToolRunOwner;
19
- readonly resultKind?: "subagent" | "tool";
20
- readonly session: WorkflowToolRunSessionContext;
21
- readonly stepIndex: number;
22
- readonly toolName: string;
23
- readonly workflowId: string;
24
9
  }
25
10
  export interface WorkflowToolRunAddress {
26
11
  readonly hookToken: string;
27
12
  readonly runId: string;
28
13
  }
14
+ export interface BackgroundWorkflowToolRunInput {
15
+ readonly activityObserver?: ActivityObserverConfig;
16
+ readonly initialView: TaskView;
17
+ readonly parentContinuationToken: string;
18
+ readonly taskInboxToken: string;
19
+ readonly workflow: WorkflowBodyDefinition;
20
+ }
@@ -1 +1 @@
1
- const WORKFLOW_TOOL_EXECUTOR_KIND=`workflow-tool`;function createWorkflowToolExecutorBinding(e){return{data:{hookToken:e.hookToken,runId:e.runId},kind:WORKFLOW_TOOL_EXECUTOR_KIND}}function readWorkflowToolExecutorAddress(e){if(e?.kind!==`workflow-tool`)return;let t=e.data.hookToken,n=e.data.runId;return typeof t==`string`&&typeof n==`string`?{hookToken:t,runId:n}:void 0}export{WORKFLOW_TOOL_EXECUTOR_KIND,createWorkflowToolExecutorBinding,readWorkflowToolExecutorAddress};
1
+ export{};
@@ -0,0 +1,13 @@
1
+ import type { BackgroundWorkflowToolRunInput } from "#execution/tools/workflow/types.js";
2
+ import type { WorkflowToolRunMessage } from "#execution/tools/workflow/messages.js";
3
+ import { type ChannelReader } from "#execution/tools/workflow/owner-channels.js";
4
+ import { type TaskRunInboundPayload } from "#tasks/types.js";
5
+ export interface BackgroundWorkflowOwner {
6
+ readonly kind: "session";
7
+ readonly commands: ChannelReader<"commands", TaskRunInboundPayload>;
8
+ readonly signal: AbortSignal;
9
+ handleCommand(payload: TaskRunInboundPayload): Promise<"start" | "stop" | undefined>;
10
+ handleMessage(message: WorkflowToolRunMessage): Promise<void>;
11
+ }
12
+ /** Routes child messages; the parent session owns persisted task state. */
13
+ export declare function createBackgroundWorkflowOwner(input: BackgroundWorkflowToolRunInput): Promise<BackgroundWorkflowOwner | undefined>;
@@ -0,0 +1 @@
1
+ import{createHook}from"#compiled/@workflow/core/index.js";import{claimHookOwnership,isHookConflictError}from"#execution/hook-ownership.js";import{deliverWorkflowAuthorization}from"#execution/tools/workflow/owner.js";import{workflowToolRunInputRequests}from"#execution/tools/workflow/owner-inbox.js";import{isTerminalTaskStatus,readTaskInputRequestId}from"#tasks/types.js";import{deliverTaskInputResponsesStep,emitTaskActivityStep,notifyTaskParent}from"#execution/tasks/child/notify.js";import{createChannelReader}from"#execution/tools/workflow/owner-channels.js";import{applyTaskTransition}from"#tasks/transitions.js";async function createBackgroundWorkflowOwner(e){let t=createHook({token:e.taskInboxToken}),n=e.initialView,r=0,i=new Map,a=new AbortController;try{await claimHookOwnership(t)}catch(e){if(isHookConflictError(e))return;throw e}return await emitTaskActivityStep({activityObserver:e.activityObserver,view:n}),{kind:`session`,commands:createChannelReader(`commands`,t),signal:a.signal,handleCommand,handleMessage};async function handleCommand(t){if(t.kind===`task-command`){if(t.command.kind===`ready`)return isTerminalTaskStatus(n.status)?(await notifyTaskParent({token:e.parentContinuationToken,view:n}),`stop`):`start`;if(t.command.kind===`reject-dispatch`)return applyTransition(t.command),`stop`}await applyPayload(t)}async function handleMessage(t){if(t.kind===`report`){await handleReport(t);return}if(t.kind===`outcome`){(applyTransition(t)||n.status===`cancelled`)&&await notifyTaskParent({token:e.parentContinuationToken,view:n});return}let r=t,a=r.request.kind;if(a===`agent-invoke`||a===`agent-settled`||a===`authorization-request`){await handleOwnerRequest(r);return}r.requestCoordinates===void 0&&i.set(r.replyTo,{runId:r.from.runId}),applyTransition({kind:`require-input`,inputRequests:workflowToolRunInputRequests(r)})&&await notifyTaskParent({request:r,taskId:n.taskId,token:e.parentContinuationToken})}async function handleReport(t){let i=r++;n.metadata.kind!==`subagent`||isTerminalTaskStatus(n.status)||await notifyTaskParent({token:e.parentContinuationToken,update:{report:t,index:i},view:n})}async function applyPayload(e){let t;if(e.kind===`input-response`)t=n.status===`input_required`?await resolveAnsweredCommand(n,e,i.get(e.childContinuationToken)):void 0;else if(e.kind===`task-command`)t=e.command;else return;t!==void 0&&applyTransition(t)&&t.kind===`cancel`&&a.abort(Error(`Task ${n.taskId} was cancelled.`))}function applyTransition(e){let t=applyTaskTransition(n,e);return t.action===`accepted`&&(n=t.view,!0)}async function handleOwnerRequest(t){let{request:r}=t;if(r.kind===`authorization-request`){await deliverWorkflowAuthorization({...t,request:r},async()=>{let i=r.event.childSessionId===t.from.runId&&r.event.event.type===`authorization.completed`;(!isTerminalTaskStatus(n.status)||i)&&await notifyTaskParent({request:t,taskId:n.taskId,token:e.parentContinuationToken})});return}isTerminalTaskStatus(n.status)||await notifyTaskParent({request:t,taskId:n.taskId,token:e.parentContinuationToken})}}async function resolveAnsweredCommand(e,t,n){if(t.taskId!==e.taskId)return;let r=new Set(e.inputRequests.flatMap(e=>{let t=readTaskInputRequestId(e);return t===void 0?[]:[t]})),i=t.inputResponses.map(e=>e.requestId).filter(e=>r.has(e));if(i.length!==0)return await deliverTaskInputResponsesStep({answer:t,answerHook:n,requestIds:i})===`delivered`?{kind:`answered`,requestIds:i}:void 0}export{createBackgroundWorkflowOwner};
@@ -0,0 +1,12 @@
1
+ import { type ChannelReader } from "#execution/tools/workflow/owner-channels.js";
2
+ import { type WorkflowToolRunMessage, type WorkflowToolRunControlMessage } from "#execution/tools/workflow/messages.js";
3
+ import type { WorkflowToolRunInput } from "#execution/tools/workflow/types.js";
4
+ export interface BlockingWorkflowOwner {
5
+ readonly kind: "turn";
6
+ readonly commands: ChannelReader<"control", WorkflowToolRunControlMessage>;
7
+ readonly signal: AbortSignal;
8
+ handleCommand(message: WorkflowToolRunControlMessage): void;
9
+ handleMessage(message: WorkflowToolRunMessage): Promise<void>;
10
+ }
11
+ /** Routes invocation messages to the waiting turn and accepts cancellation. */
12
+ export declare function createBlockingWorkflow(input: WorkflowToolRunInput): BlockingWorkflowOwner;
@@ -0,0 +1 @@
1
+ import{createHook}from"#compiled/@workflow/core/index.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{isWorkflowToolRunControlMessage}from"#execution/tools/workflow/messages.js";import{createChannelReader}from"#execution/tools/workflow/owner-channels.js";function createBlockingWorkflow(e){let t=new AbortController,n=createHook({token:e.hookToken});return{kind:`turn`,commands:createChannelReader(`control`,n),signal:t.signal,handleCommand(e){isWorkflowToolRunControlMessage(e)&&t.abort(new WorkflowToolRunCancelledError(e.reason))},handleMessage(t){return resumeHookStep(e.owner.inbox,t,{ifPresent:t.kind===`outcome`&&t.result.status===`cancelled`})}}}var WorkflowToolRunCancelledError=class extends Error{constructor(e){super(e),this.name=`WorkflowToolRunCancelledError`}};export{createBlockingWorkflow};
@@ -1,3 +1,3 @@
1
- import type { WorkflowToolRunInput } from "#execution/tools/workflow/types.js";
2
- /** Runs one authored workflow tool call and reports to its declared owner hook. */
3
- export declare function workflowToolRunWorkflow(input: WorkflowToolRunInput): Promise<void>;
1
+ import type { BackgroundWorkflowToolRunInput, WorkflowToolRunInput } from "#execution/tools/workflow/types.js";
2
+ /** Owns admission, command intake, body execution, and settlement for either lifetime. */
3
+ export declare function workflowToolRunWorkflow(input: WorkflowToolRunInput | BackgroundWorkflowToolRunInput): Promise<void>;
@@ -1 +1 @@
1
- import{sleep}from"#compiled/@workflow/core/index.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{resumeHookStep}from"#execution/tools/workflow/resume-hook-step.js";import{createWorkflowBodyRef,executeWorkflowBody}from"#execution/tools/workflow/body.js";import{openWorkflowToolRunControlInbox}from"#execution/tools/workflow/run-control.js";async function workflowToolRunWorkflow(e){"use workflow";let t=openWorkflowToolRunControlInbox(e.hookToken),n={...e,execution:e.execution??`blocking`},r=createWorkflowBodyRef(n),i=executeWorkflowBody(n,t.signal).then(({outcome:e})=>{if(e.status===`completed`)return e.output;throw e.status===`failed`?e.error:t.signal.reason??Error(e.reason??`Workflow tool run cancelled.`)}),a=i.catch(()=>{}),o;try{o={output:await Promise.race([i,t.cancelled]),status:`completed`}}catch(e){t.signal.aborted?(await Promise.race([a,sleep(`30s`)]),o={reason:t.reason(),status:`cancelled`}):o={error:normalizeSerializableError(e),status:`failed`}}let s={from:r,result:o};await resumeHookStep(e.owner.inbox,{kind:`outcome`,...s},{ifPresent:o.status===`cancelled`})}workflowToolRunWorkflow.workflowId=`workflow//eve//workflowToolRunWorkflow`;export{workflowToolRunWorkflow};
1
+ import{sleep}from"#compiled/@workflow/core/index.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{openWorkflowToolRunOwnerInbox}from"#execution/tools/workflow/owner.js";import{WORKFLOW_CANCELLATION_CLEANUP_MS}from"#execution/tools/workflow/cancellation-policy.js";import{createChannelReader,raceChannelReads}from"#execution/tools/workflow/owner-channels.js";import{createWorkflowBodyRef,executeWorkflowBody}from"#execution/tools/workflow/body.js";import{createBackgroundWorkflowOwner}from"#execution/tools/workflow/workflow-owner-background.js";import{createBlockingWorkflow}from"#execution/tools/workflow/workflow-owner-blocking.js";async function workflowToolRunWorkflow(e){"use workflow";let t=`workflow`in e?await createBackgroundWorkflowOwner(e):createBlockingWorkflow(e);if(t===void 0)return;let n=`workflow`in e?{...e.workflow,execution:`background`}:{...e,execution:e.execution??`blocking`},{signal:r}=t,i=t.kind===`turn`,a=!0,o,s=0,c,l,u;for(;;){if(i&&r.aborted){if(o===void 0)break;l??=sleep(WORKFLOW_CANCELLATION_CLEANUP_MS).then(()=>`cancel`)}if(c!==void 0&&s>=c.reportCount&&t.commands.landed.length===0&&t.commands.failure===void 0){u=c.outcome;break}let e;try{if(i&&o===void 0){let e=openWorkflowToolRunOwnerInbox();o={inbox:e,reader:createChannelReader(`body`,awaitBodyResult(executeWorkflowBody({...n,owner:e.owner},r)))}}let s=[];a&&s.push(t.commands),o!==void 0&&(s.push(o.inbox.reader),c===void 0&&s.push(o.reader)),e=await raceChannelReads(s,l)}catch(e){if(t.commands.failure!==void 0)throw e;u={status:`failed`,error:normalizeSerializableError(e)};break}if(e===`cancel`)break;if(e.next.done){if(e.channel===`control`){a=!1;continue}if(e.channel===`body`){u={status:`failed`,error:`Workflow body ended without an outcome.`};break}if(i&&r.aborted)break;return}if(e.channel===`control`){if(t.kind!==`turn`)throw Error(`Session-owned workflow run received a turn command.`);t.handleCommand(e.next.value);continue}if(e.channel===`commands`){if(t.kind!==`session`)throw Error(`Turn-owned workflow run received a task command.`);let n=e.next.value;if(i&&n.kind===`task-command`&&(n.command.kind===`ready`||n.command.kind===`reject-dispatch`))continue;let r=await t.handleCommand(n);if(r===`stop`)return;r===`start`&&(i=!0);continue}if(e.channel===`body`){c=e.next.value;continue}e.next.value.kind!==`outcome`&&(e.next.value.kind===`report`&&(s+=1),await t.handleMessage(e.next.value))}r.aborted&&(u={status:`cancelled`,reason:r.reason instanceof Error?r.reason.message:String(r.reason??``)}),u!==void 0&&await t.handleMessage({from:createWorkflowBodyRef(n),kind:`outcome`,result:u})}async function*awaitBodyResult(e){yield await e}workflowToolRunWorkflow.workflowId=`workflow//eve//workflowToolRunWorkflow`;export{workflowToolRunWorkflow};
@@ -19,10 +19,6 @@ export declare const workflowEntryReference: {
19
19
  export declare const sessionTimeoutWorkflowReference: {
20
20
  workflowId: string;
21
21
  };
22
- /** Stable workflow reference for durable task runs (`experimental.tasks`). */
23
- export declare const taskRunWorkflowReference: {
24
- workflowId: string;
25
- };
26
22
  /** Stable workflow reference for root-session activity collectors. */
27
23
  export declare const activityCollectorWorkflowReference: {
28
24
  workflowId: string;
@@ -1 +1 @@
1
- import{randomBytes}from"node:crypto";import{createEveActivityRoutePath}from"#protocol/routes.js";import{createLogger,logError}from"#internal/logging.js";import{getChannelActivityPresentation}from"#channel/activity-renderer.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{ActivityObserverKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{normalizePersistedMessageStreamEvent}from"#protocol/message-version.js";import{cancelRun,getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{serializeContext}from"#context/serialize.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{AcceptedSessionIdentityError,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{createWorkflowCallbackUrl,resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/agent-trace-context.js";import{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,TASK_RUN_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},taskRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TASK_RUN_WORKFLOW_NAME}`},activityCollectorWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${ACTIVITY_COLLECTOR_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(t){let n=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),r=buildRunContext({bundle:n,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t}),i=resolveEffectiveAgentRuntime(n,r);initializeSessionInstrumentation({agentName:i.turnAgent.id,ctx:r});let a=i.limits?.sessionTimeoutMs,o=n.resolvedAgent.config?.experimental?.workflow?.retention,s,c=t.activityObserver;if(t.parent===void 0&&c===void 0&&(getChannelActivityPresentation(t.adapter)?.renderers.length??0)>0){let e=serializeContext(r),t=randomBytes(32).toString(`base64url`),n={expiresAt:new Date(Date.now()+(typeof a==`number`?a:864e5)).toISOString(),serializedContext:e,token:t};try{s=(await startWorkflowOnCurrentDeployment(activityCollectorWorkflowReference,[n],{experimental_retention:o})).runId;let e=process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:3000`,i=resolveWorkflowCallbackBaseUrl(e);c={sink:{url:createWorkflowCallbackUrl(i,createEveActivityRoutePath(t)),version:1}},r.set(ActivityObserverKey,c)}catch{await cancelActivityCollector(s),s=void 0,log.warn(`failed to start activity collector`)}}let l=serializeContext(r),u=readParentLineage(l),d={kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:l},f=t.taskId??t.callback?.taskId;t.limits!==void 0&&(d.limits=t.limits),f!==void 0&&(d.taskId=f),s!==void 0&&(d.activityCollectorRunId=s),t.continuationConflictCommand!==void 0&&(d.continuationConflictCommand=t.continuationConflictCommand),a!==void 0&&(d.sessionTimeoutMs=a),o!==void 0&&(d.retention=o);let p={...u.sessionId===void 0?buildSessionAttributes({serializedContext:l}):buildSubagentRootAttributes({identity:{nodeId:n.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:u.callId,parentSessionId:u.sessionId,parentTurnId:u.turnId,rootSessionId:u.rootSessionId??u.sessionId,serializedContext:l}),...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},m;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(p)};o!==void 0&&(e.experimental_retention=o),m=await startWorkflowOnDeployment(workflowEntryReference,[d],d.ownerDeploymentId,e)}catch(e){throw await cancelActivityCollector(s),logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let h,getEvents=()=>(h??=parseNdjsonStream(()=>getRun(m.runId).getReadable(),normalizePersistedEvent),h);return{get events(){return getEvents()},sessionId:m.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand({sessionId:e.sessionId},e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}),normalizePersistedEvent)},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}}}}async function startSessionOwnerStep(e){"use step";let t={activationToken:e.activationToken,checkpoint:e.checkpoint,delivery:e.delivery,kind:`handoff`,ownerDeploymentId:e.targetDeploymentId,sessionWritable:getRun(e.anchorRunId).getWritable(),sessionId:e.anchorRunId};await startWorkflowOnDeployment(workflowEntryReference,[t],e.targetDeploymentId,e.checkpoint.retention===void 0?void 0:{experimental_retention:e.checkpoint.retention})}function normalizePersistedEvent(e){return normalizePersistedMessageStreamEvent(e)}async function cancelActivityCollector(e){if(e!==void 0)try{await cancelRun(await getWorld(),e,{cancelReason:`Root session creation did not complete`})}catch{log.warn(`failed to cancel unowned activity collector`)}}async function dispatchWorkflowCommand(e,t){let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(isInactiveCommandTarget(n)){if(t.kind===`send`&&typeof e!=`string`)try{let t=await getRun(e.sessionId).status;if(t===`pending`||t===`running`)return{status:`session_not_active`,retryable:!0}}catch(e){if(!isInactiveCommandTarget(e))throw e}return inactiveCommandResult(t)}throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}if(t.kind===`reset`){let t=typeof e==`string`?e:sessionCommandHookToken(e.sessionId),r=new Set([sessionCommandHookToken(n.sessionId),t]);await Promise.all([...r].map(e=>waitForHookRelease(sessionInboxHookToken(e),n.runId)))}return activeCommandResult(t,n.sessionId)}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){let t={kind:`cancel`};return e.taskId!==void 0&&(t.taskId=e.taskId),e.tasks!==void 0&&(t.tasks=e.tasks),e.turnId!==void 0&&(t.turnId=e.turnId),await dispatchWorkflowCommand({sessionId:e.sessionId},t)}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release inbox "${e}".`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{activityCollectorWorkflowReference,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startSessionOwnerStep,startWorkflowOnCurrentDeployment,taskRunWorkflowReference,waitForCommandHookOwner,workflowEntryReference,workflowToolRunWorkflowReference};
1
+ import{randomBytes}from"node:crypto";import{createEveActivityRoutePath}from"#protocol/routes.js";import{createLogger,logError}from"#internal/logging.js";import{getChannelActivityPresentation}from"#channel/activity-renderer.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{ActivityObserverKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{normalizePersistedMessageStreamEvent}from"#protocol/message-version.js";import{cancelRun,getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{serializeContext}from"#context/serialize.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{AcceptedSessionIdentityError,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{createWorkflowCallbackUrl,resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/agent-trace-context.js";import{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},activityCollectorWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${ACTIVITY_COLLECTOR_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(t){let n=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),r=buildRunContext({bundle:n,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t}),i=resolveEffectiveAgentRuntime(n,r);initializeSessionInstrumentation({agentName:i.turnAgent.id,ctx:r});let a=i.limits?.sessionTimeoutMs,o=n.resolvedAgent.config?.experimental?.workflow?.retention,s,c=t.activityObserver;if(t.parent===void 0&&c===void 0&&(getChannelActivityPresentation(t.adapter)?.renderers.length??0)>0){let e=serializeContext(r),t=randomBytes(32).toString(`base64url`),n={expiresAt:new Date(Date.now()+(typeof a==`number`?a:864e5)).toISOString(),serializedContext:e,token:t};try{s=(await startWorkflowOnCurrentDeployment(activityCollectorWorkflowReference,[n],{experimental_retention:o})).runId;let e=process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:3000`,i=resolveWorkflowCallbackBaseUrl(e);c={sink:{url:createWorkflowCallbackUrl(i,createEveActivityRoutePath(t)),version:1}},r.set(ActivityObserverKey,c)}catch{await cancelActivityCollector(s),s=void 0,log.warn(`failed to start activity collector`)}}let l=serializeContext(r),u=readParentLineage(l),d={kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:l},f=t.taskId??t.callback?.taskId;t.limits!==void 0&&(d.limits=t.limits),f!==void 0&&(d.taskId=f),s!==void 0&&(d.activityCollectorRunId=s),t.continuationConflictCommand!==void 0&&(d.continuationConflictCommand=t.continuationConflictCommand),a!==void 0&&(d.sessionTimeoutMs=a),o!==void 0&&(d.retention=o);let p={...u.sessionId===void 0?buildSessionAttributes({serializedContext:l}):buildSubagentRootAttributes({identity:{nodeId:n.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:u.callId,parentSessionId:u.sessionId,parentTurnId:u.turnId,rootSessionId:u.rootSessionId??u.sessionId,serializedContext:l}),...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},m;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(p)};o!==void 0&&(e.experimental_retention=o),m=await startWorkflowOnDeployment(workflowEntryReference,[d],d.ownerDeploymentId,e)}catch(e){throw await cancelActivityCollector(s),logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let h,getEvents=()=>(h??=parseNdjsonStream(()=>getRun(m.runId).getReadable(),normalizePersistedEvent),h);return{get events(){return getEvents()},sessionId:m.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand({sessionId:e.sessionId},e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}),normalizePersistedEvent)},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}}}}async function startSessionOwnerStep(e){"use step";let t={activationToken:e.activationToken,checkpoint:e.checkpoint,delivery:e.delivery,kind:`handoff`,ownerDeploymentId:e.targetDeploymentId,sessionWritable:getRun(e.anchorRunId).getWritable(),sessionId:e.anchorRunId};await startWorkflowOnDeployment(workflowEntryReference,[t],e.targetDeploymentId,e.checkpoint.retention===void 0?void 0:{experimental_retention:e.checkpoint.retention})}function normalizePersistedEvent(e){return normalizePersistedMessageStreamEvent(e)}async function cancelActivityCollector(e){if(e!==void 0)try{await cancelRun(await getWorld(),e,{cancelReason:`Root session creation did not complete`})}catch{log.warn(`failed to cancel unowned activity collector`)}}async function dispatchWorkflowCommand(e,t){let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(isInactiveCommandTarget(n)){if(t.kind===`send`&&typeof e!=`string`)try{let t=await getRun(e.sessionId).status;if(t===`pending`||t===`running`)return{status:`session_not_active`,retryable:!0}}catch(e){if(!isInactiveCommandTarget(e))throw e}return inactiveCommandResult(t)}throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}if(t.kind===`reset`){let t=typeof e==`string`?e:sessionCommandHookToken(e.sessionId),r=new Set([sessionCommandHookToken(n.sessionId),t]);await Promise.all([...r].map(e=>waitForHookRelease(sessionInboxHookToken(e),n.runId)))}return activeCommandResult(t,n.sessionId)}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){let t={kind:`cancel`};return e.taskId!==void 0&&(t.taskId=e.taskId),e.tasks!==void 0&&(t.tasks=e.tasks),e.turnId!==void 0&&(t.turnId=e.turnId),await dispatchWorkflowCommand({sessionId:e.sessionId},t)}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release inbox "${e}".`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{activityCollectorWorkflowReference,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startSessionOwnerStep,startWorkflowOnCurrentDeployment,waitForCommandHookOwner,workflowEntryReference,workflowToolRunWorkflowReference};
@@ -1,17 +1,15 @@
1
1
  import { ContextKey } from "#context/key.js";
2
2
  import type { InternalToolLabelDefinition, ToolExecuteOptions } from "#tools/definition.js";
3
- import type { TaskExec } from "#tools/task.js";
4
3
  import type { AgentView } from "#subagents/handles/prompt.js";
5
4
  import type { JsonValue } from "#shared/json.js";
6
5
  export interface BackgroundExecutableTool {
7
6
  readonly label?: InternalToolLabelDefinition;
8
- readonly execute: (input: unknown, options: ToolExecuteOptions, task: TaskExec) => unknown;
9
7
  readonly executeInput?: (input: unknown) => JsonValue;
10
8
  readonly name: string;
9
+ /** Selected agent definition's runtime graph ID; absent for authored workflow tools. */
11
10
  readonly nodeId?: string;
12
- readonly resultKind?: "subagent" | "tool";
13
- /** Present when the execute body runs in the task-owned durable workflow. */
14
- readonly workflowId?: string;
11
+ /** Registered durable workflow body run by the session-owned task. */
12
+ readonly workflowId: string;
15
13
  }
16
14
  export interface BackgroundToolCall {
17
15
  readonly callId: string;
@@ -1 +1 @@
1
- import{createActionResultEvent}from"#protocol/message.js";import{parseJsonObject}from"#shared/json.js";import{findWorkflowToolRun,isInboxSubagentResultFromRecordedWorkflowToolRun,removeWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{clearProxyInputRequestsForChild,clearProxyInputRequestsWhere}from"#harness/proxy-input-requests.js";import{findRunningAgentHandle,isResultBoundToRunningHandle}from"#subagents/handles/query.js";import{accumulateSessionUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{resolveRuntimeActionResultsForCallIds}from"#runtime/actions/results.js";import{settleAgentTurn}from"#subagents/handles/transitions.js";import{markRuntimeWorkflowToolAction}from"#shared/action-types.js";import{normalizeToolModelOutput}from"#harness/tool-model-output.js";const PENDING_COORDINATION_BATCH_KEY=`eve.runtime.pendingCoordinationBatch`;function readSubagentResultOutcome(e){return e.origin===`child`?e.outcome:void 0}function getPendingCoordinationBatch(e){let t=e?.[PENDING_COORDINATION_BATCH_KEY];if(typeof t!=`object`||!t)return;let n=t;if(Array.isArray(n.runtimeActions)&&Array.isArray(n.tasks)&&Array.isArray(n.responseMessages)&&typeof n.event==`object`&&n.event!==null)return n}function hasPendingCoordinationBatch(e){return getPendingCoordinationBatch(e)!==void 0}function clearPendingCoordinationBatch(e){if(e.state?.[PENDING_COORDINATION_BATCH_KEY]===void 0)return e;let t={...e.state};return delete t[PENDING_COORDINATION_BATCH_KEY],{...e,state:Object.keys(t).length>0?t:void 0}}function setPendingCoordinationBatch(e){assertUniqueCoordinationCallIds([...e.runtimeActions,...e.tasks]);let t={...e.session.state};return t[PENDING_COORDINATION_BATCH_KEY]={runtimeActions:[...e.runtimeActions],tasks:[...e.tasks],event:e.event,localFanoutSize:e.localFanoutSize,responseMessages:[...e.responseMessages]},{...e.session,state:t}}function assertUniqueCoordinationCallIds(e){let t=new Set;for(let n of e){if(t.has(n.callId))throw Error(`Coordination batch contains duplicate callId "${n.callId}".`);t.add(n.callId)}}function resolveReadyCoordinationResults(e){let t=getPendingCoordinationBatch(e.session.state);if(t!==void 0)return resolveResultsForCoordinationBatch({batch:t,results:e.results,state:e.session.state})}function resolveResultsForCoordinationBatch(e){return resolveRuntimeActionResultsForCallIds({pendingCallIds:[...e.batch.runtimeActions,...e.batch.tasks].map(e=>e.callId),results:e.results.filter(t=>isResultBoundToRunningHandle(e.state,t)||t.kind===`subagent-result`&&isInboxSubagentResultFromRecordedWorkflowToolRun(e.state,t))})}async function resolvePendingCoordination(e){let t=getPendingCoordinationBatch(e.session.state);if(t===void 0)return{messages:[...e.session.history],outcome:`continue`,session:e.session};let n=resolveReadyCoordinationResults({results:e.stepInput?.runtimeActionResults??[],session:e.session});if(n===void 0)return{messages:[...e.session.history],outcome:`unresolved`,session:e.session};if(e.emit!==void 0)for(let r of n){if(r.kind===`subagent-result`&&r.isError!==!0){let t=readBackgroundTaskReceipt(r),n={callId:r.callId,output:typeof r.output==`string`?r.output:JSON.stringify(r.output),subagentName:r.subagentName};await e.emit({data:t===void 0?n:{...n,backgroundTask:t},type:`subagent.completed`})}await e.emit(createActionResultEvent({result:r,sequence:t.event.sequence,stepIndex:t.event.stepIndex,turnId:t.event.turnId}))}let r=e.session;for(let e of n){if(e.kind!==`subagent-result`||e.origin!==`child`||readBackgroundTaskReceipt(e)!==void 0)continue;let t=findRunningAgentHandle(r.state,{callId:e.callId});if(t===void 0)continue;let n=readSubagentResultOutcome(e);if(n===void 0)continue;n.kind===`terminal`&&`continuationToken`in t.address&&(r=clearProxyInputRequestsForChild(r,t.address.continuationToken));let i=settleAgentTurn(r,{operationId:t.operation.id,outcome:n});i.kind===`settled`&&(r=i.session)}for(let e of n){if(e.kind!==`tool-result`)continue;let t=findWorkflowToolRun(r.state,e.callId);t!==void 0&&(r=removeWorkflowToolRun(clearProxyInputRequestsWhere(r,e=>e.answerHook?.runId===t.runId),t.callId))}for(let e of n){if(e.kind!==`subagent-result`)continue;let t=findWorkflowToolRun(r.state,e.callId);t?.resultKind===`subagent`&&(r=removeWorkflowToolRun(clearProxyInputRequestsForChild(r,t.hookToken),t.callId))}let i={...r.state};delete i[PENDING_COORDINATION_BATCH_KEY],r={...r,state:Object.keys(i).length>0?i:void 0};for(let e of n){if(e.kind!==`subagent-result`)continue;let t=readSubagentResultOutcome(e);t!==void 0&&(r=setTurnUsageState(r,accumulateSessionUsage({previous:getTurnUsageState(r.state),usage:t.usageDelta})))}let a=[];for(let t of n){switch(t.kind){case`load-skill-result`:a.push({output:toToolResultOutput(t),toolCallId:t.callId,toolName:`load_skill`,type:`tool-result`});continue;case`subagent-result`:a.push({output:toToolResultOutput(t),toolCallId:t.callId,toolName:t.subagentName,type:`tool-result`});continue;case`tool-result`:a.push({output:await projectToolResultOutput(t,e.tools?.get(t.toolName)),toolCallId:t.callId,toolName:t.toolName,type:`tool-result`});continue}throw Error(`Unsupported runtime action result kind "${String(t)}".`)}let o=[...r.history,...t.responseMessages];return a.length>0&&o.push({content:a,role:`tool`}),{messages:o,outcome:`resolved`,session:r}}function readBackgroundTaskReceipt(e){return`backgroundTask`in e?e.backgroundTask:void 0}function createRuntimeActionRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName});if(t?.frameworkAction===`load-skill`)return{callId:e.toolCall.toolCallId,input:n,kind:`load-skill`};let r={callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName};return t?.workflowId===void 0?r:markRuntimeWorkflowToolAction(r)}function createCoordinationRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName});if(t?.runtimeAction?.kind===`task-control`)return{kind:`runtime-action`,request:{callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName}};if(t?.workflowId!==void 0)return{kind:`task`,request:{callId:e.toolCall.toolCallId,executeInput:t.executeInput?.(n),input:n,kind:`workflow-task`,resultKind:t.resultKind,toolName:e.toolCall.toolName,workflowId:t.workflowId}};throw Error(`Deferred tool "${e.toolCall.toolName}" has no task or runtime action.`)}function resolveToolCallInputObject(e,t){if(e==null||typeof e==`string`&&e.trim()===``)return{};try{return parseJsonObject(typeof e==`string`?parseJsonStringInput(e):e)}catch(e){let n=e instanceof Error?e.message:String(e);throw TypeError(`Failed to parse tool-call arguments for "${t.toolName}" (${t.callId}): ${n}`,{cause:e})}}function parseJsonStringInput(e){return JSON.parse(e)}async function projectToolResultOutput(e,t){return e.isError===!0||t?.toModelOutput===void 0?toToolResultOutput(e):normalizeToolModelOutput({output:await t.toModelOutput(e.output),toolCallId:e.callId,toolName:e.toolName})}function toToolResultOutput(e){return typeof e.output==`string`?e.isError===!0?{type:`error-text`,value:e.output}:{type:`text`,value:e.output}:e.isError===!0?{type:`error-json`,value:toMutableJsonValue(e.output)}:{type:`json`,value:toMutableJsonValue(e.output)}}function toMutableJsonValue(e){if(e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(Array.isArray(e))return e.map(e=>toMutableJsonValue(e));let t={};for(let[n,r]of Object.entries(e))t[n]=toMutableJsonValue(r);return t}export{assertUniqueCoordinationCallIds,clearPendingCoordinationBatch,createCoordinationRequestFromToolCall,createRuntimeActionRequestFromToolCall,getPendingCoordinationBatch,hasPendingCoordinationBatch,resolvePendingCoordination,resolveToolCallInputObject,setPendingCoordinationBatch};
1
+ import{parseJsonObject}from"#shared/json.js";import{createActionResultEvent}from"#protocol/message.js";import{findBlockingWorkflowToolRun,removeBlockingWorkflowToolRuns}from"#harness/workflow-tool-runs.js";import{clearProxyInputRequestsForChild,clearProxyInputRequestsWhere}from"#harness/proxy-input-requests.js";import{findRunningAgentHandle,isResultBoundToRunningHandle}from"#subagents/handles/query.js";import{accumulateSessionUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{resolveRuntimeActionResultsForCallIds}from"#runtime/actions/results.js";import{settleAgentTurn}from"#subagents/handles/transitions.js";import{markRuntimeWorkflowToolAction}from"#shared/action-types.js";import{normalizeToolModelOutput}from"#harness/tool-model-output.js";const PENDING_COORDINATION_BATCH_KEY=`eve.runtime.pendingCoordinationBatch`;function readSubagentResultOutcome(e){return e.origin===`child`?e.outcome:void 0}function getPendingCoordinationBatch(e){let t=e?.[PENDING_COORDINATION_BATCH_KEY];if(typeof t!=`object`||!t)return;let n=t;if(Array.isArray(n.runtimeActions)&&Array.isArray(n.tasks)&&Array.isArray(n.responseMessages)&&typeof n.event==`object`&&n.event!==null)return n}function hasPendingCoordinationBatch(e){return getPendingCoordinationBatch(e)!==void 0}function clearPendingCoordinationBatch(e){if(e.state?.[PENDING_COORDINATION_BATCH_KEY]===void 0)return e;let t={...e.state};return delete t[PENDING_COORDINATION_BATCH_KEY],{...e,state:Object.keys(t).length>0?t:void 0}}function setPendingCoordinationBatch(e){assertUniqueCoordinationCallIds([...e.runtimeActions,...e.tasks]);let t={...e.session.state};return t[PENDING_COORDINATION_BATCH_KEY]={runtimeActions:[...e.runtimeActions],tasks:[...e.tasks],event:e.event,localFanoutSize:e.localFanoutSize,responseMessages:[...e.responseMessages]},{...e.session,state:t}}function assertUniqueCoordinationCallIds(e){let t=new Set;for(let n of e){if(t.has(n.callId))throw Error(`Coordination batch contains duplicate callId "${n.callId}".`);t.add(n.callId)}}function resolveReadyCoordinationResults(e){let t=getPendingCoordinationBatch(e.session.state);if(t!==void 0)return resolveResultsForCoordinationBatch({batch:t,results:e.results,state:e.session.state})}function resolveResultsForCoordinationBatch(e){return resolveRuntimeActionResultsForCallIds({pendingCallIds:[...e.batch.runtimeActions,...e.batch.tasks].map(e=>e.callId),results:e.results.filter(t=>isResultBoundToRunningHandle(e.state,t))})}async function resolvePendingCoordination(e){let t=getPendingCoordinationBatch(e.session.state);if(t===void 0)return{messages:[...e.session.history],outcome:`continue`,session:e.session};let n=resolveReadyCoordinationResults({results:e.stepInput?.runtimeActionResults??[],session:e.session});if(n===void 0)return{messages:[...e.session.history],outcome:`unresolved`,session:e.session};let r=e.session;for(let e of n){if(e.kind!==`subagent-result`||e.origin!==`child`||readBackgroundTaskReceipt(e)!==void 0)continue;let t=findRunningAgentHandle(r.state,{callId:e.callId});if(t===void 0)continue;let n=readSubagentResultOutcome(e);if(n===void 0)continue;n.kind===`terminal`&&`continuationToken`in t.address&&(r=clearProxyInputRequestsForChild(r,t.address.continuationToken));let i=settleAgentTurn(r,{operationId:t.operation.id,outcome:n});i.kind===`settled`&&(r=i.session)}for(let e of n){if(e.kind!==`tool-result`)continue;let n=findBlockingWorkflowToolRun(r.state,e.callId,t.event.turnId);n!==void 0&&(r=removeBlockingWorkflowToolRuns(clearProxyInputRequestsWhere(r,e=>e.answerHook?.runId===n.address.runId),t.event.turnId,n.callId))}let i={...r.state};delete i[PENDING_COORDINATION_BATCH_KEY],r={...r,state:Object.keys(i).length>0?i:void 0};for(let e of n){if(e.kind!==`subagent-result`)continue;let t=readSubagentResultOutcome(e);t!==void 0&&(r=setTurnUsageState(r,accumulateSessionUsage({previous:getTurnUsageState(r.state),usage:t.usageDelta})))}if(e.emit!==void 0)for(let r of n){if(r.kind===`subagent-result`&&r.origin===`child`&&r.outcome.result.kind===`succeeded`&&readBackgroundTaskReceipt(r)===void 0){let t={callId:r.callId,output:typeof r.output==`string`?r.output:JSON.stringify(r.output),subagentName:r.subagentName};await e.emit({data:t,type:`subagent.completed`})}await e.emit(createActionResultEvent({result:r,sequence:t.event.sequence,stepIndex:t.event.stepIndex,turnId:t.event.turnId}))}let a=[];for(let t of n){switch(t.kind){case`load-skill-result`:a.push({output:toToolResultOutput(t),toolCallId:t.callId,toolName:`load_skill`,type:`tool-result`});continue;case`subagent-result`:a.push({output:toToolResultOutput(t),toolCallId:t.callId,toolName:t.subagentName,type:`tool-result`});continue;case`tool-result`:a.push({output:await projectToolResultOutput(t,e.tools?.get(t.toolName)),toolCallId:t.callId,toolName:t.toolName,type:`tool-result`});continue}throw Error(`Unsupported runtime action result kind "${String(t)}".`)}let o=[...r.history,...t.responseMessages];return a.length>0&&o.push({content:a,role:`tool`}),{messages:o,outcome:`resolved`,session:r}}function readBackgroundTaskReceipt(e){return`backgroundTask`in e?e.backgroundTask:void 0}function createRuntimeActionRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName});if(t?.frameworkAction===`load-skill`)return{callId:e.toolCall.toolCallId,input:n,kind:`load-skill`};let r={callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName};return t?.workflowId===void 0?r:markRuntimeWorkflowToolAction(r)}function createCoordinationRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName});if(t?.runtimeAction?.kind===`task-control`)return{kind:`runtime-action`,request:{callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName}};if(t?.workflowId!==void 0)return{kind:`task`,request:{callId:e.toolCall.toolCallId,executeInput:t.executeInput?.(n),input:n,kind:`workflow-task`,toolName:e.toolCall.toolName,workflowId:t.workflowId}};throw Error(`Deferred tool "${e.toolCall.toolName}" has no task or runtime action.`)}function resolveToolCallInputObject(e,t){if(e==null||typeof e==`string`&&e.trim()===``)return{};try{return parseJsonObject(typeof e==`string`?parseJsonStringInput(e):e)}catch(e){let n=e instanceof Error?e.message:String(e);throw TypeError(`Failed to parse tool-call arguments for "${t.toolName}" (${t.callId}): ${n}`,{cause:e})}}function parseJsonStringInput(e){return JSON.parse(e)}async function projectToolResultOutput(e,t){return e.isError===!0||t?.toModelOutput===void 0?toToolResultOutput(e):normalizeToolModelOutput({output:await t.toModelOutput(e.output),toolCallId:e.callId,toolName:e.toolName})}function toToolResultOutput(e){return typeof e.output==`string`?e.isError===!0?{type:`error-text`,value:e.output}:{type:`text`,value:e.output}:e.isError===!0?{type:`error-json`,value:toMutableJsonValue(e.output)}:{type:`json`,value:toMutableJsonValue(e.output)}}function toMutableJsonValue(e){if(e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(Array.isArray(e))return e.map(e=>toMutableJsonValue(e));let t={};for(let[n,r]of Object.entries(e))t[n]=toMutableJsonValue(r);return t}export{assertUniqueCoordinationCallIds,clearPendingCoordinationBatch,createCoordinationRequestFromToolCall,createRuntimeActionRequestFromToolCall,getPendingCoordinationBatch,hasPendingCoordinationBatch,resolvePendingCoordination,resolveToolCallInputObject,setPendingCoordinationBatch};