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
@@ -6,7 +6,6 @@
6
6
  export declare const TURN_WORKFLOW_NAME = "turnWorkflow";
7
7
  export declare const WORKFLOW_ENTRY_NAME = "workflowEntry";
8
8
  export declare const SESSION_TIMEOUT_WORKFLOW_NAME = "sessionTimeoutWorkflow";
9
- export declare const TASK_RUN_WORKFLOW_NAME = "taskRunWorkflow";
10
9
  export declare const WORKFLOW_TOOL_RUN_WORKFLOW_NAME = "workflowToolRunWorkflow";
11
10
  export declare const ACTIVITY_COLLECTOR_WORKFLOW_NAME = "activityCollectorWorkflow";
12
11
  export declare const STABLE_WORKFLOW_NAMES: ReadonlySet<string>;
@@ -1 +1 @@
1
- const TURN_WORKFLOW_NAME=`turnWorkflow`,WORKFLOW_ENTRY_NAME=`workflowEntry`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,TASK_RUN_WORKFLOW_NAME=`taskRunWorkflow`,WORKFLOW_TOOL_RUN_WORKFLOW_NAME=`workflowToolRunWorkflow`,ACTIVITY_COLLECTOR_WORKFLOW_NAME=`activityCollectorWorkflow`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,TASK_RUN_WORKFLOW_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME,ACTIVITY_COLLECTOR_WORKFLOW_NAME]);export{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,STABLE_WORKFLOW_NAMES,TASK_RUN_WORKFLOW_NAME,TURN_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME};
1
+ const TURN_WORKFLOW_NAME=`turnWorkflow`,WORKFLOW_ENTRY_NAME=`workflowEntry`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,WORKFLOW_TOOL_RUN_WORKFLOW_NAME=`workflowToolRunWorkflow`,ACTIVITY_COLLECTOR_WORKFLOW_NAME=`activityCollectorWorkflow`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME,ACTIVITY_COLLECTOR_WORKFLOW_NAME]);export{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,STABLE_WORKFLOW_NAMES,TURN_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME};
@@ -0,0 +1,44 @@
1
+ import type { ActivityObserverConfig } from "#channel/types.js";
2
+ import type { AnswerHookRoute } from "#harness/proxy-input-requests.js";
3
+ import type { ActivityEventV1 } from "#protocol/activity.js";
4
+ import type { WorkflowToolRunRequestMessage, WorkflowToolRunReport } from "#execution/tools/workflow/messages.js";
5
+ import { type TaskView, type TaskInboundAnswerInput } from "#tasks/types.js";
6
+ type TaskParentNotification = {
7
+ readonly view: TaskView;
8
+ readonly update?: {
9
+ readonly report: WorkflowToolRunReport;
10
+ readonly index: number;
11
+ };
12
+ } | {
13
+ readonly taskId: string;
14
+ readonly request: WorkflowToolRunRequestMessage;
15
+ };
16
+ /** Delivers task outcomes, updates, and requests through the parent's session inbox. */
17
+ export declare function notifyTaskParent(input: TaskParentNotification & {
18
+ readonly token: string;
19
+ }): Promise<void>;
20
+ /** Emits task activity without storing a second task-state record. */
21
+ export declare function emitTaskActivityStep(input: {
22
+ readonly activityObserver?: ActivityObserverConfig;
23
+ readonly view: TaskView;
24
+ }): Promise<void>;
25
+ export declare function projectTaskActivity(input: {
26
+ readonly activityObserver: ActivityObserverConfig | undefined;
27
+ readonly settledAt: string;
28
+ readonly view: TaskView;
29
+ }): readonly ActivityEventV1[];
30
+ /**
31
+ * Forwards answered input to the blocked child.
32
+ *
33
+ * The task run performs this itself so the child unblocks and the
34
+ * view leaves `input_required` under one durable decision. Returns
35
+ * `unreachable` when the child hook is already gone, which leaves the
36
+ * outstanding batch untouched rather than reporting a task as working
37
+ * when nothing received the answer.
38
+ */
39
+ export declare function deliverTaskInputResponsesStep(input: {
40
+ readonly answer: TaskInboundAnswerInput;
41
+ readonly answerHook?: AnswerHookRoute;
42
+ readonly requestIds: readonly string[];
43
+ }): Promise<"delivered" | "unreachable">;
44
+ export {};
@@ -0,0 +1 @@
1
+ import{createLogger}from"#internal/logging.js";import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resumeWorkflowToolRunAnswers}from"#execution/tools/workflow/answer.js";import{formatTaskNotification,formatTaskOutput}from"#tasks/notification.js";import{submitActivity}from"#execution/submit-activity.js";import{workflowToolRunInputRequests}from"#execution/tools/workflow/owner-inbox.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{isTerminalTaskStatus,taskAuthorizationRequestId}from"#tasks/types.js";const log=createLogger(`execution.tasks.run`);async function notifyTaskParent(e){"use step";let t=taskNotificationCommand(e);try{await resumeSessionInbox(e.token,t)}catch(e){if(!isTaskWorkflowTargetGone(e))throw e;log.warn(`task notification target is gone; the parent session already ended`,{taskDeliveryId:t.taskDeliveryId})}}function taskNotificationCommand(e){if(`view`in e){let{view:t,update:n}=e;if(n!==void 0)return{kind:`send`,payload:{message:`Background task ${t.taskId} (${t.metadata.name}) update: ${formatTaskOutput(n.report.update)}`},taskDeliveryId:`${t.taskId}:update:${t.taskId}:${n.index}:${n.report.from.callId}`};let r={message:formatTaskNotification(t)};return isTerminalTaskStatus(t.status)&&(r.task={views:[t]}),{kind:`send`,payload:r,taskDeliveryId:`${t.taskId}:ready:${t.status}`}}let{taskId:t,request:n}=e,{request:r}=n;if(r.kind===`authorization-request`)return taskAuthorizationCommand(r,t);if(r.kind===`agent-invoke`||r.kind===`agent-settled`){let e={replyTo:n.replyTo,request:r,taskId:t},i=r.kind===`agent-invoke`?r.invocationId:`${r.result.callId}:settled`;return{kind:`send`,payload:{task:{agentRequests:[e]}},taskDeliveryId:`${t}:agent:${n.from.runId}:${i}`}}let i=n.requestCoordinates??n.from;return{kind:`send`,payload:{task:{inputRequests:[{replyTo:n.replyTo,requests:workflowToolRunInputRequests(n),sequence:i.sequence,stepIndex:i.stepIndex,taskId:t,turnId:i.turnId}]}},taskDeliveryId:`${t}:input:${i.turnId}:${i.stepIndex}:${i.sequence}`}}function taskAuthorizationCommand(e,t){let{event:n}=e,r=n.event.data,i={task:{authorizationEvents:[{hookPayload:n,taskId:t}]}};return n.event.type===`authorization.required`&&(i.message=`Background task ${t} needs authorization.`),{kind:`send`,payload:i,taskDeliveryId:`${t}:authorization:${n.event.type}:${r.turnId}:${r.stepIndex}:${r.sequence}:${taskAuthorizationRequestId(n.event)}`}}async function emitTaskActivityStep(e){"use step";let t=projectTaskActivity({activityObserver:e.activityObserver,settledAt:new Date().toISOString(),view:e.view});await submitActivity({events:t,sink:e.activityObserver?.sink})}function projectTaskActivity(e){let t=e.activityObserver?.workIdentity;if(t===void 0)return[];let n=e.view.status;return n===`working`?[{eventId:`${t.id}:started`,kind:`work.started`,startedAt:e.settledAt,work:t}]:n!==`completed`&&n!==`failed`&&n!==`cancelled`?[]:[{eventId:`${t.id}:settled:${n}`,kind:`work.settled`,outcome:n,settledAt:e.settledAt,workId:t.id}]}async function deliverTaskInputResponsesStep(e){"use step";let t=new Set(e.requestIds),n={auth:e.answer.auth,kind:`send`,payload:{inputResponses:e.answer.inputResponses.filter(e=>t.has(e.requestId))},taskDeliveryId:`${e.answer.taskId}:${[...e.requestIds].sort().join(`,`)}`};try{if(e.answer.childResponseUrl!==void 0){let t=await fetch(e.answer.childResponseUrl,{body:JSON.stringify({inputResponses:n.payload.inputResponses}),headers:{"content-type":`application/json`},method:`POST`,redirect:`error`});if(t.status===404)return`unreachable`;if(!t.ok)throw Error(`Remote task input delivery failed with HTTP ${t.status}.`)}else e.answerHook===void 0?await resumeSessionInbox(e.answer.childSessionInbox??e.answer.childContinuationToken,n):await resumeWorkflowToolRunAnswers(e.answer.childContinuationToken,n.payload.inputResponses);return`delivered`}catch(t){if(isTaskWorkflowTargetGone(t))return log.warn(`task input answer target is gone; the child turn already ended`,{taskId:e.answer.taskId}),`unreachable`;throw t}}export{deliverTaskInputResponsesStep,emitTaskActivityStep,notifyTaskParent,projectTaskActivity};
@@ -1,6 +1,6 @@
1
1
  import type { HarnessSession as RuntimeSession } from "#harness/types.js";
2
2
  import type { RuntimeActionResult, RuntimeToolCallActionRequest } from "#shared/action-types.js";
3
- import { type SessionTaskIndexEntry } from "#tasks/session-index.js";
3
+ import { type BackgroundWorkflowToolRun } from "#harness/workflow-tool-runs.js";
4
4
  import type { TaskView } from "#tasks/types.js";
5
5
  /**
6
6
  * Result and lookup helpers shared by the task-control executors
@@ -9,15 +9,12 @@ import type { TaskView } from "#tasks/types.js";
9
9
  */
10
10
  /** Resolves owned index entries, or the ids this session does not own. */
11
11
  export declare function lookupTaskEntries(session: RuntimeSession, taskIds: readonly string[]): {
12
- readonly entries: SessionTaskIndexEntry[];
12
+ readonly entries: BackgroundWorkflowToolRun[];
13
13
  readonly kind: "found";
14
14
  } | {
15
15
  readonly kind: "unknown";
16
16
  readonly unknown: string[];
17
17
  };
18
- /** Reads the latest view of every entry, defaulting to `working`. */
19
- export declare function readTaskViews(entries: readonly SessionTaskIndexEntry[]): Promise<TaskView[]>;
20
- export declare function readTaskView(entry: SessionTaskIndexEntry): Promise<TaskView>;
21
18
  /** One successful task-control result carrying full task views. */
22
19
  export declare function createTaskViewsResult(action: RuntimeToolCallActionRequest, views: readonly TaskView[]): RuntimeActionResult;
23
20
  /** One task-control error the model can act on. */
@@ -1 +1 @@
1
- import{findSessionTaskEntry}from"#tasks/session-index.js";import{readLatestTaskView}from"#execution/tasks/parent/run-parent.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{taskViewsToJson}from"#tasks/json.js";function lookupTaskEntries(e,t){let n=[],r=[];for(let i of t){let t=findSessionTaskEntry(e.state,i);t===void 0?r.push(i):n.push(t)}return r.length>0?{kind:`unknown`,unknown:r}:{entries:n,kind:`found`}}async function readTaskViews(e){return Promise.all(e.map(readTaskView))}async function readTaskView(e){try{return await readLatestTaskView({taskRunId:e.taskRunId})??createPendingTaskView(e)}catch(t){if(isTaskWorkflowTargetGone(t)&&e.terminalView!==void 0)return e.terminalView;throw t}}function createPendingTaskView(e){let t={metadata:e.metadata,status:`working`,taskId:e.taskId};return e.executor===void 0?t:{...t,executor:{binding:e.executor}}}function createTaskViewsResult(e,t){return{callId:e.callId,kind:`tool-result`,output:taskViewsToJson(t),toolName:e.toolName}}function createTaskControlError(e,t){return{callId:e.callId,isError:!0,kind:`tool-result`,output:{message:t},toolName:e.toolName}}function createUnknownTasksError(e,t){return createTaskControlError(e,`Unknown task ids: ${t.join(`, `)}. Tasks belong to the session that created them.`)}export{createTaskControlError,createTaskViewsResult,createUnknownTasksError,lookupTaskEntries,readTaskView,readTaskViews};
1
+ import{findBackgroundWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{taskViewsToJson}from"#tasks/json.js";function lookupTaskEntries(e,t){let n=[],r=[];for(let i of t){let t=findBackgroundWorkflowToolRun(e.state,i);t===void 0?r.push(i):n.push(t)}return r.length>0?{kind:`unknown`,unknown:r}:{entries:n,kind:`found`}}function createTaskViewsResult(e,t){return{callId:e.callId,kind:`tool-result`,output:taskViewsToJson(t),toolName:e.toolName}}function createTaskControlError(e,t){return{callId:e.callId,isError:!0,kind:`tool-result`,output:{message:t},toolName:e.toolName}}function createUnknownTasksError(e,t){return createTaskControlError(e,`Unknown task ids: ${t.join(`, `)}. Tasks belong to the session that created them.`)}export{createTaskControlError,createTaskViewsResult,createUnknownTasksError,lookupTaskEntries};
@@ -1,31 +1,15 @@
1
- /**
2
- * Generic task creation, readiness acknowledgement, and dispatch rejection.
3
- * Task-run transport (start/command/view) lives in `run-parent.ts`, which
4
- * Callers compose these primitives around their own executor policy.
5
- */
6
- import type { ActivityObserverConfig } from "#channel/types.js";
7
1
  import type { HarnessSession } from "#harness/types.js";
8
- import type { ActivityWorkIdentityV1 } from "#protocol/activity.js";
2
+ import type { BackgroundWorkflowToolRun, TaskAgentDispatchContext } from "#harness/workflow-tool-runs.js";
9
3
  import type { JsonValue } from "#shared/json.js";
10
- import type { TaskExecutorBinding } from "#tools/task.js";
11
- import { type TaskMetadata } from "#tasks/types.js";
12
- import type { TaskAgentDispatchContext } from "#tasks/session-index.js";
4
+ import type { TaskMetadata } from "#tasks/types.js";
13
5
  import type { ContextReader } from "#context/key.js";
14
6
  import { type SessionAuth } from "#context/keys.js";
15
- /** A prepared background task: identity plus its started durable run. */
16
- export interface BackgroundTask {
17
- readonly activityWorkIdentity?: ActivityWorkIdentityV1;
18
- readonly dispatchContext: TaskAgentDispatchContext;
19
- readonly taskInboxToken: string;
20
- readonly createdByStepIndex?: number;
21
- readonly createdByTurnId: string;
22
- readonly executor?: TaskExecutorBinding;
23
- readonly metadata: TaskMetadata;
24
- readonly taskId: string;
25
- readonly taskRunId: string;
26
- }
27
7
  export declare function createTaskAgentDispatchContext(ctx: ContextReader, auth: SessionAuth): TaskAgentDispatchContext;
28
- type BackgroundTaskDraft = Omit<BackgroundTask, "taskRunId">;
8
+ export type BackgroundTaskDraft = Omit<BackgroundWorkflowToolRun, "address"> & {
9
+ readonly address: {
10
+ readonly hookToken: string;
11
+ };
12
+ };
29
13
  /** Derives the replay-stable task identity before its owning run is started. */
30
14
  export declare function prepareBackgroundTask(input: {
31
15
  readonly callId: string;
@@ -36,17 +20,6 @@ export declare function prepareBackgroundTask(input: {
36
20
  readonly parentTurnId: string;
37
21
  readonly session: HarnessSession;
38
22
  }): BackgroundTaskDraft;
39
- /** Starts a lifecycle-only task run for a non-workflow external executor. */
40
- export declare function beginBackgroundTask(input: {
41
- readonly activityObserver?: ActivityObserverConfig;
42
- readonly callId: string;
43
- readonly dispatchContext: TaskAgentDispatchContext;
44
- readonly metadata: TaskMetadata;
45
- readonly parentSessionId: string;
46
- readonly parentStepIndex?: number;
47
- readonly parentTurnId: string;
48
- readonly session: HarnessSession;
49
- }): Promise<BackgroundTask>;
50
23
  /** Releases task events only after the parent session index committed. */
51
24
  export declare function acknowledgeDelegatedTasksStep(input: {
52
25
  readonly tasks: readonly {
@@ -58,6 +31,5 @@ export declare function acknowledgeDelegatedTasksStep(input: {
58
31
  /** Silently terminates a task whose child dispatch failed before parent indexing. */
59
32
  export declare function rejectDelegatedDispatch(input: {
60
33
  readonly error: JsonValue;
61
- readonly task: BackgroundTask;
34
+ readonly task: BackgroundWorkflowToolRun;
62
35
  }): Promise<void>;
63
- export {};
@@ -1 +1 @@
1
- import{sessionCommandHookToken}from"#execution/session-inbox/address.js";import{SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{readLatestTaskView,sendTaskCommand,sendTaskCommandToOwner,startTaskRun,waitForTaskCommandOwner}from"#execution/tasks/parent/run-parent.js";import{isTerminalTaskStatus}from"#tasks/types.js";import{deriveTaskId,deriveTaskInboxToken}from"#tasks/task-id.js";function createTaskAgentDispatchContext(e,t){return{auth:t,sessionDynamicSubagentSelections:e.get(SessionDynamicSubagentSelectionsKey),turnDynamicSubagentSelections:e.get(TurnDynamicSubagentSelectionsKey)}}function prepareBackgroundTask(e){let t=deriveTaskId({callId:e.callId,parentSessionId:e.parentSessionId,parentTurnId:e.parentTurnId});return{taskInboxToken:deriveTaskInboxToken({parentContinuationToken:e.session.continuationToken,taskId:t}),createdByStepIndex:e.parentStepIndex??0,createdByTurnId:e.parentTurnId,dispatchContext:e.dispatchContext,metadata:e.metadata,taskId:t}}async function beginBackgroundTask(e){let t=prepareBackgroundTask(e);await startTaskRun({activityObserver:e.activityObserver,taskInboxToken:t.taskInboxToken,initialView:{metadata:t.metadata,status:`working`,taskId:t.taskId},parentContinuationToken:sessionCommandHookToken(e.session.sessionId)});let n=await waitForTaskCommandOwner({taskInboxToken:t.taskInboxToken});return{...t,taskRunId:n.runId}}async function acknowledgeDelegatedTasksStep(e){"use step";for(let t of e.tasks){if(await sendTaskCommandToOwner({command:{kind:`ready`},taskInboxToken:t.taskInboxToken,retryUnreachable:{attempts:20,delayMs:250}})!==void 0)continue;let e=await readLatestTaskView({taskRunId:t.taskRunId});if(!(e!==void 0&&isTerminalTaskStatus(e.status)))throw Error(`Task run "${t.taskId}" did not accept its readiness command.`)}}async function rejectDelegatedDispatch(e){await sendTaskCommand({command:{data:e.error,kind:`reject-dispatch`},taskInboxToken:e.task.taskInboxToken,retryUnreachable:{attempts:20,delayMs:250}})}export{acknowledgeDelegatedTasksStep,beginBackgroundTask,createTaskAgentDispatchContext,prepareBackgroundTask,rejectDelegatedDispatch};
1
+ import{SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{getRun}from"#internal/workflow/runtime.js";import{sendTaskCommand,sendTaskCommandToOwner}from"#execution/tasks/parent/run-parent.js";import{deriveTaskId,deriveTaskInboxToken}from"#tasks/task-id.js";function createTaskAgentDispatchContext(e,t){return{auth:t,sessionDynamicSubagentSelections:e.get(SessionDynamicSubagentSelectionsKey),turnDynamicSubagentSelections:e.get(TurnDynamicSubagentSelectionsKey)}}function prepareBackgroundTask(e){let t=deriveTaskId({callId:e.callId,parentSessionId:e.parentSessionId,parentTurnId:e.parentTurnId});return{callId:e.callId,toolName:e.metadata.name,lifetime:`session`,origin:{turnId:e.parentTurnId,stepIndex:e.parentStepIndex??0},address:{hookToken:deriveTaskInboxToken({parentContinuationToken:e.session.continuationToken,taskId:t})},task:{dispatchContext:e.dispatchContext,metadata:e.metadata,taskId:t}}}async function acknowledgeDelegatedTasksStep(e){"use step";for(let t of e.tasks){if(await sendTaskCommandToOwner({command:{kind:`ready`},taskInboxToken:t.taskInboxToken,retryUnreachable:{attempts:20,delayMs:250}})!==void 0)continue;let e=await getRun(t.taskRunId).status;if(e!==`completed`&&e!==`cancelled`)throw Error(`Task run "${t.taskId}" did not accept its readiness command.`)}}async function rejectDelegatedDispatch(e){await sendTaskCommand({command:{data:e.error,kind:`reject-dispatch`},taskInboxToken:e.task.address.hookToken,retryUnreachable:{attempts:20,delayMs:250}})}export{acknowledgeDelegatedTasksStep,createTaskAgentDispatchContext,prepareBackgroundTask,rejectDelegatedDispatch};
@@ -1,8 +1,7 @@
1
1
  import type { HarnessSession as RuntimeSession } from "#harness/types.js";
2
- import type { BackgroundTask } from "#execution/tasks/parent/delegate.js";
2
+ import { type BackgroundWorkflowToolRun } from "#harness/workflow-tool-runs.js";
3
3
  import { type TaskExecutorCancel } from "#execution/tasks/parent/task-cancel.js";
4
4
  import type { RuntimeActionResult, RuntimeToolCallActionRequest } from "#shared/action-types.js";
5
- import type { SessionTaskIndexEntry } from "#tasks/session-index.js";
6
5
  import { type TaskView } from "#tasks/types.js";
7
6
  export declare function isTaskControlAction(action: RuntimeToolCallActionRequest): boolean;
8
7
  export declare function executeTaskControlAction(input: {
@@ -13,12 +12,11 @@ export declare function executeTaskControlAction(input: {
13
12
  }): Promise<{
14
13
  readonly result: RuntimeActionResult;
15
14
  readonly session: RuntimeSession;
16
- readonly pendingTask?: BackgroundTask;
17
15
  }>;
18
- /** Commits cancellation, then stops task-owned child work and its lifecycle run. */
16
+ /** Cancels task-owned work; the caller records the outcome in the parent session. */
19
17
  export declare function cancelOwnedTask(input: {
20
18
  readonly cancelOwnedWork?: TaskExecutorCancel;
21
- readonly entry: SessionTaskIndexEntry;
19
+ readonly entry: BackgroundWorkflowToolRun;
22
20
  readonly serializedContext?: Record<string, unknown>;
23
21
  readonly session?: RuntimeSession;
24
22
  }): Promise<TaskView>;
@@ -1 +1 @@
1
- import{sessionCommandHookToken}from"#execution/session-inbox/address.js";import{sendTaskCommand}from"#execution/tasks/parent/run-parent.js";import{isTerminalTaskStatus}from"#tasks/types.js";import{wakeTaskParentStep}from"#execution/tasks/child/steps.js";import{createTaskControlError,createTaskViewsResult,createUnknownTasksError,lookupTaskEntries,readTaskView}from"#execution/tasks/parent/control-shared.js";import{cancelTaskOwnedWork}from"#execution/tasks/parent/task-cancel.js";import{TASK_CANCEL_TOOL_NAME,TASK_TOOL_NAMES}from"#tools/framework/task-contract.js";function isTaskControlAction(e){return e.kind===`tool-call`&&TASK_TOOL_NAMES.has(e.toolName)}async function executeTaskControlAction(e){let{action:t,session:n}=e,r=readTaskIds(t.input);if(r===void 0||r.length===0)return{result:createTaskControlError(t,"Provide a non-empty `taskIds` array."),session:n};let i=lookupTaskEntries(n,r);if(i.kind===`unknown`)return{result:createUnknownTasksError(t,i.unknown),session:n};if(t.toolName!==TASK_CANCEL_TOOL_NAME)return{result:createTaskControlError(t,`Unsupported task control "${t.toolName}".`),session:n};let a=[];for(let t of i.entries)a.push(await cancelOwnedTask({cancelOwnedWork:e.cancelOwnedWork,entry:t,serializedContext:e.serializedContext,session:n}));return{result:createTaskViewsResult(t,a),session:n}}async function cancelOwnedTask(e){let t=await sendTaskCommand({command:{kind:`cancel`},taskInboxToken:e.entry.taskInboxToken}),n=await readTaskView(e.entry);for(let t=0;t<10&&!isTerminalTaskStatus(n.status);t+=1)await new Promise(e=>setTimeout(e,250)),n=await readTaskView(e.entry);if(!isTerminalTaskStatus(n.status))throw Error(`Task "${e.entry.taskId}" did not commit cancellation before timeout.`);if(n.status!==`cancelled`)return n;let r=await cancelTaskOwnedWork({cancelOwnedWork:e.cancelOwnedWork,entry:e.entry,serializedContext:e.serializedContext,session:e.session});return(t===`unreachable`||r)&&e.session!==void 0&&await wakeTaskParentStep({token:sessionCommandHookToken(e.session.sessionId),view:n}),n}function readTaskIds(e){let t=e.taskIds;if(Array.isArray(t))return t.filter(e=>typeof e==`string`&&e.trim()!==``)}export{cancelOwnedTask,executeTaskControlAction,isTaskControlAction};
1
+ import{sessionCommandHookToken}from"#execution/session-inbox/address.js";import{readWorkflowTaskView,recordWorkflowTaskView}from"#harness/workflow-tool-runs.js";import{sendTaskCommand}from"#execution/tasks/parent/run-parent.js";import"#tasks/types.js";import{createTaskControlError,createTaskViewsResult,createUnknownTasksError,lookupTaskEntries}from"#execution/tasks/parent/control-shared.js";import{notifyTaskParent}from"#execution/tasks/child/notify.js";import{cancelTaskOwnedWork}from"#execution/tasks/parent/task-cancel.js";import{TASK_CANCEL_TOOL_NAME,TASK_TOOL_NAMES}from"#tools/framework/task-contract.js";function isTaskControlAction(e){return e.kind===`tool-call`&&TASK_TOOL_NAMES.has(e.toolName)}async function executeTaskControlAction(e){let{action:t}=e,n=e.session,r=readTaskIds(t.input);if(r===void 0||r.length===0)return{result:createTaskControlError(t,"Provide a non-empty `taskIds` array."),session:n};let i=lookupTaskEntries(n,r);if(i.kind===`unknown`)return{result:createUnknownTasksError(t,i.unknown),session:n};if(t.toolName!==TASK_CANCEL_TOOL_NAME)return{result:createTaskControlError(t,`Unsupported task control "${t.toolName}".`),session:n};let a=[];for(let t of i.entries){let r=await cancelOwnedTask({cancelOwnedWork:e.cancelOwnedWork,entry:t,serializedContext:e.serializedContext,session:n});n={...n,state:recordWorkflowTaskView(n.state,r)},a.push(r)}return{result:createTaskViewsResult(t,a),session:n}}async function cancelOwnedTask(e){let t=readWorkflowTaskView(e.entry.task);if(t!==void 0&&t.status!==`cancelled`)return t;let n=t??{metadata:e.entry.task.metadata,status:`cancelled`,taskId:e.entry.task.taskId};return await sendTaskCommand({command:{kind:`cancel`},taskInboxToken:e.entry.address.hookToken}),await cancelTaskOwnedWork({cancelOwnedWork:e.cancelOwnedWork,entry:e.entry,serializedContext:e.serializedContext,session:e.session}),e.session!==void 0&&await notifyTaskParent({token:sessionCommandHookToken(e.session.sessionId),view:n}),n}function readTaskIds(e){let t=e.taskIds;if(Array.isArray(t))return t.filter(e=>typeof e==`string`&&e.trim()!==``)}export{cancelOwnedTask,executeTaskControlAction,isTaskControlAction};
@@ -1,3 +1,4 @@
1
+ import type { SubagentCompletedStreamEvent } from "#protocol/message.js";
1
2
  import { type DurableSessionState } from "#execution/durable-session-store.js";
2
3
  import type { TaskInputRequestDelivery, TaskView } from "#tasks/types.js";
3
4
  /** Validates and records a generic task-owned workflow request. */
@@ -12,7 +13,7 @@ export declare function recordTaskInputRequestStep(input: {
12
13
  readonly request: TaskInputRequestDelivery;
13
14
  readonly sessionState: DurableSessionState;
14
15
  }>;
15
- /** Caches terminal task views before their workflow runs expire. */
16
+ /** Records child outcomes in the parent; its first terminal decision wins. */
16
17
  export declare function recordTerminalTaskViewsStep(input: {
17
18
  readonly serializedContext: Record<string, unknown>;
18
19
  readonly sessionState: DurableSessionState;
@@ -20,4 +21,6 @@ export declare function recordTerminalTaskViewsStep(input: {
20
21
  }): Promise<{
21
22
  readonly serializedContext: Record<string, unknown>;
22
23
  readonly sessionState: DurableSessionState;
24
+ readonly views: readonly TaskView[];
25
+ readonly subagentCompletions: readonly SubagentCompletedStreamEvent[];
23
26
  }>;
@@ -1 +1 @@
1
- import{createEveTaskInputRoutePath}from"#protocol/routes.js";import{createLogger}from"#internal/logging.js";import{isInputRequest}from"#shared/input.js";import{contextStorage}from"#context/container.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{readDurableSession,replaceDurableSessionSnapshot}from"#execution/durable-session-store.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{cacheTerminalTaskView,findSessionTaskEntry}from"#tasks/session-index.js";import{createTaskInputRequestId,upsertProxyInputRequestState}from"#harness/proxy-input-requests.js";import{readLatestTaskView}from"#execution/tasks/parent/run-parent.js";import{bindSessionInstrumentation}from"#instrumentation/runtime.js";import{createRemoteTaskInputCallbackUrl}from"#execution/workflow-callback-url.js";import{applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{createTaskInputCapabilityToken}from"#execution/task-input-capability.js";const log=createLogger(`execution.tasks.parent`);async function recordTaskInputRequestStep(e){"use step";let t=readDurableSession(e.sessionState),n=findSessionTaskEntry(t.state,e.request.taskId),r=e.request.requests??[e.request.request];if(n===void 0||r.length===0||!r.every(isInputRequest))return{accepted:!1,sessionState:e.sessionState};let i=await readLatestTaskView({taskRunId:n.taskRunId}),a=r.map(e=>e.requestId);if(i?.status!==`input_required`||i.inputRequests.length!==a.length||!i.inputRequests.every((e,t)=>typeof e==`object`&&!!e&&!Array.isArray(e)&&Reflect.get(e,`requestId`)===a[t]))return{accepted:!1,sessionState:e.sessionState};let o=r.map(t=>({...t,requestId:createTaskInputRequestId(e.request.taskId,t.requestId)})),s=getAgentHandleStore(t.state)?.handles.find(t=>t.phase===`claimed`&&t.ownerId===e.request.taskId),c=s?.phase===`claimed`&&s.address.kind===`agent/remote`?createRemoteTaskInputCallbackUrl(s.address.url,createEveTaskInputRoutePath(createTaskInputCapabilityToken(e.request.replyTo))):void 0,l=r.map((t,n)=>{let r=o[n],i={childContinuationToken:e.request.replyTo,childRequestId:t.requestId,kind:t.kind,taskId:e.request.taskId};return c!==void 0&&(i.childResponseUrl=c),[r.requestId,i]}),u=upsertProxyInputRequestState({entries:l,forChildContinuationToken:e.request.replyTo,state:t.state});return{accepted:!0,request:e.request.requests===void 0?{...e.request,request:o[0]}:{...e.request,request:void 0,requests:o},sessionState:replaceDurableSessionSnapshot({session:{...t,state:u},state:e.sessionState})}}async function recordTerminalTaskViewsStep(e){"use step";let t=readDurableSession(e.sessionState),n=t,r=[];for(let t of e.views){if(findSessionTaskEntry(n.state,t.taskId)===void 0)continue;let e=cacheTerminalTaskView(n.state,t);e!==n.state&&(n={...n,state:e}),r.push(t),n=applyTaskAgentHandleCommand(n,{kind:`release-owner`,ownerId:t.taskId}).session}return{serializedContext:await settleBackgroundTaskActions({serializedContext:e.serializedContext,session:n,views:r}),sessionState:n===t?e.sessionState:replaceDurableSessionSnapshot({session:n,state:e.sessionState})}}async function settleBackgroundTaskActions(e){if(e.views.length===0)return e.serializedContext;try{let t=await deserializeContext(e.serializedContext),n=t.get(BundleKey);if(n===void 0)return e.serializedContext;let r=bindSessionInstrumentation({agentName:n.turnAgent.id,ctx:t,rootSessionId:e.session.rootSessionId??e.session.sessionId,sessionId:e.session.sessionId});if(r===void 0)return e.serializedContext;try{await contextStorage.run(t,()=>r.publishBackgroundTaskSettlements({acceptedAtMs:Date.now(),views:e.views}))}finally{await r.flush()}return serializeContext(t)}catch(t){return log.warn(`failed to settle background task instrumentation`,{error:t,sessionId:e.session.sessionId,taskIds:e.views.map(e=>e.taskId)}),e.serializedContext}}export{recordTaskInputRequestStep,recordTerminalTaskViewsStep};
1
+ import{createEveTaskInputRoutePath}from"#protocol/routes.js";import{createLogger}from"#internal/logging.js";import{isInputRequest}from"#shared/input.js";import{contextStorage}from"#context/container.js";import{ActivityObserverKey}from"#context/keys.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{readDurableSession,replaceDurableSessionSnapshot}from"#execution/durable-session-store.js";import{findBackgroundWorkflowToolRun,readWorkflowTaskView,recordWorkflowTaskView}from"#harness/workflow-tool-runs.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{clearProxyInputRequestsForTask,createTaskInputRequestId,upsertProxyInputRequestState}from"#harness/proxy-input-requests.js";import{bindSessionInstrumentation}from"#instrumentation/runtime.js";import{createRemoteTaskInputCallbackUrl}from"#execution/workflow-callback-url.js";import{submitActivity}from"#execution/submit-activity.js";import{applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{createTaskInputCapabilityToken}from"#execution/task-input-capability.js";import{projectTaskActivity}from"#execution/tasks/child/notify.js";const log=createLogger(`execution.tasks.parent`);async function recordTaskInputRequestStep(e){"use step";let t=readDurableSession(e.sessionState),n=findBackgroundWorkflowToolRun(t.state,e.request.taskId),r=e.request.requests??[e.request.request];if(n===void 0||r.length===0||!r.every(isInputRequest)||readWorkflowTaskView(n.task)!==void 0)return{accepted:!1,sessionState:e.sessionState};let i=r.map(t=>({...t,requestId:createTaskInputRequestId(e.request.taskId,t.requestId)})),a=getAgentHandleStore(t.state)?.handles.find(t=>t.phase===`claimed`&&t.ownerId===e.request.taskId),o=a?.phase===`claimed`&&a.address.kind===`agent/remote`?createRemoteTaskInputCallbackUrl(a.address.url,createEveTaskInputRoutePath(createTaskInputCapabilityToken(e.request.replyTo))):void 0,s=r.map((t,n)=>{let r=i[n],a={childContinuationToken:e.request.replyTo,childRequestId:t.requestId,kind:t.kind,taskId:e.request.taskId};return o!==void 0&&(a.childResponseUrl=o),[r.requestId,a]}),c=upsertProxyInputRequestState({entries:s,forChildContinuationToken:e.request.replyTo,state:t.state});return{accepted:!0,request:e.request.requests===void 0?{...e.request,request:i[0]}:{...e.request,request:void 0,requests:i},sessionState:replaceDurableSessionSnapshot({session:{...t,state:c},state:e.sessionState})}}async function recordTerminalTaskViewsStep(e){"use step";let t=readDurableSession(e.sessionState),n=t,r=[],i=[];for(let t of e.views){let e=findBackgroundWorkflowToolRun(n.state,t.taskId);if(e===void 0)continue;let a=recordWorkflowTaskView(n.state,t);a!==n.state&&(n={...n,state:a},e.task.metadata.kind===`subagent`&&t.status===`completed`&&i.push({type:`subagent.completed`,data:{callId:e.callId,subagentName:e.toolName,output:typeof t.lastOutput.data==`string`?t.lastOutput.data:JSON.stringify(t.lastOutput.data)}})),r.push(readWorkflowTaskView(e.task)??t),n=clearProxyInputRequestsForTask(n,t.taskId),n=applyTaskAgentHandleCommand(n,{kind:`release-owner`,ownerId:t.taskId}).session}return{serializedContext:await settleBackgroundTaskActions({serializedContext:e.serializedContext,session:n,views:r}),sessionState:n===t?e.sessionState:replaceDurableSessionSnapshot({session:n,state:e.sessionState}),views:r,subagentCompletions:i}}async function settleBackgroundTaskActions(e){if(e.views.length===0)return e.serializedContext;try{let t=await deserializeContext(e.serializedContext),n=t.get(ActivityObserverKey),r=new Date().toISOString(),i=e.views.flatMap(t=>{let i=findBackgroundWorkflowToolRun(e.session.state,t.taskId);return projectTaskActivity({activityObserver:n===void 0?void 0:{sink:n.sink,workIdentity:i?.task.activityWorkIdentity},settledAt:r,view:t})});await submitActivity({events:i,sink:n?.sink});let a=t.get(BundleKey);if(a===void 0)return e.serializedContext;let o=bindSessionInstrumentation({agentName:a.turnAgent.id,ctx:t,rootSessionId:e.session.rootSessionId??e.session.sessionId,sessionId:e.session.sessionId});if(o===void 0)return e.serializedContext;try{await contextStorage.run(t,()=>o.publishBackgroundTaskSettlements({acceptedAtMs:Date.now(),views:e.views}))}finally{await o.flush()}return serializeContext(t)}catch(t){return log.warn(`failed to settle background task instrumentation`,{error:t,sessionId:e.session.sessionId,taskIds:e.views.map(e=>e.taskId)}),e.serializedContext}}export{recordTaskInputRequestStep,recordTerminalTaskViewsStep};
@@ -1,17 +1,14 @@
1
- import type { TaskRunWorkflowInput } from "#execution/tasks/child/workflow.js";
2
- import { type TaskCommand, type TaskRunInboundPayload, type TaskView } from "#tasks/types.js";
1
+ import type { BackgroundWorkflowToolRunInput } from "#execution/tools/workflow/types.js";
2
+ import { type TaskCommand, type TaskRunInboundPayload } from "#tasks/types.js";
3
3
  /**
4
- * Node-side controls for durable task runs — the generic transport layer.
5
- * This module only speaks `TaskCommand`/`TaskView`; it knows nothing about
6
- * executor implementations, receipts, or the session index. Caller-specific
7
- * policy composes these primitives.
4
+ * Node-side admission and cancellation for session-owned workflow invocations.
8
5
  *
9
6
  * Every export must be called from inside a `"use step"` body; none of
10
7
  * these are steps themselves so dispatch and tool steps can compose them
11
8
  * inside one durable boundary.
12
9
  */
13
- /** Starts the durable run owning one task's lifecycle. */
14
- export declare function startTaskRun(input: TaskRunWorkflowInput): Promise<void>;
10
+ /** Starts a session-owned invocation through the common workflow entry. */
11
+ export declare function startTaskRun(input: BackgroundWorkflowToolRunInput): Promise<void>;
15
12
  /** Resolves the task run that won ownership of one replay-stable command token. */
16
13
  export declare function waitForTaskCommandOwner(input: {
17
14
  readonly taskInboxToken: string;
@@ -59,14 +56,3 @@ export declare function sendTaskInboundPayload(input: {
59
56
  readonly taskInboxToken: string;
60
57
  readonly payload: TaskRunInboundPayload;
61
58
  }): Promise<"delivered" | "unreachable">;
62
- /**
63
- * Reads the latest view a task run has published, or `undefined`
64
- * when the run has not committed its first view yet (the caller
65
- * already holds the creation receipt, which is `working`).
66
- *
67
- * Views are trusted without re-validation: the task run is the
68
- * single writer and every write passed the transition function.
69
- */
70
- export declare function readLatestTaskView(input: {
71
- readonly taskRunId: string;
72
- }): Promise<TaskView | undefined>;
@@ -1 +1 @@
1
- import{startWorkflowOnCurrentDeployment,taskRunWorkflowReference,waitForCommandHookOwner}from"#execution/workflow-runtime.js";import{getRun,resumeHook}from"#internal/workflow/runtime.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{TASK_VIEW_STREAM_NAMESPACE}from"#tasks/types.js";const TASK_VIEW_READ_TIMEOUT_MS=1e4;async function startTaskRun(e){await startWorkflowOnCurrentDeployment(taskRunWorkflowReference,[e])}async function waitForTaskCommandOwner(e){return await waitForCommandHookOwner(e.taskInboxToken)}async function sendTaskCommand(e){return await sendTaskCommandToOwner(e)===void 0?`unreachable`:`delivered`}async function sendTaskCommandToOwner(e){let t={command:e.command,kind:`task-command`},n=Math.max(1,e.retryUnreachable?.attempts??1);for(let r=0;;r+=1)try{let n=await resumeHook(e.taskInboxToken,t);if(typeof n!=`object`||!n||!(`runId`in n)||typeof n.runId!=`string`)throw Error(`Task inbox hook "${e.taskInboxToken}" returned no owner run id.`);return{runId:n.runId}}catch(t){if(!isTaskWorkflowTargetGone(t))throw t;if(r+1>=n)return;await new Promise(t=>setTimeout(t,e.retryUnreachable?.delayMs??250))}}async function sendTaskInboundPayload(e){try{return await resumeHook(e.taskInboxToken,e.payload),`delivered`}catch(e){if(!isTaskWorkflowTargetGone(e))throw e;return`unreachable`}}async function readLatestTaskView(e){let t=getRun(e.taskRunId).getReadable({namespace:TASK_VIEW_STREAM_NAMESPACE,startIndex:-1}),n=await t.getTailIndex(),r=t.getReader();try{return n<0?void 0:await readWithTimeout(r,`latest task view`)}finally{await r.cancel(`eve task view read complete`).catch(()=>{}),r.releaseLock()}}async function readWithTimeout(e,t){let n;try{let r=await Promise.race([e.read().then(e=>({kind:`read`,read:e})),new Promise(e=>{n=setTimeout(()=>e({kind:`timeout`}),TASK_VIEW_READ_TIMEOUT_MS)})]);if(r.kind===`timeout`)throw Error(`Timed out reading ${t} after ${TASK_VIEW_READ_TIMEOUT_MS}ms.`);return r.read.done?void 0:r.read.value}finally{n!==void 0&&clearTimeout(n)}}export{readLatestTaskView,sendTaskCommand,sendTaskCommandToOwner,sendTaskInboundPayload,startTaskRun,waitForTaskCommandOwner};
1
+ import{startWorkflowOnCurrentDeployment,waitForCommandHookOwner,workflowToolRunWorkflowReference}from"#execution/workflow-runtime.js";import{resumeHook}from"#internal/workflow/runtime.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import"#tasks/types.js";async function startTaskRun(e){await startWorkflowOnCurrentDeployment(workflowToolRunWorkflowReference,[e])}async function waitForTaskCommandOwner(e){return await waitForCommandHookOwner(e.taskInboxToken)}async function sendTaskCommand(e){return await sendTaskCommandToOwner(e)===void 0?`unreachable`:`delivered`}async function sendTaskCommandToOwner(e){let t={command:e.command,kind:`task-command`},n=Math.max(1,e.retryUnreachable?.attempts??1);for(let r=0;;r+=1)try{let n=await resumeHook(e.taskInboxToken,t);if(typeof n!=`object`||!n||!(`runId`in n)||typeof n.runId!=`string`)throw Error(`Task inbox hook "${e.taskInboxToken}" returned no owner run id.`);return{runId:n.runId}}catch(t){if(!isTaskWorkflowTargetGone(t))throw t;if(r+1>=n)return;await new Promise(t=>setTimeout(t,e.retryUnreachable?.delayMs??250))}}async function sendTaskInboundPayload(e){try{return await resumeHook(e.taskInboxToken,e.payload),`delivered`}catch(e){if(!isTaskWorkflowTargetGone(e))throw e;return`unreachable`}}export{sendTaskCommand,sendTaskCommandToOwner,sendTaskInboundPayload,startTaskRun,waitForTaskCommandOwner};
@@ -1,11 +1,12 @@
1
- import type { SessionTaskIndexEntry } from "#tasks/session-index.js";
1
+ import type { HarnessSession } from "#harness/types.js";
2
+ import type { BackgroundWorkflowToolRun } from "#harness/workflow-tool-runs.js";
2
3
  export interface TaskExecutorCancelContext {
3
- readonly entry: SessionTaskIndexEntry;
4
+ readonly entry: BackgroundWorkflowToolRun;
4
5
  readonly serializedContext?: Record<string, unknown>;
5
- readonly session?: unknown;
6
+ readonly session?: Pick<HarnessSession, "state">;
6
7
  }
7
8
  export type TaskExecutorCancel = (input: TaskExecutorCancelContext) => Promise<void>;
8
- /** Cancels task-owned work and reports whether the lifecycle run was forcibly stopped. */
9
+ /** Cancels task-owned work and waits for the invocation cleanup boundary. */
9
10
  export declare function cancelTaskOwnedWork(input: TaskExecutorCancelContext & {
10
11
  readonly cancelOwnedWork?: TaskExecutorCancel;
11
- }): Promise<boolean>;
12
+ }): Promise<void>;
@@ -1 +1 @@
1
- import{cancelRun,getRun,getWorld}from"#internal/workflow/runtime.js";import{cancelWorkflowToolRun}from"#execution/tools/workflow/cancel.js";import{readWorkflowToolExecutorAddress}from"#execution/tools/workflow/types.js";async function cancelTaskOwnedWork(e){let t=readWorkflowToolExecutorAddress(e.entry.executor);t!==void 0&&await cancelWorkflowToolRun(t,`Task ${e.entry.taskId} was cancelled.`),await e.cancelOwnedWork?.(e);let n=Date.now()+1e3;for(;Date.now()<n;){try{let t=await getRun(e.entry.taskRunId).status;if(t!==`pending`&&t!==`running`)return!1}catch{return!1}await new Promise(e=>setTimeout(e,50))}try{await cancelRun(await getWorld(),e.entry.taskRunId,{cancelReason:`Task ${e.entry.taskId} was cancelled.`})}catch{}return!0}export{cancelTaskOwnedWork};
1
+ import{settleWorkflowToolRunCancellation}from"#execution/tools/workflow/cancel.js";async function cancelTaskOwnedWork(e){await e.cancelOwnedWork?.(e),await settleWorkflowToolRunCancellation(e.entry.address.runId,`Task ${e.entry.task.taskId} was cancelled.`)}export{cancelTaskOwnedWork};
@@ -1 +1 @@
1
- import{sessionCommandHookToken}from"#execution/session-inbox/address.js";import{loadContext}from"#context/container.js";import{ActivityObserverKey}from"#context/keys.js";import{parseJsonValue}from"#shared/json.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{parseWorkflowToolInput}from"#execution/tools/workflow/background.js";import{getHarnessEmissionState}from"#harness/emission.js";import{deriveAgentOperationId}from"#subagents/handles/operation-id.js";import{getAgentHandleStore,writeHandles}from"#subagents/handles/store.js";import{findSessionTaskEntry,recordSessionTask}from"#tasks/session-index.js";import{runStep}from"#context/run-step.js";import{activeTurnId}from"#harness/active-turn-id.js";import{resolveWorkflowAgentMetadata}from"#execution/tools/subagent/metadata.js";import{AGENT_BUSY,AGENT_MISMATCH,AGENT_UNREACHABLE,formatAgentBusyMessage}from"#subagents/agent-handle-errors.js";import{sendTaskCommand,sendTaskInboundPayload,startTaskRun,waitForTaskCommandOwner}from"#execution/tasks/parent/run-parent.js";import{isAuthorizationSignal}from"#harness/authorization.js";import{isTurnCancellation}from"#harness/turn-cancellation.js";import{beginBackgroundTask,createTaskAgentDispatchContext,prepareBackgroundTask,rejectDelegatedDispatch}from"#execution/tasks/parent/delegate.js";import{applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{BackgroundToolExecutorKey}from"#harness/background-tools.js";import{deriveBackgroundTaskActivityObserver}from"#execution/activity-work.js";import{isAsyncIterable}from"#shared/async-iterable.js";import{projectToolStartLabel}from"#harness/action-presentation.js";import{createTaskMessage,isTaskMessage}from"#tools/task.js";import{projectSubagentTask}from"#execution/tasks/parent/subagent-task-projection.js";import{steerBackgroundAgent}from"#execution/tools/subagent/steer.js";const IN_PROCESS_WORKFLOW_EXECUTOR={data:{},kind:`workflow-task`};function runBackgroundStep(e,t,n){return runStep(e,t,n,[backgroundToolExecutionProvider])}const backgroundToolExecutionProvider={key:BackgroundToolExecutorKey,create(e,t){return{value:new BackgroundToolExecutionScope(t)}},async commit(e,t){return await requireExecutionScope(e).commit(t)},async rollback(e,t){await requireExecutionScope(e).rollback(t)},decorateStepResult(e,t){return requireExecutionScope(e).decorate(t)}};function readRetainedBackgroundToolResult(e){let t=e.get(BackgroundToolExecutorKey);return t instanceof BackgroundToolExecutionScope?t.retainedResult():void 0}var BackgroundToolExecutionScope=class{executions=new Map;records=[];agentHandleSession;agentHandlesChanged=!1;retained=!1;initialSession;constructor(e){this.initialSession=e,this.agentHandleSession=e}execute(e){let t=this.executions.get(e.options.toolCallId);if(t!==void 0)return t;if(!e.batch.calls.some(t=>t.callId===e.options.toolCallId))throw Error(`Background tool call "${e.options.toolCallId}" was not registered before execution.`);let n=this.start(e);return this.executions.set(e.options.toolCallId,n),n}async readAgentViews(){return(getAgentHandleStore(this.agentHandleSession.state)?.handles??[]).flatMap(e=>e.phase===`reserved`?[]:e.phase===`available`?[{availability:`available`,id:e.identity.id,name:e.identity.name}]:e.phase===`claimed`?[{availability:`busy`,id:e.identity.id,name:e.identity.name,taskId:e.ownerId,taskStatus:`working`}]:[])}hasPendingTasks(){return this.records.some(e=>e.settled&&e.task!==void 0)}async commit(e){let t=this.records.filter(e=>!e.settled);return t.length>0&&await this.compensate(t,Error(`Background tool execution did not delegate or complete its task.`)),this.apply(e)}decorate(e){let t=this.resultFields();return t===void 0?e:{...e,...t}}async rollback(e){let t=this.records.filter(e=>e.settled),n=this.records.filter(e=>!e.settled);if(n.length>0&&await this.compensate(n,e),t.length===0){this.retained=this.agentHandlesChanged&&isTurnCancellation(e);return}if(isTurnCancellation(e)){this.retained=!0;return}await this.compensate(t,e)}retainedResult(){return this.retained?this.resultFields():void 0}apply(e){let t=e;for(let e of this.records)e.settled&&e.task!==void 0&&(t=recordSessionTask(t,e.task));return this.agentHandlesChanged&&(t=writeHandles(t,getAgentHandleStore(this.agentHandleSession.state)?.handles??[])),t}resultFields(){let e=this.records.flatMap(e=>e.settled&&e.task!==void 0?[{callId:e.callId,taskInboxToken:e.task.taskInboxToken,taskId:e.task.taskId,taskRunId:e.task.taskRunId}]:[]);if(e.length!==0||this.agentHandlesChanged)return{backgroundTaskSession:this.apply(this.initialSession),backgroundTasks:e}}async start(e){let t={callId:e.options.toolCallId,settled:!1};this.records.push(t);let n=getHarnessEmissionState(this.initialSession.state),r=loadContext(),i=await this.startTask({ctx:r,emission:n,input:e,record:t});if(i.kind===`steered`)return t.settled=!0,i.receipt;let a=i.task;t.task=a;let o={binding:{taskId:a.taskId,token:a.taskInboxToken},postMessage:createTaskMessage,send(){throw Error(`task.send() was replaced by yielded task descriptors.`)},session:this.initialSession,task:a,taskId:a.taskId};if(e.definition.workflowId!==void 0)return t.settled=!0,{...i.receipt,status:`working`,taskId:a.taskId};let s=e.definition.execute(e.toolInput,e.options,o),c=isAsyncIterable(s)?await executeBackgroundIterable({callId:e.options.toolCallId,output:s,task:a}):await s;return isAuthorizationSignal(c)?c:(await deliverTaskCommand(a,{data:parseJsonValue(c),kind:`complete`}),t.settled=!0,{status:`working`,taskId:a.taskId})}async startTask(e){let t=e.input.definition.workflowId===void 0?void 0:{...e.input.definition,workflowId:e.input.definition.workflowId},n=t===void 0?void 0:parseWorkflowToolInput(e.input.toolInput,e.input.definition.name),r=activeTurnId(e.emission),i=t?.resultKind===`subagent`&&n!==void 0?projectSubagentTask({ctx:e.ctx,input:n,name:e.input.definition.name,nodeId:t.nodeId??e.input.definition.name,taskInput:{callId:e.input.options.toolCallId,parentSessionId:this.initialSession.sessionId,parentTurnId:r}}):void 0;if(i!==void 0&&i.identity===void 0&&!hasAgentHandle(this.agentHandleSession,i.metadata.agentId)){let{agentId:a,...o}=n;n=o,i=projectSubagentTask({ctx:e.ctx,input:o,name:e.input.definition.name,nodeId:t.nodeId??e.input.definition.name,taskInput:{callId:e.input.options.toolCallId,parentSessionId:this.initialSession.sessionId,parentTurnId:r}})}let a=i?.metadata??{kind:`tool`,name:e.input.definition.name},o=projectToolStartLabel(e.input.definition,e.input.toolInput),s=buildCallbackContext().session,c={activityObserver:deriveBackgroundTaskActivityObserver({activityObserver:e.ctx.get(ActivityObserverKey),callId:e.input.options.toolCallId,label:o,name:a.name,parentSessionId:this.initialSession.sessionId,parentTurnId:r,rootSessionId:this.initialSession.rootSessionId??this.initialSession.sessionId}),callId:e.input.options.toolCallId,dispatchContext:createTaskAgentDispatchContext(e.ctx,s.auth),metadata:a,parentSessionId:this.initialSession.sessionId,parentStepIndex:e.emission.stepIndex,parentTurnId:r,session:this.initialSession};if(t===void 0)return{kind:`started`,task:await beginBackgroundTask({activityObserver:c.activityObserver,callId:c.callId,dispatchContext:c.dispatchContext,metadata:c.metadata,parentSessionId:c.parentSessionId,parentStepIndex:c.parentStepIndex,parentTurnId:c.parentTurnId,session:c.session})};if(n===void 0)throw Error(`Background workflow tool "${e.input.definition.name}" has no input.`);let l={...prepareBackgroundTask(c),activityWorkIdentity:t.resultKind===`subagent`?c.activityObserver?.workIdentity:void 0};if(t.resultKind===`subagent`&&i!==void 0&&i.identity!==void 0){let t=i.identity;if(this.applyAgentHandleCommand({identity:t.identity,callId:c.callId,kind:`reserve`,operationId:t.operation.id,ownerId:l.taskId}).kind!==`ready`)throw Error(`Agent handle store rejected start operation "${t.operation.id}".`);e.record.reservation={agentId:t.identity.id,operationId:t.operation.id}}if(t.resultKind===`subagent`&&i!==void 0&&i.identity===void 0){let t=deriveAgentOperationId({callId:c.callId,parentSessionId:c.parentSessionId,parentTurnId:r}),a=this.applyAgentHandleCommand({agentId:i.metadata.agentId,callId:c.callId,expectedTarget:i.metadata.mode,invokedName:i.metadata.name,kind:`claim`,operationId:t,ownerId:l.taskId});if(a.kind===`busy`&&a.handle.phase===`claimed`){let t=a.handle,r=findSessionTaskEntry(this.agentHandleSession.state,t.ownerId);if(r?.metadata.kind===`subagent`&&r.metadata.agentId===t.identity.id&&r.metadata.name===t.identity.name&&r.terminalView===void 0)return await steerBackgroundAgent({ctx:e.ctx,handle:t,callId:c.callId,input:n,session:this.agentHandleSession}),{kind:`steered`,receipt:{agentId:t.identity.id,taskId:r.taskId,status:`working`}}}readClaimedHandle(a)?e.record.claim={operationId:t,taskId:l.taskId}:throwAgentClaimError(i.metadata.agentId,a)}await startTaskRun({activityObserver:c.activityObserver,initialView:{metadata:l.metadata,status:`working`,taskId:l.taskId},parentContinuationToken:sessionCommandHookToken(this.initialSession.sessionId),taskInboxToken:l.taskInboxToken,workflow:{agents:resolveWorkflowAgentMetadata(e.ctx),callId:c.callId,executeInput:t.executeInput?.(n),input:n,resultKind:t.resultKind,session:s,stepIndex:e.emission.stepIndex,toolName:e.input.definition.name,taskId:l.taskId,workflowId:t.workflowId}});let u=await waitForTaskCommandOwner({taskInboxToken:l.taskInboxToken}),d={...l,executor:IN_PROCESS_WORKFLOW_EXECUTOR,taskRunId:u.runId};return e.record.task=d,t.resultKind!==`subagent`||i===void 0?{kind:`started`,task:d}:{kind:`started`,receipt:i.receipt,task:d}}applyAgentHandleCommand(e){let t=applyTaskAgentHandleCommand(this.agentHandleSession,e);return t.session!==this.agentHandleSession&&(this.agentHandleSession=t.session,this.agentHandlesChanged=!0),t.result}async compensate(e,t){let n=[];for(let r of e.toReversed()){if(r.task!==void 0)try{await rejectDelegatedDispatch({error:{code:`PARENT_STEP_FAILED`,message:t instanceof Error?t.message:String(t)},task:r.task})}catch(e){n.push(e)}r.claim!==void 0&&this.applyAgentHandleCommand({kind:`release-owner`,ownerId:r.claim.taskId}),r.reservation!==void 0&&r.task!==void 0&&this.applyAgentHandleCommand({agentId:r.reservation.agentId,kind:`remove`,ownerId:r.task.taskId})}if(n.length>0)throw AggregateError([t,...n],`Background tool execution failed and its tasks could not all be rejected.`,{cause:t})}};async function executeBackgroundIterable(e){let t=e.output[Symbol.asyncIterator](),n=0,r=await t.next();for(;!r.done;){let i=isTaskMessage(r.value)?{callId:e.callId,kind:`task-message`,message:r.value.message,messageEpoch:e.task.taskId,messageIndex:n++}:{callId:e.callId,kind:`task-update`,message:typeof r.value==`string`?r.value:JSON.stringify(r.value),updateEpoch:e.task.taskId,updateIndex:n++};if(await sendTaskInboundPayload({payload:i,taskInboxToken:e.task.taskInboxToken})!==`delivered`)throw Error(`Task run "${e.task.taskId}" did not accept "${i.kind}".`);r=await t.next()}return r.value??null}function hasAgentHandle(e,t){return getAgentHandleStore(e.state)?.handles.some(e=>e.identity.id===t)===!0}function requireExecutionScope(e){if(!(e instanceof BackgroundToolExecutionScope))throw Error(`The background tool executor is not owned by the task runtime.`);return e}async function deliverTaskCommand(e,t){if(await sendTaskCommand({command:t,taskInboxToken:e.taskInboxToken})!==`delivered`)throw Error(`Task run "${e.taskId}" did not accept "${t.kind}".`)}function readClaimedHandle(e){return e.kind===`ready`&&e.handle?.phase===`claimed`}function throwAgentClaimError(e,t){throw t.kind===`mismatch`?Error(JSON.stringify({code:AGENT_MISMATCH,message:`Agent "${e}" no longer matches this subagent definition. Start a new agent instead.`})):t.kind===`busy`?Error(JSON.stringify({code:AGENT_BUSY,message:formatAgentBusyMessage({agentId:e,agentName:t.handle.identity.name,ownerId:`ownerId`in t.handle?t.handle.ownerId:void 0})})):Error(JSON.stringify({code:AGENT_UNREACHABLE,message:`Agent with id "${e}" is no longer reachable.`}))}export{backgroundToolExecutionProvider,readRetainedBackgroundToolResult,runBackgroundStep};
1
+ import{sessionCommandHookToken}from"#execution/session-inbox/address.js";import{loadContext}from"#context/container.js";import{ActivityObserverKey}from"#context/keys.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{parseWorkflowToolInput}from"#execution/tools/workflow/background.js";import{getHarnessEmissionState}from"#harness/emission.js";import{deriveAgentOperationId}from"#subagents/handles/operation-id.js";import{findBackgroundWorkflowToolRun,registerWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{getAgentHandleStore,writeHandles}from"#subagents/handles/store.js";import{runStep}from"#context/run-step.js";import{activeTurnId}from"#harness/active-turn-id.js";import{resolveWorkflowAgentMetadata}from"#execution/tools/subagent/metadata.js";import{AGENT_BUSY,AGENT_MISMATCH,AGENT_UNREACHABLE,formatAgentBusyMessage}from"#subagents/agent-handle-errors.js";import{startTaskRun,waitForTaskCommandOwner}from"#execution/tasks/parent/run-parent.js";import{isTurnCancellation}from"#harness/turn-cancellation.js";import{createTaskAgentDispatchContext,prepareBackgroundTask,rejectDelegatedDispatch}from"#execution/tasks/parent/delegate.js";import{applyTaskAgentHandleCommand}from"#subagents/handles/transitions.js";import{BackgroundToolExecutorKey}from"#harness/background-tools.js";import{deriveBackgroundTaskActivityObserver}from"#execution/activity-work.js";import{projectToolStartLabel}from"#harness/action-presentation.js";import{projectSubagentTask}from"#execution/tasks/parent/subagent-task-projection.js";import{steerBackgroundAgent}from"#execution/tools/subagent/steer.js";function runBackgroundStep(e,t,n){return runStep(e,t,n,[backgroundToolExecutionProvider])}const backgroundToolExecutionProvider={key:BackgroundToolExecutorKey,create(e,t){return{value:new BackgroundToolExecutionScope(t)}},async commit(e,t){return await requireExecutionScope(e).commit(t)},async rollback(e,t){await requireExecutionScope(e).rollback(t)},decorateStepResult(e,t){return requireExecutionScope(e).decorate(t)}};function readRetainedBackgroundToolResult(e){let t=e.get(BackgroundToolExecutorKey);return t instanceof BackgroundToolExecutionScope?t.retainedResult():void 0}var BackgroundToolExecutionScope=class{executions=new Map;records=[];agentHandleSession;agentHandlesChanged=!1;retained=!1;initialSession;constructor(e){this.initialSession=e,this.agentHandleSession=e}execute(e){let t=this.executions.get(e.options.toolCallId);if(t!==void 0)return t;if(!e.batch.calls.some(t=>t.callId===e.options.toolCallId))throw Error(`Background tool call "${e.options.toolCallId}" was not registered before execution.`);let n=this.start(e);return this.executions.set(e.options.toolCallId,n),n}async readAgentViews(){return(getAgentHandleStore(this.agentHandleSession.state)?.handles??[]).flatMap(e=>e.phase===`reserved`?[]:e.phase===`available`?[{availability:`available`,id:e.identity.id,name:e.identity.name}]:e.phase===`claimed`?[{availability:`busy`,id:e.identity.id,name:e.identity.name,taskId:e.ownerId,taskStatus:`working`}]:[])}hasPendingTasks(){return this.records.some(e=>e.settled&&e.task!==void 0)}async commit(e){let t=this.records.filter(e=>!e.settled);return t.length>0&&await this.compensate(t,Error(`Background tool execution did not delegate or complete its task.`)),this.apply(e)}decorate(e){let t=this.resultFields();return t===void 0?e:{...e,...t}}async rollback(e){let t=this.records.filter(e=>e.settled),n=this.records.filter(e=>!e.settled);if(n.length>0&&await this.compensate(n,e),t.length===0){this.retained=this.agentHandlesChanged&&isTurnCancellation(e);return}if(isTurnCancellation(e)){this.retained=!0;return}await this.compensate(t,e)}retainedResult(){return this.retained?this.resultFields():void 0}apply(e){let t=e;for(let e of this.records)e.settled&&e.task!==void 0&&(t=registerWorkflowToolRun(t,e.task));return this.agentHandlesChanged&&(t=writeHandles(t,getAgentHandleStore(this.agentHandleSession.state)?.handles??[])),t}resultFields(){let e=this.records.flatMap(e=>e.settled&&e.task!==void 0?[{callId:e.callId,taskInboxToken:e.task.address.hookToken,taskId:e.task.task.taskId,taskRunId:e.task.address.runId}]:[]);if(e.length!==0||this.agentHandlesChanged)return{backgroundTaskSession:this.apply(this.initialSession),backgroundTasks:e}}async start(e){let t={callId:e.options.toolCallId,settled:!1};this.records.push(t);let n=getHarnessEmissionState(this.initialSession.state),r=loadContext(),i=await this.startTask({ctx:r,emission:n,input:e,record:t});if(i.kind===`steered`)return t.settled=!0,i.receipt;let a=i.task;return t.task=a,t.settled=!0,{...i.receipt,status:`working`,taskId:a.task.taskId}}async startTask(e){let t=e.input.definition,n=parseWorkflowToolInput(e.input.toolInput,e.input.definition.name),r=activeTurnId(e.emission),i=t.nodeId===void 0?void 0:projectSubagentTask({ctx:e.ctx,input:n,name:e.input.definition.name,nodeId:t.nodeId??e.input.definition.name,taskInput:{callId:e.input.options.toolCallId,parentSessionId:this.initialSession.sessionId,parentTurnId:r}});if(i!==void 0&&i.identity===void 0&&!hasAgentHandle(this.agentHandleSession,i.metadata.agentId)){let{agentId:a,...o}=n;n=o,i=projectSubagentTask({ctx:e.ctx,input:o,name:e.input.definition.name,nodeId:t.nodeId??e.input.definition.name,taskInput:{callId:e.input.options.toolCallId,parentSessionId:this.initialSession.sessionId,parentTurnId:r}})}let a=i?.metadata??{kind:`tool`,name:e.input.definition.name},o=projectToolStartLabel(e.input.definition,e.input.toolInput),s=buildCallbackContext().session,c={activityObserver:deriveBackgroundTaskActivityObserver({activityObserver:e.ctx.get(ActivityObserverKey),callId:e.input.options.toolCallId,label:o,name:a.name,parentSessionId:this.initialSession.sessionId,parentTurnId:r,rootSessionId:this.initialSession.rootSessionId??this.initialSession.sessionId}),callId:e.input.options.toolCallId,dispatchContext:createTaskAgentDispatchContext(e.ctx,s.auth),metadata:a,parentSessionId:this.initialSession.sessionId,parentStepIndex:e.emission.stepIndex,parentTurnId:r,session:this.initialSession},l=prepareBackgroundTask(c),u={...l,task:{...l.task,activityWorkIdentity:c.activityObserver?.workIdentity}};if(t.nodeId!==void 0&&i!==void 0&&i.identity!==void 0){let t=i.identity;if(this.applyAgentHandleCommand({identity:t.identity,callId:c.callId,kind:`reserve`,operationId:t.operation.id,ownerId:u.task.taskId}).kind!==`ready`)throw Error(`Agent handle store rejected start operation "${t.operation.id}".`);e.record.reservation={agentId:t.identity.id,operationId:t.operation.id}}if(t.nodeId!==void 0&&i!==void 0&&i.identity===void 0){let t=deriveAgentOperationId({callId:c.callId,parentSessionId:c.parentSessionId,parentTurnId:r}),a=this.applyAgentHandleCommand({agentId:i.metadata.agentId,callId:c.callId,expectedTarget:i.metadata.mode,invokedName:i.metadata.name,kind:`claim`,operationId:t,ownerId:u.task.taskId});if(a.kind===`busy`&&a.handle.phase===`claimed`){let t=a.handle,r=findBackgroundWorkflowToolRun(this.agentHandleSession.state,t.ownerId);if(r?.task.metadata.kind===`subagent`&&r.task.metadata.agentId===t.identity.id&&r.task.metadata.name===t.identity.name&&r.task.outcome===void 0)return await steerBackgroundAgent({ctx:e.ctx,handle:t,callId:c.callId,input:n,session:this.agentHandleSession}),{kind:`steered`,receipt:{agentId:t.identity.id,taskId:r.task.taskId,status:`working`}}}readClaimedHandle(a)?e.record.claim={operationId:t,taskId:u.task.taskId}:throwAgentClaimError(i.metadata.agentId,a)}await startTaskRun({activityObserver:c.activityObserver,initialView:{metadata:u.task.metadata,status:`working`,taskId:u.task.taskId},parentContinuationToken:sessionCommandHookToken(this.initialSession.sessionId),taskInboxToken:u.address.hookToken,workflow:{agents:resolveWorkflowAgentMetadata(e.ctx),callId:c.callId,executeInput:t.executeInput?.(n),input:n,session:s,stepIndex:e.emission.stepIndex,toolName:e.input.definition.name,workflowId:t.workflowId}});let d=await waitForTaskCommandOwner({taskInboxToken:u.address.hookToken}),f={...u,address:{...u.address,runId:d.runId}};return e.record.task=f,t.nodeId===void 0||i===void 0?{kind:`started`,task:f}:{kind:`started`,receipt:i.receipt,task:f}}applyAgentHandleCommand(e){let t=applyTaskAgentHandleCommand(this.agentHandleSession,e);return t.session!==this.agentHandleSession&&(this.agentHandleSession=t.session,this.agentHandlesChanged=!0),t.result}async compensate(e,t){let n=[];for(let r of e.toReversed()){if(r.task!==void 0)try{await rejectDelegatedDispatch({error:{code:`PARENT_STEP_FAILED`,message:t instanceof Error?t.message:String(t)},task:r.task})}catch(e){n.push(e)}r.claim!==void 0&&this.applyAgentHandleCommand({kind:`release-owner`,ownerId:r.claim.taskId}),r.reservation!==void 0&&r.task!==void 0&&this.applyAgentHandleCommand({agentId:r.reservation.agentId,kind:`remove`,ownerId:r.task.task.taskId})}if(n.length>0)throw AggregateError([t,...n],`Background tool execution failed and its tasks could not all be rejected.`,{cause:t})}};function hasAgentHandle(e,t){return getAgentHandleStore(e.state)?.handles.some(e=>e.identity.id===t)===!0}function requireExecutionScope(e){if(!(e instanceof BackgroundToolExecutionScope))throw Error(`The background tool executor is not owned by the task runtime.`);return e}function readClaimedHandle(e){return e.kind===`ready`&&e.handle?.phase===`claimed`}function throwAgentClaimError(e,t){throw t.kind===`mismatch`?Error(JSON.stringify({code:AGENT_MISMATCH,message:`Agent "${e}" no longer matches this subagent definition. Start a new agent instead.`})):t.kind===`busy`?Error(JSON.stringify({code:AGENT_BUSY,message:formatAgentBusyMessage({agentId:e,agentName:t.handle.identity.name,ownerId:`ownerId`in t.handle?t.handle.ownerId:void 0})})):Error(JSON.stringify({code:AGENT_UNREACHABLE,message:`Agent with id "${e}" is no longer reachable.`}))}export{backgroundToolExecutionProvider,readRetainedBackgroundToolResult,runBackgroundStep};
@@ -1,18 +1,12 @@
1
1
  import type { SessionAuthContext } from "#channel/types.js";
2
2
  import type { ApprovalResponseAuth } from "#approval/definition.js";
3
3
  import type { ToolContext, ToolExecuteOptions } from "#tools/definition.js";
4
- import type { TaskExec } from "#tools/task.js";
5
4
  type ToolExecuteWithAuthInput<TInput> = {
6
5
  readonly scope: string;
7
- } & ({
8
- readonly execution: "background";
9
- readonly execute: (toolInput: TInput, ctx: ToolContext, task: TaskExec) => unknown;
10
- } | {
11
- readonly execution?: never;
12
- readonly execute: (toolInput: TInput, ctx: ToolContext, task?: TaskExec) => unknown;
13
- });
6
+ readonly execute: (toolInput: TInput, ctx: ToolContext) => unknown;
7
+ };
14
8
  /** Supplies the shared auth capability to one authored tool execution. */
15
- export declare function createToolExecuteWithAuth<TInput>(input: ToolExecuteWithAuthInput<TInput>): (toolInput: TInput, options: ToolExecuteOptions, task?: TaskExec) => AsyncIterable<unknown> | Promise<unknown>;
9
+ export declare function createToolExecuteWithAuth<TInput>(input: ToolExecuteWithAuthInput<TInput>): (toolInput: TInput, options: ToolExecuteOptions) => AsyncIterable<unknown> | Promise<unknown>;
16
10
  /** Binds the same capability to the person responding to an approval. */
17
11
  export declare function buildApprovalResponseAuth(input: {
18
12
  readonly responder: SessionAuthContext;
@@ -1 +1 @@
1
- import{buildBaseToolContext}from"#context/build-base-tool-context.js";import{createAuthorizationContext}from"#runtime/authorization-context.js";import{handleAuthorizationError}from"#runtime/connections/scoped-authorization.js";function createToolExecuteWithAuth(e){return(t,n,r)=>{let i=createAuthorizationContext({scope:e.scope}),a={...buildBaseToolContext({options:n,toolName:e.scope}),getToken:i.getToken,requireAuth:i.requireAuth};return i.run(()=>{if(e.execution===`background`){if(r===void 0)throw Error(`Background tool execution requires a task runtime.`);return e.execute(t,a,r)}return e.execute(t,a,r)})}}function buildApprovalResponseAuth(e){let t=createAuthorizationContext({scope:e.scope,boundResponder:e.responder});return{getToken:(n,r)=>t.getToken(n,namespaceApprovalAuthOptions(e.scope,r)),requireAuth:(n,r)=>t.requireAuth(n,namespaceApprovalAuthOptions(e.scope,r))}}function namespaceApprovalAuthOptions(e,t){return t?.authKey===void 0?t:{...t,authKey:`${e}:${t.authKey}`}}async function handleApprovalResponsePolicyError(e){return await handleAuthorizationError(e)}export{buildApprovalResponseAuth,createToolExecuteWithAuth,handleApprovalResponsePolicyError};
1
+ import{buildBaseToolContext}from"#context/build-base-tool-context.js";import{createAuthorizationContext}from"#runtime/authorization-context.js";import{handleAuthorizationError}from"#runtime/connections/scoped-authorization.js";function createToolExecuteWithAuth(e){return(t,n)=>{let r=createAuthorizationContext({scope:e.scope}),i={...buildBaseToolContext({options:n,toolName:e.scope}),getToken:r.getToken,requireAuth:r.requireAuth};return r.run(()=>e.execute(t,i))}}function buildApprovalResponseAuth(e){let t=createAuthorizationContext({scope:e.scope,boundResponder:e.responder});return{getToken:(n,r)=>t.getToken(n,namespaceApprovalAuthOptions(e.scope,r)),requireAuth:(n,r)=>t.requireAuth(n,namespaceApprovalAuthOptions(e.scope,r))}}function namespaceApprovalAuthOptions(e,t){return t?.authKey===void 0?t:{...t,authKey:`${e}:${t.authKey}`}}async function handleApprovalResponsePolicyError(e){return await handleAuthorizationError(e)}export{buildApprovalResponseAuth,createToolExecuteWithAuth,handleApprovalResponsePolicyError};
@@ -1 +1 @@
1
- import{evaluate}from"#ai/evaluate.js";async function executeAgentRouterTool(e,t){"use workflow";let n=await chooseTarget(e.message,descriptions(t),t.abortSignal);return t.agent(n,e.outputSchema===void 0?{message:e.message}:{message:e.message,outputSchema:e.outputSchema})}async function chooseTarget(e,t,n){"use step";let r=Object.keys(t);if(r.length===0)throw Error(`agentRouter requires at least one available agent with a description.`);return r.length===1?r[0]:(await evaluate({abortSignal:n,state:{message:e},questions:{route:{type:`choice`,instructions:`Which subagent should handle this task?`,criteria:t}}})).answers.route.choice}function descriptions(e){return Object.fromEntries(Object.entries(e.agents).flatMap(([e,t])=>{let n=t.description.trim();return n.length===0?[]:[[e,n]]}))}executeAgentRouterTool.workflowId=`workflow//eve@0.61.1//executeAgentRouterTool`;export{executeAgentRouterTool};
1
+ import{evaluate}from"#ai/evaluate.js";async function executeAgentRouterTool(e,t){"use workflow";let n=await chooseTarget(e.message,descriptions(t),t.abortSignal);return t.agent(n,e.outputSchema===void 0?{message:e.message}:{message:e.message,outputSchema:e.outputSchema})}async function chooseTarget(e,t,n){"use step";let r=Object.keys(t);if(r.length===0)throw Error(`agentRouter requires at least one available agent with a description.`);return r.length===1?r[0]:(await evaluate({abortSignal:n,state:{message:e},questions:{route:{type:`choice`,instructions:`Which subagent should handle this task?`,criteria:t}}})).answers.route.choice}function descriptions(e){return Object.fromEntries(Object.entries(e.agents).flatMap(([e,t])=>{let n=t.description.trim();return n.length===0?[]:[[e,n]]}))}executeAgentRouterTool.workflowId=`workflow//eve@0.63.0//executeAgentRouterTool`;export{executeAgentRouterTool};
@@ -1 +1 @@
1
- import{sleep}from"#compiled/@workflow/core/index.js";async function executeSleepTool(e){"use workflow";return await sleep(Math.ceil(e.seconds*1e3)),{waitedSeconds:e.seconds}}executeSleepTool.workflowId=`workflow//eve@0.61.1//executeSleepTool`;export{executeSleepTool};
1
+ import{sleep}from"#compiled/@workflow/core/index.js";async function executeSleepTool(e){"use workflow";return await sleep(Math.ceil(e.seconds*1e3)),{waitedSeconds:e.seconds}}executeSleepTool.workflowId=`workflow//eve@0.63.0//executeSleepTool`;export{executeSleepTool};
@@ -1 +1 @@
1
- import{readDurableSession}from"#execution/durable-session-store.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{findSessionTaskEntry}from"#tasks/session-index.js";import{readLatestTaskView}from"#execution/tasks/parent/run-parent.js";import{isTerminalTaskStatus}from"#tasks/types.js";async function acceptTaskAuthorizationEventStep(e){"use step";let{hookPayload:t,taskId:n}=e.delivery,r=readDurableSession(e.sessionState),i=findSessionTaskEntry(r.state,n);if(i===void 0)return!1;if(i.metadata.kind===`tool`&&i.taskRunId===t.childSessionId&&i.metadata.name===t.subagentName&&i.createdByTurnId===t.event.data.turnId){let e=await readLatestTaskView({taskRunId:i.taskRunId});return e!==void 0&&(t.event.type===`authorization.completed`||!isTerminalTaskStatus(e.status))}let a=getAgentHandleStore(r.state)?.handles??[],o=a.find(e=>e.phase===`claimed`&&e.ownerId===n&&e.identity.name===t.subagentName&&e.address.sessionId===t.childSessionId),s=a.filter(e=>e.phase===`reserved`&&e.ownerId===n&&e.identity.name===t.subagentName);if(o===void 0&&s.length!==1)return!1;let c=await readLatestTaskView({taskRunId:i.taskRunId});return c!==void 0&&!isTerminalTaskStatus(c.status)}export{acceptTaskAuthorizationEventStep};
1
+ import{readDurableSession}from"#execution/durable-session-store.js";import{findBackgroundWorkflowToolRun,readWorkflowTaskView}from"#harness/workflow-tool-runs.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import"#tasks/types.js";async function acceptTaskAuthorizationEventStep(e){"use step";let{hookPayload:t,taskId:n}=e.delivery,r=readDurableSession(e.sessionState),i=findBackgroundWorkflowToolRun(r.state,n);if(i===void 0)return!1;if(i.task.metadata.kind===`tool`&&i.address.runId===t.childSessionId&&i.task.metadata.name===t.subagentName&&i.origin.turnId===t.event.data.turnId){let e=readWorkflowTaskView(i.task);return t.event.type===`authorization.completed`||e===void 0}let a=getAgentHandleStore(r.state)?.handles??[],o=a.find(e=>e.phase===`claimed`&&e.ownerId===n&&e.identity.name===t.subagentName&&e.address.sessionId===t.childSessionId),s=a.filter(e=>e.phase===`reserved`&&e.ownerId===n&&e.identity.name===t.subagentName);return o===void 0&&s.length!==1?!1:readWorkflowTaskView(i.task)===void 0}export{acceptTaskAuthorizationEventStep};
@@ -0,0 +1,11 @@
1
+ import { type DurableSessionState } from "#execution/durable-session-store.js";
2
+ import type { UnstampedMessageStreamEvent } from "#protocol/message.js";
3
+ /** Emits an agent invocation event on the parent stream. */
4
+ export declare function emitSubagentEventStep(input: {
5
+ readonly event: UnstampedMessageStreamEvent;
6
+ readonly sessionWritable: WritableStream<Uint8Array>;
7
+ readonly serializedContext: Record<string, unknown>;
8
+ readonly sessionState: DurableSessionState;
9
+ }): Promise<{
10
+ readonly serializedContext: Record<string, unknown>;
11
+ }>;
@@ -0,0 +1 @@
1
+ import{contextStorage}from"#context/container.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{readDurableSession}from"#execution/durable-session-store.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{createSessionEventSink}from"#execution/session/event-sink.js";async function emitSubagentEventStep(e){"use step";let t=await deserializeContext(e.serializedContext),n=t.require(BundleKey),r=readDurableSession(e.sessionState),i=createSessionEventSink({abortSignal:void 0,adapter:t.require(ChannelKey),bundle:n,ctx:t,effectiveAgent:resolveEffectiveAgentRuntime(n,t),instrumentation:void 0,isFirstTurn:e.sessionState.emissionState.sequence===0,sessionWritable:e.sessionWritable,sessionId:r.sessionId});try{await contextStorage.run(t,()=>i.handleEvent(e.event,r.history))}finally{i.release()}return{serializedContext:serializeContext(t)}}export{emitSubagentEventStep};
@@ -1,5 +1,5 @@
1
1
  import type { RuntimeActionResultHookPayload, SubagentAuthorizationEventHookPayload, SubagentInputRequestHookPayload } from "#channel/types.js";
2
- import type { RuntimeSubagentChildResult, RuntimeSubagentResult } from "#shared/action-types.js";
2
+ import type { RuntimeSubagentChildResult } from "#shared/action-types.js";
3
3
  import type { JsonValue } from "#shared/json.js";
4
4
  import type { JsonObject } from "#shared/json.js";
5
5
  import type { AgentInput } from "#tools/workflow-definition.js";
@@ -29,16 +29,14 @@ export interface AgentSettlementRequest {
29
29
  readonly result: RuntimeSubagentChildResult;
30
30
  }
31
31
  export type AgentInvocationEvent = SubagentAuthorizationEventHookPayload | SubagentInputRequestHookPayload;
32
- export type AgentInvocationReply = AgentInvocationEvent | RuntimeActionResultHookPayload;
32
+ export type AgentInvocationReply = AgentInvocationEvent | RuntimeActionResultHookPayload | {
33
+ readonly kind: "agent-settled";
34
+ readonly callId: string;
35
+ };
33
36
  /** Invokes an agent from a workflow tool. */
34
37
  export declare function agent(ctx: ToolContext, target: string, input: AgentInput): Promise<JsonValue>;
35
38
  /** Invokes an agent with a framework-selected replay-stable invocation id. */
36
- export declare function invokeAgent(ctx: ToolContext, input: InternalAgentInput, options: {
37
- readonly invocationId: string;
38
- readonly returnResult: true;
39
- }): Promise<JsonValue | RuntimeSubagentResult>;
40
39
  export declare function invokeAgent(ctx: ToolContext, input: InternalAgentInput, options?: {
41
40
  readonly invocationId?: string;
42
- readonly returnResult?: false;
43
41
  }): Promise<JsonValue>;
44
42
  export declare function validateAgentInput(input: InternalAgentInput): void;
@@ -1 +1 @@
1
- import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";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{readWorkflowToolRunOwner,readWorkflowToolRunRef}from"#execution/tools/workflow/ask.js";async function agent(e,t,n){return readWorkflowToolRunRef(e),validateAgentInput({...n,target:t}),await invokeAgent(e,{agentId:n.agentId,message:n.message,outputSchema:n.outputSchema,target:t})}async function invokeAgent(e,t,n={}){validateAgentInput(t);let r=readWorkflowToolRunRef(e),i=readWorkflowToolRunOwner(e),a=createHook(),o=n.invocationId??`${e.callId}:${a.token}`;try{await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{input:t,invocationId:o,kind:`agent-invoke`}});let s=a[Symbol.asyncIterator]();for(;;){let t=await nextAgentReply(s,e.abortSignal);if(t.done)break;let c=t.value;if(c.kind===`runtime-action-result`){let e=c.results.find(e=>e.kind===`subagent-result`&&e.callId===o);if(e!==void 0){if(e.origin===`child`&&await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{kind:`agent-settled`,result:e}}),n.returnResult===!0&&r.execution===`blocking`)return e;if(e.isError===!0)throw e.output;return e.output}continue}if(c.kind===`subagent-input-request`){await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:c.childSessionInbox?.sessionId===c.childSessionId?sessionInboxHookToken(sessionCommandHookToken(c.childSessionInbox.sessionId)):c.childContinuationToken,request:{kind:`input-batch`,requests:c.event.requests},requestCoordinates:{sequence:c.event.sequence,stepIndex:c.event.stepIndex,turnId:c.event.turnId}});continue}await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{event:c,kind:`authorization-request`}})}}finally{try{await disposeHook(a)}catch{}}throw Error(`Agent "${t.target}" closed without a result.`)}async function nextAgentReply(e,t){if(t===void 0)return await e.next();if(t.aborted)throw t.reason;let n,r=new Promise((e,t)=>{n=t}),abort=()=>n?.(t.reason);t.addEventListener(`abort`,abort,{once:!0});try{return await Promise.race([e.next(),r])}finally{t.removeEventListener(`abort`,abort)}}function validateAgentInput(e){if(typeof e.target!=`string`||e.target.trim()===``)throw TypeError(`agent() requires a non-empty agent name as its first argument.`);if(typeof e.message!=`string`||e.message.trim()===``)throw TypeError("agent() requires a non-empty `message`.");if(e.outputSchema!==void 0&&(typeof e.outputSchema!=`object`||e.outputSchema===null||Array.isArray(e.outputSchema)))throw TypeError("agent() `outputSchema` must be a JSON Schema object.")}export{agent,invokeAgent,validateAgentInput};
1
+ import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";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{readWorkflowToolRunOwner,readWorkflowToolRunRef}from"#execution/tools/workflow/ask.js";async function agent(e,t,n){return readWorkflowToolRunRef(e),validateAgentInput({...n,target:t}),await invokeAgent(e,{agentId:n.agentId,message:n.message,outputSchema:n.outputSchema,target:t})}async function invokeAgent(e,t,n={}){validateAgentInput(t);let r=readWorkflowToolRunRef(e),i=readWorkflowToolRunOwner(e),a=createHook(),o=n.invocationId??`${e.callId}:${a.token}`;try{await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{input:t,invocationId:o,kind:`agent-invoke`}});let n=a[Symbol.asyncIterator]();for(;;){let s=await nextAgentReply(n,e.abortSignal);if(s.done)break;let c=s.value;if(c.kind===`runtime-action-result`){let s=c.results.find(e=>e.kind===`subagent-result`&&e.callId===o);if(s!==void 0){if(s.origin===`child`)for(await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{kind:`agent-settled`,result:s}});;){let r=await nextAgentReply(n,e.abortSignal);if(r.done)throw Error(`Agent "${t.target}" closed before settlement.`);if(r.value.kind===`agent-settled`&&r.value.callId===o)break}if(s.isError===!0)throw s.output;return s.output}continue}if(c.kind!==`agent-settled`){if(c.kind===`subagent-input-request`){await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:c.childSessionInbox?.sessionId===c.childSessionId?sessionInboxHookToken(sessionCommandHookToken(c.childSessionInbox.sessionId)):c.childContinuationToken,request:{kind:`input-batch`,requests:c.event.requests},requestCoordinates:{sequence:c.event.sequence,stepIndex:c.event.stepIndex,turnId:c.event.turnId}});continue}await resumeHookStep(i.inbox,{kind:`request`,from:r,replyTo:a.token,request:{event:c,kind:`authorization-request`}})}}}finally{try{await disposeHook(a)}catch{}}throw Error(`Agent "${t.target}" closed without a result.`)}async function nextAgentReply(e,t){if(t===void 0)return await e.next();if(t.aborted)throw t.reason;let n,r=new Promise((e,t)=>{n=t}),abort=()=>n?.(t.reason);t.addEventListener(`abort`,abort,{once:!0});try{return await Promise.race([e.next(),r])}finally{t.removeEventListener(`abort`,abort)}}function validateAgentInput(e){if(typeof e.target!=`string`||e.target.trim()===``)throw TypeError(`agent() requires a non-empty agent name as its first argument.`);if(typeof e.message!=`string`||e.message.trim()===``)throw TypeError("agent() requires a non-empty `message`.");if(e.outputSchema!==void 0&&(typeof e.outputSchema!=`object`||e.outputSchema===null||Array.isArray(e.outputSchema)))throw TypeError("agent() `outputSchema` must be a JSON Schema object.")}export{agent,invokeAgent,validateAgentInput};
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{getHarnessEmissionState}from"#harness/emission.js";import{deserializeContext}from"#context/serialize.js";import{readDurableSession}from"#execution/durable-session-store.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{getDynamicSubagentSelection}from"#context/dynamic-subagent-lifecycle.js";import{findSessionTaskEntry}from"#tasks/session-index.js";import{activeTurnId}from"#harness/active-turn-id.js";import{prepareActionDispatch}from"#execution/coordination-dispatch-shared.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{AGENT_TOOL_DESCRIPTION,AGENT_TOOL_NAME}from"#tools/framework/agent-contract.js";import{isAgentHandleAction}from"#subagents/handle-dispatch.js";import{createRecursiveAgentRootOnlyResult,createUnavailableDynamicSubagentResult,getSubagentName}from"#execution/dispatch-action-failures.js";const log=createLogger(`execution.agent-invocation`);async function prepareOwnerAgentInvocation(e){let t=readDurableSession(e.sessionState),n=await deserializeContext(e.serializedContext),r=getHarnessEmissionState(t.state),i=e.taskId===void 0?void 0:findSessionTaskEntry(t.state,e.taskId),a=resolveAgentInvocationAction({ctx:n,input:e.invocation,invocationId:e.invocationId});return await prepareActionDispatch({batch:{requests:[a],event:{...r,stepIndex:i?.createdByStepIndex??r.stepIndex,turnId:i?.createdByTurnId??activeTurnId(r)}},ctx:n,durableSession:t,fanoutSize:1,plan:({bundle:t,ctx:n,session:r})=>[planAgentDispatch({action:a,bundle:t,ctx:n,knownAgentIds:e.knownAgentIds,session:r})],planSharesSandbox:({bundle:e,plan:t})=>ownerPlanSharesSandbox({bundle:e,plan:t}),serializedContext:e.serializedContext})}function planAgentDispatch(e){let t=new Set(e.knownAgentIds??(getAgentHandleStore(e.session.state)?.handles??[]).map(e=>e.identity.id)),n=e.action.input.agentId,r=typeof n==`string`&&n.trim()!==``?n:void 0;if(r!==void 0&&isAgentHandleAction(e.action)){if(t.has(r)){let t=e.bundle.subagentRegistry.dynamicNodeIds?.has(e.action.nodeId)===!0?getDynamicSubagentSelection(e.ctx,e.action.nodeId):void 0;return{action:e.action,agentId:r,dynamicRemoteAgent:e.action.kind===`remote-agent-call`&&t?.kind===`remote`?t.remoteAgent:void 0,kind:`resume`}}log.warn(`unknown agentId on subagent call; starting a new agent`,{agentId:r,callId:e.action.callId})}return classifyFreshStart(e)}function classifyFreshStart(e){let{action:t}=e,n=e.bundle.subagentRegistry.subagentsByNodeId,r=e.bundle.subagentRegistry.dynamicNodeIds?.has(t.nodeId)===!0,i=r?getDynamicSubagentSelection(e.ctx,t.nodeId):void 0;if(r&&(i===void 0||t.kind===`subagent-call`&&i.kind!==`subagent`||t.kind===`remote-agent-call`&&i.kind!==`remote`))return log.warn(`dynamic subagent call blocked after availability changed`,{callId:t.callId,nodeId:t.nodeId,subagentName:getSubagentName(t)}),{kind:`reject`,result:createUnavailableDynamicSubagentResult(t)};if(isRecursiveAgentAction(t,n)&&e.session.rootSessionId!==void 0)return log.warn(`recursive agent call blocked outside the root session`,{callId:t.callId,nodeId:t.nodeId,rootSessionId:e.session.rootSessionId,subagentName:t.subagentName}),{kind:`reject`,result:createRecursiveAgentRootOnlyResult(t)};if(t.kind===`remote-agent-call`)return{kind:`start`,target:{action:t,dynamicRemoteAgent:i?.kind===`remote`?i.remoteAgent:void 0,kind:`remote`}};let a=i?.kind===`subagent`?i.agentConfig:void 0,o=n.get(t.nodeId),s=a?.description??(o?.definition.kind===`subagent`?o.definition.description:void 0);return{kind:`start`,target:{action:t,dynamicSubagentAgentConfig:a,kind:`local`,source:s===void 0?{outputSchema:e.bundle.turnAgent.outputSchema,type:`runtime`}:{description:s,outputSchema:a?.outputSchema??e.bundle.graph?.nodesByNodeId.get(t.nodeId)?.turnAgent?.outputSchema,type:`local`}}}}function ownerPlanSharesSandbox(e){return e.plan.some(t=>{if(t.kind!==`start`||t.target.kind!==`local`)return!1;let n=t.target.action;return n.subagentName===`agent`&&!e.bundle.subagentRegistry.subagentsByNodeId.has(n.nodeId)||e.bundle.graph?.nodesByNodeId.get(n.nodeId)?.sandboxRegistry.sandbox.definition.inheritsParent===!0})}function isRecursiveAgentAction(e,t){return e.kind===`subagent-call`&&e.subagentName===`agent`&&!t.has(e.nodeId)}function resolveAgentInvocationAction(e){let t=e.ctx.require(BundleKey),n=t.subagentRegistry.subagentsByName.get(e.input.target),r=n===void 0?Object.values({...e.ctx.get(SessionDynamicSubagentSelectionsKey),...e.ctx.get(TurnDynamicSubagentSelectionsKey)}).find(t=>t!==null&&t.prepared?.name===e.input.target):void 0,i=n?.definition??r?.prepared??(e.input.target===AGENT_TOOL_NAME&&t.nodeId===void 0?{description:AGENT_TOOL_DESCRIPTION,kind:`subagent`,name:AGENT_TOOL_NAME,nodeId:ROOT_RUNTIME_AGENT_NODE_ID}:void 0);if(i===void 0)throw Error(`Agent target "${e.input.target}" is not available to this agent.`);let a={message:e.input.message};e.input.agentId!==void 0&&(a.agentId=e.input.agentId),e.input.outputSchema!==void 0&&(a.outputSchema=e.input.outputSchema);let o={callId:e.invocationId,description:i.description??``,input:a,name:i.name,nodeId:i.nodeId};return i.kind===`remote`?{...o,kind:`remote-agent-call`,remoteAgentName:i.name}:{...o,kind:`subagent-call`,subagentName:i.name}}export{planAgentDispatch,prepareOwnerAgentInvocation,resolveAgentInvocationAction};
1
+ import{createLogger}from"#internal/logging.js";import{SessionDynamicSubagentSelectionsKey,TurnDynamicSubagentSelectionsKey}from"#context/keys.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{getHarnessEmissionState}from"#harness/emission.js";import{deserializeContext}from"#context/serialize.js";import{readDurableSession}from"#execution/durable-session-store.js";import{findBackgroundWorkflowToolRun}from"#harness/workflow-tool-runs.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{getDynamicSubagentSelection}from"#context/dynamic-subagent-lifecycle.js";import{activeTurnId}from"#harness/active-turn-id.js";import{prepareActionDispatch}from"#execution/coordination-dispatch-shared.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{AGENT_TOOL_DESCRIPTION,AGENT_TOOL_NAME}from"#tools/framework/agent-contract.js";import{isAgentHandleAction}from"#subagents/handle-dispatch.js";import{createRecursiveAgentRootOnlyResult,createUnavailableDynamicSubagentResult,getSubagentName}from"#execution/dispatch-action-failures.js";const log=createLogger(`execution.agent-invocation`);async function prepareOwnerAgentInvocation(e){let t=readDurableSession(e.sessionState),n=await deserializeContext(e.serializedContext),r=getHarnessEmissionState(t.state),i=e.taskId===void 0?void 0:findBackgroundWorkflowToolRun(t.state,e.taskId),a=resolveAgentInvocationAction({ctx:n,input:e.invocation,invocationId:e.invocationId});return await prepareActionDispatch({batch:{requests:[a],event:{...r,stepIndex:i?.origin.stepIndex??r.stepIndex,turnId:i?.origin.turnId??activeTurnId(r)}},ctx:n,durableSession:t,fanoutSize:1,plan:({bundle:t,ctx:n,session:r})=>[planAgentDispatch({action:a,bundle:t,ctx:n,knownAgentIds:e.knownAgentIds,session:r})],planSharesSandbox:({bundle:e,plan:t})=>ownerPlanSharesSandbox({bundle:e,plan:t}),serializedContext:e.serializedContext})}function planAgentDispatch(e){let t=new Set(e.knownAgentIds??(getAgentHandleStore(e.session.state)?.handles??[]).map(e=>e.identity.id)),n=e.action.input.agentId,r=typeof n==`string`&&n.trim()!==``?n:void 0;if(r!==void 0&&isAgentHandleAction(e.action)){if(t.has(r)){let t=e.bundle.subagentRegistry.dynamicNodeIds?.has(e.action.nodeId)===!0?getDynamicSubagentSelection(e.ctx,e.action.nodeId):void 0;return{action:e.action,agentId:r,dynamicRemoteAgent:e.action.kind===`remote-agent-call`&&t?.kind===`remote`?t.remoteAgent:void 0,kind:`resume`}}log.warn(`unknown agentId on subagent call; starting a new agent`,{agentId:r,callId:e.action.callId})}return classifyFreshStart(e)}function classifyFreshStart(e){let{action:t}=e,n=e.bundle.subagentRegistry.subagentsByNodeId,r=e.bundle.subagentRegistry.dynamicNodeIds?.has(t.nodeId)===!0,i=r?getDynamicSubagentSelection(e.ctx,t.nodeId):void 0;if(r&&(i===void 0||t.kind===`subagent-call`&&i.kind!==`subagent`||t.kind===`remote-agent-call`&&i.kind!==`remote`))return log.warn(`dynamic subagent call blocked after availability changed`,{callId:t.callId,nodeId:t.nodeId,subagentName:getSubagentName(t)}),{kind:`reject`,result:createUnavailableDynamicSubagentResult(t)};if(isRecursiveAgentAction(t,n)&&e.session.rootSessionId!==void 0)return log.warn(`recursive agent call blocked outside the root session`,{callId:t.callId,nodeId:t.nodeId,rootSessionId:e.session.rootSessionId,subagentName:t.subagentName}),{kind:`reject`,result:createRecursiveAgentRootOnlyResult(t)};if(t.kind===`remote-agent-call`)return{kind:`start`,target:{action:t,dynamicRemoteAgent:i?.kind===`remote`?i.remoteAgent:void 0,kind:`remote`}};let a=i?.kind===`subagent`?i.agentConfig:void 0,o=n.get(t.nodeId),s=a?.description??(o?.definition.kind===`subagent`?o.definition.description:void 0);return{kind:`start`,target:{action:t,dynamicSubagentAgentConfig:a,kind:`local`,source:s===void 0?{outputSchema:e.bundle.turnAgent.outputSchema,type:`runtime`}:{description:s,outputSchema:a?.outputSchema??e.bundle.graph?.nodesByNodeId.get(t.nodeId)?.turnAgent?.outputSchema,type:`local`}}}}function ownerPlanSharesSandbox(e){return e.plan.some(t=>{if(t.kind!==`start`||t.target.kind!==`local`)return!1;let n=t.target.action;return n.subagentName===`agent`&&!e.bundle.subagentRegistry.subagentsByNodeId.has(n.nodeId)||e.bundle.graph?.nodesByNodeId.get(n.nodeId)?.sandboxRegistry.sandbox.definition.inheritsParent===!0})}function isRecursiveAgentAction(e,t){return e.kind===`subagent-call`&&e.subagentName===`agent`&&!t.has(e.nodeId)}function resolveAgentInvocationAction(e){let t=e.ctx.require(BundleKey),n=t.subagentRegistry.subagentsByName.get(e.input.target),r=n===void 0?Object.values({...e.ctx.get(SessionDynamicSubagentSelectionsKey),...e.ctx.get(TurnDynamicSubagentSelectionsKey)}).find(t=>t!==null&&t.prepared?.name===e.input.target):void 0,i=n?.definition??r?.prepared??(e.input.target===AGENT_TOOL_NAME&&t.nodeId===void 0?{description:AGENT_TOOL_DESCRIPTION,kind:`subagent`,name:AGENT_TOOL_NAME,nodeId:ROOT_RUNTIME_AGENT_NODE_ID}:void 0);if(i===void 0)throw Error(`Agent target "${e.input.target}" is not available to this agent.`);let a={message:e.input.message};e.input.agentId!==void 0&&(a.agentId=e.input.agentId),e.input.outputSchema!==void 0&&(a.outputSchema=e.input.outputSchema);let o={callId:e.invocationId,description:i.description??``,input:a,name:i.name,nodeId:i.nodeId};return i.kind===`remote`?{...o,kind:`remote-agent-call`,remoteAgentName:i.name}:{...o,kind:`subagent-call`,subagentName:i.name}}export{planAgentDispatch,prepareOwnerAgentInvocation,resolveAgentInvocationAction};
@@ -2,7 +2,7 @@ import type { AgentInvocationRequest } from "#execution/tools/subagent/invoke-ag
2
2
  import type { RuntimeSubagentResult } from "#shared/action-types.js";
3
3
  import type { HandleEventFn } from "#harness/types.js";
4
4
  import type { ActivityWorkIdentityV1 } from "#protocol/activity.js";
5
- import { type SubagentCalledStreamEvent } from "#protocol/message.js";
5
+ import { type SubagentCalledStreamEvent, type SubagentCompletedStreamEvent } from "#protocol/message.js";
6
6
  import { type DurableSessionState } from "#execution/durable-session-store.js";
7
7
  import type { RuntimeSubagentChildResult } from "#shared/action-types.js";
8
8
  export type AgentInvocationDispatchResult = {
@@ -43,13 +43,14 @@ export declare function dispatchAgentInvocation(input: {
43
43
  export declare function dispatchTaskAgentInvocationStep(input: Omit<Parameters<typeof dispatchAgentInvocation>[0], "callbackBaseUrl" | "emit">): Promise<TaskAgentInvocationDispatchResult>;
44
44
  /** Applies an owner-scoped child settlement to the parent session's canonical state. */
45
45
  export declare function settleTaskAgentInvocationStep(input: {
46
- readonly accumulateUsage?: boolean;
47
46
  readonly ownerId: string;
48
47
  readonly result: RuntimeSubagentChildResult;
49
48
  readonly serializedContext: Record<string, unknown>;
50
49
  readonly sessionState: DurableSessionState;
51
50
  readonly taskId?: string | undefined;
52
51
  }): Promise<{
52
+ readonly settled: boolean;
53
+ readonly completion?: SubagentCompletedStreamEvent;
53
54
  readonly serializedContext: Record<string, unknown>;
54
55
  readonly sessionState: DurableSessionState;
55
56
  }>;