eve 0.50.0 → 0.51.1

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 (734) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/src/acp/adapter.js +1 -1
  3. package/dist/src/channel/session.d.ts +2 -1
  4. package/dist/src/channel/session.js +1 -1
  5. package/dist/src/channel/types.d.ts +16 -20
  6. package/dist/src/chunks/{use-eve-agent-B5I-k6Ek.js → use-eve-agent-3DZuvuWE.js} +21 -10
  7. package/dist/src/chunks/{use-eve-agent-DUMU6dap.js → use-eve-agent-D7apPojZ.js} +21 -10
  8. package/dist/src/cli/acp/command.d.ts +1 -1
  9. package/dist/src/cli/acp/command.js +2 -2
  10. package/dist/src/cli/agent-command.d.ts +5 -0
  11. package/dist/src/cli/agent-command.js +1 -0
  12. package/dist/src/cli/application-command.d.ts +2 -0
  13. package/dist/src/cli/commands/agent-instructions.d.ts +3 -1
  14. package/dist/src/cli/commands/agent-instructions.js +1 -1
  15. package/dist/src/cli/commands/build.d.ts +1 -1
  16. package/dist/src/cli/commands/build.js +1 -1
  17. package/dist/src/cli/commands/deploy.d.ts +2 -0
  18. package/dist/src/cli/commands/deploy.js +1 -1
  19. package/dist/src/cli/commands/init-agent-workspace.d.ts +14 -0
  20. package/dist/src/cli/commands/init-agent-workspace.js +1 -0
  21. package/dist/src/cli/commands/init.d.ts +2 -13
  22. package/dist/src/cli/commands/init.js +1 -1
  23. package/dist/src/cli/commands/link.d.ts +2 -0
  24. package/dist/src/cli/commands/link.js +1 -1
  25. package/dist/src/cli/commands/preconditions.d.ts +15 -0
  26. package/dist/src/cli/commands/preconditions.js +1 -1
  27. package/dist/src/cli/commands/register-integration-commands.d.ts +1 -1
  28. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  29. package/dist/src/cli/commands/register-project-commands.d.ts +1 -1
  30. package/dist/src/cli/commands/register-project-commands.js +1 -1
  31. package/dist/src/cli/commands/register-registry-commands.js +2 -2
  32. package/dist/src/cli/dev/environment.d.ts +1 -1
  33. package/dist/src/cli/dev/environment.js +1 -1
  34. package/dist/src/cli/dev/local-server-process.js +1 -1
  35. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  36. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  37. package/dist/src/cli/dev/tui/runner.js +1 -1
  38. package/dist/src/cli/dev/tui/setup-commands.d.ts +3 -1
  39. package/dist/src/cli/dev/tui/setup-commands.js +1 -1
  40. package/dist/src/cli/invoke/command.d.ts +1 -1
  41. package/dist/src/cli/invoke/command.js +1 -1
  42. package/dist/src/cli/option-parsers.d.ts +1 -0
  43. package/dist/src/cli/option-parsers.js +1 -1
  44. package/dist/src/cli/run.js +3 -3
  45. package/dist/src/client/agent-info-schema.d.ts +0 -1
  46. package/dist/src/client/agent-info-schema.js +1 -1
  47. package/dist/src/client/message-action-parts.js +1 -1
  48. package/dist/src/client/open-stream.js +1 -1
  49. package/dist/src/client/session-controls.d.ts +3 -0
  50. package/dist/src/client/session-controls.js +1 -1
  51. package/dist/src/client/session.d.ts +4 -1
  52. package/dist/src/compiled/.vendor-stamp.json +11 -11
  53. package/dist/src/compiled/@clack/core/LICENSE +9 -0
  54. package/dist/src/compiled/@clack/core/index.d.ts +363 -0
  55. package/dist/src/compiled/@clack/core/index.js +20 -0
  56. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  57. package/dist/src/compiled/@vercel/sandbox/api-client/api-client.d.ts +34 -92
  58. package/dist/src/compiled/@vercel/sandbox/api-client/base-client.d.ts +1 -1
  59. package/dist/src/compiled/@vercel/sandbox/api-client/index.d.ts +1 -1
  60. package/dist/src/compiled/@vercel/sandbox/api-client/validators.d.ts +13 -29
  61. package/dist/src/compiled/@vercel/sandbox/constants.d.ts +11 -1
  62. package/dist/src/compiled/@vercel/sandbox/index.d.ts +3 -3
  63. package/dist/src/compiled/@vercel/sandbox/index.js +9 -9
  64. package/dist/src/compiled/@vercel/sandbox/sandbox-user.d.ts +5 -6
  65. package/dist/src/compiled/@vercel/sandbox/sandbox.d.ts +79 -67
  66. package/dist/src/compiled/@vercel/sandbox/session.d.ts +5 -3
  67. package/dist/src/compiled/@vercel/sandbox/snapshot.d.ts +9 -0
  68. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/api-client.d.ts +86 -1
  69. package/dist/src/compiled/@vercel/sandbox-drives/api-client/index.d.ts +2 -0
  70. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/validators.d.ts +26 -1
  71. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/constants.d.ts +2 -2
  72. package/dist/src/compiled/@vercel/{sandbox → sandbox-drives}/drive.d.ts +10 -0
  73. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/index.d.ts +3 -2
  74. package/dist/src/compiled/@vercel/sandbox-drives/index.js +9 -0
  75. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/sandbox.d.ts +35 -6
  76. package/dist/src/compiled/@workflow/core/index.js +1 -1
  77. package/dist/src/compiled/@workflow/core/private.d.ts +2 -4
  78. package/dist/src/compiled/@workflow/core/private.js +1 -1
  79. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +9 -7
  80. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +13 -0
  81. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +54 -1
  82. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  83. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +7 -0
  84. package/dist/src/compiled/@workflow/core/serialization.d.ts +24 -2
  85. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  86. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  87. package/dist/src/compiled/@workflow/errors/error-codes.d.ts +2 -0
  88. package/dist/src/compiled/@workflow/errors/index.d.ts +19 -0
  89. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  90. package/dist/src/compiled/@workflow/world/analytics.d.ts +46 -2
  91. package/dist/src/compiled/@workflow/world/events.d.ts +26 -1
  92. package/dist/src/compiled/@workflow/world/index.d.ts +1 -1
  93. package/dist/src/compiled/@workflow/world/runs.d.ts +2 -2
  94. package/dist/src/compiled/@workflow/world-local/index.js +3 -3
  95. package/dist/src/compiled/@workflow/world-vercel/index.js +12 -12
  96. package/dist/src/compiled/_chunks/node/{auth-BSKyPAEP.js → auth-Bx1Aoyfo.js} +1 -1
  97. package/dist/src/compiled/_chunks/node/{auth-YpKlwhP1.js → auth-CA8ZMfB8.js} +1 -1
  98. package/dist/src/compiled/_chunks/node/esm-CE0tAvRh.js +7 -0
  99. package/dist/src/compiled/_chunks/node/version-BC6t2Txc.js +1 -0
  100. package/dist/src/compiled/_chunks/node/version-DSQqVZ5T.js +1 -0
  101. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BwAadFfB.js → attribute-changes-03lzo29R.js} +1 -1
  102. package/dist/src/compiled/_chunks/workflow/dist-BIdMK5N8.js +40 -0
  103. package/dist/src/compiled/_chunks/workflow/dist-DMQ3CtWt.js +3 -0
  104. package/dist/src/compiled/_chunks/workflow/frames-Boesh7kU.js +3 -0
  105. package/dist/src/compiled/_chunks/workflow/{private-CZFMABEf.js → private-CKx3PkSS.js} +1 -1
  106. package/dist/src/compiled/_chunks/workflow/{resume-hook-BToMtPbH.js → resume-hook-C6eL-S_T.js} +1 -1
  107. package/dist/src/compiled/_chunks/workflow/run-BV0S6Zc2.js +1 -0
  108. package/dist/src/compiled/_chunks/workflow/sleep-Bh3jP9ii.js +1 -0
  109. package/dist/src/compiled/_chunks/workflow/wait-until-l-cwfJvm.js +15 -0
  110. package/dist/src/compiled/_chunks/workflow/{ws-transport-PnVVxT0R.js → ws-transport-BagXNxCE.js} +1 -1
  111. package/dist/src/compiler/compile-from-memory.d.ts +1 -0
  112. package/dist/src/compiler/extension-compatibility.d.ts +20 -20
  113. package/dist/src/compiler/extension-compatibility.js +1 -1
  114. package/dist/src/compiler/manifest.d.ts +2 -2
  115. package/dist/src/compiler/manifest.js +1 -1
  116. package/dist/src/compiler/normalize-agent-config.js +1 -1
  117. package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
  118. package/dist/src/compiler/normalize-manifest.js +1 -1
  119. package/dist/src/compiler/normalize-tool.js +1 -1
  120. package/dist/src/context/build-dynamic-tools.js +1 -1
  121. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  122. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  123. package/dist/src/context/dynamic-tool-metadata.d.ts +1 -0
  124. package/dist/src/context/keys.d.ts +0 -3
  125. package/dist/src/context/keys.js +1 -1
  126. package/dist/src/discover/extensions.d.ts +2 -0
  127. package/dist/src/discover/extensions.js +1 -1
  128. package/dist/src/discover/filesystem.d.ts +1 -0
  129. package/dist/src/discover/filesystem.js +1 -1
  130. package/dist/src/discover/project.js +1 -1
  131. package/dist/src/evals/cli/eval.js +1 -1
  132. package/dist/src/evals/mock-model.js +1 -1
  133. package/dist/src/evals/runner/execute-task.js +1 -1
  134. package/dist/src/evals/session-cleanup.d.ts +7 -0
  135. package/dist/src/evals/session-cleanup.js +1 -0
  136. package/dist/src/evals/session.d.ts +4 -0
  137. package/dist/src/evals/session.js +1 -1
  138. package/dist/src/eve-channel/index.js +1 -1
  139. package/dist/src/eve-channel/request.d.ts +1 -0
  140. package/dist/src/eve-channel/request.js +1 -1
  141. package/dist/src/execution/activity-collector.js +1 -1
  142. package/dist/src/execution/activity-work-id.js +1 -1
  143. package/dist/src/execution/activity-work.d.ts +8 -0
  144. package/dist/src/execution/activity-work.js +1 -1
  145. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  146. package/dist/src/execution/cancel-indexed-session-tasks-step.d.ts +6 -0
  147. package/dist/src/execution/cancel-indexed-session-tasks-step.js +1 -0
  148. package/dist/src/execution/channel-context.js +1 -1
  149. package/dist/src/execution/coordination-dispatch-shared.d.ts +103 -0
  150. package/dist/src/execution/coordination-dispatch-shared.js +1 -0
  151. package/dist/src/execution/coordination-dispatch-step.d.ts +7 -0
  152. package/dist/src/execution/coordination-dispatch-step.js +1 -0
  153. package/dist/src/execution/create-session-step.d.ts +1 -2
  154. package/dist/src/execution/create-session-step.js +1 -1
  155. package/dist/src/execution/deliver-payloads.js +1 -1
  156. package/dist/src/execution/dispatch-action-failures.d.ts +5 -5
  157. package/dist/src/execution/dispatch-action-failures.js +1 -1
  158. package/dist/src/execution/dispatch-start-operation.d.ts +1 -1
  159. package/dist/src/execution/dispatch-start-operation.js +1 -1
  160. package/dist/src/execution/durable-session-store.d.ts +1 -1
  161. package/dist/src/execution/eve-workflow-attributes.d.ts +1 -1
  162. package/dist/src/execution/inline-turn.d.ts +2 -0
  163. package/dist/src/execution/inline-turn.js +1 -1
  164. package/dist/src/execution/next-driver-action.d.ts +7 -13
  165. package/dist/src/execution/node-step.d.ts +1 -2
  166. package/dist/src/execution/node-step.js +1 -1
  167. package/dist/src/execution/parked-delivery-wait.js +1 -1
  168. package/dist/src/execution/pending-turn-state.d.ts +1 -2
  169. package/dist/src/execution/pending-turn-state.js +1 -1
  170. package/dist/src/execution/proxied-deliver-step.js +1 -1
  171. package/dist/src/execution/route-child-delivery.js +1 -1
  172. package/dist/src/execution/run-session-limits.d.ts +5 -5
  173. package/dist/src/execution/runtime-context.js +1 -1
  174. package/dist/src/execution/sandbox/bindings/vercel-create-sdk.js +1 -1
  175. package/dist/src/execution/sandbox/bindings/vercel-sdk-types.d.ts +4 -4
  176. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  177. package/dist/src/execution/session-activity-projection.js +1 -1
  178. package/dist/src/execution/session-activity.js +1 -1
  179. package/dist/src/execution/session-command-inbox.d.ts +2 -3
  180. package/dist/src/execution/session-timeout-workflow.js +1 -1
  181. package/dist/src/execution/session.d.ts +2 -1
  182. package/dist/src/execution/session.js +2 -2
  183. package/dist/src/execution/settle-cancelled-turn-step.d.ts +1 -1
  184. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  185. package/dist/src/execution/stable-workflow-names.d.ts +1 -1
  186. package/dist/src/execution/stable-workflow-names.js +1 -1
  187. package/dist/src/execution/task-event-callback.js +1 -1
  188. package/dist/src/execution/tasks/child/steps.d.ts +19 -11
  189. package/dist/src/execution/tasks/child/steps.js +1 -1
  190. package/dist/src/execution/tasks/child/update-step.d.ts +6 -0
  191. package/dist/src/execution/tasks/child/update-step.js +1 -0
  192. package/dist/src/execution/tasks/child/update.d.ts +7 -10
  193. package/dist/src/execution/tasks/child/update.js +1 -1
  194. package/dist/src/execution/tasks/child/workflow.d.ts +21 -27
  195. package/dist/src/execution/tasks/child/workflow.js +1 -1
  196. package/dist/src/execution/tasks/parent/control-shared.d.ts +6 -17
  197. package/dist/src/execution/tasks/parent/control-shared.js +1 -1
  198. package/dist/src/execution/tasks/parent/delegate.d.ts +15 -48
  199. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  200. package/dist/src/execution/tasks/parent/dispatch.d.ts +19 -34
  201. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  202. package/dist/src/execution/tasks/parent/hitl-proxy-steps.d.ts +5 -15
  203. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  204. package/dist/src/execution/tasks/parent/run-parent.d.ts +2 -2
  205. package/dist/src/execution/tasks/parent/subagent-task-projection.d.ts +26 -0
  206. package/dist/src/execution/tasks/parent/subagent-task-projection.js +1 -0
  207. package/dist/src/execution/tasks/parent/task-cancel.d.ts +11 -0
  208. package/dist/src/execution/tasks/parent/task-cancel.js +1 -0
  209. package/dist/src/execution/tasks/parent/tool-execution.d.ts +2 -3
  210. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  211. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  212. package/dist/src/execution/tools/sleep-workflow.d.ts +3 -0
  213. package/dist/src/execution/tools/sleep-workflow.js +1 -0
  214. package/dist/src/execution/tools/sleep.d.ts +1 -5
  215. package/dist/src/execution/tools/sleep.js +1 -1
  216. package/dist/src/execution/tools/subagent/accept-event-step.d.ts +7 -0
  217. package/dist/src/execution/tools/subagent/accept-event-step.js +1 -0
  218. package/dist/src/execution/tools/subagent/emit-called-step.d.ts +9 -0
  219. package/dist/src/execution/tools/subagent/emit-called-step.js +1 -0
  220. package/dist/src/execution/tools/subagent/invoke-agent.d.ts +51 -0
  221. package/dist/src/execution/tools/subagent/invoke-agent.js +1 -0
  222. package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +37 -0
  223. package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -0
  224. package/dist/src/execution/tools/subagent/invoke-step.d.ts +55 -0
  225. package/dist/src/execution/tools/subagent/invoke-step.js +1 -0
  226. package/dist/src/execution/tools/subagent/receipt-identity.d.ts +11 -0
  227. package/dist/src/execution/tools/subagent/receipt-identity.js +1 -0
  228. package/dist/src/execution/{dispatch-runtime-actions-start.d.ts → tools/subagent/start.d.ts} +17 -5
  229. package/dist/src/execution/tools/subagent/start.js +1 -0
  230. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +24 -0
  231. package/dist/src/execution/tools/subagent/task-agent-requests.js +1 -0
  232. package/dist/src/execution/tools/subagent/task-cancel.d.ts +10 -0
  233. package/dist/src/execution/tools/subagent/task-cancel.js +1 -0
  234. package/dist/src/execution/tools/tasks.d.ts +10 -0
  235. package/dist/src/execution/tools/tasks.js +1 -0
  236. package/dist/src/execution/{tool-run → tools/workflow}/answer.d.ts +1 -1
  237. package/dist/src/execution/tools/workflow/answer.js +1 -0
  238. package/dist/src/execution/tools/workflow/ask.d.ts +22 -0
  239. package/dist/src/execution/tools/workflow/ask.js +1 -0
  240. package/dist/src/execution/tools/workflow/background.d.ts +18 -0
  241. package/dist/src/execution/tools/workflow/background.js +1 -0
  242. package/dist/src/execution/tools/workflow/body.d.ts +25 -0
  243. package/dist/src/execution/tools/workflow/body.js +1 -0
  244. package/dist/src/execution/tools/workflow/cancel.d.ts +11 -0
  245. package/dist/src/execution/tools/workflow/cancel.js +1 -0
  246. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.d.ts +7 -0
  247. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.js +1 -0
  248. package/dist/src/execution/tools/workflow/messages.d.ts +88 -0
  249. package/dist/src/execution/tools/workflow/messages.js +1 -0
  250. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +13 -0
  251. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -0
  252. package/dist/src/execution/tools/workflow/owner.d.ts +13 -0
  253. package/dist/src/execution/tools/workflow/owner.js +1 -0
  254. package/dist/src/execution/tools/workflow/run-control.d.ts +18 -0
  255. package/dist/src/execution/tools/workflow/run-control.js +1 -0
  256. package/dist/src/execution/tools/workflow/start.d.ts +33 -0
  257. package/dist/src/execution/tools/workflow/start.js +1 -0
  258. package/dist/src/execution/tools/workflow/types.d.ts +26 -0
  259. package/dist/src/execution/tools/workflow/types.js +1 -0
  260. package/dist/src/execution/tools/workflow/workflow.d.ts +3 -0
  261. package/dist/src/execution/tools/workflow/workflow.js +1 -0
  262. package/dist/src/execution/turn-cancellation-control.d.ts +1 -0
  263. package/dist/src/execution/turn-cancellation-control.js +1 -1
  264. package/dist/src/execution/turn-cancellation-token.d.ts +1 -0
  265. package/dist/src/execution/turn-control-receiver.d.ts +3 -0
  266. package/dist/src/execution/turn-control-receiver.js +1 -1
  267. package/dist/src/execution/turn-dispatch.d.ts +2 -0
  268. package/dist/src/execution/turn-dispatch.js +1 -1
  269. package/dist/src/execution/turn-workflow-tool-run.d.ts +16 -0
  270. package/dist/src/execution/turn-workflow-tool-run.js +1 -0
  271. package/dist/src/execution/turn-workflow.js +1 -1
  272. package/dist/src/execution/wire/session-inbox-contract.d.ts +2 -2
  273. package/dist/src/execution/wire/session-inbox-contract.js +1 -1
  274. package/dist/src/execution/wire/session-inbox-encoder.d.ts +14 -2
  275. package/dist/src/execution/wire/session-inbox-encoder.js +1 -1
  276. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  277. package/dist/src/execution/wire/session-inbox-wire.d.ts +3 -3
  278. package/dist/src/execution/wire/session-inbox-wire.js +1 -1
  279. package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -1
  280. package/dist/src/execution/wire/session-inbox-wire.v4.d.ts +267 -0
  281. package/dist/src/execution/wire/session-inbox-wire.v4.js +1 -0
  282. package/dist/src/execution/wire/session-inbox-wire.v4.migration.d.ts +3 -0
  283. package/dist/src/execution/wire/session-inbox-wire.v4.migration.js +1 -0
  284. package/dist/src/execution/wire/session-inbox-wire.v5.d.ts +341 -0
  285. package/dist/src/execution/wire/session-inbox-wire.v5.js +1 -0
  286. package/dist/src/execution/wire/session-inbox-wire.v5.migration.d.ts +3 -0
  287. package/dist/src/execution/wire/session-inbox-wire.v5.migration.js +1 -0
  288. package/dist/src/execution/wire/session-inbox-wire.v6.d.ts +341 -0
  289. package/dist/src/execution/wire/session-inbox-wire.v6.js +1 -0
  290. package/dist/src/execution/workflow-entry-finalization.d.ts +6 -0
  291. package/dist/src/execution/workflow-entry-finalization.js +1 -1
  292. package/dist/src/execution/workflow-entry.d.ts +2 -1
  293. package/dist/src/execution/workflow-entry.js +1 -1
  294. package/dist/src/execution/workflow-runtime.d.ts +1 -1
  295. package/dist/src/execution/workflow-runtime.js +1 -1
  296. package/dist/src/execution/workflow-steps.js +1 -1
  297. package/dist/src/framework/sources/registry.js +1 -1
  298. package/dist/src/harness/advertised-tools.d.ts +1 -7
  299. package/dist/src/harness/advertised-tools.js +1 -1
  300. package/dist/src/harness/background-tools.d.ts +8 -2
  301. package/dist/src/harness/{runtime-actions.d.ts → coordination.d.ts} +40 -27
  302. package/dist/src/harness/coordination.js +1 -0
  303. package/dist/src/harness/emission.d.ts +9 -2
  304. package/dist/src/harness/emission.js +1 -1
  305. package/dist/src/harness/execute-tool.d.ts +52 -0
  306. package/dist/src/harness/hitl/session-limit-input-requests.js +1 -1
  307. package/dist/src/harness/input-requests.js +1 -1
  308. package/dist/src/harness/proxy-input-requests.d.ts +6 -2
  309. package/dist/src/harness/session-limit-continuation.d.ts +5 -5
  310. package/dist/src/harness/session-limit-continuation.js +1 -1
  311. package/dist/src/harness/session-limit-enforcement.d.ts +4 -4
  312. package/dist/src/harness/session-limit-enforcement.js +1 -1
  313. package/dist/src/harness/session-usage-limits.d.ts +48 -0
  314. package/dist/src/harness/session-usage-limits.js +1 -0
  315. package/dist/src/harness/stale-input-responses.js +1 -1
  316. package/dist/src/harness/step-hooks.d.ts +1 -2
  317. package/dist/src/harness/step-hooks.js +1 -1
  318. package/dist/src/harness/tool-call-action.js +1 -1
  319. package/dist/src/harness/tool-call-input-errors.js +1 -1
  320. package/dist/src/harness/tool-loop.js +2 -2
  321. package/dist/src/harness/tools.js +1 -1
  322. package/dist/src/harness/turn-tag-state.d.ts +20 -21
  323. package/dist/src/harness/turn-tag-state.js +1 -1
  324. package/dist/src/harness/types.d.ts +9 -7
  325. package/dist/src/harness/workflow-interrupt-state.js +1 -1
  326. package/dist/src/harness/workflow-lifecycle.d.ts +10 -0
  327. package/dist/src/harness/workflow-lifecycle.js +1 -1
  328. package/dist/src/harness/workflow-sandbox.d.ts +1 -1
  329. package/dist/src/harness/workflow-sandbox.js +2 -2
  330. package/dist/src/harness/workflow-subagent-limit.d.ts +7 -7
  331. package/dist/src/harness/workflow-subagent-limit.js +1 -1
  332. package/dist/src/harness/workflow-task-state.d.ts +9 -0
  333. package/dist/src/harness/workflow-task-state.js +1 -0
  334. package/dist/src/harness/workflow-tool-runs.d.ts +27 -0
  335. package/dist/src/harness/workflow-tool-runs.js +1 -0
  336. package/dist/src/instrumentation/native-events.js +1 -1
  337. package/dist/src/instrumentation/parent-lineage.js +1 -1
  338. package/dist/src/internal/agent-name.d.ts +4 -0
  339. package/dist/src/internal/agent-name.js +1 -0
  340. package/dist/src/internal/application/build-output-environment.d.ts +1 -0
  341. package/dist/src/internal/application/build-output-environment.js +1 -1
  342. package/dist/src/internal/application/package.js +1 -1
  343. package/dist/src/internal/application/paths.js +1 -1
  344. package/dist/src/internal/authored-definition/core.js +1 -1
  345. package/dist/src/internal/eve-project-root.d.ts +8 -0
  346. package/dist/src/internal/eve-project-root.js +1 -0
  347. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  348. package/dist/src/internal/nitro/host/build-application.js +1 -1
  349. package/dist/src/internal/nitro/host/create-application-nitro.d.ts +1 -0
  350. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  351. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  352. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  353. package/dist/src/internal/nitro/host/types.d.ts +2 -0
  354. package/dist/src/internal/nitro/host/vercel-build-output-config.d.ts +1 -0
  355. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  356. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  357. package/dist/src/internal/project-context.d.ts +31 -0
  358. package/dist/src/internal/project-context.js +1 -0
  359. package/dist/src/internal/vercel/assemble-eve-services.d.ts +17 -0
  360. package/dist/src/internal/vercel/assemble-eve-services.js +1 -0
  361. package/dist/src/internal/vercel/build-agent-workspace.d.ts +3 -0
  362. package/dist/src/internal/vercel/build-agent-workspace.js +1 -0
  363. package/dist/src/internal/vercel/build-command.d.ts +4 -0
  364. package/dist/src/internal/vercel/build-command.js +1 -0
  365. package/dist/src/internal/vercel/eve-service-contribution.d.ts +28 -0
  366. package/dist/src/internal/vercel/eve-service-contribution.js +1 -0
  367. package/dist/src/internal/vercel/vercel-service-config-operations.d.ts +18 -0
  368. package/dist/src/internal/vercel/vercel-service-config-operations.js +1 -0
  369. package/dist/src/internal/vercel/vercel-service-name.d.ts +6 -0
  370. package/dist/src/internal/vercel/vercel-service-name.js +1 -0
  371. package/dist/src/internal/vercel/vercel-services-config.d.ts +53 -0
  372. package/dist/src/internal/vercel/vercel-services-config.js +1 -0
  373. package/dist/src/internal/workflow/reference.d.ts +2 -0
  374. package/dist/src/internal/workflow/reference.js +1 -0
  375. package/dist/src/internal/workflow-bundle/authored-workflow-modules.d.ts +0 -9
  376. package/dist/src/internal/workflow-bundle/authored-workflow-modules.js +1 -1
  377. package/dist/src/internal/workflow-bundle/builder.js +1 -1
  378. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +1 -1
  379. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  380. package/dist/src/internal/workflow-bundle/workflow-transformer.d.ts +1 -1
  381. package/dist/src/internal/workflow-bundle/workflow-transformer.js +1 -1
  382. package/dist/src/protocol/message.d.ts +2 -0
  383. package/dist/src/protocol/message.js +1 -1
  384. package/dist/src/public/channels/slack/action-status.js +1 -1
  385. package/dist/src/public/channels/slack/activity-plan.d.ts +4 -0
  386. package/dist/src/public/channels/slack/activity-plan.js +1 -0
  387. package/dist/src/public/channels/slack/activity.d.ts +45 -2
  388. package/dist/src/public/channels/slack/activity.js +2 -1
  389. package/dist/src/public/channels/slack/index.d.ts +1 -1
  390. package/dist/src/public/channels/slack/index.js +1 -1
  391. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  392. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
  393. package/dist/src/public/memory/index.js +1 -1
  394. package/dist/src/public/next/index.js +1 -1
  395. package/dist/src/public/next/vercel-output-config.js +1 -1
  396. package/dist/src/public/nuxt/index.js +1 -1
  397. package/dist/src/public/nuxt/module.d.ts +3 -2
  398. package/dist/src/public/nuxt/module.js +1 -1
  399. package/dist/src/public/sandbox/vercel-sandbox.d.ts +9 -5
  400. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  401. package/dist/src/public/sandbox/vercel.js +1 -1
  402. package/dist/src/public/workflow/index.d.ts +3 -1
  403. package/dist/src/public/workflow/index.js +1 -1
  404. package/dist/src/runtime/actions/results.d.ts +3 -3
  405. package/dist/src/runtime/actions/results.js +1 -1
  406. package/dist/src/runtime/agent/bootstrap-model-utils.js +1 -1
  407. package/dist/src/runtime/agent/bootstrap.d.ts +1 -0
  408. package/dist/src/runtime/agent/bootstrap.js +1 -1
  409. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  410. package/dist/src/runtime/channels/registry.js +1 -1
  411. package/dist/src/runtime/prompt/compose.d.ts +0 -1
  412. package/dist/src/runtime/prompt/compose.js +1 -1
  413. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  414. package/dist/src/runtime/resolve-agent.js +1 -1
  415. package/dist/src/runtime/sessions/turn.d.ts +16 -1
  416. package/dist/src/runtime/subagents/registry.js +1 -1
  417. package/dist/src/runtime/subagents/workflow-reference.d.ts +5 -0
  418. package/dist/src/runtime/subagents/workflow-reference.js +1 -0
  419. package/dist/src/runtime/subagents/workflow.d.ts +8 -0
  420. package/dist/src/runtime/subagents/workflow.js +1 -0
  421. package/dist/src/runtime/tools/registry.js +1 -1
  422. package/dist/src/self-modification/agent.d.ts +22 -0
  423. package/dist/src/self-modification/agent.js +1 -0
  424. package/dist/src/self-modification/extension/classify-registry-item.d.ts +19 -0
  425. package/dist/src/self-modification/extension/classify-registry-item.js +1 -0
  426. package/dist/src/self-modification/extension/eve-add.d.ts +56 -0
  427. package/dist/src/self-modification/extension/eve-add.js +2 -0
  428. package/dist/src/self-modification/extension/extension.d.ts +2 -0
  429. package/dist/src/self-modification/extension/extension.js +1 -0
  430. package/dist/src/self-modification/extension/instructions.d.ts +4 -0
  431. package/dist/src/self-modification/extension/instructions.js +23 -0
  432. package/dist/src/self-modification/extension/source-lock.d.ts +2 -0
  433. package/dist/src/self-modification/extension/source-lock.js +1 -0
  434. package/dist/src/self-modification/extension/tools/edit_file.d.ts +16 -0
  435. package/dist/src/self-modification/extension/tools/edit_file.js +1 -0
  436. package/dist/src/self-modification/extension/tools/registry_add.d.ts +52 -0
  437. package/dist/src/self-modification/extension/tools/registry_add.js +1 -0
  438. package/dist/src/self-modification/extension/tools/search_models.d.ts +22 -0
  439. package/dist/src/self-modification/extension/tools/search_models.js +1 -0
  440. package/dist/src/self-modification/extension/tools/search_registry.d.ts +103 -0
  441. package/dist/src/self-modification/extension/tools/search_registry.js +1 -0
  442. package/dist/src/self-modification/filesystem.d.ts +6 -0
  443. package/dist/src/self-modification/filesystem.js +1 -0
  444. package/dist/src/self-modification/sandbox.d.ts +2 -0
  445. package/dist/src/self-modification/sandbox.js +1 -0
  446. package/dist/src/services/dev-client/target.d.ts +3 -1
  447. package/dist/src/setup/boxes/select-model.d.ts +3 -21
  448. package/dist/src/setup/boxes/select-model.js +1 -1
  449. package/dist/src/setup/cli/prompt-ui.js +4 -4
  450. package/dist/src/setup/cli/select-component.d.ts +1 -1
  451. package/dist/src/setup/cli/select-component.js +1 -1
  452. package/dist/src/setup/flows/model.d.ts +3 -0
  453. package/dist/src/setup/flows/model.js +1 -1
  454. package/dist/src/setup/integrations/discord/setup.js +1 -1
  455. package/dist/src/setup/integrations/file-memory/vercel.js +1 -1
  456. package/dist/src/setup/integrations/linear/setup.js +1 -1
  457. package/dist/src/setup/integrations/linq/setup.js +3 -3
  458. package/dist/src/setup/integrations/shopify/setup.js +1 -1
  459. package/dist/src/setup/prompter.js +1 -1
  460. package/dist/src/setup/scaffold/create/project.js +1 -1
  461. package/dist/src/setup/scaffold/update/channels.d.ts +4 -12
  462. package/dist/src/setup/scaffold/update/channels.js +1 -1
  463. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  464. package/dist/src/shared/action-types.d.ts +103 -30
  465. package/dist/src/shared/action-types.js +1 -1
  466. package/dist/src/shared/agent-definition.d.ts +13 -0
  467. package/dist/src/shared/agent-turn-outcome.d.ts +2 -0
  468. package/dist/src/shared/agent-turn-outcome.js +1 -1
  469. package/dist/src/shared/extension-package-contract.d.ts +2 -0
  470. package/dist/src/shared/extension-package-contract.js +1 -1
  471. package/dist/src/shared/gateway-model-catalog.d.ts +21 -0
  472. package/dist/src/shared/gateway-model-catalog.js +1 -0
  473. package/dist/src/shared/json.js +1 -1
  474. package/dist/src/shared/sandbox-network-policy.d.ts +1 -1
  475. package/dist/src/shared/token-usage.d.ts +11 -15
  476. package/dist/src/shared/token-usage.js +1 -1
  477. package/dist/src/shared/workflow-sandbox.d.ts +1 -1
  478. package/dist/src/{execution/subagent-adapter-state.d.ts → subagents/adapter-state.d.ts} +2 -0
  479. package/dist/src/{execution/subagent-adapter-state.js → subagents/adapter-state.js} +1 -1
  480. package/dist/src/subagents/adapter.js +1 -0
  481. package/dist/src/{harness → subagents}/agent-handle-errors.d.ts +6 -0
  482. package/dist/src/subagents/agent-handle-errors.js +1 -0
  483. package/dist/src/subagents/callback-route.js +1 -0
  484. package/dist/src/subagents/callback-step.js +1 -0
  485. package/dist/src/{execution/agent-continuation-bundle.d.ts → subagents/continuation-bundle.d.ts} +1 -1
  486. package/dist/src/subagents/continuation-bundle.js +1 -0
  487. package/dist/src/{execution/subagent-event-proxy-step.d.ts → subagents/event-proxy-step.d.ts} +2 -8
  488. package/dist/src/subagents/event-proxy-step.js +1 -0
  489. package/dist/src/subagents/handle-dispatch.d.ts +54 -0
  490. package/dist/src/subagents/handle-dispatch.js +1 -0
  491. package/dist/src/{harness → subagents}/handles/prompt.d.ts +4 -4
  492. package/dist/src/{harness → subagents}/handles/prompt.js +1 -1
  493. package/dist/src/{harness → subagents}/handles/query.d.ts +8 -2
  494. package/dist/src/subagents/handles/query.js +1 -0
  495. package/dist/src/subagents/handles/rebase.d.ts +4 -0
  496. package/dist/src/subagents/handles/rebase.js +1 -0
  497. package/dist/src/{harness → subagents}/handles/store.d.ts +90 -15
  498. package/dist/src/subagents/handles/store.js +1 -0
  499. package/dist/src/subagents/handles/transitions.d.ts +103 -0
  500. package/dist/src/subagents/handles/transitions.js +1 -0
  501. package/dist/src/{execution/delegated-parent-notification.d.ts → subagents/parent-notification.d.ts} +1 -7
  502. package/dist/src/subagents/parent-notification.js +1 -0
  503. package/dist/src/subagents/parent-result.js +1 -0
  504. package/dist/src/{execution/remote-agent-dispatch.d.ts → subagents/remote-dispatch.d.ts} +3 -2
  505. package/dist/src/subagents/remote-dispatch.js +1 -0
  506. package/dist/src/{execution/subagent-start-local.d.ts → subagents/start-local.d.ts} +5 -6
  507. package/dist/src/subagents/start-local.js +1 -0
  508. package/dist/src/{execution/subagent-start-remote.d.ts → subagents/start-remote.d.ts} +5 -5
  509. package/dist/src/subagents/start-remote.js +1 -0
  510. package/dist/src/subagents/token-budget.js +1 -0
  511. package/dist/src/{execution/subagent-tool.d.ts → subagents/tool.d.ts} +5 -3
  512. package/dist/src/subagents/tool.js +1 -0
  513. package/dist/src/svelte/index.js +1 -1
  514. package/dist/src/svelte/use-eve-agent.js +1 -1
  515. package/dist/src/tasks/json.js +1 -1
  516. package/dist/src/tasks/session-index.d.ts +2 -3
  517. package/dist/src/tasks/session-index.js +1 -1
  518. package/dist/src/tasks/task-id.d.ts +3 -4
  519. package/dist/src/tasks/task-id.js +1 -1
  520. package/dist/src/tasks/transitions.d.ts +3 -47
  521. package/dist/src/tasks/transitions.js +1 -1
  522. package/dist/src/tasks/types.d.ts +70 -247
  523. package/dist/src/tasks/types.js +1 -1
  524. package/dist/src/tools/dynamic.d.ts +3 -1
  525. package/dist/src/tools/framework/agent.d.ts +18 -2
  526. package/dist/src/tools/framework/agent.js +1 -1
  527. package/dist/src/tools/framework/task-cancel.d.ts +2 -6
  528. package/dist/src/tools/framework/task-contract.d.ts +44 -65
  529. package/dist/src/tools/framework/task-contract.js +1 -1
  530. package/dist/src/tools/framework/task-update.d.ts +1 -0
  531. package/dist/src/tools/framework/task-update.js +1 -1
  532. package/dist/src/tools/provided/sleep.d.ts +2 -2
  533. package/dist/src/vue/index.js +1 -1
  534. package/dist/src/vue/use-eve-agent.js +1 -1
  535. package/docs/agent-config.md +24 -19
  536. package/docs/channels/eve.mdx +1 -1
  537. package/docs/concepts/built-in-tools.md +10 -91
  538. package/docs/concepts/context-control.md +2 -2
  539. package/docs/concepts/execution-model-and-durability.mdx +1 -1
  540. package/docs/concepts/sessions-runs-and-streaming.md +11 -3
  541. package/docs/guides/client/streaming.mdx +1 -1
  542. package/docs/guides/deployment/vercel.mdx +20 -2
  543. package/docs/guides/dynamic-capabilities.md +2 -2
  544. package/docs/guides/frontend/overview.mdx +1 -1
  545. package/docs/guides/instrumentation-providers.md +242 -0
  546. package/docs/guides/instrumentation.md +2 -0
  547. package/docs/guides/meta.json +1 -0
  548. package/docs/guides/remote-agents.md +8 -9
  549. package/docs/memory/overview.mdx +1 -1
  550. package/docs/reference/cli.md +5 -2
  551. package/docs/sandbox.mdx +3 -1
  552. package/docs/subagents/index.mdx +9 -8
  553. package/docs/tools/overview.mdx +11 -10
  554. package/docs/tools/workflows.mdx +52 -18
  555. package/package.json +38 -13
  556. package/dist/src/compiled/@vercel/sandbox-delete/api-client/index.d.ts +0 -2
  557. package/dist/src/compiled/@vercel/sandbox-delete/index.js +0 -9
  558. package/dist/src/compiled/@vercel/sandbox-stable/LICENSE +0 -201
  559. package/dist/src/compiled/@vercel/sandbox-stable/_async-retry.d.ts +0 -8
  560. package/dist/src/compiled/@vercel/sandbox-stable/_workflow-serde.d.ts +0 -5
  561. package/dist/src/compiled/@vercel/sandbox-stable/api-client/api-client.d.ts +0 -1456
  562. package/dist/src/compiled/@vercel/sandbox-stable/api-client/api-error.d.ts +0 -29
  563. package/dist/src/compiled/@vercel/sandbox-stable/api-client/base-client.d.ts +0 -39
  564. package/dist/src/compiled/@vercel/sandbox-stable/api-client/file-writer.d.ts +0 -66
  565. package/dist/src/compiled/@vercel/sandbox-stable/api-client/index.d.ts +0 -2
  566. package/dist/src/compiled/@vercel/sandbox-stable/api-client/validators.d.ts +0 -899
  567. package/dist/src/compiled/@vercel/sandbox-stable/api-client/with-retry.d.ts +0 -10
  568. package/dist/src/compiled/@vercel/sandbox-stable/auth/error.d.ts +0 -15
  569. package/dist/src/compiled/@vercel/sandbox-stable/auth/file.d.ts +0 -18
  570. package/dist/src/compiled/@vercel/sandbox-stable/auth/index.d.ts +0 -6
  571. package/dist/src/compiled/@vercel/sandbox-stable/auth/oauth.d.ts +0 -111
  572. package/dist/src/compiled/@vercel/sandbox-stable/auth/poll-for-token.d.ts +0 -28
  573. package/dist/src/compiled/@vercel/sandbox-stable/auth/project.d.ts +0 -40
  574. package/dist/src/compiled/@vercel/sandbox-stable/command.d.ts +0 -292
  575. package/dist/src/compiled/@vercel/sandbox-stable/constants.d.ts +0 -5
  576. package/dist/src/compiled/@vercel/sandbox-stable/execution-context.d.ts +0 -116
  577. package/dist/src/compiled/@vercel/sandbox-stable/filesystem.d.ts +0 -258
  578. package/dist/src/compiled/@vercel/sandbox-stable/index.d.ts +0 -12
  579. package/dist/src/compiled/@vercel/sandbox-stable/index.js +0 -1
  580. package/dist/src/compiled/@vercel/sandbox-stable/network-policy.d.ts +0 -169
  581. package/dist/src/compiled/@vercel/sandbox-stable/proxy.d.ts +0 -55
  582. package/dist/src/compiled/@vercel/sandbox-stable/sandbox-user.d.ts +0 -212
  583. package/dist/src/compiled/@vercel/sandbox-stable/sandbox.d.ts +0 -1216
  584. package/dist/src/compiled/@vercel/sandbox-stable/session.d.ts +0 -433
  585. package/dist/src/compiled/@vercel/sandbox-stable/snapshot.d.ts +0 -229
  586. package/dist/src/compiled/@vercel/sandbox-stable/utils/get-credentials.d.ts +0 -21
  587. package/dist/src/compiled/@vercel/sandbox-stable/utils/paginator.d.ts +0 -16
  588. package/dist/src/compiled/@vercel/sandbox-stable/utils/resolveSignal.d.ts +0 -15
  589. package/dist/src/compiled/@vercel/sandbox-stable/utils/sandbox-snapshot.d.ts +0 -11
  590. package/dist/src/compiled/@vercel/sandbox-stable/utils/types.d.ts +0 -11
  591. package/dist/src/compiled/_chunks/node/decode_jwt-Col8JOnf.js +0 -7
  592. package/dist/src/compiled/_chunks/node/version-BYHw-SDY.js +0 -1
  593. package/dist/src/compiled/_chunks/node/version-DH6yRy-M.js +0 -1
  594. package/dist/src/compiled/_chunks/workflow/dist-CgbVZs5l.js +0 -40
  595. package/dist/src/compiled/_chunks/workflow/dist-DjojkP5e.js +0 -3
  596. package/dist/src/compiled/_chunks/workflow/frames-CZ9eHShe.js +0 -3
  597. package/dist/src/compiled/_chunks/workflow/run-DzyAoGh4.js +0 -1
  598. package/dist/src/compiled/_chunks/workflow/sleep-3_A5uOp-.js +0 -1
  599. package/dist/src/compiled/_chunks/workflow/wait-until-BtySPYD0.js +0 -15
  600. package/dist/src/execution/agent-continuation-bundle.js +0 -1
  601. package/dist/src/execution/agent-handle-dispatch.d.ts +0 -79
  602. package/dist/src/execution/agent-handle-dispatch.js +0 -1
  603. package/dist/src/execution/delegated-parent-notification.js +0 -1
  604. package/dist/src/execution/delegated-parent-result.js +0 -1
  605. package/dist/src/execution/delegation-tool.d.ts +0 -10
  606. package/dist/src/execution/delegation-tool.js +0 -1
  607. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +0 -165
  608. package/dist/src/execution/dispatch-runtime-actions-shared.js +0 -1
  609. package/dist/src/execution/dispatch-runtime-actions-start.js +0 -1
  610. package/dist/src/execution/dispatch-runtime-actions-step.d.ts +0 -18
  611. package/dist/src/execution/dispatch-runtime-actions-step.js +0 -1
  612. package/dist/src/execution/dispatch-workflow-runtime-actions-step.d.ts +0 -18
  613. package/dist/src/execution/dispatch-workflow-runtime-actions-step.js +0 -1
  614. package/dist/src/execution/finalize-terminal-session.d.ts +0 -17
  615. package/dist/src/execution/finalize-terminal-session.js +0 -1
  616. package/dist/src/execution/prepared-agent-action.d.ts +0 -7
  617. package/dist/src/execution/prepared-agent-action.js +0 -1
  618. package/dist/src/execution/remote-agent-dispatch.js +0 -1
  619. package/dist/src/execution/session-callback-route.js +0 -1
  620. package/dist/src/execution/session-callback-step.js +0 -1
  621. package/dist/src/execution/subagent-adapter.js +0 -1
  622. package/dist/src/execution/subagent-event-proxy-step.js +0 -1
  623. package/dist/src/execution/subagent-start-local.js +0 -1
  624. package/dist/src/execution/subagent-start-remote.js +0 -1
  625. package/dist/src/execution/subagent-tool.js +0 -1
  626. package/dist/src/execution/tasks/child/instructions.d.ts +0 -3
  627. package/dist/src/execution/tasks/child/instructions.js +0 -1
  628. package/dist/src/execution/tasks/parent/agent-identity.d.ts +0 -13
  629. package/dist/src/execution/tasks/parent/agent-identity.js +0 -1
  630. package/dist/src/execution/tasks/parent/agent-views.d.ts +0 -7
  631. package/dist/src/execution/tasks/parent/agent-views.js +0 -1
  632. package/dist/src/execution/tasks/parent/continuation-dispatch.d.ts +0 -43
  633. package/dist/src/execution/tasks/parent/continuation-dispatch.js +0 -1
  634. package/dist/src/execution/tasks/parent/dispatch-task-step.d.ts +0 -19
  635. package/dist/src/execution/tasks/parent/dispatch-task-step.js +0 -1
  636. package/dist/src/execution/tool-run/answer.js +0 -1
  637. package/dist/src/execution/tool-run/background.d.ts +0 -14
  638. package/dist/src/execution/tool-run/background.js +0 -1
  639. package/dist/src/execution/tool-run/cancel.d.ts +0 -7
  640. package/dist/src/execution/tool-run/cancel.js +0 -1
  641. package/dist/src/execution/tool-run/dispatch.d.ts +0 -24
  642. package/dist/src/execution/tool-run/dispatch.js +0 -1
  643. package/dist/src/execution/tool-run/emit-run-report-step.d.ts +0 -7
  644. package/dist/src/execution/tool-run/emit-run-report-step.js +0 -1
  645. package/dist/src/execution/tool-run/messages.d.ts +0 -70
  646. package/dist/src/execution/tool-run/messages.js +0 -1
  647. package/dist/src/execution/tool-run/owner-inbox.d.ts +0 -11
  648. package/dist/src/execution/tool-run/owner-inbox.js +0 -1
  649. package/dist/src/execution/tool-run/owner.d.ts +0 -13
  650. package/dist/src/execution/tool-run/owner.js +0 -1
  651. package/dist/src/execution/tool-run/run-control.d.ts +0 -18
  652. package/dist/src/execution/tool-run/run-control.js +0 -1
  653. package/dist/src/execution/tool-run/start.d.ts +0 -11
  654. package/dist/src/execution/tool-run/start.js +0 -1
  655. package/dist/src/execution/tool-run/types.d.ts +0 -21
  656. package/dist/src/execution/tool-run/types.js +0 -1
  657. package/dist/src/execution/tool-run/workflow.d.ts +0 -9
  658. package/dist/src/execution/tool-run/workflow.js +0 -1
  659. package/dist/src/execution/tools/subagent/local.d.ts +0 -40
  660. package/dist/src/execution/tools/subagent/local.js +0 -1
  661. package/dist/src/execution/tools/subagent/remote.d.ts +0 -26
  662. package/dist/src/execution/tools/subagent/remote.js +0 -1
  663. package/dist/src/harness/agent-handle-errors.js +0 -1
  664. package/dist/src/harness/handles/query.js +0 -1
  665. package/dist/src/harness/handles/store.js +0 -1
  666. package/dist/src/harness/handles/transitions.d.ts +0 -167
  667. package/dist/src/harness/handles/transitions.js +0 -1
  668. package/dist/src/harness/runtime-actions.js +0 -1
  669. package/dist/src/harness/session-token-limits.d.ts +0 -41
  670. package/dist/src/harness/session-token-limits.js +0 -1
  671. package/dist/src/harness/subagent-depth.d.ts +0 -10
  672. package/dist/src/harness/subagent-depth.js +0 -1
  673. package/dist/src/harness/subagent-token-budget.js +0 -1
  674. package/dist/src/harness/tool-runs.d.ts +0 -21
  675. package/dist/src/harness/tool-runs.js +0 -1
  676. package/dist/src/harness/turn-sleep.d.ts +0 -12
  677. package/dist/src/harness/turn-sleep.js +0 -1
  678. package/dist/src/harness/workflow-runtime-action-state.d.ts +0 -9
  679. package/dist/src/harness/workflow-runtime-action-state.js +0 -1
  680. package/dist/src/node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js +0 -16
  681. package/dist/src/node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/index.js +0 -1
  682. package/dist/src/node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/utils.js +0 -1
  683. package/dist/src/node_modules/.pnpm/fast-string-width@3.0.2/node_modules/fast-string-width/dist/index.js +0 -1
  684. package/dist/src/node_modules/.pnpm/fast-wrap-ansi@0.2.2/node_modules/fast-wrap-ansi/lib/main.js +0 -5
  685. package/dist/src/node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js +0 -1
  686. package/dist/src/runtime/actions/keys.d.ts +0 -14
  687. package/dist/src/runtime/actions/keys.js +0 -1
  688. package/dist/src/tasks/wire.d.ts +0 -25
  689. package/dist/src/tasks/wire.js +0 -1
  690. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/LICENSE +0 -0
  691. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/_async-retry.d.ts +0 -0
  692. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/_workflow-serde.d.ts +0 -0
  693. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/api-error.d.ts +0 -0
  694. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/base-client.d.ts +0 -0
  695. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/file-writer.d.ts +0 -0
  696. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/with-retry.d.ts +0 -0
  697. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/error.d.ts +0 -0
  698. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/file.d.ts +0 -0
  699. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/index.d.ts +0 -0
  700. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/oauth.d.ts +0 -0
  701. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/poll-for-token.d.ts +0 -0
  702. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/project.d.ts +0 -0
  703. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/command.d.ts +0 -0
  704. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/execution-context.d.ts +0 -0
  705. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/filesystem.d.ts +0 -0
  706. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/network-policy.d.ts +0 -0
  707. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/proxy.d.ts +0 -0
  708. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/sandbox-user.d.ts +0 -0
  709. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/session.d.ts +0 -0
  710. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/snapshot.d.ts +0 -0
  711. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/get-credentials.d.ts +0 -0
  712. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/paginator.d.ts +0 -0
  713. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/resolveSignal.d.ts +0 -0
  714. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/sandbox-snapshot.d.ts +0 -0
  715. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/types.d.ts +0 -0
  716. /package/dist/src/execution/{tool-run → tools/workflow}/owner-channels.d.ts +0 -0
  717. /package/dist/src/execution/{tool-run → tools/workflow}/owner-channels.js +0 -0
  718. /package/dist/src/execution/{tool-run → tools/workflow}/resume-hook-step.d.ts +0 -0
  719. /package/dist/src/execution/{tool-run → tools/workflow}/resume-hook-step.js +0 -0
  720. /package/dist/src/{execution/subagent-adapter.d.ts → subagents/adapter.d.ts} +0 -0
  721. /package/dist/src/{execution/session-callback-route.d.ts → subagents/callback-route.d.ts} +0 -0
  722. /package/dist/src/{execution/session-callback-step.d.ts → subagents/callback-step.d.ts} +0 -0
  723. /package/dist/src/{harness → subagents}/handles/operation-id.d.ts +0 -0
  724. /package/dist/src/{harness → subagents}/handles/operation-id.js +0 -0
  725. /package/dist/src/{harness → subagents}/handles/state-key.d.ts +0 -0
  726. /package/dist/src/{harness → subagents}/handles/state-key.js +0 -0
  727. /package/dist/src/{execution/subagent-hitl-proxy.d.ts → subagents/hitl-proxy.d.ts} +0 -0
  728. /package/dist/src/{execution/subagent-hitl-proxy.js → subagents/hitl-proxy.js} +0 -0
  729. /package/dist/src/{execution/subagent-invocation.d.ts → subagents/invocation.d.ts} +0 -0
  730. /package/dist/src/{execution/subagent-invocation.js → subagents/invocation.js} +0 -0
  731. /package/dist/src/{execution/delegated-parent-result.d.ts → subagents/parent-result.d.ts} +0 -0
  732. /package/dist/src/{execution/remote-agent-route-url.d.ts → subagents/remote-route-url.d.ts} +0 -0
  733. /package/dist/src/{execution/remote-agent-route-url.js → subagents/remote-route-url.js} +0 -0
  734. /package/dist/src/{harness/subagent-token-budget.d.ts → subagents/token-budget.d.ts} +0 -0
@@ -1 +0,0 @@
1
- import{toErrorMessage}from"#shared/errors.js";import{CHANNEL_CONTEXT_KEY_NAME}from"#context/key-names.js";import{SUBAGENT_EXECUTION_FAILED}from"#harness/agent-handle-errors.js";import{SUBAGENT_ADAPTER_KIND}from"#execution/subagent-adapter-state.js";const ZERO_TOKEN_USAGE={cacheReadTokens:0,cacheWriteTokens:0,inputTokens:0,outputTokens:0};function createDelegatedSubagentSuccessResult(e,n){let i=e[CHANNEL_CONTEXT_KEY_NAME];if(i?.kind===SUBAGENT_ADAPTER_KIND)return{callId:String(i.state?.callId??``),kind:`subagent-result`,origin:`child`,outcome:{kind:`terminal`,result:{kind:`succeeded`,output:n},usageDelta:ZERO_TOKEN_USAGE},output:n,subagentName:String(i.state?.subagentName??``)}}function createDelegatedSubagentErrorResult(t,r){let i=createDelegatedSubagentSuccessResult(t,``);if(i===void 0)return;let a={code:SUBAGENT_EXECUTION_FAILED,message:toErrorMessage(r)};return{...i,isError:!0,outcome:{kind:`terminal`,result:{error:a,kind:`failed`},usageDelta:ZERO_TOKEN_USAGE},output:a}}export{createDelegatedSubagentErrorResult,createDelegatedSubagentSuccessResult};
@@ -1,10 +0,0 @@
1
- import type { HarnessToolDefinition } from "#harness/execute-tool.js";
2
- import type { PreparedRuntimeDelegationTool } from "#runtime/sessions/turn.js";
3
- import { type ToolSchemaSource } from "#tools/schema.js";
4
- type HarnessDelegationTool = Pick<PreparedRuntimeDelegationTool, "behavior" | "description" | "name"> & {
5
- readonly inputSchema?: ToolSchemaSource | null;
6
- readonly outputSchema?: ToolSchemaSource | null;
7
- };
8
- export declare function createHarnessDelegationToolDefinition(tool: HarnessDelegationTool): HarnessToolDefinition;
9
- export declare function createBackgroundSubagentHarnessDefinition(tool: HarnessDelegationTool): HarnessToolDefinition;
10
- export {};
@@ -1 +0,0 @@
1
- import{UNSPECIFIED_INPUT_SCHEMA,toInputSchema,toOutputSchema}from"#tools/schema.js";import{createToolExecuteWithAuth}from"#execution/tool-auth.js";import{defineSubagent}from"#execution/tools/subagent/local.js";import{defineRemoteSubagent}from"#execution/tools/subagent/remote.js";function createHarnessDelegationToolDefinition(t){return{behavior:t.behavior,description:t.description??``,inputSchema:toInputSchema(t.inputSchema)??UNSPECIFIED_INPUT_SCHEMA,name:t.name,outputSchema:toOutputSchema(t.outputSchema)??void 0}}function createBackgroundSubagentHarnessDefinition(n){let r=n.behavior?.handling;if(r?.kind!==`dispatch`)throw Error(`Background subagent tool "${n.name}" has no prepared dispatch target.`);if(r.target.kind===`task-cancel`||r.target.kind===`task-update`||r.target.kind===`workflow-tool-call`)throw Error(`Background subagent tool "${n.name}" cannot dispatch ${r.target.kind}.`);let i=createBackgroundSubagentDefinition({description:n.description??``,name:n.name,target:r.target}),a=createToolExecuteWithAuth({execute:i.execute,execution:i.execution,scope:n.name});return{behavior:n.behavior,description:i.description,execute:a,execution:i.execution,inputSchema:toInputSchema(i.inputSchema)??UNSPECIFIED_INPUT_SCHEMA,name:n.name,outputSchema:toOutputSchema(i.outputSchema)??void 0}}function createBackgroundSubagentDefinition(e){switch(e.target.kind){case`remote-agent-call`:return defineRemoteSubagent({description:e.description,name:e.name,target:e.target});case`self-agent-call`:case`subagent-call`:return defineSubagent({description:e.description,name:e.name,target:e.target})}}export{createBackgroundSubagentHarnessDefinition,createHarnessDelegationToolDefinition};
@@ -1,165 +0,0 @@
1
- /**
2
- * Machinery shared by the two runtime-action dispatch steps:
3
- * `dispatchRuntimeActionsStep` (plain mode) and `dispatchTaskStep`
4
- * (task mode). Both run the same preflight → plan → dispatch → emit
5
- * skeleton over one pending batch and differ only in the per-entry
6
- * delegation lifecycle, so planning and the replay-safe
7
- * `subagent.called` emission tail live here.
8
- */
9
- import type { ActivityObserverConfig, SessionParent } from "#channel/types.js";
10
- import { type ChannelAdapter, type ChannelAdapterContext } from "#channel/adapter.js";
11
- import { type LocalDevRequestProvenance } from "#context/keys.js";
12
- import { type AlsContext } from "#context/container.js";
13
- import { type CompiledBundle } from "#runtime/sessions/runtime-context-keys.js";
14
- import { type DispatchOutcome, type RuntimeAgentHandleAction, type RuntimeSession } from "#execution/agent-handle-dispatch.js";
15
- import { getPendingRuntimeActionBatch } from "#harness/runtime-actions.js";
16
- import type { ActivityWorkIdentityV1 } from "#protocol/activity.js";
17
- import type { RuntimeActionResult, RuntimeRemoteAgentCallActionRequest, RuntimeSubagentCallActionRequest, RuntimeSubagentDispatchFailure } from "#shared/action-types.js";
18
- import type { PendingAgentDispatchAction, PendingTaskControlAction, PendingWorkflowToolAction } from "#shared/dispatch-action.js";
19
- import { type DurableSessionState } from "#execution/durable-session-store.js";
20
- import { buildSubagentRunInput, type SubagentInputSource } from "#execution/subagent-tool.js";
21
- import { getDynamicSubagentSelection } from "#context/dynamic-subagent-lifecycle.js";
22
- type DynamicSubagentAgentConfig = NonNullable<Extract<ReturnType<typeof getDynamicSubagentSelection>, {
23
- readonly kind: "subagent";
24
- }>["agentConfig"]>;
25
- type DynamicRemoteAgentConfig = NonNullable<Extract<ReturnType<typeof getDynamicSubagentSelection>, {
26
- readonly kind: "remote";
27
- }>["remoteAgent"]>;
28
- export type DispatchPlanEntry = {
29
- readonly kind: "resume";
30
- readonly action: RuntimeAgentHandleAction;
31
- readonly agentId: string;
32
- readonly dynamicRemoteAgent?: DynamicRemoteAgentConfig;
33
- } | {
34
- readonly kind: "reject";
35
- readonly result: RuntimeSubagentDispatchFailure;
36
- } | {
37
- readonly kind: "start";
38
- readonly target: DispatchStartTarget;
39
- } | {
40
- readonly kind: "task-control";
41
- readonly action: PendingTaskControlAction;
42
- } | {
43
- readonly kind: "workflow-tool";
44
- readonly action: PendingWorkflowToolAction;
45
- };
46
- export type DispatchStartTarget = {
47
- readonly kind: "local";
48
- readonly action: RuntimeSubagentCallActionRequest;
49
- readonly dynamicSubagentAgentConfig?: DynamicSubagentAgentConfig;
50
- readonly selfAgent: boolean;
51
- readonly source: SubagentInputSource;
52
- } | {
53
- readonly kind: "remote";
54
- readonly action: RuntimeRemoteAgentCallActionRequest;
55
- readonly dynamicRemoteAgent?: DynamicRemoteAgentConfig;
56
- };
57
- /** Input contract shared by both dispatch steps so the turn workflow can select either. */
58
- export interface RuntimeActionDispatchInput {
59
- readonly callbackBaseUrl?: string;
60
- /** Internal hook that receives child completion and HITL payloads. */
61
- readonly parentContinuationToken?: string;
62
- readonly parentWritable: WritableStream<Uint8Array>;
63
- readonly serializedContext: Record<string, unknown>;
64
- readonly sessionState: DurableSessionState;
65
- }
66
- /**
67
- * Result contract shared by both dispatch steps. `pendingTasks` is
68
- * always empty in plain mode; keeping it on both keeps the turn
69
- * workflow's acknowledgement call site uniform.
70
- */
71
- export interface RuntimeActionDispatchResult {
72
- readonly results: readonly RuntimeActionResult[];
73
- readonly sessionState: DurableSessionState;
74
- readonly pendingTasks: readonly {
75
- readonly taskInboxToken: string;
76
- readonly taskId: string;
77
- readonly taskRunId: string;
78
- }[];
79
- }
80
- /** Everything preflight produces before either step's dispatch loop runs. */
81
- export interface PreparedRuntimeActionDispatch {
82
- readonly adapter: ChannelAdapter;
83
- readonly adapterCtx: ChannelAdapterContext;
84
- readonly auth: Parameters<typeof buildSubagentRunInput>[0]["auth"];
85
- readonly batch: NonNullable<ReturnType<typeof getPendingRuntimeActionBatch>>;
86
- readonly bundle: CompiledBundle;
87
- readonly capabilities: Parameters<typeof buildSubagentRunInput>[0]["capabilities"];
88
- readonly channelMetadata: Parameters<typeof buildSubagentRunInput>[0]["channelMetadata"];
89
- /**
90
- * Number of freshly started local subagents in the plan. The parent's
91
- * remaining token quota is split across these, the children that
92
- * actually receive an enforced cap: continuations already run under
93
- * their own budget, and remote agents run on their own deployment
94
- * under their own limits, so neither dilutes the local shares.
95
- */
96
- readonly fanoutSize: number;
97
- readonly initiatorAuth: Parameters<typeof buildSubagentRunInput>[0]["initiatorAuth"];
98
- readonly localDevRequest?: LocalDevRequestProvenance;
99
- /** Lineage of the session running this dispatch, when it is itself a delegated child. */
100
- readonly parentSession: SessionParent | undefined;
101
- readonly parentTraceContext: Parameters<typeof buildSubagentRunInput>[0]["parentTraceContext"];
102
- readonly activityObserver?: ActivityObserverConfig & {
103
- readonly workIdentity: ActivityWorkIdentityV1;
104
- };
105
- readonly sandboxSessionId: string;
106
- readonly serializedContext: Record<string, unknown>;
107
- readonly plan: readonly DispatchPlanEntry[];
108
- readonly session: RuntimeSession;
109
- }
110
- interface PreparedPendingRuntimeActionDispatch extends PreparedRuntimeActionDispatch {
111
- /** Returns the durable baseline corresponding to `session`. */
112
- readonly getBaselineSessionState: () => DurableSessionState;
113
- }
114
- /**
115
- * Runs every dispatch precondition that may throw — durable reads, context
116
- * deserialization, handle-store validation, and batch planning — before
117
- * the caller acquires the parent stream writer, so a preflight failure
118
- * never leaks the writer lock. Returns undefined when no actions are
119
- * pending.
120
- */
121
- export declare function prepareRuntimeActionDispatch(input: {
122
- readonly serializedContext: Record<string, unknown>;
123
- readonly sessionState: DurableSessionState;
124
- /**
125
- * Classify task-control calls as
126
- * task-control plan entries. Only task mode plans them; in plain mode
127
- * those calls fail as unsupported batch actions.
128
- */
129
- readonly taskControls: boolean;
130
- }): Promise<PreparedPendingRuntimeActionDispatch | undefined>;
131
- export declare function prepareAgentActionDispatch(input: {
132
- readonly action: PendingAgentDispatchAction;
133
- readonly ctx: AlsContext;
134
- readonly event: {
135
- readonly sequence: number;
136
- readonly stepIndex: number;
137
- readonly turnId: string;
138
- };
139
- readonly localFanoutSize: number;
140
- readonly serializedContext: Record<string, unknown>;
141
- readonly sessionState: DurableSessionState;
142
- }): Promise<PreparedRuntimeActionDispatch>;
143
- /**
144
- * Emits the parent `subagent.called` control-plane event for one adopted
145
- * child. Emission is observability, not control flow: a failure is logged
146
- * and swallowed, because a throw escaping the dispatch loop would durably
147
- * replay the step and re-dispatch children that already started.
148
- */
149
- export declare function emitSubagentCalled(input: {
150
- readonly adapter: ChannelAdapter;
151
- readonly adapterCtx: ChannelAdapterContext;
152
- readonly batchEvent: {
153
- readonly sequence: number;
154
- readonly turnId: string;
155
- };
156
- readonly entry: Extract<DispatchPlanEntry, {
157
- readonly kind: "resume" | "start";
158
- }>;
159
- readonly outcome: Extract<DispatchOutcome, {
160
- readonly kind: "called";
161
- }>;
162
- readonly sessionId: string;
163
- readonly writer: WritableStreamDefaultWriter<Uint8Array>;
164
- }): Promise<void>;
165
- export {};
@@ -1 +0,0 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{callAdapterEventHandler}from"#channel/adapter.js";import{ContextContainer}from"#context/container.js";import{ActivityObserverKey,AuthKey,CapabilitiesKey,ChannelInstrumentationKey,InitiatorAuthKey,ParentSessionKey,SandboxKey}from"#context/keys.js";import{createSubagentCalledEvent,encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{workflowEntryReference}from"#execution/workflow-runtime.js";import{deriveRootTurnActivityWorkId}from"#execution/activity-work-id.js";import{getAgentHandleStore}from"#harness/handles/store.js";import{deserializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{getDynamicSubagentSelection}from"#context/dynamic-subagent-lifecycle.js";import{hydrateDurableSession}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{withContextScope}from"#context/run-step.js";import"#execution/agent-handle-dispatch.js";import{assertUniqueRuntimeActionCallIds,getPendingRuntimeActionBatch,setPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{activeTurnId}from"#harness/active-turn-id.js";import{createRecursiveAgentRootOnlyResult,createUnavailableDynamicSubagentResult,getSubagentName}from"#execution/dispatch-action-failures.js";import"#execution/subagent-tool.js";import{readSessionTraceContext}from"#tracing/agent-trace-context-store.js";import{isSubagentDelegationAction,resolveSubagentDepth}from"#harness/subagent-depth.js";import{isTaskControlAction}from"#execution/tasks/parent/dispatch.js";import{isWorkflowToolAction}from"#execution/tool-run/dispatch.js";import{resolvePreparedAgentAction}from"#execution/prepared-agent-action.js";const log=createLogger(`execution.dispatch-runtime-actions`);async function prepareRuntimeActionDispatch(e){let t=await readDurableSession(e.sessionState),n=getPendingRuntimeActionBatch(t.state);if(n===void 0||n.actions.length===0)return;let r=n.event.turnId||activeTurnId(e.sessionState.emissionState),i=n.event.turnId!==r,a=i?{...n,event:{...n.event,turnId:r}}:n,o=await prepareActionDispatch({batch:a,ctx:await deserializeContext(e.serializedContext),durableSession:t,serializedContext:e.serializedContext,taskControls:e.taskControls});if(!i)return{...o,getBaselineSessionState:()=>e.sessionState};let s=setPendingRuntimeActionBatch({...a,session:o.session});return{...o,getBaselineSessionState:()=>createDurableSessionState({session:s}),session:s}}async function prepareAgentActionDispatch(e){let t=await readDurableSession(e.sessionState);return await prepareActionDispatch({batch:{actions:[e.action],event:e.event,responseMessages:[]},ctx:copyDurableContext(e.ctx),durableSession:t,fanoutSize:e.localFanoutSize,serializedContext:e.serializedContext,taskControls:!1})}function copyDurableContext(e){let t=new ContextContainer;for(let[n,r]of e.entries())t.set(n,r);return t}async function prepareActionDispatch(e){let{batch:t,durableSession:n}=e;assertUniqueRuntimeActionCallIds(t.actions);let r=e.ctx,c=r.require(BundleKey),l=resolveEffectiveAgentRuntime(c,r),u=hydrateDurableSession({compactionOverrides:{thresholdPercent:l.thresholdPercent},durable:n,turnAgent:l.turnAgent}),d=r.require(ChannelKey);getAgentHandleStore(n.state);let f=planDispatch({actions:t.actions,bundle:c,ctx:r,session:u,taskControls:e.taskControls}),p=resolveActiveSandboxSessionId(d.state,u.sessionId);if(planSharesSandbox({bundle:c,plan:f}))try{u=(await withContextScope(r,u,async e=>(await r.require(SandboxKey).get(),{result:void 0,session:e}))).session}finally{r.clearVirtualContext()}return{adapter:d,adapterCtx:buildAdapterContext(d,r),auth:r.get(AuthKey)??null,batch:t,bundle:c,capabilities:r.get(CapabilitiesKey),channelMetadata:r.get(ChannelInstrumentationKey),fanoutSize:e.fanoutSize??f.filter(e=>e.kind===`start`&&e.target.kind===`local`).length,initiatorAuth:r.get(InitiatorAuthKey)??null,localDevRequest:r.localDevRequest,parentSession:r.get(ParentSessionKey),parentTraceContext:readSessionTraceContext(e.serializedContext,u.sessionId),plan:f,activityObserver:resolvePreparedActivity(r.get(ActivityObserverKey),u,t.event.turnId),sandboxSessionId:p,serializedContext:e.serializedContext,session:u}}function resolvePreparedActivity(e,t,n){if(e!==void 0)return{sink:e.sink,workIdentity:e.workIdentity??{id:deriveRootTurnActivityWorkId({sessionId:t.sessionId,turnId:n}),kind:`root-turn`,rootSessionId:t.rootSessionId??t.sessionId,rootTurnId:n,sessionId:t.sessionId,turnId:n}}}function planSharesSandbox(e){let t=e.bundle.graph;return e.plan.some(e=>e.kind!==`start`||e.target.kind!==`local`?!1:e.target.selfAgent||t?.nodesByNodeId.get(e.target.action.nodeId)?.sandboxRegistry.sandbox.definition.inheritsParent===!0)}function resolveActiveSandboxSessionId(e,t){if(typeof e!=`object`||!e)return t;let n=e.sandboxSessionId;return typeof n==`string`&&n.length>0?n:t}async function emitSubagentCalled(e){let{entry:r,outcome:i}=e;try{let t=r.kind===`resume`?r.action:r.target.action,a=r.kind===`resume`?r.dynamicRemoteAgent:r.target.kind===`remote`?r.target.dynamicRemoteAgent:void 0,o=await callAdapterEventHandler(e.adapter,createSubagentCalledEvent({callId:i.callId,childSessionId:i.address.sessionId,name:i.name,remote:i.address.kind===`agent/remote`?{resolverId:a===void 0?t.nodeId:a.credentialsStepId,url:i.address.url}:void 0,sequence:e.batchEvent.sequence,sessionId:e.sessionId,toolName:i.toolName,turnId:e.batchEvent.turnId,workflowId:workflowEntryReference.workflowId}),e.adapterCtx);await e.writer.write(encodeMessageStreamEvent(stampMessageStreamEvent(o)))}catch(e){logError(log,`subagent.called emission failed`,e,{callId:i.callId,childSessionId:i.address.sessionId,toolName:i.toolName})}}function planDispatch(e){let t=getAgentHandleStore(e.session.state)?.handles??[];return e.actions.map(n=>{if(e.taskControls&&isTaskControlAction(n))return{action:n,kind:`task-control`};if(isWorkflowToolAction(n))return{action:n,kind:`workflow-tool`};if(!isSubagentDelegationAction(n))throw Error(`Unsupported prepared dispatch target "${n.target.kind}" in workflow runtime.`);let r=resolvePreparedAgentAction(n),i=n.input.agentId,a=typeof i==`string`&&i.trim()!==``?i:void 0;if(a!==void 0){if(t.some(e=>e.identity.id===a)){let t=e.bundle.subagentRegistry.dynamicNodeIds?.has(r.action.nodeId)===!0?getDynamicSubagentSelection(e.ctx,r.action.nodeId):void 0;return{action:r.action,agentId:a,dynamicRemoteAgent:r.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:a,callId:n.callId})}return classifyFreshStart({action:r.action,bundle:e.bundle,ctx:e.ctx,selfAgent:r.selfAgent,session:e.session})})}function classifyFreshStart(e){let{action:t}=e,n=e.bundle.subagentRegistry.subagentsByNodeId,r=resolveSubagentDepth(e.session),i=e.session.rootSessionId!==void 0||r.currentDepth>0,a=(t.kind===`subagent-call`||t.kind===`remote-agent-call`)&&e.bundle.subagentRegistry.dynamicNodeIds?.has(t.nodeId)===!0,o=a?getDynamicSubagentSelection(e.ctx,t.nodeId):void 0;if(a&&(o===void 0||t.kind===`subagent-call`&&o.kind!==`subagent`||t.kind===`remote-agent-call`&&o.kind!==`remote`)){let e=getSubagentName(t);return log.warn(`dynamic subagent call blocked after availability changed`,{callId:t.callId,nodeId:t.nodeId,subagentName:e}),{kind:`reject`,result:createUnavailableDynamicSubagentResult(t)}}if(e.selfAgent&&t.kind!==`subagent-call`)throw Error(`A self-agent dispatch target must resolve to a local subagent action.`);if(e.selfAgent&&i&&t.kind===`subagent-call`)return log.warn(`recursive agent call blocked outside the root session`,{callId:t.callId,currentDepth:r.currentDepth,nodeId:t.nodeId,subagentName:t.subagentName}),{kind:`reject`,result:createRecursiveAgentRootOnlyResult(t)};switch(t.kind){case`subagent-call`:{let r=o?.kind===`subagent`?o.agentConfig:void 0,i=n.get(t.nodeId),a=r?.description??(i?.definition.kind===`subagent`?i.definition.description:void 0),s=a===void 0?{outputSchema:e.bundle.turnAgent.outputSchema,type:`runtime`}:{description:a,outputSchema:r?.outputSchema??e.bundle.graph?.nodesByNodeId.get(t.nodeId)?.turnAgent?.outputSchema,type:`local`};return{kind:`start`,target:{action:t,dynamicSubagentAgentConfig:r,kind:`local`,selfAgent:e.selfAgent,source:s}}}case`remote-agent-call`:return{kind:`start`,target:{action:t,dynamicRemoteAgent:o?.kind===`remote`?o.remoteAgent:void 0,kind:`remote`}};default:return t}}export{emitSubagentCalled,prepareAgentActionDispatch,prepareRuntimeActionDispatch};
@@ -1 +0,0 @@
1
- import{normalizeChannelAudience}from"#shared/channel-audience.js";import{applyLiveDeliveryAudienceCeiling,readForwardedTraceAssertion}from"#shared/forwarded-trace-policy.js";import"#execution/subagent-tool.js";import{readActionTraceContext}from"#tracing/agent-trace-context-store.js";import{startLocalSubagent}from"#execution/subagent-start-local.js";import{startRemoteSubagent}from"#execution/subagent-start-remote.js";async function startSubagent(e){let t=readActionTraceContext(e.serializedContext,e.session.sessionId,e.batchEvent.turnId,e.target.action.callId)??e.parentTraceContext,n=readForwardedTraceAssertion(t?.forwardedTracePolicy),r=normalizeChannelAudience(e.channelMetadata?.metadata.audience),i=t?.decision===void 0?t:{...t,decision:applyLiveDeliveryAudienceCeiling(t.decision,r,n)};switch(e.target.kind){case`local`:return startLocalSubagent({action:e.target.action,auth:e.auth,batchEvent:e.batchEvent,bundle:e.bundle,capabilities:e.capabilities,channelMetadata:e.channelMetadata,currentSession:e.currentSession,dynamicSubagentAgentConfig:e.target.dynamicSubagentAgentConfig,fanoutSize:e.fanoutSize,initiatorAuth:e.initiatorAuth,localDevRequest:e.localDevRequest,parentContinuationToken:e.parentContinuationToken,parentTraceContext:i,activityObserver:e.activityObserver,sandboxSessionId:e.sandboxSessionId,selfAgent:e.target.selfAgent,session:e.session,source:e.target.source,taskOwned:e.taskOwned});case`remote`:return startRemoteSubagent({action:e.target.action,auth:e.auth,batchEvent:e.batchEvent,bundle:e.bundle,callbackBaseUrl:e.callbackBaseUrl,originAudience:n?.originAudience??r,currentSession:e.currentSession,dynamicRemoteAgent:e.target.dynamicRemoteAgent,initiatorAuth:e.initiatorAuth,parentContinuationToken:e.parentContinuationToken,parentTraceContext:i,activityObserver:e.activityObserver,session:e.session,taskOwned:e.taskOwned});default:return e.target}}export{startSubagent};
@@ -1,18 +0,0 @@
1
- /**
2
- * Starts or continues every pending runtime action for the parked parent
3
- * session, with children reporting straight back to the parent turn via
4
- * `parentContinuationToken`.
5
- *
6
- * The batch is classified into a dispatch plan first (reject / resume /
7
- * start), then each entry dispatches and emits one
8
- * parent `subagent.called` control-plane event through a single tail.
9
- * Every start commits an agent handle (`starting`) before its side effect
10
- * and confirms it (`running`) once the child reports coordinates, so the
11
- * returned snapshot-bearing state owns every child it may have created.
12
- *
13
- * Agents running `experimental.tasks` never reach this step: the turn
14
- * workflow selects `dispatchTaskStep`, the task-mode sibling that wraps
15
- * each dispatch in the delegated-task lifecycle.
16
- */
17
- import { type RuntimeActionDispatchInput, type RuntimeActionDispatchResult } from "#execution/dispatch-runtime-actions-shared.js";
18
- export declare function dispatchRuntimeActionsStep(input: RuntimeActionDispatchInput): Promise<RuntimeActionDispatchResult>;
@@ -1 +0,0 @@
1
- import{createDurableSessionState}from"#execution/durable-session-store.js";import{dispatchToAgentHandle}from"#execution/agent-handle-dispatch.js";import{startWorkflowTool}from"#execution/tool-run/dispatch.js";import{createAgentContinuationBundle}from"#execution/agent-continuation-bundle.js";import{emitSubagentCalled,prepareRuntimeActionDispatch}from"#execution/dispatch-runtime-actions-shared.js";import{startSubagent}from"#execution/dispatch-runtime-actions-start.js";import{deriveChildActivityObserverConfig}from"#execution/activity-work.js";async function dispatchRuntimeActionsStep(r){"use step";let i=await prepareRuntimeActionDispatch({serializedContext:r.serializedContext,sessionState:r.sessionState,taskControls:!1});if(i===void 0)return{results:[],sessionState:r.sessionState,pendingTasks:[]};let{batch:a,bundle:o,session:s}=i,c=r.parentWritable.getWriter(),l=s,u=[];try{for(let e of i.plan){if(e.kind===`reject`){u.push(e.result);continue}if(e.kind===`workflow-tool`){let t=await startWorkflowTool({action:e.action,batchEvent:a.event,ownerInboxToken:r.parentContinuationToken,prepared:i,session:l});l=t.session,t.result!==void 0&&u.push(t.result);continue}if(e.kind===`task-control`)throw Error(`Task-control actions require the task dispatch step.`);let n;switch(e.kind){case`resume`:n=await dispatchToAgentHandle({action:e.action,activityObserver:i.activityObserver===void 0?void 0:deriveChildActivityObserverConfig({activityObserver:i.activityObserver,callId:e.action.callId,kind:e.action.kind===`remote-agent-call`?`remote-agent`:`subagent`,name:e.action.kind===`remote-agent-call`?e.action.remoteAgentName:e.action.subagentName,parentSessionId:s.sessionId,parentTurnId:a.event.turnId}),agentId:e.agentId,auth:i.auth,bundle:createAgentContinuationBundle({action:e.action,bundle:o,dynamicRemoteAgent:e.dynamicRemoteAgent}),currentSession:l,parentToken:r.parentContinuationToken??s.continuationToken,parentTurnId:a.event.turnId});break;case`start`:n=await startSubagent({auth:i.auth,batchEvent:a.event,bundle:o,callbackBaseUrl:r.callbackBaseUrl,capabilities:i.capabilities,channelMetadata:i.channelMetadata,currentSession:l,fanoutSize:i.fanoutSize,initiatorAuth:i.initiatorAuth,localDevRequest:i.localDevRequest,parentContinuationToken:r.parentContinuationToken,parentTraceContext:i.parentTraceContext,activityObserver:i.activityObserver,sandboxSessionId:i.sandboxSessionId,serializedContext:i.serializedContext,session:s,taskOwned:!1,target:e.target});break}if(l=n.session,n.kind===`error`){u.push(n.result);continue}await emitSubagentCalled({adapter:i.adapter,adapterCtx:i.adapterCtx,batchEvent:a.event,entry:e,outcome:n,sessionId:s.sessionId,writer:c})}}finally{c.releaseLock()}return{results:u,sessionState:l===s?i.getBaselineSessionState():createDurableSessionState({session:l}),pendingTasks:[]}}export{dispatchRuntimeActionsStep};
@@ -1,18 +0,0 @@
1
- import { type DurableSessionState } from "#execution/durable-session-store.js";
2
- import type { RuntimeActionResult } from "#shared/action-types.js";
3
- /** Dispatches the child-agent action currently blocking a dynamic workflow. */
4
- export declare function dispatchWorkflowRuntimeActionsStep(input: {
5
- readonly callbackBaseUrl?: string;
6
- readonly parentContinuationToken?: string;
7
- readonly parentWritable: WritableStream<Uint8Array>;
8
- readonly serializedContext: Record<string, unknown>;
9
- readonly sessionState: DurableSessionState;
10
- }): Promise<{
11
- readonly results: readonly RuntimeActionResult[];
12
- readonly sessionState: DurableSessionState;
13
- readonly pendingTasks: readonly {
14
- readonly taskInboxToken: string;
15
- readonly taskId: string;
16
- readonly taskRunId: string;
17
- }[];
18
- }>;
@@ -1 +0,0 @@
1
- import{createLogger}from"#internal/logging.js";import{BundleKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{hydrateDurableSession}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{setPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{getSubagentDelegationName,isSubagentDelegationAction}from"#harness/subagent-depth.js";import{dispatchRuntimeActionsStep}from"#execution/dispatch-runtime-actions-step.js";import{dispatchTaskStep}from"#execution/tasks/parent/dispatch-task-step.js";import{getPendingWorkflowInterrupt,setPendingWorkflowUsedCalls}from"#harness/workflow-interrupt-state.js";import{buildRuntimeActionsFromWorkflowInterrupt}from"#harness/workflow-runtime-action-state.js";import{planWorkflowSubagentDispatch}from"#harness/workflow-subagent-limit.js";const log=createLogger(`execution.dispatch-workflow-runtime-actions`);async function dispatchWorkflowRuntimeActionsStep(e){"use step";let n=await readDurableSession(e.sessionState),r=getPendingWorkflowInterrupt(n.state);if(r===void 0)return{results:[],sessionState:e.sessionState,pendingTasks:[]};let i=buildRuntimeActionsFromWorkflowInterrupt(r.interrupt);if(i.length===0)return{results:[],sessionState:e.sessionState,pendingTasks:[]};let a=await deserializeContext(e.serializedContext),o=a.require(BundleKey),s=resolveEffectiveAgentRuntime(o,a),c=planWorkflowSubagentDispatch({actions:i,maxSubagents:n.workflowMaxSubagents,usedCalls:r.usedCalls}),l=c.blocked.map(e=>(log.warn(`workflow subagent limit reached; blocking delegated call`,{callId:e.callId,maxSubagents:c.maxSubagents,subagentName:isSubagentDelegationAction(e)?getSubagentDelegationName(e):e.target.kind,usedCalls:c.usedCalls}),createWorkflowSubagentLimitResult({action:e,plan:c})));if(c.allowed.length===0)return{results:l,sessionState:e.sessionState,pendingTasks:[]};let u=setPendingWorkflowUsedCalls({session:hydrateDurableSession({compactionOverrides:{thresholdPercent:s.thresholdPercent},durable:n,turnAgent:s.turnAgent}),usedCalls:r.usedCalls+c.allowed.length}),d=setPendingRuntimeActionBatch({actions:c.allowed,event:{sequence:0,stepIndex:0,turnId:`workflow-dispatch`},responseMessages:[],session:u}),f=await(o.resolvedAgent.config?.experimental?.tasks===!0?dispatchTaskStep:dispatchRuntimeActionsStep)({callbackBaseUrl:e.callbackBaseUrl,parentContinuationToken:e.parentContinuationToken,parentWritable:e.parentWritable,serializedContext:e.serializedContext,sessionState:createDurableSessionState({session:d})});return l.length===0?f:{results:[...f.results,...l],sessionState:f.sessionState,pendingTasks:f.pendingTasks}}function createWorkflowSubagentLimitResult(e){let t=isSubagentDelegationAction(e.action)?getSubagentDelegationName(e.action):e.action.target.kind;return{callId:e.action.callId,isError:!0,kind:`subagent-result`,origin:`dispatch`,output:{code:`WORKFLOW_SUBAGENT_LIMIT_REACHED`,maxSubagents:e.plan.maxSubagents,message:`Workflow subagent limit reached (${String(e.plan.maxSubagents)}); "${t}" was not called.`},subagentName:t}}export{dispatchWorkflowRuntimeActionsStep};
@@ -1,17 +0,0 @@
1
- import type { TurnCaller } from "#channel/types.js";
2
- import type { DurableSessionState } from "#execution/durable-session-store.js";
3
- import type { RunMode } from "#shared/run-mode.js";
4
- /** Completes a session that terminates outside a turn. */
5
- export declare function finalizeTerminalSession(input: {
6
- readonly caller: TurnCaller | undefined;
7
- readonly driverWritable: WritableStream<Uint8Array>;
8
- readonly mode: RunMode;
9
- readonly notifyCaller: boolean;
10
- readonly serializedContext: Record<string, unknown>;
11
- readonly sessionState: DurableSessionState;
12
- readonly terminalState: {
13
- terminalEmitted: boolean;
14
- };
15
- }): Promise<{
16
- readonly output: unknown;
17
- }>;
@@ -1 +0,0 @@
1
- import{notifyDelegatedParentStep,notifyTurnCallerStep}from"#execution/delegated-parent-notification.js";import{createDelegatedSubagentSuccessResult}from"#execution/delegated-parent-result.js";import{fireSessionCallbackStep}from"#execution/session-callback-step.js";import{emitTerminalSessionCompletionStep}from"#execution/terminal-session-completion-step.js";import{terminateChildSessionsStep}from"#execution/terminate-child-sessions-step.js";async function finalizeTerminalSession(e){return await terminateChildSessionsStep({serializedContext:e.serializedContext,sessionState:e.sessionState}),await emitTerminalSessionCompletionStep({parentWritable:e.driverWritable,serializedContext:e.serializedContext}),e.terminalState.terminalEmitted=!0,e.notifyCaller&&(e.mode===`task`?(await fireSessionCallbackStep({output:``,serializedContext:e.serializedContext,status:`completed`}),await notifyDelegatedParentStep({result:createDelegatedSubagentSuccessResult(e.serializedContext,``),serializedContext:e.serializedContext})):e.caller!==void 0&&await notifyTurnCallerStep({caller:e.caller,lifecycle:`terminal`,sessionId:e.sessionState.sessionId,settled:{output:``}})),{output:``}}export{finalizeTerminalSession};
@@ -1,7 +0,0 @@
1
- import type { RuntimeAgentHandleAction } from "#execution/agent-handle-dispatch.js";
2
- import type { PendingAgentDispatchAction } from "#shared/dispatch-action.js";
3
- /** Converts a prepared dispatch identity into the existing agent transport contract. */
4
- export declare function resolvePreparedAgentAction(action: PendingAgentDispatchAction): {
5
- readonly action: RuntimeAgentHandleAction;
6
- readonly selfAgent: boolean;
7
- };
@@ -1 +0,0 @@
1
- function resolvePreparedAgentAction(e){let t={callId:e.callId,description:e.description,input:e.input,name:e.toolName,nodeId:e.target.nodeId};switch(e.target.kind){case`remote-agent-call`:return{action:{...t,kind:`remote-agent-call`,remoteAgentName:e.target.remoteAgentName},selfAgent:!1};case`self-agent-call`:return{action:{...t,kind:`subagent-call`,subagentName:e.target.subagentName},selfAgent:!0};case`subagent-call`:return{action:{...t,kind:`subagent-call`,subagentName:e.target.subagentName},selfAgent:!1}}}export{resolvePreparedAgentAction};
@@ -1 +0,0 @@
1
- import{z}from"#compiled/zod/index.js";import{createEveCallbackRoutePath,createEveSessionCancelRoutePath,createEveSessionResetRoutePath,createEveSessionRoutePath}from"#protocol/routes.js";import{expectFunction,expectObjectRecord}from"#internal/authored-module.js";import{CancelTurnResponseSchema}from"#protocol/cancel-turn.js";import{ResetResponseSchema}from"#protocol/reset-session.js";import{formatTraceparent}from"#protocol/traceparent.js";import{writeForwardedAudienceBaggage}from"#protocol/baggage.js";import{decisionToTraceContentCeiling}from"#shared/forwarded-trace-policy.js";import{formatSubagentInput,normalizeRequestedOutputSchema}from"#execution/subagent-invocation.js";import{createWorkflowCallbackUrl}from"#execution/workflow-callback-url.js";import{readTaskIdFromInboxToken}from"#tasks/task-inbox-token.js";import{AgentHandleError}from"#protocol/agent-handle-error.js";import{createRemoteAgentRouteUrl}from"#execution/remote-agent-route-url.js";const CreateSessionResponseSchema=z.object({ok:z.literal(!0),sessionId:z.string().min(1),status:z.literal(`accepted`)});var RemoteAgentCancelRequestError=class extends Error{retryable;constructor(e,t){super(e),this.name=`RemoteAgentCancelRequestError`,this.retryable=t.retryable}};async function startRemoteAgentSession(e){let n=e.callbackToken??e.session.continuationToken;if(!n)throw Error(`Cannot dispatch remote agent without a parent continuation token.`);if(!e.callbackBaseUrl)throw Error(`Cannot dispatch remote agent without a callback base URL.`);let r=buildForwardedPrincipalField(e),i={capabilities:{},callback:{callId:e.action.callId,subagentName:e.action.remoteAgentName,taskId:readTaskIdFromInboxToken(n),token:n,url:createWorkflowCallbackUrl(e.callbackBaseUrl,createEveCallbackRoutePath(n))},message:formatRemoteAgentCallInputMessage({action:e.action,remote:e.remote}),mode:`conversation`,outputSchema:normalizeRequestedOutputSchema(e.action.input.outputSchema)??e.remote.outputSchema};e.activityObserver!==void 0&&(i.activityObserver=e.activityObserver),r!==void 0&&(i.forwardedPrincipal=r),e.operationId!==void 0&&(i.operationId=e.operationId);let a=await resolveRemoteAgentRequestHeaders(e.remote),o=formatTraceparent(e.parentTraceContext);o!==void 0&&setHeader(a,`traceparent`,o),setHeader(a,`baggage`,writeForwardedAudienceBaggage(readHeader(a,`baggage`),buildForwardedTraceAssertion({forwardedPrincipal:r,originAudience:e.originAudience,parentTraceContext:e.parentTraceContext,traceparent:o})));let s=await fetch(createRemoteAgentSessionUrl(e.remote),{body:JSON.stringify(i),headers:{"content-type":`application/json`,...a},method:`POST`});if(!s.ok)throw Error(`Remote agent "${e.action.remoteAgentName}" create-session request failed with HTTP ${s.status}.`);let c;try{c=await s.json()}catch{throw Error(`Remote agent "${e.action.remoteAgentName}" create-session response was not valid JSON.`)}let l=CreateSessionResponseSchema.safeParse(c);if(!l.success)throw Error(`Remote agent "${e.action.remoteAgentName}" create-session response was invalid.`);return{sessionId:l.data.sessionId}}function buildForwardedTraceAssertion(e){let t=decisionToTraceContentCeiling(e.parentTraceContext?.decision);if(!(e.forwardedPrincipal===void 0||e.parentTraceContext===void 0||(e.parentTraceContext.traceFlags&1)!=1||e.traceparent===void 0||t===void 0))return{ceiling:t,originAudience:e.originAudience??`unknown`}}async function continueRemoteAgentSession(e){let t=buildForwardedPrincipalField(e),n={activityObserver:e.activityObserver,callback:e.callback,message:e.message,outputSchema:e.outputSchema};t!==void 0&&(n.forwardedPrincipal=t);let r=await fetch(createRemoteAgentContinueUrl(e.remote,e.sessionId),{body:JSON.stringify(n),headers:{"content-type":`application/json`,...await resolveRemoteAgentRequestHeaders(e.remote)},method:`POST`});if(!r.ok){let n=await readRemoteAgentErrorCode(r),i=r.status===404||n===AgentHandleError.SessionNotResumable.code,a=r.status===400&&t!==void 0?` The receiver may support forwarded principals only on session creation; upgrade it before retrying.`:``;throw new RemoteAgentContinueRequestError(`Remote agent "${e.remote.name}" continue-session request failed${i?` permanently`:``} with HTTP ${r.status}.${a}`,{deliveryAmbiguous:isAmbiguousRemoteContinueStatus(r.status),retryable:!i})}}var RemoteAgentContinueRequestError=class extends Error{deliveryAmbiguous;retryable;constructor(e,t){super(e),this.name=`RemoteAgentContinueRequestError`,this.deliveryAmbiguous=t.deliveryAmbiguous,this.retryable=t.retryable}};function isRetryableRemoteAgentContinueError(e){return!(e instanceof RemoteAgentContinueRequestError)||e.retryable}function isAmbiguousRemoteAgentContinueError(e){return!(e instanceof RemoteAgentContinueRequestError)||e.deliveryAmbiguous}function isAmbiguousRemoteContinueStatus(e){return e===408||e===425||e>=500}async function readRemoteAgentErrorCode(e){let t;try{t=await e.json()}catch{return}if(typeof t!=`object`||!t)return;let n=Reflect.get(t,`code`);return typeof n==`string`?n:void 0}function buildForwardedPrincipalField(e){if(e.remote.forwardPrincipal!==!0||e.auth===null||e.auth===void 0)return;let t={current:e.auth};return e.initiatorAuth!==null&&e.initiatorAuth!==void 0&&(t.initiator=e.initiatorAuth),t}async function cancelRemoteAgentTurn(e){let t=e.headers??await resolveRemoteAgentRequestHeaders(e.remote),n=await fetch(createRemoteAgentCancelTurnUrl(e.remote,e.sessionId),{body:e.turnId===void 0&&e.taskId===void 0?void 0:JSON.stringify({taskId:e.taskId,turnId:e.turnId}),headers:t,method:`POST`});if(!n.ok)throw new RemoteAgentCancelRequestError(`Remote agent "${e.remote.name}" cancel-turn request failed with HTTP ${n.status}.`,{retryable:isRetryableRemoteCancelStatus(n.status)});let r;try{r=await n.json()}catch{throw new RemoteAgentCancelRequestError(`Remote agent "${e.remote.name}" cancel-turn response was not valid JSON.`,{retryable:!1})}let i=CancelTurnResponseSchema.safeParse(r);if(!i.success||i.data.status===`accepted`&&i.data.sessionId!==e.sessionId)throw new RemoteAgentCancelRequestError(`Remote agent "${e.remote.name}" cancel-turn response was invalid.`,{retryable:!1});return i.data.status===`accepted`?{sessionId:i.data.sessionId,status:`accepted`}:{status:`no_active_turn`}}function readHeader(e,t){let n=Object.keys(e).find(e=>e.toLowerCase()===t);return n===void 0?void 0:e[n]}function setHeader(e,t,n){for(let n of Object.keys(e))n.toLowerCase()===t&&delete e[n];n!==void 0&&(e[t]=n)}async function resetRemoteAgentSession(e){let t=e.headers??await resolveRemoteAgentRequestHeaders(e.remote),n=await fetch(createRemoteAgentRouteUrl(e.remote.url,createEveSessionResetRoutePath(e.sessionId)),{body:JSON.stringify({reason:`Parent session ended`}),headers:{"content-type":`application/json`,...t},method:`POST`});if(!n.ok)throw Error(`Remote agent "${e.remote.name}" reset-session request failed with HTTP ${n.status}.`);let i=ResetResponseSchema.safeParse(await n.json());if(!i.success||i.data.status===`reset`&&i.data.previousSessionId!==e.sessionId)throw Error(`Remote agent "${e.remote.name}" reset-session response was invalid.`);return i.data}function isRetryableRemoteAgentCancelError(e){return!(e instanceof RemoteAgentCancelRequestError)||e.retryable}function resolveRemoteAgentForAction(e){let t=e.registry.get(e.nodeId)?.definition;if(e.dynamicRemoteAgent!==void 0){if(t===void 0)throw Error(`Missing remote agent "${e.remoteAgentName}" in runtime registry.`);let n=resolveDynamicRemoteAgentCredentials(e.dynamicRemoteAgent),r=e.dynamicRemoteAgent,i={description:r.description,kind:`remote`,logicalPath:t.logicalPath,name:e.remoteAgentName,nodeId:e.nodeId,outputSchema:r.outputSchema,path:r.path,sourceId:t.sourceId,sourceKind:`module`,url:r.url};return r.forwardPrincipal!==void 0&&(i.forwardPrincipal=r.forwardPrincipal),n.auth!==void 0&&(i.auth=n.auth),n.headers!==void 0&&(i.headers=n.headers),i}if(t?.kind!==`remote`)throw Error(`Missing remote agent "${e.remoteAgentName}" in runtime registry.`);return t}async function resolveRemoteAgentStreamHeaders(e){if(e.resolverId===void 0)return{};let t=new Set([e.bundle.graph.root,...e.bundle.graph.nodesByNodeId.values()]);for(let n of t){let t=n.subagentRegistry.subagentsByNodeId.get(e.resolverId)?.definition;if(t!==void 0){if(t.kind!==`remote`||t.name!==e.name||t.url!==e.url)throw Error(`Remote child stream resolver does not match the authored remote agent.`);return await resolveRemoteAgentRequestHeaders(t)}}return await resolveRemoteAgentRequestHeaders(resolveDynamicRemoteAgentCredentials({credentialsStepId:e.resolverId,description:``,path:``,url:e.url}))}function resolveDynamicRemoteAgentCredentials(e){if(e.credentialsStepId===void 0)return{};let t=getStepRegistry().get(e.credentialsStepId);if(t===void 0)throw Error(`Dynamic remote subagent credentials function "${e.credentialsStepId}" is not registered.`);let n=expectObjectRecord(t(),`Dynamic remote subagent credentials are invalid.`),r={};return n.auth!==void 0&&(r.auth=expectFunction(n.auth,`Dynamic remote subagent auth is invalid.`)),n.headers!==void 0&&(r.headers=resolveDynamicRemoteAgentHeaders(n.headers)),r}function resolveDynamicRemoteAgentHeaders(e){if(typeof e==`function`)return e;let t=expectObjectRecord(e,`Dynamic remote subagent headers are invalid.`);for(let e of Object.values(t))if(typeof e!=`string`)throw Error(`Dynamic remote subagent headers are invalid.`);return t}function getStepRegistry(){let e=Symbol.for(`@workflow/core//registeredSteps`),t=globalThis,n=t[e];return n===void 0&&(n=new Map,t[e]=n),n}function createRemoteAgentSessionUrl(e){return createRemoteAgentRouteUrl(e.url,e.path)}function createRemoteAgentCancelTurnUrl(e,t){return createRemoteAgentRouteUrl(e.url,createEveSessionCancelRoutePath(t))}function createRemoteAgentContinueUrl(e,t){return createRemoteAgentRouteUrl(e.url,createEveSessionRoutePath(t))}function isRetryableRemoteCancelStatus(e){return e===408||e===425||e===429||e>=500}async function resolveRemoteAgentRequestHeaders(e){let t={};return e.headers!==void 0&&Object.assign(t,typeof e.headers==`function`?await e.headers():e.headers),e.auth!==void 0&&Object.assign(t,(await e.auth()).headers),t}function formatRemoteAgentCallInputMessage(e){let t=typeof e.action.input.message==`string`?e.action.input.message:``;return formatSubagentInput({description:e.remote.description,message:t,name:e.action.remoteAgentName,type:`remote`}).message}export{RemoteAgentContinueRequestError,cancelRemoteAgentTurn,continueRemoteAgentSession,isAmbiguousRemoteAgentContinueError,isRetryableRemoteAgentCancelError,isRetryableRemoteAgentContinueError,resetRemoteAgentSession,resolveRemoteAgentForAction,resolveRemoteAgentStreamHeaders,startRemoteAgentSession};
@@ -1 +0,0 @@
1
- import{z}from"#compiled/zod/index.js";import{isInputRequest}from"#shared/input.js";import{jsonValueSchema}from"#shared/json-schemas.js";import{resumeHook}from"#internal/workflow/runtime.js";import{REMOTE_AGENT_FAILED}from"#harness/agent-handle-errors.js";import{readTaskIdFromInboxToken}from"#tasks/task-inbox-token.js";import{agentTurnOutcomeSchema}from"#shared/agent-turn-outcome.js";import{tokenUsageSchema}from"#shared/token-usage.js";const ZERO_TOKEN_USAGE={cacheReadTokens:0,cacheWriteTokens:0,inputTokens:0,outputTokens:0},eventCoordinateSchema=z.number().int().nonnegative(),authorizationChallengeSchema=z.looseObject({displayName:z.string().optional(),expiresAt:z.string().optional(),instructions:z.string().optional(),url:z.string().optional(),userCode:z.string().optional()}),taskInputEventSchema=z.looseObject({requests:z.array(jsonValueSchema.refine(isInputRequest)).min(1),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,turnId:z.string()}),taskAuthorizationEventSchema=z.discriminatedUnion(`type`,[z.looseObject({data:z.looseObject({attemptId:z.string().optional(),authorization:authorizationChallengeSchema.optional(),description:z.string(),name:z.string(),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,turnId:z.string(),webhookUrl:z.string().optional()}),type:z.literal(`authorization.required`)}),z.looseObject({data:z.looseObject({attemptId:z.string().optional(),authorization:authorizationChallengeSchema.optional(),name:z.string(),outcome:z.enum([`authorized`,`declined`,`failed`,`timed-out`]),reason:z.string().optional(),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,turnId:z.string()}),type:z.literal(`authorization.completed`)})]),taskEventCallbackSchema=z.discriminatedUnion(`kind`,[z.object({callId:z.string(),childContinuationToken:z.string(),childSessionId:z.string(),event:taskInputEventSchema,kind:z.literal(`task.input-requested`),subagentName:z.string(),taskId:z.string()}),z.object({callId:z.string(),childContinuationToken:z.string(),childSessionId:z.string(),event:taskAuthorizationEventSchema,kind:z.literal(`task.authorization`),subagentName:z.string(),taskId:z.string()})]),taskTurnStartedCallbackSchema=z.object({kind:z.literal(`turn.started`),sessionId:z.string().min(1),taskId:z.string().min(1),turnId:z.string().min(1)}),taskUpdateCallbackSchema=z.object({callId:z.string().min(1),kind:z.literal(`task.update`),message:z.string().min(1),taskId:z.string().min(1),updateEpoch:z.string().min(1),updateIndex:eventCoordinateSchema}),sessionResultCallbackSchema=z.discriminatedUnion(`kind`,[z.object({callId:z.string().min(1),kind:z.literal(`session.completed`),output:jsonValueSchema.optional(),subagentName:z.string().min(1),usage:z.unknown().optional()}),z.object({callId:z.string().min(1),error:jsonValueSchema.optional(),kind:z.literal(`session.failed`),subagentName:z.string().min(1),usage:z.unknown().optional()}),z.object({callId:z.string().min(1),kind:z.literal(`turn.completed`),outcome:agentTurnOutcomeSchema,output:jsonValueSchema.optional(),subagentName:z.string().min(1)}),z.object({callId:z.string().min(1),error:jsonValueSchema,kind:z.literal(`turn.failed`),outcome:agentTurnOutcomeSchema,subagentName:z.string().min(1)})]);async function handleSessionCallbackRequest(e,t){let n=t.params.token;if(typeof n!=`string`||n.length===0)return Response.json({error:`Missing callback token.`,ok:!1},{status:400});let i;try{i=await e.json()}catch{return Response.json({error:`Invalid JSON body.`,ok:!1},{status:400})}let a=projectTaskEvent(i,n);if(a instanceof Response)return a;if(a!==void 0){try{await resumeHook(n,a)}catch{return Response.json({error:`Session callback not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}let o=projectTaskUpdate(i,n);if(o instanceof Response)return o;if(o!==void 0){try{await resumeHook(n,o)}catch{return Response.json({error:`Session callback not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}let s=projectTaskTurnStarted(i,n);if(s instanceof Response)return s;if(s!==void 0){try{await resumeHook(n,s)}catch{return Response.json({error:`Session callback not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}let c=projectSessionCallbackResult(i);if(c instanceof Response)return c;try{await resumeHook(n,{kind:`runtime-action-result`,results:[c]})}catch{return Response.json({error:`Session callback not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}function callbackKind(e){if(!(typeof e!=`object`||!e))return Reflect.get(e,`kind`)}function projectTaskEvent(e,t){let n=callbackKind(e);if(n!==`task.input-requested`&&n!==`task.authorization`)return;let r=taskEventCallbackSchema.safeParse(e);if(!r.success)return Response.json({error:`Invalid task event callback.`,ok:!1},{status:400});let i=r.data,a=rejectMismatchedTaskToken(t,i.taskId);return a===void 0?i.kind===`task.input-requested`?{callId:i.callId,childContinuationToken:i.childContinuationToken,childSessionId:i.childSessionId,event:i.event,kind:`subagent-input-request`,subagentName:i.subagentName}:{callId:i.callId,childSessionId:i.childSessionId,event:i.event,kind:`authorization-event`,subagentName:i.subagentName}:a}function projectTaskTurnStarted(e,t){if(callbackKind(e)!==`turn.started`)return;let n=taskTurnStartedCallbackSchema.safeParse(e);if(!n.success)return Response.json({error:`Invalid task turn-start callback.`,ok:!1},{status:400});let r=rejectMismatchedTaskToken(t,n.data.taskId);return r===void 0?{childSessionId:n.data.sessionId,childTurnId:n.data.turnId,kind:`turn-started`,taskId:n.data.taskId}:r}function projectTaskUpdate(e,t){if(callbackKind(e)!==`task.update`)return;let n=taskUpdateCallbackSchema.safeParse(e);if(!n.success)return Response.json({error:`Invalid task update callback.`,ok:!1},{status:400});let r=rejectMismatchedTaskToken(t,n.data.taskId);return r===void 0?{callId:n.data.callId,kind:`task-update`,message:n.data.message,updateEpoch:n.data.updateEpoch,updateIndex:n.data.updateIndex}:r}function rejectMismatchedTaskToken(e,t){return readTaskIdFromInboxToken(e)===t?void 0:Response.json({error:`Task callback token mismatch.`,ok:!1},{status:403})}function projectSessionCallbackResult(e){if(typeof e!=`object`||!e)return Response.json({error:`Expected a JSON object.`,ok:!1},{status:400});let t=callbackKind(e);if(t!==`session.completed`&&t!==`session.failed`&&t!==`turn.completed`&&t!==`turn.failed`)return Response.json({error:`Unsupported callback kind.`,ok:!1},{status:400});let n=sessionResultCallbackSchema.safeParse(e);if(!n.success)return Response.json({error:`Invalid session result callback.`,ok:!1},{status:400});let r=n.data;if(r.kind===`session.completed`){let e=r.output??``,t=parseCallbackUsage(r.usage),n={callId:r.callId,kind:`subagent-result`,origin:`child`,outcome:{kind:`terminal`,result:{kind:`succeeded`,output:e},usageDelta:t??ZERO_TOKEN_USAGE},output:e,subagentName:r.subagentName};return t===void 0?n:{...n,usage:t}}if(r.kind===`session.failed`){let e=r.error===void 0?{code:REMOTE_AGENT_FAILED,message:`Remote agent failed.`}:r.error,t=parseCallbackUsage(r.usage);return{callId:r.callId,isError:!0,kind:`subagent-result`,origin:`child`,outcome:{kind:`terminal`,result:{error:e,kind:`failed`},usageDelta:t??ZERO_TOKEN_USAGE},output:e,subagentName:r.subagentName}}return r.kind===`turn.completed`?{callId:r.callId,kind:`subagent-result`,origin:`child`,outcome:r.outcome,output:r.output??``,subagentName:r.subagentName,usage:r.outcome.usageDelta}:{callId:r.callId,isError:!0,kind:`subagent-result`,origin:`child`,outcome:r.outcome,output:r.error,subagentName:r.subagentName}}function parseCallbackUsage(e){if(e===void 0)return;let t=tokenUsageSchema.safeParse(e);return t.success?t.data:void 0}export{handleSessionCallbackRequest};
@@ -1 +0,0 @@
1
- import{createLogger}from"#internal/logging.js";import{SessionCallbackKey}from"#context/keys.js";import{toErrorMessage}from"#shared/errors.js";import{parseSessionCallback}from"#channel/session-callback.js";import{SESSION_FAILED}from"#harness/agent-handle-errors.js";import{postSessionCallbackRequest}from"#execution/session-callback-request.js";const log=createLogger(`execution.session-callback`);async function fireTaskEventCallbackStep(e){"use step";let t=parseSerializedSessionCallback(e.callback);if(t.taskId===void 0)return;let n=e.event.type===`input.requested`,r=n?`task.input-requested`:`task.authorization`,i=await postSessionCallbackRequest({body:{callId:t.callId,childContinuationToken:e.childContinuationToken,childSessionId:e.childSessionId,event:n?e.event.data:e.event,kind:r,subagentName:t.subagentName,taskId:t.taskId},url:t.url});if(!i.ok)throw Error(`Task event callback failed with HTTP ${i.status}.`)}async function fireTaskUpdateCallbackStep(e){"use step";let t=parseSerializedSessionCallback(e.callback);if(t.taskId===void 0)return;let n=await postSessionCallbackRequest({body:{callId:e.callId,updateIndex:e.updateIndex,updateEpoch:e.updateEpoch,kind:`task.update`,message:e.message,taskId:t.taskId},url:t.url});if(!n.ok)throw Error(`Task update callback failed with HTTP ${n.status}.`);return t.taskId}async function fireSessionCallbackStep(e){"use step";let r=e.serializedContext[`eve.sessionId`]??``,o=e.serializedContext[SessionCallbackKey.name];if(o!==void 0)try{let t=parseSerializedSessionCallback(o),a=await postSessionCallbackRequest({body:e.status===`completed`?buildCompletedCallbackBody({callback:t,output:e.output,sessionId:r,usage:e.usage}):{callId:t.callId,error:{code:SESSION_FAILED,message:toErrorMessage(e.error)},kind:`session.failed`,sessionId:r,subagentName:t.subagentName,usage:e.usage},url:t.url});if(!a.ok)throw Error(`Session callback failed with HTTP ${a.status}.`)}catch(e){throw log.error(`failed to post session callback`,{error:e,sessionId:r}),e}}function buildCompletedCallbackBody(e){let t={callId:e.callback.callId,kind:`session.completed`,output:e.output??``,sessionId:e.sessionId,subagentName:e.callback.subagentName};return e.usage===void 0?t:{...t,usage:e.usage}}function parseSerializedSessionCallback(e){let t=parseSessionCallback(e);if(!t.ok)throw Error(`Serialized session callback is invalid.`,{cause:t.cause});return t.callback}export{fireSessionCallbackStep,fireTaskEventCallbackStep,fireTaskUpdateCallbackStep};
@@ -1 +0,0 @@
1
- import{createErrorId,createLogger}from"#internal/logging.js";import{ContinuationTokenKey,SessionIdKey}from"#context/keys.js";import{resumeHook}from"#internal/workflow/runtime.js";import{SUBAGENT_ADAPTER_KIND,isSubagentAdapterState}from"#execution/subagent-adapter-state.js";const log=createLogger(`execution.subagent-adapter`),SUBAGENT_ADAPTER={kind:SUBAGENT_ADAPTER_KIND,async"approval.candidate"(e,t){await forwardSubagentAuthorizationEvent({data:e,type:`approval.candidate`},t)},async"approval.settled"(e,t){await forwardSubagentAuthorizationEvent({data:e,type:`approval.settled`},t)},async"authorization.required"(e,t){await forwardSubagentAuthorizationEvent({data:e,type:`authorization.required`},t)},async"authorization.completed"(e,t){await forwardSubagentAuthorizationEvent({data:e,type:`authorization.completed`},t)},async"input.requested"(e,t){let i=t.state;isSubagentAdapterState(i)&&await forwardSubagentInputRequestStep({hookPayload:{callId:i.callId,childContinuationToken:t.ctx.require(ContinuationTokenKey),childSessionId:t.ctx.require(SessionIdKey),event:{requests:e.requests,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId},kind:`subagent-input-request`,subagentName:i.subagentName},parentContinuationToken:i.parentContinuationToken})}};async function forwardSubagentAuthorizationEvent(e,t){let n=t.state;isSubagentAdapterState(n)&&await forwardSubagentAuthorizationEventStep({hookPayload:{callId:n.callId,childSessionId:t.ctx.require(SessionIdKey),event:e,kind:`subagent-authorization-event`,subagentName:n.subagentName},parentContinuationToken:n.parentContinuationToken})}async function forwardSubagentAuthorizationEventStep(t){"use step";try{await resumeHook(t.parentContinuationToken,t.hookPayload)}catch(n){let r=createErrorId();throw log.warn(`failed to forward subagent authorization event to parent`,{callId:t.hookPayload.callId,childSessionId:t.hookPayload.childSessionId,errorId:r,eventType:t.hookPayload.event.type,parentContinuationToken:t.parentContinuationToken,subagentName:t.hookPayload.subagentName,error:n}),n}}async function forwardSubagentInputRequestStep(t){"use step";try{await resumeHook(t.parentContinuationToken,t.hookPayload)}catch(n){let r=createErrorId();throw log.warn(`failed to forward proxied HITL batch to parent`,{callId:t.hookPayload.callId,childContinuationToken:t.hookPayload.childContinuationToken,childSessionId:t.hookPayload.childSessionId,errorId:r,parentContinuationToken:t.parentContinuationToken,subagentName:t.hookPayload.subagentName,error:n}),n}}export{SUBAGENT_ADAPTER};
@@ -1 +0,0 @@
1
- import{callAdapterEventHandler}from"#channel/adapter.js";import{ModeKey}from"#context/keys.js";import{encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{hydrateDurableSession}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{withContextScope}from"#context/run-step.js";import{upsertProxyInputRequests}from"#harness/proxy-input-requests.js";import{emitProxiedInputRequest}from"#execution/subagent-hitl-proxy.js";import{setChannelContext}from"#execution/channel-context.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";async function runProxySubagentEventStep(e){"use step";let t=await readDurableSession(e.sessionState),n=await deserializeContext(e.serializedContext);return emitProxiedSubagentEvent({answerHook:e.answerHook,ctx:n,durableSession:t,hookPayload:e.hookPayload,parentWritable:e.parentWritable})}async function emitRecordedTaskInputRequestStep(e){"use step";let t=await readDurableSession(e.sessionState);return emitProxiedSubagentEvent({ctx:await deserializeContext(e.serializedContext),durableSession:t,hookPayload:e.hookPayload,parentWritable:e.parentWritable,recordProxyInputRequests:!1})}async function emitRecordedTaskAuthorizationEventStep(e){"use step";let t=await readDurableSession(e.sessionState);return emitProxiedSubagentEvent({ctx:await deserializeContext(e.serializedContext),durableSession:t,hookPayload:e.hookPayload,parentWritable:e.parentWritable,recordProxyInputRequests:!1})}async function emitProxiedSubagentEvent(i){let{ctx:a}=i,o=a.require(ChannelKey),s=resolveEffectiveAgentRuntime(a.require(BundleKey),a),c=hydrateDurableSession({compactionOverrides:{thresholdPercent:s.thresholdPercent},durable:i.durableSession,turnAgent:s.turnAgent}),l=buildAdapterContext(o,a),u=i.parentWritable.getWriter(),d,f;try{let emit=async t=>{let r=await callAdapterEventHandler(o,t,l);await u.write(encodeMessageStreamEvent(stampMessageStreamEvent(r)))},r=await withContextScope(a,c,async e=>{if(i.hookPayload.kind===`subagent-authorization-event`)return await emit(i.hookPayload.event),{result:void 0,session:e};let n=await emitProxiedInputRequest({emit,hookPayload:i.hookPayload,mode:a.require(ModeKey),session:e});return{result:n.entries,session:n.session}});d=r.result,f=r.session}finally{u.releaseLock()}if(setChannelContext(a,{...o,state:{...l.state}}),i.recordProxyInputRequests!==!1&&d!==void 0&&i.hookPayload.kind===`subagent-input-request`){let e=i.answerHook;f=upsertProxyInputRequests({entries:e===void 0?d:d.map(([t,n])=>[t,{...n,answerHook:e}]),forChildContinuationToken:i.hookPayload.childContinuationToken,session:f})}let p=reconcileSessionContinuationToken(a,f);return{serializedContext:serializeContext(a),sessionState:createDurableSessionState({session:p})}}export{emitProxiedSubagentEvent,emitRecordedTaskAuthorizationEventStep,emitRecordedTaskInputRequestStep,runProxySubagentEventStep};
@@ -1 +0,0 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{ContextContainer,contextStorage}from"#context/container.js";import{toErrorMessage}from"#shared/errors.js";import{createWorkflowRuntime,waitForCommandHookOwner}from"#execution/workflow-runtime.js";import{SUBAGENT_START_FAILED}from"#harness/agent-handle-errors.js";import{confirmAgentStarted,confirmTaskAgentAddress,prepareAgentStart,rejectAgentEffect}from"#harness/handles/transitions.js";import{buildSubagentRunInput}from"#execution/subagent-tool.js";import{deriveChildActivityObserverConfig}from"#execution/activity-work.js";import{mintStartOperation}from"#execution/dispatch-start-operation.js";const log=createLogger(`execution.subagent-start-local`);async function startLocalSubagent(e){let{action:t,source:n}=e,r=deriveChildActivityObserverConfig({activityObserver:e.activityObserver,callId:t.callId,kind:`subagent`,name:t.subagentName,parentSessionId:e.session.sessionId,parentTurnId:e.batchEvent.turnId}),i=createWorkflowRuntime({compiledArtifactsSource:e.bundle.compiledArtifactsSource,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,nodeId:t.nodeId}),{childContinuationToken:a,runInput:o}=buildSubagentRunInput({action:t,auth:e.auth,batchEvent:e.batchEvent,capabilities:e.capabilities,channelMetadata:e.channelMetadata,fanoutSize:e.fanoutSize,initiatorAuth:e.initiatorAuth,graph:e.bundle.graph,parentContinuationToken:e.parentContinuationToken,parentTraceContext:e.parentTraceContext,activityObserver:r,sandboxSessionId:e.sandboxSessionId,selfAgent:e.selfAgent,session:e.session,source:n}),s=n.type===`runtime`?`agent/self`:`agent/local`,{identity:c,operation:l}=mintStartOperation({callId:t.callId,name:t.subagentName,nodeId:t.nodeId,parentSessionId:e.session.sessionId,parentTurnId:e.batchEvent.turnId}),u=prepareAgentStart(e.currentSession,{identity:c,operation:l,target:{continuationToken:a,kind:s}}),d;try{await contextStorage.run(new ContextContainer({localDevRequest:e.localDevRequest}),()=>i.createSession(o)),d=(await waitForCommandHookOwner(a)).runId}catch(e){return logError(log,`local subagent start failed`,e,{callId:t.callId,nodeId:t.nodeId,subagentName:t.subagentName}),{kind:`error`,result:{callId:t.callId,isError:!0,kind:`subagent-result`,origin:`dispatch`,output:{code:SUBAGENT_START_FAILED,message:toErrorMessage(e)},subagentName:t.subagentName},session:rejectAgentEffect(u,{disposition:`dead`,operationId:l.id})}}let f={continuationToken:a,kind:s,sessionId:d};return{address:f,callId:t.callId,kind:`called`,name:t.name,session:e.taskOwned?confirmTaskAgentAddress(u,{address:f,operationId:l.id}):confirmAgentStarted(u,{address:f,operationId:l.id}),toolName:t.subagentName}}export{startLocalSubagent};
@@ -1 +0,0 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{resolveRemoteAgentForAction,startRemoteAgentSession}from"#execution/remote-agent-dispatch.js";import{confirmAgentStarted,confirmTaskAgentAddress,prepareAgentStart,rejectAgentEffect}from"#harness/handles/transitions.js";import{createRemoteAgentStartFailureResult}from"#execution/dispatch-action-failures.js";import{deriveChildActivityObserverConfig}from"#execution/activity-work.js";import{mintStartOperation}from"#execution/dispatch-start-operation.js";const log=createLogger(`execution.subagent-start-remote`);async function startRemoteSubagent(e){let{action:r}=e,i=deriveChildActivityObserverConfig({activityObserver:e.activityObserver,callId:r.callId,kind:`remote-agent`,name:r.remoteAgentName,parentSessionId:e.session.sessionId,parentTurnId:e.batchEvent.turnId}),a,o;try{if(e.callbackBaseUrl===void 0)throw Error(`Cannot dispatch remote agent without a callback base URL.`);a=e.callbackBaseUrl,o=resolveRemoteAgentForAction({dynamicRemoteAgent:e.dynamicRemoteAgent,nodeId:r.nodeId,remoteAgentName:r.remoteAgentName,registry:e.bundle.subagentRegistry.subagentsByNodeId})}catch(n){return logError(log,`remote agent start failed`,n,{remoteAgentName:r.remoteAgentName,nodeId:r.nodeId,callId:r.callId}),{kind:`error`,result:createRemoteAgentStartFailureResult({action:r,error:n}),session:e.currentSession}}let{identity:s,operation:c}=mintStartOperation({callId:r.callId,name:r.remoteAgentName,nodeId:r.nodeId,parentSessionId:e.session.sessionId,parentTurnId:e.batchEvent.turnId}),l={resolverId:e.dynamicRemoteAgent===void 0?r.nodeId:e.dynamicRemoteAgent.credentialsStepId},u=prepareAgentStart(e.currentSession,{identity:s,operation:c,target:{callbackBaseUrl:a,credentialResolver:l,kind:`agent/remote`,url:o.url}});try{let t=await startRemoteAgentSession({action:r,auth:e.auth,callbackBaseUrl:a,callbackToken:e.parentContinuationToken,originAudience:e.originAudience,initiatorAuth:e.initiatorAuth,operationId:c.id,parentTraceContext:e.parentTraceContext,activityObserver:i,remote:o,session:e.session}),n={callbackBaseUrl:a,credentialResolver:l,kind:`agent/remote`,sessionId:t.sessionId,url:o.url};return{address:n,callId:r.callId,kind:`called`,name:r.name,session:e.taskOwned?confirmTaskAgentAddress(u,{address:n,operationId:c.id}):confirmAgentStarted(u,{address:n,operationId:c.id}),toolName:r.remoteAgentName}}catch(e){return logError(log,`remote agent start failed`,e,{remoteAgentName:r.remoteAgentName,nodeId:r.nodeId,callId:r.callId}),{kind:`error`,result:createRemoteAgentStartFailureResult({action:r,error:e}),session:rejectAgentEffect(u,{disposition:`dead`,operationId:c.id})}}}export{startRemoteSubagent};
@@ -1 +0,0 @@
1
- import{formatSubagentInput,normalizeRequestedOutputSchema}from"#execution/subagent-invocation.js";import{mintSubagentContinuationToken}from"#execution/session.js";import{SUBAGENT_ADAPTER_KIND}from"#execution/subagent-adapter-state.js";import{resolveSubagentDepth}from"#harness/subagent-depth.js";import{resolveRemainingSessionTokenLimits}from"#harness/subagent-token-budget.js";function buildSubagentRunInput(e){let{action:r,auth:i,batchEvent:a,capabilities:o,channelMetadata:s,initiatorAuth:c,session:l,source:u}=e,d=mintSubagentContinuationToken(`${l.sessionId}:${r.callId}`),f=l.rootSessionId??l.sessionId,p=resolveSubagentDepth(l),m=resolveRemainingSessionTokenLimits(l,e.fanoutSize),h=normalizeRequestedOutputSchema(r.input.outputSchema),g={callId:r.callId,parentContinuationToken:e.parentContinuationToken??l.continuationToken,parentSessionId:l.sessionId,subagentName:r.subagentName};return(e.graph?.nodesByNodeId.get(r.nodeId)?.sandboxRegistry.sandbox?.definition.inheritsParent===!0||e.selfAgent)&&(l.sandboxState!==void 0&&(g.parentSandboxState=l.sandboxState),g.sandboxSessionId=e.sandboxSessionId??l.sessionId),{childContinuationToken:d,runInput:{adapter:{kind:SUBAGENT_ADAPTER_KIND,state:g},auth:i,capabilities:o,channelMetadata:s,continuationToken:d,initiatorAuth:c,input:{message:formatSubagentCallInputMessage({action:r,source:u}),outputSchema:h??u.outputSchema},limits:m,mode:`conversation`,parent:{callId:r.callId,rootSessionId:f,sessionId:l.sessionId,turn:{id:a.turnId,sequence:a.sequence}},parentTraceContext:e.parentTraceContext,activityObserver:e.activityObserver,subagentDepth:p.nextChildDepth}}}function formatSubagentCallInputMessage(t){let{message:n}=t.action.input;switch(t.source.type){case`local`:return formatSubagentInput({description:t.source.description,message:n,name:t.action.subagentName,type:`local`}).message;case`runtime`:return formatSubagentInput({message:n,name:t.action.subagentName,type:`runtime`}).message;default:return t.source}}export{buildSubagentRunInput};
@@ -1,3 +0,0 @@
1
- export declare const TASK_UPDATE_SESSION_INSTRUCTION = "Background task updates\nYou are running as a background task. For multi-step work, use `task_update` at meaningful milestones to briefly state what you are currently doing. Keep updates terse and activity-focused; do not include preliminary findings or results. Do not wait for a response, and return your final result normally.";
2
- /** True when the serialized caller binding points at a durable task inbox. */
3
- export declare function isTaskOwnedSerializedContext(serializedContext: Record<string, unknown>): boolean;
@@ -1 +0,0 @@
1
- import{CHANNEL_CONTEXT_KEY_NAME,SESSION_CALLBACK_CONTEXT_KEY_NAME}from"#context/key-names.js";import{readTaskIdFromInboxToken}from"#tasks/task-inbox-token.js";const TASK_UPDATE_SESSION_INSTRUCTION="Background task updates\nYou are running as a background task. For multi-step work, use `task_update` at meaningful milestones to briefly state what you are currently doing. Keep updates terse and activity-focused; do not include preliminary findings or results. Do not wait for a response, and return your final result normally.";function isTaskOwnedSerializedContext(e){let t=e[SESSION_CALLBACK_CONTEXT_KEY_NAME];if(typeof t==`object`&&t&&typeof Reflect.get(t,`taskId`)==`string`)return!0;let n=e[CHANNEL_CONTEXT_KEY_NAME];if(typeof n!=`object`||!n)return!1;let r=Reflect.get(n,`state`);if(typeof r!=`object`||!r)return!1;let i=Reflect.get(r,`parentContinuationToken`);return typeof i==`string`&&readTaskIdFromInboxToken(i)!==void 0}export{TASK_UPDATE_SESSION_INSTRUCTION,isTaskOwnedSerializedContext};
@@ -1,13 +0,0 @@
1
- import type { RuntimeAgentHandleAction } from "#execution/agent-handle-dispatch.js";
2
- /** Resolves the persistent agent identity attached to one delegated task. */
3
- export declare function describeTaskAgent(input: {
4
- readonly action: RuntimeAgentHandleAction;
5
- readonly agentId?: string;
6
- readonly parentSessionId: string;
7
- readonly parentTurnId: string;
8
- }): {
9
- readonly agentId: string;
10
- readonly callId: string;
11
- readonly mode: "local" | "remote";
12
- readonly name: string;
13
- };
@@ -1 +0,0 @@
1
- import{mintStartOperation}from"#execution/dispatch-start-operation.js";function describeTaskAgent(e){let{action:t}=e,n=t.kind===`remote-agent-call`?t.remoteAgentName:t.subagentName;return{agentId:e.agentId??mintStartOperation({callId:t.callId,name:n,nodeId:t.nodeId,parentSessionId:e.parentSessionId,parentTurnId:e.parentTurnId}).identity.id,callId:t.callId,mode:t.kind===`remote-agent-call`?`remote`:`local`,name:n}}export{describeTaskAgent};
@@ -1,7 +0,0 @@
1
- import type { ModelMessage } from "ai";
2
- import type { HarnessSession } from "#harness/types.js";
3
- import { type AgentView } from "#harness/handles/prompt.js";
4
- /** Derives model-visible task-agent availability from authoritative task views. */
5
- export declare function readTaskAgentViews(session: HarnessSession): Promise<readonly AgentView[]>;
6
- /** Appends the changed task-agent projection before the next model call. */
7
- export declare function appendTaskAgentAnnouncement(session: HarnessSession, messages?: readonly ModelMessage[]): Promise<HarnessSession>;
@@ -1 +0,0 @@
1
- import{resolveAgentsAnnouncement}from"#harness/handles/prompt.js";import{formatAgentStatus,getAgentHandleStore}from"#harness/handles/store.js";import{getSessionTaskIndex}from"#tasks/session-index.js";import{readSubagentTaskMetadata}from"#tasks/types.js";import{readTaskViews}from"#execution/tasks/parent/control-shared.js";async function readTaskAgentViews(e){let o=(getAgentHandleStore(e.state)?.handles??[]).filter(e=>e.phase===`addressed`);if(o.length===0)return[];let s=await readTaskViews(getSessionTaskIndex(e.state)),c=new Map;for(let e of s){let t=readSubagentTaskMetadata(e);if(t===void 0)continue;let n=c.get(t.agentId)??[];c.set(t.agentId,[...n,e])}return o.map(e=>{let n=c.get(e.identity.id)??[],r=n.filter(e=>e.status===`working`||e.status===`input_required`);if(r.length>1)throw Error(`Agent "${e.identity.id}" has more than one nonterminal task.`);let i=r[0];if(i!==void 0){let t=i.status===`input_required`?`input_required`:`working`;return{availability:`busy`,id:e.identity.id,name:e.identity.name,taskId:i.taskId,taskStatus:t}}let a=n.at(-1);return{availability:`available`,id:e.identity.id,name:e.identity.name,statusLine:a?.lastOutput===void 0?void 0:formatAgentStatus(a.lastOutput.data)}})}async function appendTaskAgentAnnouncement(t,r=t.history){let i=resolveAgentsAnnouncement({agentViews:await readTaskAgentViews(t),messages:r,store:getAgentHandleStore(t.state)});return i===void 0?t:{...t,history:[...t.history,{content:i,role:`user`}]}}export{appendTaskAgentAnnouncement,readTaskAgentViews};
@@ -1,43 +0,0 @@
1
- import { type DispatchOutcome, type RuntimeAgentHandleAction, type RuntimeSession } from "#execution/agent-handle-dispatch.js";
2
- import { settleDelegatedDispatch, type DelegatedTask } from "#execution/tasks/parent/delegate.js";
3
- import { describeTaskAgent } from "#execution/tasks/parent/agent-identity.js";
4
- import type { RuntimeSubagentDispatchFailure } from "#shared/action-types.js";
5
- export type PersistedContinuationTask = Awaited<ReturnType<typeof settleDelegatedDispatch>>;
6
- /** Describes task identity from the stored address when continuing an agent. */
7
- export declare function describeTaskDispatch(input: {
8
- readonly action: RuntimeAgentHandleAction;
9
- readonly agentId: string | undefined;
10
- readonly parentSessionId: string;
11
- readonly parentTurnId: string;
12
- readonly session: RuntimeSession;
13
- }): ReturnType<typeof describeTaskAgent>;
14
- export declare function checkTaskContinuationAvailability(input: {
15
- readonly action: RuntimeAgentHandleAction;
16
- readonly agentId: string;
17
- readonly parentStepIndex: number;
18
- readonly parentTurnId: string;
19
- readonly session: RuntimeSession;
20
- }): Promise<RuntimeSubagentDispatchFailure | undefined>;
21
- export declare function createTaskContinuationBusyResult(input: {
22
- readonly action: RuntimeAgentHandleAction;
23
- readonly agentId: string;
24
- readonly status: string;
25
- readonly taskId: string;
26
- }): RuntimeSubagentDispatchFailure;
27
- /**
28
- * Persists the task's ownership and routing entry in the parent session's
29
- * `eve.tasks` index and creates its parked tool-call receipt before dispatch.
30
- */
31
- export declare function persistContinuationTaskInParentSession(input: {
32
- readonly action: RuntimeAgentHandleAction;
33
- readonly agentId: string;
34
- readonly delegated: DelegatedTask;
35
- readonly session: RuntimeSession;
36
- }): Promise<PersistedContinuationTask | undefined>;
37
- export declare function settleTaskDispatchError(input: {
38
- readonly delegated: DelegatedTask;
39
- readonly outcome: Extract<DispatchOutcome, {
40
- readonly kind: "error";
41
- }>;
42
- readonly persisted: PersistedContinuationTask | undefined;
43
- }): Promise<RuntimeSubagentDispatchFailure>;
@@ -1 +0,0 @@
1
- import{AGENT_BUSY}from"#harness/agent-handle-errors.js";import{createAgentErrorResult}from"#execution/agent-handle-dispatch.js";import{findActiveTaskForAgent,findTaskAgentAddress}from"#execution/tasks/parent/control-shared.js";import{failDelegatedDispatch,rejectDelegatedDispatch,settleDelegatedDispatch}from"#execution/tasks/parent/delegate.js";import{describeTaskAgent}from"#execution/tasks/parent/agent-identity.js";function describeTaskDispatch(e){let t=describeTaskAgent(e),n=e.agentId===void 0?void 0:findTaskAgentAddress(e.session,e.agentId);return n===void 0?t:{...t,mode:n.address.kind===`agent/remote`?`remote`:`local`}}async function checkTaskContinuationAvailability(e){let t=await findActiveTaskForAgent(e.session,e.agentId,e.parentTurnId,e.parentStepIndex);return t===void 0?void 0:createTaskContinuationBusyResult({action:e.action,agentId:e.agentId,status:t.view.status,taskId:t.view.taskId})}function createTaskContinuationBusyResult(n){return createAgentErrorResult({action:n.action,code:AGENT_BUSY,message:`Agent "${n.agentId}" is busy with task "${n.taskId}" (${n.status}).`})}async function persistContinuationTaskInParentSession(e){let t=findTaskAgentAddress(e.session,e.agentId);if(t!==void 0)return settleDelegatedDispatch({callId:e.action.callId,session:e.session,subagentName:t.identity.name,task:e.delegated})}async function settleTaskDispatchError(e){return e.persisted!==void 0&&e.outcome.deliveryAmbiguous===!0||await(e.persisted===void 0?rejectDelegatedDispatch:failDelegatedDispatch)({error:e.outcome.result.output,task:e.delegated}),e.persisted===void 0?e.outcome.result:{...e.outcome.result,output:attachTaskId(e.outcome.result.output,e.delegated.taskId)}}function attachTaskId(e,t){return typeof e==`object`&&e&&!Array.isArray(e)?{...e,taskId:t}:{error:e,taskId:t}}export{checkTaskContinuationAvailability,createTaskContinuationBusyResult,describeTaskDispatch,persistContinuationTaskInParentSession,settleTaskDispatchError};
@@ -1,19 +0,0 @@
1
- /**
2
- * Task-mode sibling of `dispatchRuntimeActionsStep`, selected by the turn
3
- * workflow when the agent enables `experimental.tasks`.
4
- *
5
- * Same plan → dispatch → emit skeleton, but every delegation is wrapped in
6
- * the durable task lifecycle: the task record and its inbox token
7
- * exist *before* the child dispatch side effect (`beginDelegatedTask`),
8
- * continuations pass the availability check and enter the parent session's
9
- * task index first, and the task settles against the dispatch outcome.
10
- * Children report through their task's inbox token rather than the
11
- * parent turn inbox, and every start dispatches a conversation-mode
12
- * (persistent) child so the background task stays resumable.
13
- *
14
- * Task-control calls (`task_cancel` / `task_update`) execute
15
- * inline in this step, which holds the session ownership index and world
16
- * access they need.
17
- */
18
- import { type RuntimeActionDispatchInput, type RuntimeActionDispatchResult } from "#execution/dispatch-runtime-actions-shared.js";
19
- export declare function dispatchTaskStep(input: RuntimeActionDispatchInput): Promise<RuntimeActionDispatchResult>;
@@ -1 +0,0 @@
1
- import{createDurableSessionState}from"#execution/durable-session-store.js";import{dispatchToTaskAgentAddress}from"#execution/agent-handle-dispatch.js";import{executeTaskControlAction}from"#execution/tasks/parent/dispatch.js";import{startWorkflowTool}from"#execution/tool-run/dispatch.js";import{createAgentContinuationBundle}from"#execution/agent-continuation-bundle.js";import{emitSubagentCalled,prepareRuntimeActionDispatch}from"#execution/dispatch-runtime-actions-shared.js";import{startSubagent}from"#execution/dispatch-runtime-actions-start.js";import{deriveChildActivityObserverConfig}from"#execution/activity-work.js";import{beginDelegatedTask,settleDelegatedDispatch}from"#execution/tasks/parent/delegate.js";import{checkTaskContinuationAvailability,describeTaskDispatch,persistContinuationTaskInParentSession,settleTaskDispatchError}from"#execution/tasks/parent/continuation-dispatch.js";async function dispatchTaskStep(r){"use step";let i=await prepareRuntimeActionDispatch({serializedContext:r.serializedContext,sessionState:r.sessionState,taskControls:!0});if(i===void 0)return{results:[],sessionState:r.sessionState,pendingTasks:[]};let{batch:a,bundle:o,session:s}=i,c=r.parentWritable.getWriter(),l=s,u=[],d=[];try{for(let e of i.plan){if(e.kind===`reject`){u.push(e.result);continue}if(e.kind===`workflow-tool`){let t=await startWorkflowTool({action:e.action,batchEvent:a.event,ownerInboxToken:r.parentContinuationToken,prepared:i,session:l});l=t.session,t.result!==void 0&&u.push(t.result);continue}if(e.kind===`task-control`){let t=await executeTaskControlAction({action:e.action,adapter:i.adapter,bundle:o,parentStepIndex:a.event.stepIndex,parentTurnId:a.event.turnId,serializedContext:i.serializedContext,session:l});l=t.session,t.pendingTask!==void 0&&d.push(t.pendingTask),u.push(t.result);continue}if(e.kind===`resume`){let t=await checkTaskContinuationAvailability({action:e.action,agentId:e.agentId,parentStepIndex:a.event.stepIndex,parentTurnId:a.event.turnId,session:l});if(t!==void 0){u.push(t);continue}}let n=e.kind===`resume`?e.action:e.target.action,f=await beginDelegatedTask({...describeTaskDispatch({action:n,agentId:e.kind===`resume`?e.agentId:void 0,parentSessionId:s.sessionId,parentTurnId:a.event.turnId,session:l}),activityObserver:i.activityObserver===void 0?void 0:deriveChildActivityObserverConfig({activityObserver:i.activityObserver,callId:n.callId,kind:`task`,name:e.kind===`resume`?e.action.name:e.target.action.name,parentSessionId:s.sessionId,parentTurnId:a.event.turnId}),parentSessionId:s.sessionId,parentStepIndex:a.event.stepIndex,parentTurnId:a.event.turnId,session:l}),p;e.kind===`resume`&&(p=await persistContinuationTaskInParentSession({action:e.action,agentId:e.agentId,delegated:f,session:l}),l=p?.session??l);let m;switch(e.kind){case`resume`:m=await dispatchToTaskAgentAddress({action:e.action,activityObserver:i.activityObserver===void 0?void 0:deriveChildActivityObserverConfig({activityObserver:i.activityObserver,callId:e.action.callId,kind:`task`,name:e.action.name,parentSessionId:s.sessionId,parentTurnId:a.event.turnId}),agentId:e.agentId,auth:i.auth,bundle:createAgentContinuationBundle({action:e.action,bundle:o,dynamicRemoteAgent:e.dynamicRemoteAgent}),currentSession:l,parentToken:f.taskInboxToken});break;case`start`:m=await startSubagent({auth:i.auth,batchEvent:a.event,bundle:o,callbackBaseUrl:r.callbackBaseUrl,capabilities:i.capabilities,channelMetadata:i.channelMetadata,currentSession:l,fanoutSize:i.fanoutSize,initiatorAuth:i.initiatorAuth,localDevRequest:i.localDevRequest,parentContinuationToken:f.taskInboxToken,parentTraceContext:i.parentTraceContext,activityObserver:i.activityObserver,sandboxSessionId:i.sandboxSessionId,serializedContext:i.serializedContext,session:s,taskOwned:!0,target:e.target});break}if(l=m.session,m.kind===`error`){u.push(await settleTaskDispatchError({delegated:f,outcome:m,persisted:p})),p!==void 0&&d.push(f);continue}if(p!==void 0)u.push(p.receipt);else{let e=await settleDelegatedDispatch({callId:m.callId,session:l,subagentName:m.toolName,task:f});l=e.session,u.push(e.receipt)}d.push(f),await emitSubagentCalled({adapter:i.adapter,adapterCtx:i.adapterCtx,batchEvent:a.event,entry:e,outcome:m,sessionId:s.sessionId,writer:c})}}finally{c.releaseLock()}return{results:u,sessionState:l===s?i.getBaselineSessionState():createDurableSessionState({session:l}),pendingTasks:d}}export{dispatchTaskStep};
@@ -1 +0,0 @@
1
- import{resumeHook}from"#internal/workflow/runtime.js";async function resumeToolRunAnswers(e,t){for(let n of t??[])await resumeHook(e,{optionId:n.optionId,text:n.text})}export{resumeToolRunAnswers};
@@ -1,14 +0,0 @@
1
- import { type ToolRunAddress } from "#execution/tool-run/types.js";
2
- import type { HarnessToolDefinition } from "#harness/execute-tool.js";
3
- import { type JsonObject } from "#shared/json.js";
4
- import type { TaskExecutorBinding } from "#tools/task.js";
5
- /** Harness `execute` for a background workflow tool: starts the run as the task's executor. */
6
- export declare function createWorkflowToolBackgroundExecute(input: {
7
- readonly toolName: string;
8
- readonly workflowId: string;
9
- }): NonNullable<HarnessToolDefinition["execute"]>;
10
- export declare function createWorkflowToolExecutorBinding(data: ToolRunAddress): TaskExecutorBinding;
11
- /** Reads the tool run recorded on a task's executor binding, if that is what runs it. */
12
- export declare function readWorkflowToolExecutor(binding: TaskExecutorBinding | undefined): ToolRunAddress | undefined;
13
- /** The input crosses the run's serialization boundary; a schema may emit a `Date`, which cannot. */
14
- export declare function parseWorkflowToolInput(toolInput: unknown, toolName: string): JsonObject;
@@ -1 +0,0 @@
1
- import{parseJsonObject}from"#shared/json.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{getHarnessEmissionState}from"#harness/emission.js";import{deriveRunOwner}from"#execution/tool-run/messages.js";import{startToolRun}from"#execution/tool-run/start.js";import{WORKFLOW_TOOL_EXECUTOR_KIND}from"#execution/tool-run/types.js";function createWorkflowToolBackgroundExecute(e){return async(r,i,a)=>{if(a===void 0)throw Error(`Background tool "${e.toolName}" requires a task runtime.`);let o=await startToolRun({callId:i.toolCallId,input:parseWorkflowToolInput(r,e.toolName),owner:deriveRunOwner(a.task.taskInboxToken),session:buildCallbackContext().session,stepIndex:getHarnessEmissionState(a.session.state).stepIndex,toolName:e.toolName,workflowId:e.workflowId});return a.delegated({executor:createWorkflowToolExecutorBinding(o),receipt:{}})}}function createWorkflowToolExecutorBinding(e){return{data:{hookToken:e.hookToken,runId:e.runId},kind:WORKFLOW_TOOL_EXECUTOR_KIND}}function readWorkflowToolExecutor(e){if(e?.kind!==WORKFLOW_TOOL_EXECUTOR_KIND)return;let{hookToken:t,runId:n}=e.data;return typeof t==`string`&&typeof n==`string`?{hookToken:t,runId:n}:void 0}function parseWorkflowToolInput(t,n){try{return parseJsonObject(t)}catch(e){throw TypeError(`Tool "${n}" is a workflow, so its parsed input must be a JSON object.`,{cause:e})}}export{createWorkflowToolBackgroundExecute,createWorkflowToolExecutorBinding,parseWorkflowToolInput,readWorkflowToolExecutor};
@@ -1,7 +0,0 @@
1
- import type { ToolRunAddress } from "#execution/tool-run/types.js";
2
- /**
3
- * Asks the run to cancel itself; cancels it outright only if the message cannot
4
- * be delivered. Failures are logged, not thrown: the caller has already
5
- * committed the cancellation the run was serving.
6
- */
7
- export declare function cancelToolRun(run: ToolRunAddress, reason: string): Promise<void>;
@@ -1 +0,0 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{cancelRun,getWorld,resumeHook}from"#internal/workflow/runtime.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";const log=createLogger(`execution.tool-run`);async function cancelToolRun(e,n){let r={kind:`cancel`,reason:n};try{await resumeHook(e.hookToken,r);return}catch(t){if(isTaskWorkflowTargetGone(t))return;logError(log,`failed to signal a workflow tool run to cancel; cancelling it outright`,t,{runId:e.runId})}try{await cancelRun(await getWorld(),e.runId,{cancelReason:n})}catch(t){if(isTaskWorkflowTargetGone(t))return;logError(log,`failed to cancel workflow tool run; it may run to completion`,t,{runId:e.runId})}}export{cancelToolRun};