eve 0.67.1 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/src/channel/channel-address.d.ts +2 -2
  3. package/dist/src/channel/compiled-channel.d.ts +3 -2
  4. package/dist/src/channel/cross-channel-receive.d.ts +1 -18
  5. package/dist/src/channel/cross-channel-receive.js +1 -1
  6. package/dist/src/channel/forwarded-principal.d.ts +3 -2
  7. package/dist/src/channel/resolve-text.d.ts +2 -1
  8. package/dist/src/channel/schedule.d.ts +2 -2
  9. package/dist/src/channel/session-callback.d.ts +2 -1
  10. package/dist/src/channel/types.d.ts +3 -7
  11. package/dist/src/cli/acp/command.d.ts +2 -1
  12. package/dist/src/cli/agent-command.d.ts +2 -1
  13. package/dist/src/cli/agent-detection.d.ts +0 -1
  14. package/dist/src/cli/agent-detection.js +1 -1
  15. package/dist/src/cli/application-command.d.ts +2 -1
  16. package/dist/src/cli/application-root.d.ts +3 -6
  17. package/dist/src/cli/application-root.js +1 -1
  18. package/dist/src/cli/commands/init-target.d.ts +1 -1
  19. package/dist/src/cli/commands/init-telemetry.d.ts +2 -1
  20. package/dist/src/cli/commands/registry-declared-setups.d.ts +2 -1
  21. package/dist/src/cli/commands/registry-install-transaction.d.ts +0 -13
  22. package/dist/src/cli/commands/registry-install-transaction.js +1 -1
  23. package/dist/src/cli/commands/registry-pnpm-build-policy-flow.d.ts +1 -1
  24. package/dist/src/cli/commands/registry-presentation.d.ts +0 -1
  25. package/dist/src/cli/commands/registry-presentation.js +1 -1
  26. package/dist/src/cli/commands/registry-project.d.ts +2 -1
  27. package/dist/src/cli/commands/registry.d.ts +0 -4
  28. package/dist/src/cli/commands/registry.js +1 -1
  29. package/dist/src/cli/commands/setup-headless.d.ts +2 -1
  30. package/dist/src/cli/commands/vercel-non-interactive.d.ts +2 -1
  31. package/dist/src/cli/dev/command-options.d.ts +1 -0
  32. package/dist/src/cli/dev/command.js +1 -1
  33. package/dist/src/cli/dev/diagnostic-dump.d.ts +0 -2
  34. package/dist/src/cli/dev/diagnostic-dump.js +1 -1
  35. package/dist/src/cli/dev/diagnostic-sink.d.ts +3 -2
  36. package/dist/src/cli/dev/local-server-process.js +1 -1
  37. package/dist/src/cli/dev/tui/agent-header.d.ts +2 -1
  38. package/dist/src/cli/dev/tui/argument-typeahead.d.ts +2 -1
  39. package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +2 -1
  40. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +2 -1
  41. package/dist/src/cli/dev/tui/errors.d.ts +2 -7
  42. package/dist/src/cli/dev/tui/errors.js +1 -1
  43. package/dist/src/cli/dev/tui/flow-drawer.d.ts +2 -1
  44. package/dist/src/cli/dev/tui/line-editor.d.ts +1 -1
  45. package/dist/src/cli/dev/tui/mcp-connection-status.d.ts +2 -1
  46. package/dist/src/cli/dev/tui/message-queue.d.ts +4 -3
  47. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +2 -1
  48. package/dist/src/cli/dev/tui/provider-picker.d.ts +3 -2
  49. package/dist/src/cli/dev/tui/question-panel.d.ts +2 -1
  50. package/dist/src/cli/dev/tui/registry-result-message.d.ts +3 -4
  51. package/dist/src/cli/dev/tui/registry-result-message.js +1 -1
  52. package/dist/src/cli/dev/tui/remote-connection-probe.d.ts +3 -2
  53. package/dist/src/cli/dev/tui/setup-panel.d.ts +2 -2
  54. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +2 -2
  55. package/dist/src/cli/dev/tui/status-line.d.ts +2 -1
  56. package/dist/src/cli/dev/tui/stream-format.d.ts +3 -2
  57. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +3 -2
  58. package/dist/src/cli/dev/tui/theme.d.ts +1 -1
  59. package/dist/src/cli/dev/tui/tool-block-groups.d.ts +3 -2
  60. package/dist/src/cli/dev/tui/tool-presentation.d.ts +2 -1
  61. package/dist/src/cli/dev/tui/traces/trace-content.d.ts +0 -9
  62. package/dist/src/cli/dev/tui/traces/trace-content.js +1 -1
  63. package/dist/src/cli/dev/tui/traces/trace-view.d.ts +3 -2
  64. package/dist/src/cli/dev/tui/traces/trace-viewer-session.d.ts +2 -1
  65. package/dist/src/cli/dev/tui/traces/trace-viewer-state.d.ts +2 -3
  66. package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
  67. package/dist/src/cli/dev/tui/tui.js +1 -1
  68. package/dist/src/cli/dev/ui-options.d.ts +3 -2
  69. package/dist/src/cli/dev/url-target.d.ts +2 -1
  70. package/dist/src/cli/invoke/command.d.ts +0 -11
  71. package/dist/src/cli/invoke/command.js +1 -1
  72. package/dist/src/cli/invoke/result.d.ts +1 -1
  73. package/dist/src/cli/telemetry/index.d.ts +0 -6
  74. package/dist/src/cli/telemetry/preference.d.ts +2 -1
  75. package/dist/src/cli/ui/alt-screen.d.ts +3 -2
  76. package/dist/src/cli/ui/live-region.d.ts +3 -2
  77. package/dist/src/cli/ui/output.d.ts +1 -1
  78. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -1
  79. package/dist/src/client/eve-agent-store-helpers.js +1 -1
  80. package/dist/src/client/message-action-parts.d.ts +2 -1
  81. package/dist/src/client/session-utils.d.ts +3 -2
  82. package/dist/src/compiled/.vendor-stamp.json +6 -6
  83. package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +55 -55
  84. package/dist/src/compiled/@vercel/blob/index.js +1 -1
  85. package/dist/src/compiled/@vercel/oidc/index.js +1 -1
  86. package/dist/src/compiled/@workflow/core/index.js +2 -2
  87. package/dist/src/compiled/@workflow/core/private.js +1 -1
  88. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +4 -3
  89. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +23 -0
  90. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  91. package/dist/src/compiled/@workflow/core/runtime/hook-wake.d.ts +69 -36
  92. package/dist/src/compiled/@workflow/core/runtime/lifecycle-hooks.d.ts +25 -22
  93. package/dist/src/compiled/@workflow/core/runtime/run-spec-version.d.ts +16 -0
  94. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +59 -1
  95. package/dist/src/compiled/@workflow/core/runtime/step-latency.d.ts +3 -2
  96. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +34 -12
  97. package/dist/src/compiled/@workflow/core/runtime.js +4 -4
  98. package/dist/src/compiled/@workflow/core/serialization.d.ts +7 -2
  99. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  100. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +29 -0
  101. package/dist/src/compiled/@workflow/core/types.d.ts +1 -0
  102. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  103. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  104. package/dist/src/compiled/@workflow/errors/index.d.ts +13 -0
  105. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  106. package/dist/src/compiled/@workflow/world/events.d.ts +14 -4
  107. package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
  108. package/dist/src/compiled/@workflow/world/interfaces.d.ts +2 -1
  109. package/dist/src/compiled/@workflow/world/shared.d.ts +24 -0
  110. package/dist/src/compiled/@workflow/world/spec-version.d.ts +23 -0
  111. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  112. package/dist/src/compiled/@workflow/world-vercel/index.js +16 -16
  113. package/dist/src/compiled/_chunks/workflow/{attribute-changes-DzJovO_f.js → attribute-changes-D721NpZv.js} +3 -3
  114. package/dist/src/compiled/_chunks/workflow/{dist-BQSf8Hax.js → dist-BUFGAKRb.js} +1 -1
  115. package/dist/src/compiled/_chunks/workflow/dist-CaNNONeg.js +3 -0
  116. package/dist/src/compiled/_chunks/workflow/{frames-qKc30rjg.js → frames-Dr9fHWdo.js} +2 -2
  117. package/dist/src/compiled/_chunks/workflow/{global-BQnKzRXo.js → global-DKbOgrts.js} +1 -1
  118. package/dist/src/compiled/_chunks/workflow/helpers-DkKxg_yn.js +1 -0
  119. package/dist/src/compiled/_chunks/workflow/logger-D4GJNTk4.js +14 -0
  120. package/dist/src/compiled/_chunks/workflow/resume-hook-uTW-jBYz.js +1 -0
  121. package/dist/src/compiled/_chunks/workflow/run-5DmiMN9b.js +1 -0
  122. package/dist/src/compiled/_chunks/workflow/serialization-CNIYl1D3.js +3 -0
  123. package/dist/src/compiled/_chunks/workflow/sleep-DFKgN7UG.js +1 -0
  124. package/dist/src/compiled/_chunks/workflow/wait-until-3_1djUuL.js +1 -0
  125. package/dist/src/compiled/_chunks/workflow/{ws-transport-BrsMYqJg.js → ws-transport--rYOVIaf.js} +1 -1
  126. package/dist/src/compiler/artifacts.d.ts +4 -27
  127. package/dist/src/compiler/artifacts.js +1 -1
  128. package/dist/src/compiler/compile-agent.d.ts +2 -1
  129. package/dist/src/compiler/compile-agent.js +1 -1
  130. package/dist/src/compiler/diagnostics.d.ts +0 -11
  131. package/dist/src/compiler/diagnostics.js +1 -1
  132. package/dist/src/compiler/extension-compatibility.d.ts +6 -6
  133. package/dist/src/compiler/extension-compatibility.js +1 -1
  134. package/dist/src/compiler/manifest.d.ts +0 -4
  135. package/dist/src/compiler/module-map.d.ts +1 -5
  136. package/dist/src/compiler/module-map.js +1 -1
  137. package/dist/src/compiler/normalize-agent-config.js +1 -1
  138. package/dist/src/compiler/normalize-connection.d.ts +2 -1
  139. package/dist/src/compiler/normalize-instructions.d.ts +2 -6
  140. package/dist/src/compiler/normalize-instructions.js +1 -1
  141. package/dist/src/compiler/normalize-manifest-helpers.d.ts +0 -1
  142. package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
  143. package/dist/src/compiler/normalize-manifest.js +1 -1
  144. package/dist/src/compiler/normalize-skill.d.ts +2 -1
  145. package/dist/src/compiler/project-sources.d.ts +0 -14
  146. package/dist/src/compiler/project-sources.js +1 -1
  147. package/dist/src/compiler/resolve-workspace-subagent.js +1 -1
  148. package/dist/src/compiler/source-graph.d.ts +1 -2
  149. package/dist/src/compiler/source-graph.js +1 -1
  150. package/dist/src/computer-use/extension/extension.d.ts +2 -0
  151. package/dist/src/computer-use/extension/extension.js +1 -0
  152. package/dist/src/computer-use/extension/lib/command-failure.d.ts +7 -0
  153. package/dist/src/computer-use/extension/lib/command-failure.js +2 -0
  154. package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use-driver-source.d.ts +0 -2
  155. package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use-driver-source.js +57 -57
  156. package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use-sandbox.js +1 -1
  157. package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use.d.ts +1 -1
  158. package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -0
  159. package/dist/src/computer-use/extension/lib/sandbox.js +1 -0
  160. package/dist/src/computer-use/extension/lib/shell.d.ts +1 -0
  161. package/dist/src/computer-use/extension/lib/shell.js +1 -0
  162. package/dist/src/computer-use/tools.d.ts +1 -0
  163. package/dist/src/computer-use/tools.js +1 -0
  164. package/dist/src/context/build-base-tool-context.d.ts +2 -1
  165. package/dist/src/context/dynamic-tool-lifecycle.d.ts +1 -5
  166. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  167. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -1
  168. package/dist/src/context/dynamic-tool-metadata.js +1 -1
  169. package/dist/src/context/hook-lifecycle.d.ts +4 -3
  170. package/dist/src/context/hook-lifecycle.js +1 -1
  171. package/dist/src/context/memory-lifecycle.d.ts +0 -8
  172. package/dist/src/context/memory-lifecycle.js +1 -1
  173. package/dist/src/discover/connections.d.ts +0 -15
  174. package/dist/src/discover/connections.js +1 -1
  175. package/dist/src/discover/diagnostics.d.ts +0 -8
  176. package/dist/src/discover/diagnostics.js +1 -1
  177. package/dist/src/discover/discover-agent.js +1 -1
  178. package/dist/src/discover/discover-subagent.d.ts +0 -1
  179. package/dist/src/discover/discover-subagent.js +1 -1
  180. package/dist/src/discover/extensions.d.ts +3 -10
  181. package/dist/src/discover/extensions.js +1 -1
  182. package/dist/src/discover/filesystem.d.ts +5 -9
  183. package/dist/src/discover/filesystem.js +1 -1
  184. package/dist/src/discover/grammar.d.ts +0 -46
  185. package/dist/src/discover/grammar.js +1 -1
  186. package/dist/src/discover/manifest.d.ts +5 -4
  187. package/dist/src/discover/memory.d.ts +0 -1
  188. package/dist/src/discover/memory.js +1 -1
  189. package/dist/src/discover/named-source-directory.js +1 -1
  190. package/dist/src/discover/project-source.d.ts +2 -1
  191. package/dist/src/discover/project.js +1 -1
  192. package/dist/src/discover/sandbox.js +1 -1
  193. package/dist/src/discover/skills.d.ts +0 -4
  194. package/dist/src/discover/skills.js +1 -1
  195. package/dist/src/evals/cli/eval-client.d.ts +2 -1
  196. package/dist/src/evals/judge.d.ts +2 -1
  197. package/dist/src/evals/runner/execute-task.d.ts +1 -1
  198. package/dist/src/evals/types.d.ts +1 -1
  199. package/dist/src/eve-channel/support.d.ts +1 -3
  200. package/dist/src/eve-channel/support.js +1 -1
  201. package/dist/src/execution/continuation-conflict-step.js +1 -1
  202. package/dist/src/execution/dynamic-workflow/schema.d.ts +2 -1
  203. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  204. package/dist/src/execution/effective-agent-config.d.ts +2 -1
  205. package/dist/src/execution/eve-workflow-attributes.d.ts +3 -5
  206. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  207. package/dist/src/execution/history-view.d.ts +2 -1
  208. package/dist/src/execution/node-step.d.ts +3 -2
  209. package/dist/src/execution/proxied-deliver-step.js +1 -1
  210. package/dist/src/execution/publish-channel-event.js +1 -1
  211. package/dist/src/execution/sandbox/active-handles.d.ts +2 -4
  212. package/dist/src/execution/sandbox/active-handles.js +1 -1
  213. package/dist/src/execution/sandbox/bash.d.ts +2 -1
  214. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  215. package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -6
  216. package/dist/src/execution/sandbox/bindings/immutable-resources.js +1 -1
  217. package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +3 -2
  218. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -1
  219. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
  220. package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +1 -1
  221. package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -3
  222. package/dist/src/execution/sandbox/bindings/microsandbox-options.js +1 -1
  223. package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -1
  224. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
  225. package/dist/src/execution/sandbox/bindings/vercel.d.ts +1 -1
  226. package/dist/src/execution/sandbox/dockerfile.d.ts +0 -1
  227. package/dist/src/execution/sandbox/dockerfile.js +1 -1
  228. package/dist/src/execution/sandbox/ensure.d.ts +2 -1
  229. package/dist/src/execution/sandbox/ensure.js +1 -1
  230. package/dist/src/execution/sandbox/prewarm.d.ts +1 -18
  231. package/dist/src/execution/sandbox/prewarm.js +1 -1
  232. package/dist/src/execution/sandbox/require-sandbox.d.ts +0 -11
  233. package/dist/src/execution/sandbox/require-sandbox.js +1 -1
  234. package/dist/src/execution/sandbox/truncate-output.d.ts +2 -5
  235. package/dist/src/execution/sandbox/truncate-output.js +2 -2
  236. package/dist/src/execution/session/admission.d.ts +3 -2
  237. package/dist/src/execution/session/event-sink.d.ts +2 -1
  238. package/dist/src/execution/session/finalization.d.ts +2 -1
  239. package/dist/src/execution/session/handoff.d.ts +3 -2
  240. package/dist/src/execution/session/route-selected-delivery.d.ts +2 -1
  241. package/dist/src/execution/session/timeout-control.d.ts +2 -1
  242. package/dist/src/execution/session/timeout-steps.js +1 -1
  243. package/dist/src/execution/session/turn-event-handler.d.ts +27 -0
  244. package/dist/src/execution/session/turn-event-handler.js +1 -0
  245. package/dist/src/execution/session/turn-step.js +1 -1
  246. package/dist/src/execution/session-activity.d.ts +0 -3
  247. package/dist/src/execution/session-activity.js +1 -1
  248. package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
  249. package/dist/src/execution/session.d.ts +3 -2
  250. package/dist/src/execution/stable-workflow-names.d.ts +0 -6
  251. package/dist/src/execution/stable-workflow-names.js +1 -1
  252. package/dist/src/execution/task-input-response-route.js +1 -1
  253. package/dist/src/execution/tasks/child/notify.js +1 -1
  254. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  255. package/dist/src/execution/tools/ask-question-workflow.js +1 -1
  256. package/dist/src/execution/tools/connection-search.js +2 -2
  257. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  258. package/dist/src/execution/tools/subagent/emit-event-step.js +1 -1
  259. package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +2 -1
  260. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +4 -3
  261. package/dist/src/execution/tools/workflow/answer.d.ts +4 -1
  262. package/dist/src/execution/tools/workflow/answer.js +1 -1
  263. package/dist/src/execution/tools/workflow/background.d.ts +2 -6
  264. package/dist/src/execution/tools/workflow/background.js +1 -1
  265. package/dist/src/execution/tools/workflow/owner-channels.d.ts +1 -1
  266. package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +2 -1
  267. package/dist/src/execution/web-fetch/execute.d.ts +2 -2
  268. package/dist/src/execution/web-fetch/request.d.ts +2 -1
  269. package/dist/src/execution/workflow-runtime.js +1 -1
  270. package/dist/src/extensions/code/extension/lib/generated-paths.d.ts +2 -1
  271. package/dist/src/extensions/code/extension/lib/grep-search.d.ts +5 -5
  272. package/dist/src/extensions/code/extension/lib/grep-search.js +2 -2
  273. package/dist/src/extensions/code/extension/lib/guidelines.d.ts +2 -1
  274. package/dist/src/extensions/code/extension/lib/patch.d.ts +3 -2
  275. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +1 -2
  276. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  277. package/dist/src/extensions/code/extension/lib/prwatch-registry.d.ts +2 -1
  278. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +3 -2
  279. package/dist/src/extensions/code/extension/lib/sandbox.js +1 -1
  280. package/dist/src/extensions/code/extension/lib/signed-commit.d.ts +1 -1
  281. package/dist/src/extensions/code/extension/lib/signed-commit.js +2 -2
  282. package/dist/src/extensions/code/tools.d.ts +2 -1
  283. package/dist/src/extensions/code/tools.js +1 -1
  284. package/dist/src/framework/host-inventory.d.ts +3 -2
  285. package/dist/src/harness/approval-candidates.d.ts +4 -3
  286. package/dist/src/harness/approval-delivery-coordinator.d.ts +2 -1
  287. package/dist/src/harness/compaction-prompt.d.ts +2 -1
  288. package/dist/src/harness/coordination.d.ts +0 -4
  289. package/dist/src/harness/coordination.js +1 -1
  290. package/dist/src/harness/input-requests.d.ts +1 -10
  291. package/dist/src/harness/input-requests.js +1 -1
  292. package/dist/src/harness/pending-input-batches.d.ts +0 -5
  293. package/dist/src/harness/pending-input-batches.js +1 -1
  294. package/dist/src/harness/provider-tools.d.ts +2 -1
  295. package/dist/src/harness/session-limit-continuation.d.ts +0 -4
  296. package/dist/src/harness/session-limit-continuation.js +1 -1
  297. package/dist/src/harness/session-usage-limits.d.ts +2 -1
  298. package/dist/src/harness/tool-loop.js +2 -2
  299. package/dist/src/harness/tool-model-output.d.ts +2 -1
  300. package/dist/src/harness/turn-client-context.d.ts +2 -1
  301. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  302. package/dist/src/instrumentation/lifecycle.d.ts +2 -2
  303. package/dist/src/instrumentation/lifecycle.js +1 -1
  304. package/dist/src/instrumentation/state.d.ts +2 -2
  305. package/dist/src/internal/agent-name.d.ts +0 -2
  306. package/dist/src/internal/agent-name.js +1 -1
  307. package/dist/src/internal/application/build-profile.d.ts +2 -2
  308. package/dist/src/internal/application/dev-environment.d.ts +2 -8
  309. package/dist/src/internal/application/dev-environment.js +1 -1
  310. package/dist/src/internal/application/output-publication.d.ts +1 -1
  311. package/dist/src/internal/application/package.js +1 -1
  312. package/dist/src/internal/application/paths.d.ts +0 -5
  313. package/dist/src/internal/application/paths.js +1 -1
  314. package/dist/src/internal/application/tsconfig-dependencies.d.ts +0 -16
  315. package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
  316. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  317. package/dist/src/internal/authored-definition/source-identity.d.ts +1 -1
  318. package/dist/src/internal/authored-module-map-loader.js +1 -1
  319. package/dist/src/internal/bundler/extension-scope-plugin.d.ts +2 -1
  320. package/dist/src/internal/bundler/nitro-rolldown.d.ts +0 -11
  321. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  322. package/dist/src/internal/eve-project-root.d.ts +0 -3
  323. package/dist/src/internal/eve-project-root.js +1 -1
  324. package/dist/src/internal/external-resources-snapshot.d.ts +1 -1
  325. package/dist/src/internal/external-resources.d.ts +0 -1
  326. package/dist/src/internal/external-resources.js +1 -1
  327. package/dist/src/internal/helpers/markdown.js +1 -1
  328. package/dist/src/internal/invocation/metadata.d.ts +1 -1
  329. package/dist/src/internal/materialized-authored-modules.d.ts +2 -1
  330. package/dist/src/internal/mcp/protected-resource.d.ts +2 -1
  331. package/dist/src/internal/mcp/streamable-http-server.d.ts +4 -5
  332. package/dist/src/internal/mcp/streamable-http-server.js +1 -1
  333. package/dist/src/internal/model-catalog.d.ts +2 -1
  334. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.d.ts +2 -2
  335. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
  336. package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +2 -8
  337. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  338. package/dist/src/internal/nitro/dev-runtime-generation-metadata.d.ts +13 -0
  339. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -0
  340. package/dist/src/internal/nitro/dev-runtime-source-snapshot.d.ts +0 -1
  341. package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
  342. package/dist/src/internal/nitro/development-generation.d.ts +2 -1
  343. package/dist/src/internal/nitro/development-generation.js +1 -1
  344. package/dist/src/internal/nitro/host/channel-routes.d.ts +1 -1
  345. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +3 -1
  346. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.js +1 -1
  347. package/dist/src/internal/nitro/host/dev-host-candidate.d.ts +2 -1
  348. package/dist/src/internal/nitro/host/dev-workflow-world-setup.d.ts +1 -0
  349. package/dist/src/internal/nitro/host/dev-workflow-world-setup.js +1 -1
  350. package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +1 -1
  351. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  352. package/dist/src/internal/nitro/host/schedule-task-routes.d.ts +1 -1
  353. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  354. package/dist/src/internal/nitro/host/types.d.ts +2 -0
  355. package/dist/src/internal/nitro/host/workspace-extensions.js +1 -1
  356. package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +2 -1
  357. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +1 -1
  358. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +2 -1
  359. package/dist/src/internal/resolve-model-endpoint-status.d.ts +2 -1
  360. package/dist/src/internal/vercel/assemble-eve-services.d.ts +3 -2
  361. package/dist/src/internal/vercel/eve-service-contribution.d.ts +2 -3
  362. package/dist/src/internal/vercel/eve-service-contribution.js +1 -1
  363. package/dist/src/internal/vercel/project-link.d.ts +2 -1
  364. package/dist/src/internal/vercel/project-link.js +1 -1
  365. package/dist/src/internal/workflow/cancel-expired-development-run.d.ts +2 -0
  366. package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -0
  367. package/dist/src/internal/workflow/development-runtime-compatibility.d.ts +12 -0
  368. package/dist/src/internal/workflow/development-runtime-compatibility.js +1 -0
  369. package/dist/src/internal/workflow/development-world-client.js +1 -1
  370. package/dist/src/internal/workflow/development-world-codec.d.ts +2 -1
  371. package/dist/src/internal/workflow/development-world-protocol.d.ts +9 -0
  372. package/dist/src/internal/workflow/development-world-server.d.ts +2 -0
  373. package/dist/src/internal/workflow/development-world-server.js +1 -1
  374. package/dist/src/internal/workflow/is-inactive-workflow-run-error.d.ts +2 -0
  375. package/dist/src/internal/workflow/is-inactive-workflow-run-error.js +1 -0
  376. package/dist/src/internal/workflow/world-compatibility.d.ts +2 -1
  377. package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -9
  378. package/dist/src/internal/workflow-bundle/builder-support.js +2 -3
  379. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -1
  380. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
  381. package/dist/src/protocol/activity.d.ts +3 -3
  382. package/dist/src/protocol/activity.js +1 -1
  383. package/dist/src/protocol/baggage.d.ts +2 -2
  384. package/dist/src/protocol/cancel-turn.d.ts +0 -2
  385. package/dist/src/protocol/event-dedupe.d.ts +2 -1
  386. package/dist/src/protocol/event-id.d.ts +0 -6
  387. package/dist/src/protocol/event-id.js +1 -1
  388. package/dist/src/protocol/traceparent.d.ts +2 -1
  389. package/dist/src/public/channels/chat-sdk/audience.d.ts +2 -4
  390. package/dist/src/public/channels/chat-sdk/audience.js +1 -1
  391. package/dist/src/public/channels/discord/discordChannel.d.ts +1 -1
  392. package/dist/src/public/channels/github/api.d.ts +2 -12
  393. package/dist/src/public/channels/github/api.js +1 -1
  394. package/dist/src/public/channels/github/auth.d.ts +0 -9
  395. package/dist/src/public/channels/github/auth.js +1 -1
  396. package/dist/src/public/channels/github/binding.d.ts +3 -2
  397. package/dist/src/public/channels/github/checkout.d.ts +3 -3
  398. package/dist/src/public/channels/github/defaults.d.ts +3 -2
  399. package/dist/src/public/channels/github/githubChannel.d.ts +1 -1
  400. package/dist/src/public/channels/github/limits.d.ts +0 -2
  401. package/dist/src/public/channels/github/limits.js +2 -2
  402. package/dist/src/public/channels/github/pr-context.d.ts +2 -3
  403. package/dist/src/public/channels/github/pr-context.js +1 -1
  404. package/dist/src/public/channels/github/state.d.ts +2 -1
  405. package/dist/src/public/channels/github/verify.d.ts +2 -1
  406. package/dist/src/public/channels/linear/defaults.d.ts +2 -1
  407. package/dist/src/public/channels/linear/inbound-images.d.ts +2 -1
  408. package/dist/src/public/channels/slack/app-manifest.d.ts +3 -4
  409. package/dist/src/public/channels/slack/app-manifest.js +1 -1
  410. package/dist/src/public/channels/slack/inbound.d.ts +2 -1
  411. package/dist/src/public/channels/slack/model-context.d.ts +0 -18
  412. package/dist/src/public/channels/slack/model-context.js +1 -1
  413. package/dist/src/public/channels/slack/privacy.d.ts +2 -1
  414. package/dist/src/public/channels/slack/verify.d.ts +1 -1
  415. package/dist/src/public/channels/teams/teamsChannel.d.ts +1 -1
  416. package/dist/src/public/channels/telegram/audience.d.ts +2 -3
  417. package/dist/src/public/channels/telegram/audience.js +1 -1
  418. package/dist/src/public/channels/telegram/telegramChannel.d.ts +1 -1
  419. package/dist/src/public/channels/twilio/defaults.d.ts +0 -7
  420. package/dist/src/public/channels/twilio/defaults.js +1 -1
  421. package/dist/src/public/channels/twilio/routing.d.ts +2 -1
  422. package/dist/src/public/channels/twilio/twilioChannel.d.ts +1 -1
  423. package/dist/src/public/definitions/channel.d.ts +1 -1
  424. package/dist/src/public/definitions/hook.d.ts +12 -0
  425. package/dist/src/public/index.js +1 -1
  426. package/dist/src/public/memory/file/provider.js +1 -1
  427. package/dist/src/public/models/openai/chatgpt/model.d.ts +2 -1
  428. package/dist/src/public/models/openai/chatgpt/token-broker.d.ts +1 -1
  429. package/dist/src/public/nuxt/dev-server.d.ts +3 -2
  430. package/dist/src/public/skills/index.js +1 -1
  431. package/dist/src/public/sveltekit/dev-server.d.ts +3 -2
  432. package/dist/src/public/tools/index.js +1 -1
  433. package/dist/src/runtime/compiled-artifacts-source.d.ts +0 -4
  434. package/dist/src/runtime/compiled-artifacts-source.js +1 -1
  435. package/dist/src/runtime/connections/instance-identity.d.ts +0 -3
  436. package/dist/src/runtime/connections/instance-identity.js +1 -1
  437. package/dist/src/runtime/connections/mcp-client.d.ts +7 -0
  438. package/dist/src/runtime/connections/mcp-client.js +1 -1
  439. package/dist/src/runtime/connections/mcp-tracing.d.ts +1 -6
  440. package/dist/src/runtime/connections/mcp-tracing.js +1 -1
  441. package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
  442. package/dist/src/runtime/connections/scoped-authorization.d.ts +0 -9
  443. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  444. package/dist/src/runtime/hooks/registry.d.ts +0 -7
  445. package/dist/src/runtime/hooks/registry.js +1 -1
  446. package/dist/src/runtime/loaders/artifact-paths.d.ts +2 -1
  447. package/dist/src/runtime/loaders/bundled-artifacts.d.ts +0 -1
  448. package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
  449. package/dist/src/runtime/resolve-agent.d.ts +2 -2
  450. package/dist/src/runtime/resolve-agent.js +1 -1
  451. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -16
  452. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  453. package/dist/src/runtime/sandbox/prepared-artifacts.d.ts +1 -2
  454. package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
  455. package/dist/src/runtime/schedules/register.d.ts +0 -4
  456. package/dist/src/runtime/schedules/register.js +1 -1
  457. package/dist/src/self-modification/credentials.d.ts +1 -4
  458. package/dist/src/self-modification/credentials.js +1 -1
  459. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.js +1 -1
  460. package/dist/src/self-modification/filesystem.d.ts +0 -1
  461. package/dist/src/self-modification/filesystem.js +1 -1
  462. package/dist/src/self-modification/git-workspace.d.ts +0 -3
  463. package/dist/src/self-modification/git-workspace.js +1 -1
  464. package/dist/src/self-modification/github-publisher.d.ts +2 -1
  465. package/dist/src/self-modification/migration.d.ts +0 -1
  466. package/dist/src/self-modification/migration.js +1 -1
  467. package/dist/src/self-modification/mode.d.ts +2 -1
  468. package/dist/src/self-modification/proposal.d.ts +0 -2
  469. package/dist/src/self-modification/proposal.js +2 -2
  470. package/dist/src/self-modification/setup.js +1 -1
  471. package/dist/src/services/dev-client/agent-info-probe.d.ts +2 -1
  472. package/dist/src/services/dev-client/request-headers.d.ts +1 -1
  473. package/dist/src/setup/ai-gateway-api-key.d.ts +2 -1
  474. package/dist/src/setup/append-env.d.ts +3 -2
  475. package/dist/src/setup/ask.d.ts +3 -3
  476. package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -1
  477. package/dist/src/setup/boxes/deploy-project.d.ts +4 -3
  478. package/dist/src/setup/boxes/link-project.d.ts +2 -1
  479. package/dist/src/setup/boxes/model-capabilities.d.ts +2 -2
  480. package/dist/src/setup/boxes/model-capabilities.js +1 -1
  481. package/dist/src/setup/boxes/resolve-provisioning.d.ts +2 -1
  482. package/dist/src/setup/boxes/select-model.d.ts +0 -1
  483. package/dist/src/setup/boxes/select-model.js +1 -1
  484. package/dist/src/setup/cli/option-row.d.ts +1 -1
  485. package/dist/src/setup/cli/prompt-ui.d.ts +0 -10
  486. package/dist/src/setup/cli/prompt-ui.js +1 -1
  487. package/dist/src/setup/cli/rail-log.d.ts +0 -2
  488. package/dist/src/setup/cli/rail-log.js +2 -2
  489. package/dist/src/setup/connect-provisioning.d.ts +2 -1
  490. package/dist/src/setup/connection-connector.d.ts +2 -1
  491. package/dist/src/setup/flows/link.d.ts +2 -1
  492. package/dist/src/setup/flows/model-login.d.ts +1 -1
  493. package/dist/src/setup/flows/model-source-change.js +1 -1
  494. package/dist/src/setup/flows/registry-session.d.ts +3 -2
  495. package/dist/src/setup/integrations/discord/api.d.ts +2 -1
  496. package/dist/src/setup/integrations/discord/connect.d.ts +3 -3
  497. package/dist/src/setup/integrations/discord/connect.js +1 -1
  498. package/dist/src/setup/integrations/discord/setup.d.ts +2 -1
  499. package/dist/src/setup/integrations/file-memory/vercel.d.ts +1 -1
  500. package/dist/src/setup/integrations/github/connect.d.ts +3 -3
  501. package/dist/src/setup/integrations/github/connect.js +1 -1
  502. package/dist/src/setup/integrations/github/setup.d.ts +1 -1
  503. package/dist/src/setup/integrations/linear/connect.d.ts +2 -2
  504. package/dist/src/setup/integrations/linear/connect.js +1 -1
  505. package/dist/src/setup/integrations/linear/setup.d.ts +1 -1
  506. package/dist/src/setup/integrations/linq/connect.d.ts +3 -4
  507. package/dist/src/setup/integrations/linq/connect.js +1 -1
  508. package/dist/src/setup/integrations/linq/management.d.ts +2 -1
  509. package/dist/src/setup/integrations/linq/setup.d.ts +1 -9
  510. package/dist/src/setup/integrations/linq/setup.js +1 -1
  511. package/dist/src/setup/integrations/photon/connect.d.ts +5 -7
  512. package/dist/src/setup/integrations/photon/connect.js +1 -1
  513. package/dist/src/setup/integrations/photon/management.d.ts +5 -4
  514. package/dist/src/setup/integrations/photon/setup-flow.d.ts +2 -1
  515. package/dist/src/setup/integrations/registry.d.ts +0 -2
  516. package/dist/src/setup/integrations/registry.js +1 -1
  517. package/dist/src/setup/integrations/runner.d.ts +3 -2
  518. package/dist/src/setup/integrations/shared/scaffold.d.ts +2 -1
  519. package/dist/src/setup/integrations/shared/vercel-project.d.ts +2 -1
  520. package/dist/src/setup/integrations/shopify/setup.d.ts +2 -1
  521. package/dist/src/setup/integrations/teams/connect.d.ts +3 -3
  522. package/dist/src/setup/integrations/teams/connect.js +1 -1
  523. package/dist/src/setup/integrations/teams/setup.d.ts +2 -1
  524. package/dist/src/setup/integrations/web/setup.d.ts +2 -3
  525. package/dist/src/setup/integrations/web/setup.js +3 -3
  526. package/dist/src/setup/primitives/pm/process-result.d.ts +2 -1
  527. package/dist/src/setup/primitives/pm/shared.d.ts +2 -1
  528. package/dist/src/setup/primitives/process-output.d.ts +2 -1
  529. package/dist/src/setup/quit-guard.d.ts +3 -2
  530. package/dist/src/setup/scaffold/create/add-to-project.d.ts +2 -1
  531. package/dist/src/setup/scaffold/create/project.js +1 -1
  532. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  533. package/dist/src/setup/scaffold/create/web-template.js +1 -1
  534. package/dist/src/setup/scaffold/files.d.ts +2 -1
  535. package/dist/src/setup/scaffold/update/channels.d.ts +0 -1
  536. package/dist/src/setup/scaffold/workspace-glob.d.ts +0 -1
  537. package/dist/src/setup/scaffold/workspace-glob.js +1 -1
  538. package/dist/src/setup/scaffold/workspace-root.d.ts +2 -1
  539. package/dist/src/setup/slack-connect-create.d.ts +1 -1
  540. package/dist/src/setup/slack-connect-lifecycle.d.ts +5 -5
  541. package/dist/src/setup/slack-connect.d.ts +0 -4
  542. package/dist/src/setup/slack-connect.js +1 -1
  543. package/dist/src/setup/slackbot.d.ts +3 -3
  544. package/dist/src/setup/slackbot.js +1 -1
  545. package/dist/src/setup/vercel-project-api.d.ts +1 -1
  546. package/dist/src/setup/vercel-project.d.ts +3 -18
  547. package/dist/src/setup/vercel-project.js +0 -0
  548. package/dist/src/shared/action-types.d.ts +1 -58
  549. package/dist/src/shared/action-types.js +1 -1
  550. package/dist/src/shared/agent-definition.d.ts +0 -3
  551. package/dist/src/shared/agent-turn-outcome.d.ts +1 -3
  552. package/dist/src/shared/agent-turn-outcome.js +1 -1
  553. package/dist/src/shared/chatgpt-model.d.ts +0 -1
  554. package/dist/src/shared/chatgpt-model.js +1 -1
  555. package/dist/src/shared/connection-types.d.ts +5 -0
  556. package/dist/src/shared/conversation-context.d.ts +2 -1
  557. package/dist/src/shared/extension-package-contract.d.ts +2 -1
  558. package/dist/src/shared/forwarded-trace-policy.d.ts +3 -2
  559. package/dist/src/shared/gateway-model-catalog.d.ts +25 -2
  560. package/dist/src/shared/gateway-model-catalog.js +1 -1
  561. package/dist/src/shared/gateway-service-tier.d.ts +2 -1
  562. package/dist/src/shared/memory-state.d.ts +0 -8
  563. package/dist/src/shared/memory-state.js +1 -1
  564. package/dist/src/shared/sandbox-environment.d.ts +0 -1
  565. package/dist/src/shared/sandbox-environment.js +1 -1
  566. package/dist/src/shared/skill-package.d.ts +0 -5
  567. package/dist/src/shared/skill-package.js +1 -1
  568. package/dist/src/shared/token-usage.d.ts +0 -7
  569. package/dist/src/shared/token-usage.js +1 -1
  570. package/dist/src/shared/ulid.d.ts +2 -8
  571. package/dist/src/shared/ulid.js +1 -1
  572. package/dist/src/shared/vercel-project.d.ts +2 -1
  573. package/dist/src/shared/vercel-services.d.ts +2 -2
  574. package/dist/src/shared/workflow-sandbox.d.ts +0 -7
  575. package/dist/src/source-change/agent-config-ast.d.ts +2 -1
  576. package/dist/src/source-change/agent-config-string-path.d.ts +2 -2
  577. package/dist/src/source-change/apply-agent-model-settings.d.ts +2 -1
  578. package/dist/src/source-change/apply-model-selection.d.ts +2 -1
  579. package/dist/src/source-change/static-source-change.d.ts +4 -3
  580. package/dist/src/subagents/invocation.d.ts +1 -1
  581. package/dist/src/subagents/parent-notification.js +1 -1
  582. package/dist/src/subagents/tool.d.ts +2 -1
  583. package/dist/src/tasks/types.d.ts +2 -0
  584. package/dist/src/tools/definition.d.ts +8 -3
  585. package/dist/src/tools/durable-callbacks.d.ts +1 -2
  586. package/dist/src/tools/durable-callbacks.js +1 -1
  587. package/dist/src/tools/framework/agent.js +1 -1
  588. package/dist/src/tools/framework/task-cancel.d.ts +1 -1
  589. package/dist/src/tools/native-definition.d.ts +2 -1
  590. package/dist/src/tracing/agent-action-instrumentation.d.ts +2 -1
  591. package/dist/src/tracing/agent-memory-instrumentation.d.ts +2 -1
  592. package/dist/src/tracing/agent-otel-provider.d.ts +2 -1
  593. package/dist/src/tracing/agent-span-id-generator.d.ts +0 -1
  594. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  595. package/dist/src/tracing/agent-tool-instrumentation.d.ts +2 -1
  596. package/dist/src/tracing/agent-tool-span-context.d.ts +3 -2
  597. package/dist/src/tracing/agent-trace-state.d.ts +0 -24
  598. package/dist/src/tracing/agent-trace-state.js +1 -1
  599. package/dist/src/tracing/batch-span-processor.d.ts +2 -1
  600. package/dist/src/tracing/local-trace-analysis.d.ts +4 -3
  601. package/dist/src/tracing/local-trace-discovery-index.d.ts +0 -2
  602. package/dist/src/tracing/local-trace-discovery-index.js +1 -1
  603. package/dist/src/tracing/local-trace-query.d.ts +2 -1
  604. package/dist/src/tracing/local-trace-retention.d.ts +4 -4
  605. package/dist/src/tracing/telemetry-budget.d.ts +0 -1
  606. package/dist/src/tracing/telemetry-budget.js +1 -1
  607. package/docs/concepts/project-structure.mdx +1 -1
  608. package/docs/guides/auth-and-route-protection.md +1 -1
  609. package/docs/guides/deployment/vercel.mdx +1 -1
  610. package/docs/guides/dynamic-capabilities.md +10 -7
  611. package/docs/guides/hooks.md +34 -2
  612. package/docs/install-integrations.mdx +1 -1
  613. package/docs/reference/cli.md +36 -15
  614. package/docs/tools/human-in-the-loop.md +2 -0
  615. package/package.json +31 -10
  616. package/dist/src/cli/commands/channel-add-conflicts.d.ts +0 -21
  617. package/dist/src/cli/commands/channel-add-conflicts.js +0 -1
  618. package/dist/src/cli/commands/registry-search-presentation.d.ts +0 -16
  619. package/dist/src/cli/commands/registry-search-presentation.js +0 -6
  620. package/dist/src/compiled/_chunks/workflow/dist-BfMqXLK3.js +0 -3
  621. package/dist/src/compiled/_chunks/workflow/helpers-CNMO7zB1.js +0 -1
  622. package/dist/src/compiled/_chunks/workflow/logger-BCEj9caG.js +0 -14
  623. package/dist/src/compiled/_chunks/workflow/resume-hook-QS_cMwHn.js +0 -1
  624. package/dist/src/compiled/_chunks/workflow/run-CA5wWV2S.js +0 -1
  625. package/dist/src/compiled/_chunks/workflow/serialization-CJ265vSe.js +0 -3
  626. package/dist/src/compiled/_chunks/workflow/sleep-CBn94Ayv.js +0 -1
  627. package/dist/src/compiled/_chunks/workflow/wait-until-Bo2U6ON9.js +0 -1
  628. package/dist/src/compiler/compile-from-memory.d.ts +0 -44
  629. package/dist/src/compiler/compile-from-memory.js +0 -1
  630. package/dist/src/execution/connection-auth-tool-result.d.ts +0 -2
  631. package/dist/src/execution/connection-auth-tool-result.js +0 -1
  632. package/dist/src/internal/process/pnpm.d.ts +0 -28
  633. package/dist/src/internal/process/pnpm.js +0 -1
  634. package/dist/src/public/channels/slack/api-encoding.d.ts +0 -5
  635. package/dist/src/public/channels/slack/api-encoding.js +0 -1
  636. package/dist/src/public/definitions/instrumentation.d.ts +0 -1
  637. package/dist/src/public/definitions/instrumentation.js +0 -1
  638. package/dist/src/public/models/openai/chatgpt/unsigned-jwt.d.ts +0 -5
  639. package/dist/src/public/models/openai/chatgpt/unsigned-jwt.js +0 -1
  640. package/dist/src/sandbox/backends/probes.d.ts +0 -7
  641. package/dist/src/sandbox/backends/probes.js +0 -1
  642. package/dist/src/setup/channel-add-conflicts.d.ts +0 -28
  643. package/dist/src/setup/channel-add-conflicts.js +0 -1
  644. package/dist/src/setup/primitives/run-pnpm.d.ts +0 -1
  645. package/dist/src/setup/primitives/run-pnpm.js +0 -1
  646. package/dist/src/shared/boundary-hook-error.d.ts +0 -4
  647. package/dist/src/shared/boundary-hook-error.js +0 -1
  648. package/dist/src/shared/dispatch-action.d.ts +0 -30
  649. package/dist/src/shared/dispatch-action.js +0 -1
  650. /package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use-sandbox.d.ts +0 -0
  651. /package/dist/src/{extensions/code → computer-use}/extension/lib/computer-use.js +0 -0
  652. /package/dist/src/{extensions/code → computer-use}/extension/tools/computer_use.d.ts +0 -0
  653. /package/dist/src/{extensions/code → computer-use}/extension/tools/computer_use.js +0 -0
@@ -1 +1 @@
1
- import{join,relative,resolve}from"node:path";import{toErrorMessage}from"#shared/errors.js";import{resolveSandboxCacheDirectory}from"#internal/application/paths.js";import{getSandboxEnvironmentRuntime}from"#shared/sandbox-environment.js";import{createSandboxProviderResources}from"#shared/sandbox-provider.js";import{writeSandboxPreparedArtifactsManifest}from"#runtime/sandbox/prepared-artifacts.js";import{resolveRuntimeCompilerArtifactPaths}from"#runtime/loaders/artifact-paths.js";import{loadCompiledModuleMapFromAuthoredSource}from"#internal/authored-module-map-loader.js";import{createAuthoredSourceRuntimeCompiledArtifactsSource}from"#internal/application/runtime-compiled-artifacts-source.js";import{getRuntimeCompiledArtifactsSandboxAppRoot}from"#runtime/compiled-artifacts-source.js";import{ROOT_RUNTIME_AGENT_NODE_ID,getResolvedRuntimeAgentNode}from"#runtime/graph.js";import{loadCompiledManifest}from"#runtime/loaders/manifest.js";import{resolveRuntimeAgentGraph}from"#runtime/resolve-agent-graph.js";import{createSandboxProviderFiles}from"#execution/sandbox/provider-files.js";import{createDevelopmentSandboxProviderHost}from"#execution/sandbox/provider-host-development.js";import{materializeWorkspaceDirectory}from"#runtime/workspace/seed-files.js";const diskPreparedArtifactStore={async write(e){await writeSandboxPreparedArtifactsManifest(e)}};async function prewarmSandboxes(e){let t=await collectPrewarmTargets(e);if(t.length===0)return;let n=e.preparedArtifactStore??diskPreparedArtifactStore,r=e.dispatch??(async({context:e,provider:t})=>await t.implementation.prepare(e));e.log?.(`eve: initializing ${formatSandboxTemplateCount(t.length)}...`);let i=await Promise.allSettled(t.map(async({context:t,label:n,nodeId:i,provider:a})=>{let logProviderProgress=t=>{shouldLogSandboxPrewarmProgress(t)&&e.log?.(`eve: sandbox template "${n}" (${a.providerName}): ${t}`)};try{return{nodeId:i,provider:a,result:await r({context:{...t,log:e.log===void 0?void 0:logProviderProgress},provider:a})}}catch(t){let r=formatPrewarmFailureForEnvironment({providerName:a.providerName,error:t});throw e.log?.(`eve: failed to initialize sandbox template "${n}" on provider "${a.providerName}": ${toErrorMessage(r)}`),r}})),a=i.find(e=>e.status===`rejected`);if(a?.status===`rejected`)throw a.reason;let o=i.flatMap(e=>e.status===`fulfilled`?[{artifact:e.value.result,nodeId:e.value.nodeId,providerName:e.value.provider.providerName}]:[]);await n.write({compileDirectoryPath:e.compileDirectoryPath,entries:o}),e.log?.(`eve: initialized ${formatSandboxTemplateCount(t.length)}.`)}async function prewarmAppSandboxes(e){let t=e.compiledArtifactsSource??createAuthoredSourceRuntimeCompiledArtifactsSource(e.appRoot);if(t.kind!==`disk`)throw Error(`prewarmAppSandboxes requires disk-backed compiled artifacts.`);let n=await(e.loadAgentGraph??loadGraphFromArtifacts)({compiledArtifactsSource:t});await prewarmSandboxes({appRoot:getRuntimeCompiledArtifactsSandboxAppRoot(t)??e.appRoot,compileDirectoryPath:resolveRuntimeCompilerArtifactPaths(t.appRoot).compileDirectoryPath,compiledArtifactsSource:t,dispatch:e.dispatch,graph:n,log:e.log,preparedArtifactStore:e.preparedArtifactStore})}async function collectPrewarmTargets(e){let t=[];return await Promise.all(collectNodeSandboxes(e.graph).map(async({definition:n,nodeId:r,workspaceResourceRoot:i})=>{let a=getResolvedRuntimeAgentNode(e.graph,r).agent,o=join(resolve(e.appRoot,relative(a.metadata.appRoot,a.metadata.agentRoot)),`sandbox`),s=getSandboxEnvironmentRuntime(n.environment),c=await loadResourceRootSeedFiles({compileDirectoryPath:e.compileDirectoryPath,workspaceResourceRoot:i});t.push({context:{files:createSandboxProviderFiles(o),host:createDevelopmentSandboxProviderHost(e.appRoot),resources:createSandboxProviderResources({resourcesKey:i.contentHash,resourcesPath:i.contentHash===void 0?void 0:`${e.compileDirectoryPath}/${i.logicalPath}`,seedFiles:c}),sourceRevision:n.revisionHash,storagePath:resolveSandboxCacheDirectory(e.appRoot)},label:formatLabel(r),nodeId:r,provider:s})})),t.sort((e,t)=>e.label.localeCompare(t.label))}async function loadResourceRootSeedFiles(e){return e.workspaceResourceRoot.contentHash===void 0&&e.workspaceResourceRoot.rootEntries.length===0?[]:(await materializeWorkspaceDirectory(`${e.compileDirectoryPath}/${e.workspaceResourceRoot.logicalPath}`)).map(e=>({content:e.content,path:e.path}))}async function loadGraphFromArtifacts(e){let[t,n]=await Promise.all([loadCompiledManifest({compiledArtifactsSource:e.compiledArtifactsSource}),loadCompiledModuleMapFromAuthoredSource({compiledArtifactsSource:e.compiledArtifactsSource})]);return await resolveRuntimeAgentGraph({manifest:t,moduleMap:n})}function collectNodeSandboxes(e){return[...e.nodesByNodeId.entries()].flatMap(([e,t])=>{let n=t.sandboxRegistry.sandbox;return n.definition.kind===`parent`?[]:[{...n,definition:n.definition,nodeId:e}]})}function formatLabel(e){return e===ROOT_RUNTIME_AGENT_NODE_ID?`root`:e}function formatSandboxTemplateCount(e){return`${e} sandbox ${e===1?`template`:`templates`}`}function shouldLogSandboxPrewarmProgress(e){return!e.startsWith(`checking `)&&!e.startsWith(`reusing `)&&e!==`loading microsandbox runtime`&&e!==`microsandbox runtime ready`}function formatPrewarmFailureForEnvironment(e){return!isVercelEnvironment()||!isLocalSandboxProvider(e.providerName)?e.error:Error(`The ${e.providerName} sandbox provider is not available when deploying on Vercel. Vercel build containers cannot run local Docker containers or microsandbox VMs. Use DefaultSandbox.environment() so eve selects Vercel Sandbox on Vercel, or configure VercelSandbox.environment() explicitly. Original ${e.providerName} error: ${toErrorMessage(e.error)}`,{cause:e.error})}function isVercelEnvironment(){return!!process.env.VERCEL?.trim()}function isLocalSandboxProvider(e){return e===`docker`||e===`microsandbox`}export{prewarmAppSandboxes,prewarmSandboxes};
1
+ import{join,relative,resolve}from"node:path";import{toErrorMessage}from"#shared/errors.js";import{resolveSandboxCacheDirectory}from"#internal/application/paths.js";import{getSandboxEnvironmentRuntime}from"#shared/sandbox-environment.js";import{createSandboxProviderResources}from"#shared/sandbox-provider.js";import{writeSandboxPreparedArtifactsManifest}from"#runtime/sandbox/prepared-artifacts.js";import{resolveRuntimeCompilerArtifactPaths}from"#runtime/loaders/artifact-paths.js";import{loadCompiledModuleMapFromAuthoredSource}from"#internal/authored-module-map-loader.js";import{createAuthoredSourceRuntimeCompiledArtifactsSource}from"#internal/application/runtime-compiled-artifacts-source.js";import{getRuntimeCompiledArtifactsSandboxAppRoot}from"#runtime/compiled-artifacts-source.js";import{ROOT_RUNTIME_AGENT_NODE_ID,getResolvedRuntimeAgentNode}from"#runtime/graph.js";import{loadCompiledManifest}from"#runtime/loaders/manifest.js";import{resolveRuntimeAgentGraph}from"#runtime/resolve-agent-graph.js";import{createSandboxProviderFiles}from"#execution/sandbox/provider-files.js";import{createDevelopmentSandboxProviderHost}from"#execution/sandbox/provider-host-development.js";import{materializeWorkspaceDirectory}from"#runtime/workspace/seed-files.js";const diskPreparedArtifactStore={async write(e){await writeSandboxPreparedArtifactsManifest(e)}};async function prewarmSandboxes(e){let t=await collectPrewarmTargets(e);if(t.length===0)return;let n=e.preparedArtifactStore??diskPreparedArtifactStore,r=e.dispatch??(async({context:e,provider:t})=>await t.implementation.prepare(e));e.log?.(`eve: initializing ${formatSandboxTemplateCount(t.length)}...`);let i=await Promise.allSettled(t.map(async({context:t,label:n,nodeId:i,provider:a})=>{let logProviderProgress=t=>{shouldLogSandboxPrewarmProgress(t)&&e.log?.(`eve: sandbox template "${n}" (${a.providerName}): ${t}`)};try{return{nodeId:i,provider:a,result:await r({context:{...t,log:e.log===void 0?void 0:logProviderProgress},provider:a})}}catch(t){let r=formatPrewarmFailureForEnvironment({providerName:a.providerName,error:t});throw e.log?.(`eve: failed to initialize sandbox template "${n}" on provider "${a.providerName}": ${toErrorMessage(r)}`),r}})),a=i.find(e=>e.status===`rejected`);if(a?.status===`rejected`)throw a.reason;let o=i.flatMap(e=>e.status===`fulfilled`?[{artifact:e.value.result,nodeId:e.value.nodeId,providerName:e.value.provider.providerName}]:[]);await n.write({compileDirectoryPath:e.compileDirectoryPath,entries:o}),e.log?.(`eve: initialized ${formatSandboxTemplateCount(t.length)}.`)}async function prewarmAppSandboxes(e){let t=e.compiledArtifactsSource??createAuthoredSourceRuntimeCompiledArtifactsSource(e.appRoot);if(t.kind!==`disk`)throw Error(`prewarmAppSandboxes requires disk-backed compiled artifacts.`);let n=await(e.loadAgentGraph??loadGraphFromArtifacts)({compiledArtifactsSource:t});await prewarmSandboxes({appRoot:getRuntimeCompiledArtifactsSandboxAppRoot(t)??e.appRoot,compileDirectoryPath:resolveRuntimeCompilerArtifactPaths(t.appRoot).compileDirectoryPath,compiledArtifactsSource:t,dispatch:e.dispatch,graph:n,log:e.log,preparedArtifactStore:e.preparedArtifactStore})}async function collectPrewarmTargets(e){let t=[];return await Promise.all(collectNodeSandboxes(e.graph).map(async({definition:n,nodeId:r,workspaceResourceRoot:i})=>{let a=getResolvedRuntimeAgentNode(e.graph,r).agent,o=join(resolve(e.appRoot,relative(a.metadata.appRoot,a.metadata.agentRoot)),`sandbox`),s=getSandboxEnvironmentRuntime(n.environment),c=await loadResourceRootSeedFiles({compileDirectoryPath:e.compileDirectoryPath,workspaceResourceRoot:i});t.push({context:{files:createSandboxProviderFiles(o),host:createDevelopmentSandboxProviderHost(e.appRoot),resources:createSandboxProviderResources({resourcesKey:i.contentHash,resourcesPath:i.contentHash===void 0?void 0:`${e.compileDirectoryPath}/${i.logicalPath}`,seedFiles:c}),sourceRevision:n.revisionHash,storagePath:resolveSandboxCacheDirectory(e.appRoot)},label:formatLabel(r),nodeId:r,provider:s})})),t.sort((e,t)=>e.label.localeCompare(t.label))}async function loadResourceRootSeedFiles(e){return e.workspaceResourceRoot.contentHash===void 0&&e.workspaceResourceRoot.rootEntries.length===0?[]:(await materializeWorkspaceDirectory(`${e.compileDirectoryPath}/${e.workspaceResourceRoot.logicalPath}`)).map(e=>({content:e.content,path:e.path}))}async function loadGraphFromArtifacts(e){let[t,n]=await Promise.all([loadCompiledManifest({compiledArtifactsSource:e.compiledArtifactsSource}),loadCompiledModuleMapFromAuthoredSource({compiledArtifactsSource:e.compiledArtifactsSource})]);return await resolveRuntimeAgentGraph({manifest:t,moduleMap:n})}function collectNodeSandboxes(e){return[...e.nodesByNodeId.entries()].flatMap(([e,t])=>{let n=t.sandboxRegistry.sandbox;return n.definition.kind===`parent`?[]:[{...n,definition:n.definition,nodeId:e}]})}function formatLabel(e){return e===ROOT_RUNTIME_AGENT_NODE_ID?`root`:e}function formatSandboxTemplateCount(e){return`${e} sandbox ${e===1?`template`:`templates`}`}function shouldLogSandboxPrewarmProgress(e){return!e.startsWith(`checking `)&&!e.startsWith(`reusing `)&&e!==`loading microsandbox runtime`&&e!==`microsandbox runtime ready`}function formatPrewarmFailureForEnvironment(e){return!isVercelEnvironment()||!isLocalSandboxProvider(e.providerName)?e.error:Error(`The ${e.providerName} sandbox provider is not available when deploying on Vercel. Vercel build containers cannot run local Docker containers or microsandbox VMs. Use DefaultSandbox.environment() so eve selects Vercel Sandbox on Vercel, or configure VercelSandbox.environment() explicitly. Original ${e.providerName} error: ${toErrorMessage(e.error)}`,{cause:e.error})}function isVercelEnvironment(){return!!process.env.VERCEL?.trim()}function isLocalSandboxProvider(e){return e===`docker`||e===`microsandbox`}export{prewarmAppSandboxes};
@@ -1,15 +1,4 @@
1
1
  import type { SandboxSession } from "#public/definitions/sandbox.js";
2
- /**
3
- * Resolves the active sandbox session from the runtime context.
4
- *
5
- * Shared preamble for every sandbox-backed tool executor (`bash`,
6
- * `read_file`, `write_file`, `glob`, `grep`). Centralizes the context
7
- * lookup, null checks, and error messages so each executor does not
8
- * duplicate them.
9
- *
10
- * Binds the returned session to `abortSignal` when provided.
11
- */
12
- export declare function requireSandboxSession(abortSignal?: AbortSignal): Promise<SandboxSession>;
13
2
  /**
14
3
  * Resolves a model-supplied `$HOME` prefix and validates that the resulting
15
4
  * sandbox file path is absolute.
@@ -1 +1 @@
1
- import{loadContext}from"#context/container.js";import{SandboxKey}from"#context/keys.js";import{bindSandboxAbortSignal}from"#execution/sandbox/abort-bound-session.js";import{resolveSandboxModelPath}from"#shared/skill-paths.js";async function requireSandboxSession(e){let t=loadContext().get(SandboxKey);if(t===void 0)throw Error(`This tool requires sandbox access on the runtime context. Ensure the step is running inside a managed runtime context with sandbox support.`);let n=await t.get();if(n===null)throw Error(`The sandbox is not available in the current runtime context.`);return e===void 0?n:bindSandboxAbortSignal(n,e)}async function resolveAbsoluteFilePath(e,t){let n=await resolveSandboxModelPath({path:t,sandbox:e});if(!n.startsWith(`/`))throw Error(`filePath must be an absolute path. Received: "${t}". Use an absolute path such as /workspace/foo.ts or a path beginning with \$HOME/.`);return n}export{requireSandboxSession,resolveAbsoluteFilePath};
1
+ import{resolveSandboxModelPath}from"#shared/skill-paths.js";async function resolveAbsoluteFilePath(e,t){let n=await resolveSandboxModelPath({path:t,sandbox:e});if(!n.startsWith(`/`))throw Error(`filePath must be an absolute path. Received: "${t}". Use an absolute path such as /workspace/foo.ts or a path beginning with \$HOME/.`);return n}export{resolveAbsoluteFilePath};
@@ -20,14 +20,10 @@ export declare const MAX_OUTPUT_BYTES: number;
20
20
  * Maximum length of a single line before it is truncated.
21
21
  */
22
22
  export declare const MAX_LINE_LENGTH = 2000;
23
- /**
24
- * Suffix appended to lines exceeding {@link MAX_LINE_LENGTH}.
25
- */
26
- export declare const LINE_TRUNCATION_SUFFIX = " [truncated]";
27
23
  /**
28
24
  * Result of a {@link truncateTail} or {@link truncateHead} call.
29
25
  */
30
- export interface TruncationResult {
26
+ interface TruncationResult {
31
27
  /** The truncated output text. */
32
28
  readonly output: string;
33
29
  /** True when the output was shortened. */
@@ -70,3 +66,4 @@ export declare function truncateTail(text: string): TruncationResult;
70
66
  * without re-implementing the slice+suffix pattern.
71
67
  */
72
68
  export declare function capLineLength(line: string): string;
69
+ export {};
@@ -1,3 +1,3 @@
1
- const MAX_OUTPUT_LINES=2e3,MAX_OUTPUT_BYTES=51200,MAX_LINE_LENGTH=2e3,LINE_TRUNCATION_SUFFIX=` [truncated]`;function truncateHead(e){return truncateByDirection(e,`head`)}function truncateTail(e){return truncateByDirection(e,`tail`)}function truncateByDirection(e,t){let n=e.split(`
1
+ const MAX_OUTPUT_LINES=2e3,MAX_OUTPUT_BYTES=51200,MAX_LINE_LENGTH=2e3;function truncateHead(e){return truncateByDirection(e,`head`)}function truncateTail(e){return truncateByDirection(e,`tail`)}function truncateByDirection(e,t){let n=e.split(`
2
2
  `),r=countLogicalLines(n),i=t===`head`,a=[],o=0,s=i?0:n.length-1,c=i?1:-1;for(let e=s;e>=0&&e<n.length&&a.length<2e3;e+=c){let t=capLineLength(n[e]??``),r=Buffer.byteLength(t,`utf8`)+1;if(o+r>51200&&a.length>0)break;a.push(t),o+=r}return i||a.reverse(),{output:a.join(`
3
- `),outputLines:a.length,totalLines:r,truncated:a.length<r}}function capLineLength(e){return e.length<=2e3?e:e.slice(0,MAX_LINE_LENGTH)+LINE_TRUNCATION_SUFFIX}function countLogicalLines(e){return e.length>0&&e[e.length-1]===``?e.length-1:e.length}export{LINE_TRUNCATION_SUFFIX,MAX_LINE_LENGTH,MAX_OUTPUT_BYTES,MAX_OUTPUT_LINES,capLineLength,truncateHead,truncateTail};
3
+ `),outputLines:a.length,totalLines:r,truncated:a.length<r}}function capLineLength(e){return e.length<=2e3?e:e.slice(0,MAX_LINE_LENGTH)+` [truncated]`}function countLogicalLines(e){return e.length>0&&e[e.length-1]===``?e.length-1:e.length}export{MAX_LINE_LENGTH,MAX_OUTPUT_BYTES,MAX_OUTPUT_LINES,capLineLength,truncateHead,truncateTail};
@@ -3,11 +3,11 @@ import type { DeliveryAdmission, SessionInputQueue } from "#execution/session/in
3
3
  import { type SessionInboxPayload } from "#execution/session-inbox/inbox.js";
4
4
  import type { SessionStateCursor } from "#execution/session/state-cursor.js";
5
5
  import type { WorkflowToolRunMessage } from "#execution/tools/workflow/messages.js";
6
- export type SessionCancellation = Extract<SessionCommand, {
6
+ type SessionCancellation = Extract<SessionCommand, {
7
7
  readonly kind: "cancel";
8
8
  }>;
9
9
  /** One canonical admission result, after wire decoding but before turn policy. */
10
- export type SessionAdmission = {
10
+ type SessionAdmission = {
11
11
  readonly admission: DeliveryAdmission;
12
12
  readonly kind: "delivery";
13
13
  } | {
@@ -36,3 +36,4 @@ export declare function applySessionCancellation(command: SessionCancellation, i
36
36
  readonly cursor: SessionStateCursor;
37
37
  readonly queue: SessionInputQueue;
38
38
  }): Promise<void>;
39
+ export {};
@@ -2,7 +2,7 @@ import { buildAdapterContext } from "#channel/adapter-context.js";
2
2
  import type { ChannelAdapter } from "#channel/adapter.js";
3
3
  import type { ContextContainer } from "#context/container.js";
4
4
  import { type MessageStreamEvent, type UnstampedMessageStreamEvent } from "#protocol/message.js";
5
- export interface SessionEventSinkInput {
5
+ interface SessionEventSinkInput {
6
6
  readonly adapter: ChannelAdapter;
7
7
  readonly ctx: ContextContainer;
8
8
  readonly isFirstTurn: boolean;
@@ -23,3 +23,4 @@ export interface SessionEventSink {
23
23
  }
24
24
  /** Publishes events without executing hooks or preparing model context. */
25
25
  export declare function createSessionEventSink(input: SessionEventSinkInput): SessionEventSink;
26
+ export {};
@@ -15,7 +15,7 @@ export type SessionTerminalOutcome = {
15
15
  readonly error: unknown;
16
16
  readonly turnId?: string;
17
17
  };
18
- export interface SessionFinalizationContext {
18
+ interface SessionFinalizationContext {
19
19
  readonly caller: TurnCaller | undefined;
20
20
  readonly cursor: {
21
21
  readonly serializedContext: Record<string, unknown>;
@@ -28,3 +28,4 @@ export interface SessionFinalizationContext {
28
28
  * not already done so, then settles the parked caller waiting on this session.
29
29
  */
30
30
  export declare function finalizeSession(outcome: SessionTerminalOutcome, context: SessionFinalizationContext): Promise<WorkflowEntryResult>;
31
+ export {};
@@ -28,13 +28,13 @@ export type SessionOwnerActivation = {
28
28
  /** Commands accepted by partial successor claims before startup failed. */
29
29
  readonly payloads: readonly SessionInboxPayload[];
30
30
  };
31
- export type SessionTransferOutcome = {
31
+ type SessionTransferOutcome = {
32
32
  readonly kind: "transferred";
33
33
  } | {
34
34
  readonly kind: "retained";
35
35
  readonly reason: "same-deployment" | "missing-deployment" | "not-idle" | "busy" | "accepted-during-release" | "activation-failed";
36
36
  };
37
- export interface SessionHandoffInput {
37
+ interface SessionHandoffInput {
38
38
  readonly checkpoint: Omit<SessionCheckpoint, "serializedContext" | "sessionState" | "version">;
39
39
  readonly deploymentId: string;
40
40
  readonly inbox: SessionInboxHandle;
@@ -66,3 +66,4 @@ export declare class SessionHandoff {
66
66
  private recover;
67
67
  private ensureAnchor;
68
68
  }
69
+ export {};
@@ -1,9 +1,10 @@
1
1
  import type { TurnSelection } from "#execution/session/input-queue.js";
2
2
  import type { SessionStateCursor } from "#execution/session/state-cursor.js";
3
- export type RoutedTurnSelection = {
3
+ type RoutedTurnSelection = {
4
4
  readonly kind: "cancel-turn";
5
5
  } | {
6
6
  readonly kind: "consumed";
7
7
  } | TurnSelection;
8
8
  /** Routes one selected delivery exactly once, independent of active/parked mode. */
9
9
  export declare function routeSelectedDelivery(selection: TurnSelection, cursor: SessionStateCursor): Promise<RoutedTurnSelection>;
10
+ export {};
@@ -1,5 +1,5 @@
1
1
  /** Workflow-body handle that targets a durable deadline at the stable command inbox. */
2
- export interface SessionTimeoutControl {
2
+ interface SessionTimeoutControl {
3
3
  dispose(): Promise<void>;
4
4
  start(): Promise<void>;
5
5
  }
@@ -8,3 +8,4 @@ export declare function createSessionTimeoutControl(input: {
8
8
  readonly deadline: Date;
9
9
  readonly sessionId: string;
10
10
  }): SessionTimeoutControl;
11
+ export {};
@@ -1 +1 @@
1
- import{walkCauseChain}from"#shared/errors.js";import{sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment}from"#execution/workflow-runtime.js";import{cancelRun,getWorld}from"#internal/workflow/runtime.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{resumeSessionInbox}from"#execution/session-inbox/resume.js";async function startSessionTimeoutStep(e){"use step";return{runId:(await startWorkflowOnCurrentDeployment(sessionTimeoutWorkflowReference,[e])).runId}}async function signalSessionTimeoutStep(e){"use step";try{await resumeSessionInbox(e.token,{kind:`session-timeout`,ownerRunId:e.ownerRunId})}catch(e){if(!isInactiveTimeoutTarget(e))throw e}}async function cancelSessionTimeoutStep(e){"use step";try{await cancelRun(await getWorld(),e.runId,{cancelReason:`Session ended before its timeout`})}catch(e){if(!isInactiveTimeoutTarget(e))throw e}}function isInactiveTimeoutTarget(e){for(let t of walkCauseChain(e))if(HookNotFoundError.is(t)||WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}export{cancelSessionTimeoutStep,signalSessionTimeoutStep,startSessionTimeoutStep};
1
+ import{walkCauseChain}from"#shared/errors.js";import{sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment}from"#execution/workflow-runtime.js";import{cancelRun,getWorld}from"#internal/workflow/runtime.js";import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";async function startSessionTimeoutStep(e){"use step";return{runId:(await startWorkflowOnCurrentDeployment(sessionTimeoutWorkflowReference,[e])).runId}}async function signalSessionTimeoutStep(e){"use step";try{await resumeSessionInbox(e.token,{kind:`session-timeout`,ownerRunId:e.ownerRunId})}catch(e){if(!isInactiveTimeoutTarget(e))throw e}}async function cancelSessionTimeoutStep(e){"use step";try{await cancelRun(await getWorld(),e.runId,{cancelReason:`Session ended before its timeout`})}catch(e){if(!isInactiveTimeoutTarget(e))throw e}}function isInactiveTimeoutTarget(e){for(let t of walkCauseChain(e))if(HookNotFoundError.is(t)||WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}export{cancelSessionTimeoutStep,signalSessionTimeoutStep,startSessionTimeoutStep};
@@ -0,0 +1,27 @@
1
+ import type { ContextContainer } from "#context/container.js";
2
+ import type { bindDynamicConnections } from "#execution/dynamic-connections.js";
3
+ import type { resolveEffectiveAgentRuntime } from "#execution/effective-agent-config.js";
4
+ import type { SessionEventSink } from "#execution/session/event-sink.js";
5
+ import type { HandleEventFn } from "#harness/types.js";
6
+ import type { ExecutionInstrumentation } from "#instrumentation/runtime.js";
7
+ import type { CompiledBundle } from "#runtime/sessions/runtime-context-keys.js";
8
+ /** True when a hook on this event type may cancel the running turn. */
9
+ export declare function isHookCancellableEvent(type: string): boolean;
10
+ /**
11
+ * Publishes one turn event, then runs memory, hooks, and model preparation for it.
12
+ * A hook's `ctx.cancel()` aborts the turn signal at once; the event's remaining
13
+ * hooks still run, then the handler stops the turn before the next model call.
14
+ */
15
+ export declare function createTurnEventHandler(input: {
16
+ readonly abortSignal: AbortSignal;
17
+ readonly bundle: CompiledBundle;
18
+ /** False for clear and compact requests, which run outside any turn. */
19
+ readonly canCancelTurn: boolean;
20
+ readonly hookCancellation: AbortController;
21
+ readonly ctx: ContextContainer;
22
+ readonly dynamicConnections: ReturnType<typeof bindDynamicConnections>;
23
+ readonly effectiveAgent: ReturnType<typeof resolveEffectiveAgentRuntime>;
24
+ readonly effectiveNode: CompiledBundle["graph"]["root"];
25
+ readonly instrumentation: ExecutionInstrumentation | undefined;
26
+ readonly sink: SessionEventSink;
27
+ }): HandleEventFn;
@@ -0,0 +1 @@
1
+ import{dispatchDynamicSubagentEvent}from"#context/dynamic-subagent-lifecycle.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{dispatchDynamicToolEvent}from"#context/dynamic-tool-lifecycle.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{dispatchDynamicInstructionEvent}from"#context/dynamic-instruction-lifecycle.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchMemoryLifecycleEvent}from"#context/memory-event-lifecycle.js";import{TurnCancelledError,throwIfTurnAborted}from"#harness/turn-cancellation.js";const HOOK_CANCELLABLE_EVENTS={"action.input.appended":!0,"action.partial":!0,"action.result":!0,"actions.requested":!0,"approval.candidate":!0,"approval.settled":!0,"authorization.completed":!0,"authorization.required":!0,"compaction.completed":!0,"compaction.requested":!0,"context.cleared":!1,"input.requested":!0,"input.resolved":!0,"message.appended":!0,"message.completed":!0,"message.received":!0,"reasoning.appended":!0,"reasoning.completed":!0,"result.completed":!0,"session.completed":!1,"session.failed":!1,"session.started":!0,"session.waiting":!1,"step.completed":!0,"step.failed":!1,"step.started":!0,"subagent.called":!1,"subagent.completed":!1,"subagent.event":!1,"subagent.started":!1,"turn.cancelled":!1,"turn.completed":!1,"turn.failed":!1,"turn.started":!0};function isHookCancellableEvent(e){return HOOK_CANCELLABLE_EVENTS[e]===!0}function createTurnEventHandler(e){let{abortSignal:t,bundle:n,ctx:r,effectiveAgent:i,effectiveNode:a}=e;return async(o,s)=>{let c=await e.sink.emit(o),l=await dispatchMemoryLifecycleEvent({abortSignal:t,appRoot:a.agent?.metadata?.appRoot??``,ctx:r,event:o,instrumentation:e.instrumentation?.memory,memories:a.agent?.memories??[],messages:s,nodeId:n.nodeId??`__root__`}),u=e.canCancelTurn&&isHookCancellableEvent(c.event.type)?()=>e.hookCancellation.abort(new TurnCancelledError):void 0;c.suppressed||await dispatchStreamEventHooks({cancelTurn:u,ctx:r,registry:n.hookRegistry,event:c.event}),c.event.type!==`step.started`&&await dispatchDynamicModelEvent({abortSignal:t,ctx:r,dynamicModel:i.turnAgent.dynamicModel,event:c.event,messages:l,scope:{moduleMap:n.moduleMap,nodeId:n.nodeId}}),await e.dynamicConnections.dispatch(c.event),await dispatchDynamicSubagentEvent({ctx:r,resolvers:n.subagentRegistry.dynamicResolvers??[],event:c.event,messages:l}),await dispatchDynamicToolEvent({ctx:r,resolvers:n.resolvedAgent.dynamicToolResolvers??[],event:c.event,messages:l}),await dispatchDynamicSkillEvent({ctx:r,resolvers:n.resolvedAgent.dynamicSkillResolvers??[],event:c.event,messages:l}),await dispatchDynamicInstructionEvent({ctx:r,resolvers:n.resolvedAgent.dynamicInstructionsResolvers??[],event:c.event,messages:l}),u!==void 0&&throwIfTurnAborted(e.hookCancellation.signal)}}export{createTurnEventHandler,isHookCancellableEvent};
@@ -1 +1 @@
1
- import{defaultDeliverResult}from"#channel/adapter.js";import{contextStorage}from"#context/container.js";import{AuthKey,CapabilitiesKey,ChannelDeliveryKey,HandleEventKey,InitiatorAuthKey,ParentSessionKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey,SessionTitleKey,StaticModelReferenceKey,TaskDeliveryPolicyKey,TurnDeliveryIdsKey,TurnTaskDeliveryKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,createTurnStartedEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{coalesceTurnInputs,createTurnInputMessages,validateHarnessModelMessages}from"#harness/messages.js";import{drainMemoryCommit,prepareMemoryPreamble}from"#context/memory-lifecycle.js";import{emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime}from"#execution/workflow-runtime.js";import{consumeDeferredStepInput}from"#harness/pending-input-batches.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{dispatchDynamicSubagentEvent,refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{readRetainedBackgroundToolResult,runBackgroundStep}from"#execution/tasks/parent/tool-execution.js";import*as agentTraceState from"#tracing/agent-trace-context-store.js";import{activeTurnId}from"#harness/active-turn-id.js";import{derivePendingState}from"#execution/session/pending-turn-state.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{dispatchDynamicToolEvent,rebindMissingCompiledDynamicToolCallbacks,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{setChannelContext}from"#execution/channel-context.js";import{deriveSessionTitle}from"#execution/eve-workflow-attributes.js";import*as activityCohort from"#execution/activity-cohort.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchMemoryLifecycleEvent}from"#context/memory-event-lifecycle.js";import{bindDynamicConnections}from"#execution/dynamic-connections.js";import{setEveAttributes}from"#runtime/attributes/emit.js";import{dispatchDynamicInstructionEvent,drainDynamicInstructionUserMessages,prepareDynamicInstructionPreamble}from"#context/dynamic-instruction-lifecycle.js";import{bindSessionInstrumentation}from"#instrumentation/runtime.js";import{RuntimeActionSettlementTimesKey}from"#harness/runtime-action-settlement-state.js";import{matchAuthorizationCallbacks}from"#execution/authorization-callback-match.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{resolveSessionStepResult}from"#execution/session/turn-step-result.js";import{createSessionEventSink}from"#execution/session/event-sink.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{getBackgroundTaskDelivery,markBackgroundTaskStepInput,resolveInitiatingTaskContext,resolveTaskDeliveryContext}from"#tasks/delivery-context.js";import{prepareWorkflowPreambleTrace}from"#execution/workflow-trace-context.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{createExecutionHistoryView}from"#execution/history-view.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";import{runModelCallBatch}from"#execution/model-call-batching.js";import{createCancelledModelCallBatchResult}from"#execution/cancelled-model-call-batch.js";function channelDeliveryErrorCode(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`&&t.length>0)return t}return`CHANNEL_DELIVERY_FAILED`}async function turnStep(e){"use step";return runSessionStep(e)}async function runSessionStep(e){let t=e.input?.delivery,n=t,r=e.input?.runtimeResults,i=readDurableSession(e.sessionState),a=await deserializeContext(e.serializedContext),o=a.require(ChannelKey),s=a.require(BundleKey),c=resolveEffectiveAgentRuntime(s,a),l=t?.taskDeliveryPolicy??a.get(TaskDeliveryPolicyKey)??`auto`;a.set(TaskDeliveryPolicyKey,l);try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&a.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let u=getPendingAuthorization(i.state),d;if(u&&n!==void 0){let{matches:e,remainingPayloads:t}=matchAuthorizationCallbacks(u,n.payloads);if(n={...n,payloads:t},e.length>0){let r=activityCohort.restoreAuthorizationActivity({ctx:a,matches:e,pending:u}),o=e.map(e=>e.result);a.set(PendingAuthorizationResultKey,o),i={...i,state:clearPendingAuthorization(i.state,r)},d=e,t.length===0&&(n=void 0)}}let f=a.get(AuthKey);n?.auth!==void 0&&(a.set(AuthKey,n.auth??null),a.has(InitiatorAuthKey)||a.set(InitiatorAuthKey,n.auth??null));let p=getBackgroundTaskDelivery(n),m=hydrateDurableSession({compactionOverrides:{thresholdPercent:c.thresholdPercent},durable:i,turnAgent:c.turnAgent}),h=createExecutionHistoryView(m),g=bindSessionInstrumentation({agentName:c.turnAgent.id,ctx:a,rootSessionId:m.rootSessionId??m.sessionId,sessionId:m.sessionId}),_=getHarnessEmissionState(m.state);if(!_.sessionStarted&&!a.has(SessionTitleKey)&&!a.has(ParentSessionKey)){let e=t?.payloads.find(e=>e.message!==void 0)?.message,n=deriveSessionTitle(t?.title??e);n!==void 0&&(a.set(SessionTitleKey,n),await setEveAttributes({"$eve.title":n}))}t!==void 0&&(await contextStorage.run(a,()=>g?.preparePreamble({sequence:_.sequence,sessionStarted:_.sessionStarted})),await contextStorage.run(a,()=>g?.instrumentChannelDelivery({agentName:s.turnAgent.id,ctx:a,delivery:t,rootSessionId:m.rootSessionId??m.sessionId,sequence:_.sequence,sessionId:m.sessionId,turnId:activeTurnId(_)})));let failChannelDeliveries=async e=>{await contextStorage.run(a,()=>g?.instrumentChannelDelivery({ctx:a,error:e,errorCode:channelDeliveryErrorCode(e),includeTurn:!1,outcome:`failed`})),await g?.flush()},v=createSessionEventSink({adapter:o,ctx:a,isFirstTurn:_.sequence===0,sessionWritable:e.sessionWritable,sessionId:m.sessionId}),{adapterCtx:y}=v;try{let u=bindDynamicConnections(a,s.resolvedAgent),b={...s.graph.root,turnAgent:c.turnAgent},x=createTurnEventHandler({abortSignal:e.abortSignal,bundle:s,ctx:a,dynamicConnections:u,effectiveAgent:c,effectiveNode:b,instrumentation:g,sink:v}),S=n!==void 0&&!isHarnessBetweenTurns(m)?structuredClone(y.state):void 0,C;if(n!==void 0){let e=[];try{for(let t of n.payloads){let n=o.deliver?await o.deliver(t,y):defaultDeliverResult(t);n!=null&&e.push(p===void 0?n:markBackgroundTaskStepInput(n))}}catch(e){throw await failChannelDeliveries(e),e}C=e.length===0?void 0:e.reduce(coalesceTurnInputs)}let w=n!==void 0&&C===void 0&&!isHarnessBetweenTurns(m);if(w)f===void 0?a.delete(AuthKey):a.set(AuthKey,f),y.state=S;else if(t!==void 0&&a.set(TurnTaskDeliveryKey,`none`),t?.payloads.some(e=>e.message!==void 0)){let e=t.deliveryMetadata?.map(e=>e.deliveryId)??[];a.set(TurnDeliveryIdsKey,_.turnId?[...new Set([...a.get(TurnDeliveryIdsKey)??[],...e])]:e)}else!_.sessionStarted&&a.get(ChannelDeliveryKey)!==void 0&&a.set(TurnDeliveryIdsKey,[a.require(ChannelDeliveryKey).deliveryId]);r!==void 0&&(r.acceptedAtMsByCallId!==void 0&&a.set(RuntimeActionSettlementTimesKey,r.acceptedAtMsByCallId),C={...C,runtimeActionResults:r.results});let T;if(C!==void 0&&p!==void 0){let e=resolveTaskDeliveryContext({state:i.state,taskDeliveryIds:p.taskDeliveryIds??[p.taskDeliveryId],taskDeliveryPolicy:l});e!==void 0&&(a.set(TurnTaskDeliveryKey,e.phase),T=e.rootTurnId,C={...C,context:[...C.context??[],e.context]})}activityCohort.updateActivityRootForDelivery({activeTurnId:activeTurnId(_),ctx:a,delivery:w?void 0:t,sessionState:i.state,taskRootTurnId:T});let E=a.get(TurnTaskDeliveryKey);if(E===`none`||E===`initiating`){let e=resolveInitiatingTaskContext({state:i.state,turnId:activeTurnId(_)});e!==void 0&&a.set(TurnTaskDeliveryKey,e.phase)}if(t!==void 0){let e={...o,state:{...y.state}};setChannelContext(a,e)}if(n!==void 0&&C===void 0&&isHarnessBetweenTurns(m)){await contextStorage.run(a,()=>g?.instrumentChannelDelivery({ctx:a,includeTurn:!1,outcome:`completed`})),await g?.flush();let t=reconcileSessionContinuationToken(a,m),n=serializeContext(a),r=t===m?e.sessionState:createDurableSessionState({session:t});return{action:`park`,...derivePendingState(t),serializedContext:n,sessionState:r}}let D=s.subagentRegistry.dynamicResolvers??[],O=s.resolvedAgent.dynamicToolResolvers??[],k=buildRuntimeIdentity(b);try{let e=process.env.VERCEL_DEPLOYMENT_ID?.trim(),t=e?`deployment:${e}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(s.compiledArtifactsSource),n=_.sessionStarted;if(a.setVirtualContext(StaticModelReferenceKey,c.turnAgent.model??null),!n)a.set(SessionDynamicSubagentRuntimeRevisionKey,t),a.set(SessionDynamicToolRuntimeRevisionKey,t);else{let e=createSessionStartedEvent({runtime:k});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:a,resolvers:D,event:e,messages:h.initial.messages,runtimeRevision:t}),contextStorage.run(a,async()=>await refreshDynamicSessionToolsForRuntimeRevision({ctx:a,resolvers:O,event:e,messages:h.initial.messages,runtimeRevision:t}))]),await rebindMissingCompiledDynamicToolCallbacks({ctx:a,event:createTurnStartedEvent({sequence:_.sequence,turnId:activeTurnId(_)}),messages:h.initial.messages,resolvers:O})}}catch(e){throw await failChannelDeliveries(e),e}let A=s.resolvedAgent.config?.experimental?.workflow?.modelCallsPerStep??1,j=a.get(CapabilitiesKey),runHarnessStep=async(t,n)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:c.thresholdPercent},session:t,turnAgent:c.turnAgent});return createExecutionNodeStep({steeringSignal:e.steeringSignal,abortSignal:e.abortSignal,capabilities:j,clearOnly:e.input?.control===`clear`,compactOnly:e.input?.control===`compact`,createRuntime:createWorkflowRuntime,handleEvent:x,prepareApprovalTurn:e=>u.dispatch(createTurnStartedEvent(e)),historyProjector:h.projector,historyView:h.prepare(r),instrumentation:g,modelResolutionScope:{moduleMap:s.moduleMap,nodeId:s.nodeId},node:b})(r,n)},M,N;try{throwIfTurnAborted(e.abortSignal),N=await runModelCallBatch({steeringSignal:e.steeringSignal,initialInput:C,initialSession:m,modelCallsPerStep:A,runStep:async({firstCall:t,session:n,stepInput:r})=>{let i=await runBackgroundStep(a,n,async e=>{a.setVirtualContext(HandleEventKey,x),a.setVirtualContext(StaticModelReferenceKey,c.turnAgent.model??null);let n=t&&C?.outputSchema!==void 0?{...e,outputSchema:C.outputSchema}:e,i=getHarnessEmissionState(n.state);if(await u.rehydrate(i,k,isHarnessBetweenTurns(n)?void 0:{sequence:i.sequence,turnId:activeTurnId(i)}),t&&d){let e=getHarnessEmissionState(n.state);if(d.some(({candidateId:e})=>e===void 0)&&isHarnessBetweenTurns(n)){let t=createTurnInputMessages(consumeDeferredStepInput({session:n,input:r}).input);prepareDynamicInstructionPreamble(a,h.messages(n)),prepareMemoryPreamble(a,{history:n.history,input:t,projector:h.projector,state:n.state});let i=[],o=await prepareWorkflowPreambleTrace({emissionState:e,instrumentation:g});try{e=await emitTurnPreamble(x,{},e,h.projector({messages:[...n.history,...t],state:n.state}),k,o)}finally{i=drainDynamicInstructionUserMessages(a);let e=drainMemoryCommit(a);n={...n,history:validateHarnessModelMessages([...e?.history??n.history,...i]),state:e?.state??n.state}}n=setHarnessEmissionState(n,e)}for(let{authorization:t,result:n,candidateId:r}of d)await x(createAuthorizationCompletedEvent({attemptId:n.attemptId,authorization:t,candidateId:r,name:n.name,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}return runHarnessStep(n,r)});return i.settledTurn===void 0&&throwIfTurnAborted(e.abortSignal),M={result:i,serializedContext:serializeContext(a)},i}})}catch(t){if(!isTurnCancellation(t)&&e.abortSignal?.aborted!==!0)throw await failChannelDeliveries(t),t;let n=readRetainedBackgroundToolResult(a);return g?.rememberBackgroundTasks(n?.backgroundTasks??[]),createCancelledModelCallBatchResult({beforeBatchContext:e.serializedContext,checkpoint:M,ctx:a,initialSession:m,stepInput:C})}g?.rememberBackgroundTasks(N.backgroundTasks??[]);let P=reconcileSessionContinuationToken(a,N.session);agentTraceState.pruneAgentTraceState(a,P.sessionId,P.state);let F=serializeContext(a);N={...N,session:P};let I=resolveSessionStepResult(N,F,e.serializedContext,activeTurnId(_));return I.action===`done`&&await v.close(),I}finally{v.release()}}function createTurnEventHandler(e){let{abortSignal:t,bundle:n,ctx:r,effectiveAgent:i,effectiveNode:a}=e;return async(o,s)=>{let c=await e.sink.emit(o),l=await dispatchMemoryLifecycleEvent({abortSignal:t,appRoot:a.agent?.metadata?.appRoot??``,ctx:r,event:o,instrumentation:e.instrumentation?.memory,memories:a.agent?.memories??[],messages:s,nodeId:n.nodeId??`__root__`});c.suppressed||await dispatchStreamEventHooks({ctx:r,registry:n.hookRegistry,event:c.event}),c.event.type!==`step.started`&&await dispatchDynamicModelEvent({abortSignal:t,ctx:r,dynamicModel:i.turnAgent.dynamicModel,event:c.event,messages:l,scope:{moduleMap:n.moduleMap,nodeId:n.nodeId}}),await e.dynamicConnections.dispatch(c.event),await dispatchDynamicSubagentEvent({ctx:r,resolvers:n.subagentRegistry.dynamicResolvers??[],event:c.event,messages:l}),await dispatchDynamicToolEvent({ctx:r,resolvers:n.resolvedAgent.dynamicToolResolvers??[],event:c.event,messages:l}),await dispatchDynamicSkillEvent({ctx:r,resolvers:n.resolvedAgent.dynamicSkillResolvers??[],event:c.event,messages:l}),await dispatchDynamicInstructionEvent({ctx:r,resolvers:n.resolvedAgent.dynamicInstructionsResolvers??[],event:c.event,messages:l})}}export{turnStep};
1
+ import{defaultDeliverResult}from"#channel/adapter.js";import{contextStorage}from"#context/container.js";import{AuthKey,CapabilitiesKey,ChannelDeliveryKey,HandleEventKey,InitiatorAuthKey,ParentSessionKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey,SessionTitleKey,StaticModelReferenceKey,TaskDeliveryPolicyKey,TurnDeliveryIdsKey,TurnTaskDeliveryKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,createTurnStartedEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{coalesceTurnInputs,createTurnInputMessages,validateHarnessModelMessages}from"#harness/messages.js";import{drainMemoryCommit,prepareMemoryPreamble}from"#context/memory-lifecycle.js";import{emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime}from"#execution/workflow-runtime.js";import{consumeDeferredStepInput}from"#harness/pending-input-batches.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{readRetainedBackgroundToolResult,runBackgroundStep}from"#execution/tasks/parent/tool-execution.js";import*as agentTraceState from"#tracing/agent-trace-context-store.js";import{activeTurnId}from"#harness/active-turn-id.js";import{derivePendingState}from"#execution/session/pending-turn-state.js";import{rebindMissingCompiledDynamicToolCallbacks,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{setChannelContext}from"#execution/channel-context.js";import{deriveSessionTitle}from"#execution/eve-workflow-attributes.js";import*as activityCohort from"#execution/activity-cohort.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{drainDynamicInstructionUserMessages,prepareDynamicInstructionPreamble}from"#context/dynamic-instruction-lifecycle.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{bindDynamicConnections}from"#execution/dynamic-connections.js";import{setEveAttributes}from"#runtime/attributes/emit.js";import{bindSessionInstrumentation}from"#instrumentation/runtime.js";import{RuntimeActionSettlementTimesKey}from"#harness/runtime-action-settlement-state.js";import{matchAuthorizationCallbacks}from"#execution/authorization-callback-match.js";import{resolveSessionStepResult}from"#execution/session/turn-step-result.js";import{createSessionEventSink}from"#execution/session/event-sink.js";import{createTurnEventHandler}from"#execution/session/turn-event-handler.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{getBackgroundTaskDelivery,markBackgroundTaskStepInput,resolveInitiatingTaskContext,resolveTaskDeliveryContext}from"#tasks/delivery-context.js";import{prepareWorkflowPreambleTrace}from"#execution/workflow-trace-context.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{createExecutionHistoryView}from"#execution/history-view.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";import{runModelCallBatch}from"#execution/model-call-batching.js";import{createCancelledModelCallBatchResult}from"#execution/cancelled-model-call-batch.js";function channelDeliveryErrorCode(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`&&t.length>0)return t}return`CHANNEL_DELIVERY_FAILED`}async function turnStep(e){"use step";return runSessionStep(e)}async function runSessionStep(e){let t=e.input?.delivery,n=t,r=e.input?.runtimeResults,i=readDurableSession(e.sessionState),a=await deserializeContext(e.serializedContext),o=a.require(ChannelKey),s=a.require(BundleKey),c=resolveEffectiveAgentRuntime(s,a),l=t?.taskDeliveryPolicy??a.get(TaskDeliveryPolicyKey)??`auto`;a.set(TaskDeliveryPolicyKey,l);try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&a.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let u=getPendingAuthorization(i.state),d;if(u&&n!==void 0){let{matches:e,remainingPayloads:t}=matchAuthorizationCallbacks(u,n.payloads);if(n={...n,payloads:t},e.length>0){let r=activityCohort.restoreAuthorizationActivity({ctx:a,matches:e,pending:u}),o=e.map(e=>e.result);a.set(PendingAuthorizationResultKey,o),i={...i,state:clearPendingAuthorization(i.state,r)},d=e,t.length===0&&(n=void 0)}}let f=a.get(AuthKey);n?.auth!==void 0&&(a.set(AuthKey,n.auth??null),a.has(InitiatorAuthKey)||a.set(InitiatorAuthKey,n.auth??null));let p=getBackgroundTaskDelivery(n),m=hydrateDurableSession({compactionOverrides:{thresholdPercent:c.thresholdPercent},durable:i,turnAgent:c.turnAgent}),h=createExecutionHistoryView(m),g=bindSessionInstrumentation({agentName:c.turnAgent.id,ctx:a,rootSessionId:m.rootSessionId??m.sessionId,sessionId:m.sessionId}),_=getHarnessEmissionState(m.state);if(!_.sessionStarted&&!a.has(SessionTitleKey)&&!a.has(ParentSessionKey)){let e=t?.payloads.find(e=>e.message!==void 0)?.message,n=deriveSessionTitle(t?.title??e);n!==void 0&&(a.set(SessionTitleKey,n),await setEveAttributes({"$eve.title":n}))}t!==void 0&&(await contextStorage.run(a,()=>g?.preparePreamble({sequence:_.sequence,sessionStarted:_.sessionStarted})),await contextStorage.run(a,()=>g?.instrumentChannelDelivery({agentName:s.turnAgent.id,ctx:a,delivery:t,rootSessionId:m.rootSessionId??m.sessionId,sequence:_.sequence,sessionId:m.sessionId,turnId:activeTurnId(_)})));let failChannelDeliveries=async e=>{await contextStorage.run(a,()=>g?.instrumentChannelDelivery({ctx:a,error:e,errorCode:channelDeliveryErrorCode(e),includeTurn:!1,outcome:`failed`})),await g?.flush()},v=createSessionEventSink({adapter:o,ctx:a,isFirstTurn:_.sequence===0,sessionWritable:e.sessionWritable,sessionId:m.sessionId}),{adapterCtx:y}=v,b=new AbortController,x=e.abortSignal===void 0?b.signal:AbortSignal.any([e.abortSignal,b.signal]);try{let u=bindDynamicConnections(a,s.resolvedAgent),S={...s.graph.root,turnAgent:c.turnAgent},C=createTurnEventHandler({abortSignal:x,bundle:s,canCancelTurn:e.input?.control===void 0,hookCancellation:b,ctx:a,dynamicConnections:u,effectiveAgent:c,effectiveNode:S,instrumentation:g,sink:v}),w=n!==void 0&&!isHarnessBetweenTurns(m)?structuredClone(y.state):void 0,T;if(n!==void 0){let e=[];try{for(let t of n.payloads){let n=o.deliver?await o.deliver(t,y):defaultDeliverResult(t);n!=null&&e.push(p===void 0?n:markBackgroundTaskStepInput(n))}}catch(e){throw await failChannelDeliveries(e),e}T=e.length===0?void 0:e.reduce(coalesceTurnInputs)}let E=n!==void 0&&T===void 0&&!isHarnessBetweenTurns(m);if(E)f===void 0?a.delete(AuthKey):a.set(AuthKey,f),y.state=w;else if(t!==void 0&&a.set(TurnTaskDeliveryKey,`none`),t?.payloads.some(e=>e.message!==void 0)){let e=t.deliveryMetadata?.map(e=>e.deliveryId)??[];a.set(TurnDeliveryIdsKey,_.turnId?[...new Set([...a.get(TurnDeliveryIdsKey)??[],...e])]:e)}else!_.sessionStarted&&a.get(ChannelDeliveryKey)!==void 0&&a.set(TurnDeliveryIdsKey,[a.require(ChannelDeliveryKey).deliveryId]);r!==void 0&&(r.acceptedAtMsByCallId!==void 0&&a.set(RuntimeActionSettlementTimesKey,r.acceptedAtMsByCallId),T={...T,runtimeActionResults:r.results});let D;if(T!==void 0&&p!==void 0){let e=resolveTaskDeliveryContext({state:i.state,taskDeliveryIds:p.taskDeliveryIds??[p.taskDeliveryId],taskDeliveryPolicy:l});e!==void 0&&(a.set(TurnTaskDeliveryKey,e.phase),D=e.rootTurnId,T={...T,context:[...T.context??[],e.context]})}activityCohort.updateActivityRootForDelivery({activeTurnId:activeTurnId(_),ctx:a,delivery:E?void 0:t,sessionState:i.state,taskRootTurnId:D});let O=a.get(TurnTaskDeliveryKey);if(O===`none`||O===`initiating`){let e=resolveInitiatingTaskContext({state:i.state,turnId:activeTurnId(_)});e!==void 0&&a.set(TurnTaskDeliveryKey,e.phase)}if(t!==void 0){let e={...o,state:{...y.state}};setChannelContext(a,e)}if(n!==void 0&&T===void 0&&isHarnessBetweenTurns(m)){await contextStorage.run(a,()=>g?.instrumentChannelDelivery({ctx:a,includeTurn:!1,outcome:`completed`})),await g?.flush();let t=reconcileSessionContinuationToken(a,m),n=serializeContext(a),r=t===m?e.sessionState:createDurableSessionState({session:t});return{action:`park`,...derivePendingState(t),serializedContext:n,sessionState:r}}let k=s.subagentRegistry.dynamicResolvers??[],A=s.resolvedAgent.dynamicToolResolvers??[],j=buildRuntimeIdentity(S);try{let e=process.env.VERCEL_DEPLOYMENT_ID?.trim(),t=e?`deployment:${e}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(s.compiledArtifactsSource),n=_.sessionStarted;if(a.setVirtualContext(StaticModelReferenceKey,c.turnAgent.model??null),!n)a.set(SessionDynamicSubagentRuntimeRevisionKey,t),a.set(SessionDynamicToolRuntimeRevisionKey,t);else{let e=createSessionStartedEvent({runtime:j});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:a,resolvers:k,event:e,messages:h.initial.messages,runtimeRevision:t}),contextStorage.run(a,async()=>await refreshDynamicSessionToolsForRuntimeRevision({ctx:a,resolvers:A,event:e,messages:h.initial.messages,runtimeRevision:t}))]),isHarnessBetweenTurns(m)||await rebindMissingCompiledDynamicToolCallbacks({ctx:a,event:createTurnStartedEvent({sequence:_.sequence,turnId:activeTurnId(_)}),messages:h.initial.messages,resolvers:A})}}catch(e){throw await failChannelDeliveries(e),e}let M=s.resolvedAgent.config?.experimental?.workflow?.modelCallsPerStep??1,N=a.get(CapabilitiesKey),runHarnessStep=async(t,n)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:c.thresholdPercent},session:t,turnAgent:c.turnAgent});return createExecutionNodeStep({steeringSignal:e.steeringSignal,abortSignal:x,capabilities:N,clearOnly:e.input?.control===`clear`,compactOnly:e.input?.control===`compact`,createRuntime:createWorkflowRuntime,handleEvent:C,prepareApprovalTurn:e=>u.dispatch(createTurnStartedEvent(e)),historyProjector:h.projector,historyView:h.prepare(r),instrumentation:g,modelResolutionScope:{moduleMap:s.moduleMap,nodeId:s.nodeId},node:S})(r,n)},P,F;try{throwIfTurnAborted(x),F=await runModelCallBatch({steeringSignal:e.steeringSignal,initialInput:T,initialSession:m,modelCallsPerStep:M,runStep:async({firstCall:e,session:t,stepInput:n})=>{let r=await runBackgroundStep(a,t,async t=>{a.setVirtualContext(HandleEventKey,C),a.setVirtualContext(StaticModelReferenceKey,c.turnAgent.model??null);let r=e&&T?.outputSchema!==void 0?{...t,outputSchema:T.outputSchema}:t,i=getHarnessEmissionState(r.state);if(await u.rehydrate(i,j,isHarnessBetweenTurns(r)?void 0:{sequence:i.sequence,turnId:activeTurnId(i)}),e&&d){let e=getHarnessEmissionState(r.state);if(d.some(({candidateId:e})=>e===void 0)&&isHarnessBetweenTurns(r)){let t=createTurnInputMessages(consumeDeferredStepInput({session:r,input:n}).input);prepareDynamicInstructionPreamble(a,h.messages(r)),prepareMemoryPreamble(a,{history:r.history,input:t,projector:h.projector,state:r.state});let i=[],o=await prepareWorkflowPreambleTrace({emissionState:e,instrumentation:g});try{e=await emitTurnPreamble(C,{},e,h.projector({messages:[...r.history,...t],state:r.state}),j,o)}finally{i=drainDynamicInstructionUserMessages(a);let e=drainMemoryCommit(a);r={...r,history:validateHarnessModelMessages([...e?.history??r.history,...i]),state:e?.state??r.state}}r=setHarnessEmissionState(r,e)}for(let{authorization:t,result:n,candidateId:r}of d)await C(createAuthorizationCompletedEvent({attemptId:n.attemptId,authorization:t,candidateId:r,name:n.name,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}return runHarnessStep(r,n)});return r.settledTurn===void 0&&throwIfTurnAborted(x),P={result:r,serializedContext:serializeContext(a)},r}})}catch(t){if(!isTurnCancellation(t)&&!x.aborted)throw await failChannelDeliveries(t),t;let n=readRetainedBackgroundToolResult(a);return g?.rememberBackgroundTasks(n?.backgroundTasks??[]),createCancelledModelCallBatchResult({beforeBatchContext:e.serializedContext,checkpoint:P,ctx:a,initialSession:m,stepInput:T})}g?.rememberBackgroundTasks(F.backgroundTasks??[]);let I=reconcileSessionContinuationToken(a,F.session);agentTraceState.pruneAgentTraceState(a,I.sessionId,I.state);let L=serializeContext(a);F={...F,session:I};let R=resolveSessionStepResult(F,L,e.serializedContext,activeTurnId(_));return R.action===`done`&&await v.close(),R}finally{v.release()}}export{turnStep};
@@ -1,6 +1,3 @@
1
1
  import { type ActivityBatchV1, type ActivitySnapshotV1 } from "#protocol/activity.js";
2
- export declare const MAX_ACTIVITY_EVENT_IDS = 1000;
3
- export declare const MAX_ACTIVITY_PENDING_SETTLEMENTS = 500;
4
- export declare const MAX_ACTIVITY_ENTITIES = 500;
5
2
  export declare function createActivitySnapshot(): ActivitySnapshotV1;
6
3
  export declare function reduceActivityBatch(snapshot: ActivitySnapshotV1, batch: ActivityBatchV1): ActivitySnapshotV1;
@@ -1 +1 @@
1
- import"#protocol/activity.js";import{normalizePresentationText}from"#shared/presentation-text.js";const MAX_ACTIVITY_EVENT_IDS=1e3,MAX_ACTIVITY_PENDING_SETTLEMENTS=500,MAX_ACTIVITY_ENTITIES=500;function createActivitySnapshot(){return{actions:{},blockers:{},pendingSettlements:{},revision:0,seenEventIds:[],version:1,work:{}}}function reduceActivityBatch(e,t){let n=e,r=e.seenEventIds,i=!1,a=!1;for(let e of t.events){if(r.includes(e.eventId))continue;let t=reduceEvent(n,e);t!==n&&(a=!0,r=appendBounded(r,e.eventId,MAX_ACTIVITY_EVENT_IDS),i||=presentationDiffers(n,t),n=t)}return a?i?{...n,revision:e.revision+1,seenEventIds:r}:{...n,revision:e.revision,seenEventIds:r}:e}function presentationDiffers(e,t){return e.actions!==t.actions||e.blockers!==t.blockers||e.work!==t.work}function reduceEvent(e,t){switch(t.kind){case`work.started`:return startWork(e,t);case`work.settled`:return settleWork(e,t);case`action.started`:return startAction(e,t);case`action.settled`:return settleAction(e,t);case`action.label.updated`:return updateActionLabel(e,t);case`blocker.started`:return startBlocker(e,t);case`blocker.settled`:return settleBlocker(e,t)}}function startWork(e,t){if(e.work[t.work.id]!==void 0)return e;let n=pendingFor(e,`work`,t.work.id),r=t.work.parentId===void 0?void 0:e.work[t.work.parentId],i=n?.outcome??(!isBackgroundWorkBoundary(e,t.work)&&r!==void 0&&r.phase!==`running`?`cancelled`:`running`),a={...t.work,label:t.work.label===void 0?void 0:normalizePresentationText(t.work.label),name:t.work.name===void 0?void 0:normalizePresentationText(t.work.name),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt},o={...e,pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`work`,a.id)),work:replaceBounded(e.work,a.id,a)};return a.phase===`running`?o:settleWorkTree(o,{outcome:a.phase,settledAt:a.settledAt??t.startedAt,workId:a.id})}function settleWork(e,t){let n=e.work[t.workId];return n===void 0?retainPending(e,`work`,t.workId,t):n.phase===`running`?settleWorkTree(e,{outcome:t.outcome,settledAt:t.settledAt,workId:t.workId}):e}function startAction(e,t){if(e.actions[t.action.id]!==void 0)return e;let n=pendingFor(e,`action`,t.action.id),r=e.work[t.action.parentWorkId],i=n?.outcome??(r!==void 0&&r.phase!==`running`?`cancelled`:`running`);return{...e,actions:replaceBounded(e.actions,t.action.id,{...t.action,name:normalizePresentationText(t.action.name),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt}),pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`action`,t.action.id))}}function updateActionLabel(e,t){let n=e.actions[t.actionId];if(n===void 0)return e;let r=normalizePresentationText(t.label);return n.label===r?e:{...e,actions:replaceBounded(e.actions,t.actionId,{...n,label:r})}}function settleAction(e,t){let n=e.actions[t.actionId];return n===void 0?retainPending(e,`action`,t.actionId,t):n.phase===`running`?{...e,actions:replaceBounded(e.actions,t.actionId,{...n,phase:t.outcome,settledAt:t.settledAt})}:e}function startBlocker(e,t){if(e.blockers[t.blocker.id]!==void 0)return e;let n=pendingFor(e,`blocker`,t.blocker.id),r=e.work[t.blocker.parentWorkId],i=n?.outcome??(r!==void 0&&r.phase!==`running`?`cancelled`:`blocked`);return{...e,blockers:replaceBounded(e.blockers,t.blocker.id,{...t.blocker,label:t.blocker.label===void 0?void 0:normalizePresentationText(t.blocker.label),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt}),pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`blocker`,t.blocker.id))}}function settleBlocker(e,t){let n=e.blockers[t.blockerId];return n===void 0?retainPending(e,`blocker`,t.blockerId,t):n.phase===`blocked`?{...e,blockers:replaceBounded(e.blockers,t.blockerId,{...n,phase:t.outcome,settledAt:t.settledAt})}:e}function retainPending(e,t,n,r){let i=pendingKey(t,n);return e.pendingSettlements[i]===void 0?{...e,pendingSettlements:replaceBounded(e.pendingSettlements,i,{entityKind:t,eventId:r.eventId,outcome:r.outcome,settledAt:r.settledAt},500)}:e}function pendingFor(e,t,n){return e.pendingSettlements[pendingKey(t,n)]}function pendingKey(e,t){return`${e}:${t}`}function settleWorkTree(e,t){let n=new Set([t.workId]),r=!0;for(;r;){r=!1;for(let t of Object.values(e.work))t.parentId===void 0||!n.has(t.parentId)||n.has(t.id)||isBackgroundWorkBoundary(e,t)||(n.add(t.id),r=!0)}return{...e,actions:mapActivityStates(e.actions,e=>n.has(e.parentWorkId)&&e.phase===`running`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e),blockers:mapActivityStates(e.blockers,e=>n.has(e.parentWorkId)&&e.phase===`blocked`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e),work:mapActivityStates(e.work,e=>e.id===t.workId?{...e,phase:t.outcome,settledAt:t.settledAt}:n.has(e.id)&&e.phase===`running`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e)}}function isBackgroundWorkBoundary(e,t){return t.kind===`task`?!0:t.callId===void 0||t.parentId===void 0?!1:e.actions[`action:${t.parentId}:${t.callId}`]!==void 0}function mapActivityStates(e,t){let n=e;for(let[r,i]of Object.entries(e)){let a=t(i);a!==i&&(n===e&&(n={...e}),n[r]=a)}return n}function replaceBounded(e,t,n,r=500){let i={...e,[t]:n},a=Object.keys(i).length-r;for(let e of Object.keys(i).slice(0,Math.max(0,a)))delete i[e];return i}function removeKey(e,t){if(e[t]===void 0)return e;let n={...e};return delete n[t],n}function appendBounded(e,t,n){return[...e,t].slice(-n)}export{MAX_ACTIVITY_ENTITIES,MAX_ACTIVITY_EVENT_IDS,MAX_ACTIVITY_PENDING_SETTLEMENTS,createActivitySnapshot,reduceActivityBatch};
1
+ import"#protocol/activity.js";import{normalizePresentationText}from"#shared/presentation-text.js";function createActivitySnapshot(){return{actions:{},blockers:{},pendingSettlements:{},revision:0,seenEventIds:[],version:1,work:{}}}function reduceActivityBatch(e,t){let n=e,r=e.seenEventIds,i=!1,a=!1;for(let e of t.events){if(r.includes(e.eventId))continue;let t=reduceEvent(n,e);t!==n&&(a=!0,r=appendBounded(r,e.eventId,1e3),i||=presentationDiffers(n,t),n=t)}return a?i?{...n,revision:e.revision+1,seenEventIds:r}:{...n,revision:e.revision,seenEventIds:r}:e}function presentationDiffers(e,t){return e.actions!==t.actions||e.blockers!==t.blockers||e.work!==t.work}function reduceEvent(e,t){switch(t.kind){case`work.started`:return startWork(e,t);case`work.settled`:return settleWork(e,t);case`action.started`:return startAction(e,t);case`action.settled`:return settleAction(e,t);case`action.label.updated`:return updateActionLabel(e,t);case`blocker.started`:return startBlocker(e,t);case`blocker.settled`:return settleBlocker(e,t)}}function startWork(e,t){if(e.work[t.work.id]!==void 0)return e;let n=pendingFor(e,`work`,t.work.id),r=t.work.parentId===void 0?void 0:e.work[t.work.parentId],i=n?.outcome??(!isBackgroundWorkBoundary(e,t.work)&&r!==void 0&&r.phase!==`running`?`cancelled`:`running`),a={...t.work,label:t.work.label===void 0?void 0:normalizePresentationText(t.work.label),name:t.work.name===void 0?void 0:normalizePresentationText(t.work.name),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt},o={...e,pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`work`,a.id)),work:replaceBounded(e.work,a.id,a)};return a.phase===`running`?o:settleWorkTree(o,{outcome:a.phase,settledAt:a.settledAt??t.startedAt,workId:a.id})}function settleWork(e,t){let n=e.work[t.workId];return n===void 0?retainPending(e,`work`,t.workId,t):n.phase===`running`?settleWorkTree(e,{outcome:t.outcome,settledAt:t.settledAt,workId:t.workId}):e}function startAction(e,t){if(e.actions[t.action.id]!==void 0)return e;let n=pendingFor(e,`action`,t.action.id),r=e.work[t.action.parentWorkId],i=n?.outcome??(r!==void 0&&r.phase!==`running`?`cancelled`:`running`);return{...e,actions:replaceBounded(e.actions,t.action.id,{...t.action,name:normalizePresentationText(t.action.name),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt}),pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`action`,t.action.id))}}function updateActionLabel(e,t){let n=e.actions[t.actionId];if(n===void 0)return e;let r=normalizePresentationText(t.label);return n.label===r?e:{...e,actions:replaceBounded(e.actions,t.actionId,{...n,label:r})}}function settleAction(e,t){let n=e.actions[t.actionId];return n===void 0?retainPending(e,`action`,t.actionId,t):n.phase===`running`?{...e,actions:replaceBounded(e.actions,t.actionId,{...n,phase:t.outcome,settledAt:t.settledAt})}:e}function startBlocker(e,t){if(e.blockers[t.blocker.id]!==void 0)return e;let n=pendingFor(e,`blocker`,t.blocker.id),r=e.work[t.blocker.parentWorkId],i=n?.outcome??(r!==void 0&&r.phase!==`running`?`cancelled`:`blocked`);return{...e,blockers:replaceBounded(e.blockers,t.blocker.id,{...t.blocker,label:t.blocker.label===void 0?void 0:normalizePresentationText(t.blocker.label),phase:i,settledAt:n?.settledAt??(i===`cancelled`?r?.settledAt:void 0),startedAt:t.startedAt}),pendingSettlements:removeKey(e.pendingSettlements,pendingKey(`blocker`,t.blocker.id))}}function settleBlocker(e,t){let n=e.blockers[t.blockerId];return n===void 0?retainPending(e,`blocker`,t.blockerId,t):n.phase===`blocked`?{...e,blockers:replaceBounded(e.blockers,t.blockerId,{...n,phase:t.outcome,settledAt:t.settledAt})}:e}function retainPending(e,t,n,r){let i=pendingKey(t,n);return e.pendingSettlements[i]===void 0?{...e,pendingSettlements:replaceBounded(e.pendingSettlements,i,{entityKind:t,eventId:r.eventId,outcome:r.outcome,settledAt:r.settledAt},500)}:e}function pendingFor(e,t,n){return e.pendingSettlements[pendingKey(t,n)]}function pendingKey(e,t){return`${e}:${t}`}function settleWorkTree(e,t){let n=new Set([t.workId]),r=!0;for(;r;){r=!1;for(let t of Object.values(e.work))t.parentId===void 0||!n.has(t.parentId)||n.has(t.id)||isBackgroundWorkBoundary(e,t)||(n.add(t.id),r=!0)}return{...e,actions:mapActivityStates(e.actions,e=>n.has(e.parentWorkId)&&e.phase===`running`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e),blockers:mapActivityStates(e.blockers,e=>n.has(e.parentWorkId)&&e.phase===`blocked`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e),work:mapActivityStates(e.work,e=>e.id===t.workId?{...e,phase:t.outcome,settledAt:t.settledAt}:n.has(e.id)&&e.phase===`running`?{...e,phase:`cancelled`,settledAt:t.settledAt}:e)}}function isBackgroundWorkBoundary(e,t){return t.kind===`task`?!0:t.callId===void 0||t.parentId===void 0?!1:e.actions[`action:${t.parentId}:${t.callId}`]!==void 0}function mapActivityStates(e,t){let n=e;for(let[r,i]of Object.entries(e)){let a=t(i);a!==i&&(n===e&&(n={...e}),n[r]=a)}return n}function replaceBounded(e,t,n,r=500){let i={...e,[t]:n},a=Object.keys(i).length-r;for(let e of Object.keys(i).slice(0,Math.max(0,a)))delete i[e];return i}function removeKey(e,t){if(e[t]===void 0)return e;let n={...e};return delete n[t],n}function appendBounded(e,t,n){return[...e,t].slice(-n)}export{createActivitySnapshot,reduceActivityBatch};
@@ -1,5 +1,5 @@
1
1
  import type { DeliverHookPayload, SessionCommand, SessionTimeoutHookPayload } from "#channel/types.js";
2
- export type DecodedSessionInbox = DeliverHookPayload | SessionTimeoutHookPayload | Extract<SessionCommand, {
2
+ type DecodedSessionInbox = DeliverHookPayload | SessionTimeoutHookPayload | Extract<SessionCommand, {
3
3
  readonly kind: "cancel" | "clear" | "compact" | "reset";
4
4
  }>;
5
5
  /** Invalid current-generation inbox payload. Historical wire shapes are not accepted. */
@@ -8,3 +8,4 @@ export declare class SessionInboxPayloadError extends Error {
8
8
  }
9
9
  /** Normalizes the one authored `send` convenience command into a delivery. */
10
10
  export declare function decodeSessionInboxPayload(value: unknown): DecodedSessionInbox;
11
+ export {};
@@ -7,7 +7,7 @@ export declare const DEFAULT_ROOT_MAX_INPUT_TOKENS_PER_SESSION = 40000000;
7
7
  * explicitly uncapped the axis (skipping the root default). Resolution maps
8
8
  * this shape onto the numeric {@link SessionLimits} the harness checks.
9
9
  */
10
- export interface AuthoredSessionLimits {
10
+ interface AuthoredSessionLimits {
11
11
  readonly maxInputTokensPerSession?: number | false;
12
12
  readonly maxOutputTokensPerSession?: number | false;
13
13
  readonly maxTokenCostUsdPerSession?: number | false;
@@ -31,7 +31,7 @@ export declare function createCompactionConfig(input?: {
31
31
  lastKnownInputTokens: number;
32
32
  lastKnownPromptMessageCount: number | undefined;
33
33
  };
34
- export interface CreateSessionInput {
34
+ interface CreateSessionInput {
35
35
  readonly continuationToken: string;
36
36
  readonly compactionOverrides?: {
37
37
  readonly thresholdPercent?: number;
@@ -88,3 +88,4 @@ export declare function hydrateDurableSession(input: {
88
88
  readonly thresholdPercent?: number;
89
89
  };
90
90
  }): HarnessSession;
91
+ export {};
@@ -1,9 +1,3 @@
1
- /**
2
- * eve workflow functions whose bundled id carries no `@<version>` stamp, so
3
- * an explicitly stamped deployment can find them across eve versions.
4
- * Dependency-free so the bundler can import it.
5
- */
6
- export declare const TURN_WORKFLOW_NAME = "turnWorkflow";
7
1
  export declare const WORKFLOW_ENTRY_NAME = "workflowEntry";
8
2
  export declare const SESSION_TIMEOUT_WORKFLOW_NAME = "sessionTimeoutWorkflow";
9
3
  export declare const WORKFLOW_TOOL_RUN_WORKFLOW_NAME = "workflowToolRunWorkflow";
@@ -1 +1 @@
1
- const TURN_WORKFLOW_NAME=`turnWorkflow`,WORKFLOW_ENTRY_NAME=`workflowEntry`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,WORKFLOW_TOOL_RUN_WORKFLOW_NAME=`workflowToolRunWorkflow`,ACTIVITY_COLLECTOR_WORKFLOW_NAME=`activityCollectorWorkflow`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME,ACTIVITY_COLLECTOR_WORKFLOW_NAME]);export{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,STABLE_WORKFLOW_NAMES,TURN_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME};
1
+ const WORKFLOW_ENTRY_NAME=`workflowEntry`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,WORKFLOW_TOOL_RUN_WORKFLOW_NAME=`workflowToolRunWorkflow`,ACTIVITY_COLLECTOR_WORKFLOW_NAME=`activityCollectorWorkflow`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,`turnWorkflow`,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME,ACTIVITY_COLLECTOR_WORKFLOW_NAME]);export{ACTIVITY_COLLECTOR_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,STABLE_WORKFLOW_NAMES,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME};
@@ -1 +1 @@
1
- import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{readTaskInputTargetToken}from"#execution/task-input-capability.js";async function handleTaskInputResponseRequest(e,t){let n=t.params.token;if(typeof n!=`string`||n.length===0)return Response.json({error:`Missing task input token.`,ok:!1},{status:400});let r=readTaskInputTargetToken(n);if(r===void 0)return Response.json({error:`Invalid task input token.`,ok:!1},{status:403});let i;try{i=await e.json()}catch{return Response.json({error:`Invalid JSON body.`,ok:!1},{status:400})}let a=readInputResponses(i);if(a===void 0||a.length===0)return Response.json({error:`Expected a non-empty inputResponses array.`,ok:!1},{status:400});try{await resumeSessionInbox(r,{kind:`send`,payload:{inputResponses:a}})}catch{return Response.json({error:`Task input target is not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}function readInputResponses(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=Reflect.get(e,`inputResponses`);if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=Reflect.get(e,`requestId`),r=Reflect.get(e,`optionId`),i=Reflect.get(e,`text`);if(typeof t!=`string`||r!==void 0&&typeof r!=`string`||i!==void 0&&typeof i!=`string`)return;let a={requestId:t};typeof r==`string`&&(a.optionId=r),typeof i==`string`&&(a.text=i),n.push(a)}return n}export{handleTaskInputResponseRequest};
1
+ import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{readTaskInputTargetToken}from"#execution/task-input-capability.js";async function handleTaskInputResponseRequest(e,t){let n=t.params.token;if(typeof n!=`string`||n.length===0)return Response.json({error:`Missing task input token.`,ok:!1},{status:400});let r=readTaskInputTargetToken(n);if(r===void 0)return Response.json({error:`Invalid task input token.`,ok:!1},{status:403});let i;try{i=await e.json()}catch{return Response.json({error:`Invalid JSON body.`,ok:!1},{status:400})}let a=readInputResponses(i);if(a===void 0||a.length===0)return Response.json({error:`Expected a non-empty inputResponses array.`,ok:!1},{status:400});let o=readResponder(i);if(o===null)return Response.json({error:`Invalid responder identity.`,ok:!1},{status:400});try{await resumeSessionInbox(r,{kind:`send`,payload:{inputResponses:a,responder:o}})}catch{return Response.json({error:`Task input target is not pending.`,ok:!1},{status:404})}return Response.json({ok:!0},{status:202})}function readInputResponses(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=Reflect.get(e,`inputResponses`);if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=Reflect.get(e,`requestId`),r=Reflect.get(e,`optionId`),i=Reflect.get(e,`text`);if(typeof t!=`string`||r!==void 0&&typeof r!=`string`||i!==void 0&&typeof i!=`string`)return;let a={requestId:t};typeof r==`string`&&(a.optionId=r),typeof i==`string`&&(a.text=i),n.push(a)}return n}function readResponder(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=Reflect.get(e,`responder`);if(t===void 0)return;if(typeof t!=`object`||!t||Array.isArray(t))return null;let n=Reflect.get(t,`authenticator`),r=Reflect.get(t,`principalId`),i=Reflect.get(t,`principalType`);return typeof n!=`string`||typeof r!=`string`||typeof i!=`string`?null:{authenticator:n,principalId:r,principalType:i}}export{handleTaskInputResponseRequest};
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resumeWorkflowToolRunAnswers}from"#execution/tools/workflow/answer.js";import{formatTaskNotification,formatTaskOutput}from"#tasks/notification.js";import{submitActivity}from"#execution/submit-activity.js";import{workflowToolRunInputRequests}from"#execution/tools/workflow/owner-inbox.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{isTerminalTaskStatus,taskAuthorizationRequestId}from"#tasks/types.js";const log=createLogger(`execution.tasks.run`);async function notifyTaskParent(e){"use step";let t=taskNotificationCommand(e);try{await resumeSessionInbox(e.token,t)}catch(e){if(!isTaskWorkflowTargetGone(e))throw e;log.warn(`task notification target is gone; the parent session already ended`,{taskDeliveryId:t.taskDeliveryId})}}function taskNotificationCommand(e){if(`view`in e){let{view:t,update:n}=e;if(n!==void 0)return{kind:`send`,payload:{message:`Background task ${t.taskId} (${t.metadata.name}) update: ${formatTaskOutput(n.report.update)}`},taskDeliveryId:`${t.taskId}:update:${t.taskId}:${n.index}:${n.report.from.callId}`};let r={message:formatTaskNotification(t)};return isTerminalTaskStatus(t.status)&&(r.task={views:[t]}),{kind:`send`,payload:r,taskDeliveryId:`${t.taskId}:ready:${t.status}`}}let{taskId:t,request:n}=e,{request:r}=n;if(r.kind===`authorization-request`)return taskAuthorizationCommand(r,t);if(r.kind===`agent-invoke`||r.kind===`agent-settled`){let e={replyTo:n.replyTo,request:r,taskId:t},i=r.kind===`agent-invoke`?r.invocationId:`${r.result.callId}:settled`;return{kind:`send`,payload:{task:{agentRequests:[e]}},taskDeliveryId:`${t}:agent:${n.from.runId}:${i}`}}let i=n.requestCoordinates??n.from;return{kind:`send`,payload:{task:{inputRequests:[{replyTo:n.replyTo,requests:workflowToolRunInputRequests(n),sequence:i.sequence,stepIndex:i.stepIndex,taskId:t,turnId:i.turnId}]}},taskDeliveryId:`${t}:input:${i.turnId}:${i.stepIndex}:${i.sequence}`}}function taskAuthorizationCommand(e,t){let{event:n}=e,r=n.event.data,i={task:{authorizationEvents:[{hookPayload:n,taskId:t}]}};return n.event.type===`authorization.required`&&(i.message=`Background task ${t} needs authorization.`),{kind:`send`,payload:i,taskDeliveryId:`${t}:authorization:${n.event.type}:${r.turnId}:${r.stepIndex}:${r.sequence}:${taskAuthorizationRequestId(n.event)}`}}async function emitTaskActivityStep(e){"use step";let t=projectTaskActivity({activityObserver:e.activityObserver,settledAt:new Date().toISOString(),view:e.view});await submitActivity({events:t,sink:e.activityObserver?.sink})}function projectTaskActivity(e){let t=e.activityObserver?.workIdentity;if(t===void 0)return[];let n=e.view.status;return n===`working`?[{eventId:`${t.id}:started`,kind:`work.started`,startedAt:e.settledAt,work:t}]:n!==`completed`&&n!==`failed`&&n!==`cancelled`?[]:[{eventId:`${t.id}:settled:${n}`,kind:`work.settled`,outcome:n,settledAt:e.settledAt,workId:t.id}]}async function deliverTaskInputResponsesStep(e){"use step";let t=new Set(e.requestIds),n={auth:e.answer.auth,kind:`send`,payload:{inputResponses:e.answer.inputResponses.filter(e=>t.has(e.requestId))},taskDeliveryId:`${e.answer.taskId}:${[...e.requestIds].sort().join(`,`)}`};try{if(e.answer.childResponseUrl!==void 0){let t=await fetch(e.answer.childResponseUrl,{body:JSON.stringify({inputResponses:n.payload.inputResponses}),headers:{"content-type":`application/json`},method:`POST`,redirect:`error`});if(t.status===404)return`unreachable`;if(!t.ok)throw Error(`Remote task input delivery failed with HTTP ${t.status}.`)}else e.answerHook===void 0?await resumeSessionInbox(e.answer.childSessionInbox??e.answer.childContinuationToken,n):await resumeWorkflowToolRunAnswers(e.answer.childContinuationToken,n.payload.inputResponses);return`delivered`}catch(t){if(isTaskWorkflowTargetGone(t))return log.warn(`task input answer target is gone; the child turn already ended`,{taskId:e.answer.taskId}),`unreachable`;throw t}}export{deliverTaskInputResponsesStep,emitTaskActivityStep,notifyTaskParent,projectTaskActivity};
1
+ import{createLogger}from"#internal/logging.js";import{resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resumeWorkflowToolRunAnswers,toToolInputResponseResponder}from"#execution/tools/workflow/answer.js";import{formatTaskNotification,formatTaskOutput}from"#tasks/notification.js";import{submitActivity}from"#execution/submit-activity.js";import{workflowToolRunInputRequests}from"#execution/tools/workflow/owner-inbox.js";import{isTaskWorkflowTargetGone}from"#execution/tasks/workflow-target.js";import{isTerminalTaskStatus,taskAuthorizationRequestId}from"#tasks/types.js";const log=createLogger(`execution.tasks.run`);async function notifyTaskParent(e){"use step";let t=taskNotificationCommand(e);try{await resumeSessionInbox(e.token,t)}catch(e){if(!isTaskWorkflowTargetGone(e))throw e;log.warn(`task notification target is gone; the parent session already ended`,{taskDeliveryId:t.taskDeliveryId})}}function taskNotificationCommand(e){if(`view`in e){let{view:t,update:n}=e;if(n!==void 0)return{kind:`send`,payload:{message:`Background task ${t.taskId} (${t.metadata.name}) update: ${formatTaskOutput(n.report.update)}`},taskDeliveryId:`${t.taskId}:update:${t.taskId}:${n.index}:${n.report.from.callId}`};let r={message:formatTaskNotification(t)};return isTerminalTaskStatus(t.status)&&(r.task={views:[t]}),{kind:`send`,payload:r,taskDeliveryId:`${t.taskId}:ready:${t.status}`}}let{taskId:t,request:n}=e,{request:r}=n;if(r.kind===`authorization-request`)return taskAuthorizationCommand(r,t);if(r.kind===`agent-invoke`||r.kind===`agent-settled`){let e={replyTo:n.replyTo,request:r,taskId:t},i=r.kind===`agent-invoke`?r.invocationId:`${r.result.callId}:settled`;return{kind:`send`,payload:{task:{agentRequests:[e]}},taskDeliveryId:`${t}:agent:${n.from.runId}:${i}`}}let i=n.requestCoordinates??n.from;return{kind:`send`,payload:{task:{inputRequests:[{replyTo:n.replyTo,requests:workflowToolRunInputRequests(n),sequence:i.sequence,stepIndex:i.stepIndex,taskId:t,turnId:i.turnId}]}},taskDeliveryId:`${t}:input:${i.turnId}:${i.stepIndex}:${i.sequence}`}}function taskAuthorizationCommand(e,t){let{event:n}=e,r=n.event.data,i={task:{authorizationEvents:[{hookPayload:n,taskId:t}]}};return n.event.type===`authorization.required`&&(i.message=`Background task ${t} needs authorization.`),{kind:`send`,payload:i,taskDeliveryId:`${t}:authorization:${n.event.type}:${r.turnId}:${r.stepIndex}:${r.sequence}:${taskAuthorizationRequestId(n.event)}`}}async function emitTaskActivityStep(e){"use step";let t=projectTaskActivity({activityObserver:e.activityObserver,settledAt:new Date().toISOString(),view:e.view});await submitActivity({events:t,sink:e.activityObserver?.sink})}function projectTaskActivity(e){let t=e.activityObserver?.workIdentity;if(t===void 0)return[];let n=e.view.status;return n===`working`?[{eventId:`${t.id}:started`,kind:`work.started`,startedAt:e.settledAt,work:t}]:n!==`completed`&&n!==`failed`&&n!==`cancelled`?[]:[{eventId:`${t.id}:settled:${n}`,kind:`work.settled`,outcome:n,settledAt:e.settledAt,workId:t.id}]}async function deliverTaskInputResponsesStep(e){"use step";let t=new Set(e.requestIds),n={auth:e.answer.auth,kind:`send`,payload:{inputResponses:e.answer.inputResponses.filter(e=>t.has(e.requestId))},taskDeliveryId:`${e.answer.taskId}:${[...e.requestIds].sort().join(`,`)}`};try{if(e.answer.childResponseUrl!==void 0){let t=e.answer.responder??toToolInputResponseResponder(n.auth),r=await fetch(e.answer.childResponseUrl,{body:JSON.stringify({inputResponses:n.payload.inputResponses,responder:t}),headers:{"content-type":`application/json`},method:`POST`,redirect:`error`});if(r.status===404)return`unreachable`;if(!r.ok)throw Error(`Remote task input delivery failed with HTTP ${r.status}.`)}else e.answerHook===void 0?await resumeSessionInbox(e.answer.childSessionInbox??e.answer.childContinuationToken,n):await resumeWorkflowToolRunAnswers(e.answer.childContinuationToken,n.payload.inputResponses,e.answer.responder??toToolInputResponseResponder(n.auth));return`delivered`}catch(t){if(isTaskWorkflowTargetGone(t))return log.warn(`task input answer target is gone; the child turn already ended`,{taskId:e.answer.taskId}),`unreachable`;throw t}}export{deliverTaskInputResponsesStep,emitTaskActivityStep,notifyTaskParent,projectTaskActivity};
@@ -1 +1 @@
1
- import{evaluate}from"#ai/evaluate.js";async function executeAgentRouterTool(e,t){"use workflow";let n=await chooseTarget(e.message,descriptions(t),t.abortSignal);return t.agent(n,{message:e.message})}async function chooseTarget(e,t,n){"use step";let r=Object.keys(t);if(r.length===0)throw Error(`agentRouter requires at least one available agent with a description.`);return r.length===1?r[0]:(await evaluate({abortSignal:n,state:{message:e},questions:{route:{type:`choice`,instructions:`Which subagent should handle this task?`,criteria:t}}})).answers.route.choice}function descriptions(e){return Object.fromEntries(Object.entries(e.agents).flatMap(([e,t])=>{let n=t.description.trim();return n.length===0?[]:[[e,n]]}))}executeAgentRouterTool.workflowId=`workflow//eve@0.67.1//executeAgentRouterTool`;export{executeAgentRouterTool};
1
+ import{evaluate}from"#ai/evaluate.js";async function executeAgentRouterTool(e,t){"use workflow";let n=await chooseTarget(e.message,descriptions(t),t.abortSignal);return t.agent(n,{message:e.message})}async function chooseTarget(e,t,n){"use step";let r=Object.keys(t);if(r.length===0)throw Error(`agentRouter requires at least one available agent with a description.`);return r.length===1?r[0]:(await evaluate({abortSignal:n,state:{message:e},questions:{route:{type:`choice`,instructions:`Which subagent should handle this task?`,criteria:t}}})).answers.route.choice}function descriptions(e){return Object.fromEntries(Object.entries(e.agents).flatMap(([e,t])=>{let n=t.description.trim();return n.length===0?[]:[[e,n]]}))}executeAgentRouterTool.workflowId=`workflow//eve@0.68.0//executeAgentRouterTool`;export{executeAgentRouterTool};
@@ -1 +1 @@
1
- async function executeAskQuestionTool(e,t){"use workflow";return toAskQuestionOutput(await t.ask(toAskQuestionRequest(e)))}function toAskQuestionRequest(e){let t=e.options?.map(e=>({description:e.description,id:e.label,label:e.label}));return{allowFreeform:!0,dismissible:!0,display:t===void 0?`text`:`select`,prompt:e.question,...t!==void 0&&{options:t}}}function toAskQuestionOutput(e){return e.status===`answered`?{answer:e.optionId??e.text??``,status:`answered`}:{status:e.status}}executeAskQuestionTool.workflowId=`workflow//eve@0.67.1//executeAskQuestionTool`;export{executeAskQuestionTool,toAskQuestionOutput,toAskQuestionRequest};
1
+ async function executeAskQuestionTool(e,t){"use workflow";return toAskQuestionOutput(await t.ask(toAskQuestionRequest(e)))}function toAskQuestionRequest(e){let t=e.options?.map(e=>({description:e.description,id:e.label,label:e.label}));return{allowFreeform:!0,dismissible:!0,display:t===void 0?`text`:`select`,prompt:e.question,...t!==void 0&&{options:t}}}function toAskQuestionOutput(e){return e.status===`answered`?{answer:e.optionId??e.text??``,status:`answered`}:{status:e.status}}executeAskQuestionTool.workflowId=`workflow//eve@0.68.0//executeAskQuestionTool`;export{executeAskQuestionTool,toAskQuestionOutput,toAskQuestionRequest};
@@ -1,2 +1,2 @@
1
- import{createLogger}from"#internal/logging.js";import{loadContext}from"#context/container.js";import{toError}from"#shared/errors.js";import{defineJsonSchema}from"#tools/schema.js";import{defineTool}from"#tools/definition.js";import{stampDurableDynamicToolCallbacks}from"#tools/durable-callbacks.js";import{ContextKey}from"#context/key.js";import{ConnectionRegistryKey}from"#context/providers/connection-key.js";import{resolveApprovalPolicy}from"#approval/definition.js";import{getAuthorizationResults,requestAuthorization}from"#harness/authorization.js";import{createAuthorizationExecution}from"#runtime/connections/scoped-authorization.js";import{isConnectionAuthorizationFailedError,isConnectionAuthorizationRequiredError}from"#connections/errors.js";import{resolveConnectionAuthorization}from"#runtime/connections/resolve-authorization.js";import{supportsInteractiveAuthorization}from"#shared/connection-types.js";const logger=createLogger(`framework.connection-search-dynamic`),CONNECTION_SEARCH_INPUT_SCHEMA=defineJsonSchema({type:`object`,properties:{connection:{type:`string`,description:`Optional: limit search to a specific connection name.`},keywords:{type:`string`,description:`Search keywords and expanded aliases. Distill intent into keywords; avoid stop words like 'a', 'the', 'in'.`},limit:{type:`number`,description:`Max results to return. Default 10.`}},required:[`keywords`],additionalProperties:!1}),CONNECTION_SEARCH_OUTPUT_SCHEMA=defineJsonSchema({type:`array`,items:{type:`object`,properties:{connection:{type:`string`},description:{type:`string`},error:{type:`string`},inputSchema:{type:`object`},needsAuthorization:{type:`boolean`},outputSchema:{type:`object`},qualifiedName:{type:`string`},tool:{type:`string`}},required:[`connection`,`description`],additionalProperties:!1}}),ConnectionSearchResultsKey=new ContextKey(`eve.connectionSearchResults`);function qualifiedConnectionToolName(e,t){return`${e}__${t}`}function tokenize(e){return e.toLowerCase().split(/[\s_\-./]+/).filter(e=>e.length>1)}function scoreMatch(e,t){let n=tokenize(t.name),r=tokenize(t.description),i=0;for(let t of e){for(let e of n)(e.includes(t)||t.includes(e))&&(i+=3);for(let e of r)(e.includes(t)||t.includes(e))&&(i+=1)}return i}async function resolveInteractiveAuth(e,t){let n=e.getConnections().find(e=>e.connectionName===t);if(n===void 0)return;let r=await resolveConnectionAuthorization(n);if(r!==void 0&&supportsInteractiveAuthorization(r))return{scope:n.connectionName,instanceId:n.instanceId,connection:{url:n.url??``},authorization:r}}async function completePendingAuthorizations(e,t,n){assertPendingConnectionAuthorizationInstances(e);for(let r of t){if(!getAuthorizationResults().some(e=>e.name===r.connectionName))continue;let t=await resolveInteractiveAuth(e,r.connectionName);t!==void 0&&await n.complete(t)}}async function executeConnectionSearch(e){let t=loadContext(),n=t.get(ConnectionRegistryKey);if(n===void 0)return[];let r=e.limit??10,i=tokenize(e.keywords),a=[],o=[],s=e.connection!==void 0&&e.connection!==``?n.getConnections().filter(t=>t.connectionName===e.connection):n.getConnections();if(e.connection&&s.length===0)throw Error(`Connection "${e.connection}" is not registered. Available connections: ${n.getConnectionNames().join(`, `)}.`);let c=createAuthorizationExecution();await completePendingAuthorizations(n,s,c);let l=[];for(let e of s){let t;try{t=await n.getClient(e.connectionName).getToolMetadata()}catch(t){if(isConnectionAuthorizationRequiredError(t)){let r=await resolveInteractiveAuth(n,e.connectionName);if(r!==void 0)try{let e=await c.handleError(t,r);l.push(...e.challenges)}catch(t){let n=toError(t);logger.warn(`connection authorization failed`,{connection:e.connectionName,error:n}),o.push({connection:e.connectionName,description:e.description,error:isConnectionAuthorizationFailedError(n)?n.message:`Failed to start authorization for "${e.connectionName}": ${n.message}`});continue}o.push({connection:e.connectionName,description:e.description,needsAuthorization:!0});continue}if(isConnectionAuthorizationFailedError(t)){logger.warn(`connection authorization failed`,{connection:e.connectionName,reason:t.reason,retryable:t.retryable,error:t}),o.push({connection:e.connectionName,description:e.description,error:`Authorization failed for ${e.connectionName}: ${t.message}`});continue}let r=toError(t);logger.warn(`failed to load connection tools`,{connection:e.connectionName,error:r}),o.push({connection:e.connectionName,description:e.description,error:`Failed to load tools for "${e.connectionName}": ${r.message}`});continue}for(let n of t){let t=scoreMatch(i,n);t>0&&a.push({item:{connection:e.connectionName,description:n.description,inputSchema:n.inputSchema,outputSchema:n.outputSchema,qualifiedName:qualifiedConnectionToolName(e.connectionName,n.name),tool:n.name},score:t})}}if(l.length>0)return requestAuthorization(l);let u=o.filter(e=>e.error!==void 0);if(s.length>0&&u.length===s.length)throw Error(u.map(e=>e.error).join(`
2
- `));a.sort((e,t)=>t.score-e.score);let d=a.slice(0,r).map(e=>e.item);if(d.length>0){let e=[...d,...o],n=t.get(ConnectionSearchResultsKey)??[],r=new Map(n.map(e=>[e.qualifiedName,e]));for(let e of d)e.qualifiedName&&r.set(e.qualifiedName,e);return t.set(ConnectionSearchResultsKey,[...r.values()]),e}return s.map(e=>o.find(t=>t.connection===e.connectionName)||{connection:e.connectionName,description:e.description})}function connectionToolReplayIdentity(e){let t=loadContext(),n=t.get(ConnectionSearchResultsKey)?.find(t=>t.qualifiedName===e);if(n!==void 0)return t.get(ConnectionRegistryKey)?.getConnections().find(e=>e.connectionName===n.connection)?.instanceId}function assertConnectionToolInstance(e){if(typeof e.instanceId!=`string`)return;let{connectionName:t}=readDiscoveredToolClosure(e);if(loadContext().get(ConnectionRegistryKey)?.getConnections().find(e=>e.connectionName===t)?.instanceId!==e.instanceId)throw Error(`The connection for this tool call changed or is unavailable. Request a new tool call and approval.`)}function readDiscoveredToolClosure(e){let t=e.connectionName,n=e.toolName;if(typeof t!=`string`||typeof n!=`string`)throw Error(`Discovered connection tool callback metadata is invalid.`);return{connectionName:t,toolName:n}}async function executeDiscoveredConnectionTool(e,t,n){let{connectionName:r,toolName:i}=readDiscoveredToolClosure(e),a=loadContext().get(ConnectionRegistryKey);if(a===void 0)throw Error(`Connection registry is unavailable while replaying a discovered tool.`);assertConnectionToolInstance(e),assertPendingConnectionAuthorizationInstances(a);let o=await resolveInteractiveAuth(a,r),s=createAuthorizationExecution();o!==void 0&&await s.complete(o);try{return await a.getClient(r).executeTool(i,t,{abortSignal:n.abortSignal,callId:n.callId})}catch(e){return await s.handleError(e,o)}}function assertPendingConnectionAuthorizationInstances(e){let t=new Map(e.getConnections().map(e=>[e.connectionName,e]));for(let e of getAuthorizationResults())if(e.instanceId!==void 0&&t.get(e.name)?.instanceId!==e.instanceId)throw Error(`Authorization for "${e.name}" cannot complete because its resolved connection changed while sign-in was pending. Start sign-in again.`)}async function requestDiscoveredConnectionToolApproval(e,t){let{connectionName:n}=readDiscoveredToolClosure(e);assertConnectionToolInstance(e);let r=loadContext().get(ConnectionRegistryKey)?.getConnectionApproval(n);return r===void 0?`not-applicable`:await resolveApprovalPolicy(r)(t)}async function authorizeDiscoveredConnectionToolApproval(e,t){let{connectionName:n}=readDiscoveredToolClosure(e);assertConnectionToolInstance(e);let r=loadContext().get(ConnectionRegistryKey)?.getConnectionApproval(n),i=r===void 0||typeof r==`function`?void 0:r.response;return i===void 0?{reason:`Approval response authorization is unavailable.`,status:`rejected`}:await i(t)}async function resolveConnectionSearchDynamicTools(){let e=loadContext().get(ConnectionRegistryKey);if(!e||e.getConnections().length===0)return null;let t=e.getConnections(),n=t.map(e=>e.connectionName),r=new Set(n),i=(loadContext().get(ConnectionSearchResultsKey)??[]).filter(e=>r.has(e.connection)),a={},o=defineTool({description:`Search for tools across your connections. Discovered tools become directly callable by their qualified name (e.g. \`linear__list_issues\`) in your next response. Available connections: ${n.join(`, `)}.`,inputSchema:CONNECTION_SEARCH_INPUT_SCHEMA,async execute(e){return executeConnectionSearch(e)},outputSchema:CONNECTION_SEARCH_OUTPUT_SCHEMA});stampDurableDynamicToolCallbacks(o,{inputSchema:{callback:()=>CONNECTION_SEARCH_INPUT_SCHEMA,closure:{}},outputSchema:{callback:()=>CONNECTION_SEARCH_OUTPUT_SCHEMA,closure:{}},execute:{callback:(e,t)=>executeConnectionSearch(t),closure:{}}}),a.connection_search=o;for(let n of i){let r=n.connection,i=n.tool,o=e.getConnectionApproval(r),s=t.find(e=>e.connectionName===r)?.instanceId,c={connectionName:r,toolName:i};s!==void 0&&(c.instanceId=s);let l=defineTool({description:n.description,inputSchema:n.inputSchema??{type:`object`},approval:o,outputSchema:n.outputSchema,async execute(e,t){return await executeDiscoveredConnectionTool(c,e,t)}});stampDurableDynamicToolCallbacks(l,{execute:{callback:executeDiscoveredConnectionTool,closure:c},...o===void 0?{}:{approvalRequest:{callback:requestDiscoveredConnectionToolApproval,closure:c}},...o===void 0||typeof o==`function`||o.response===void 0?{}:{approvalResponse:{callback:authorizeDiscoveredConnectionToolApproval,closure:c}}}),a[qualifiedConnectionToolName(r,i)]=l}return a}export{connectionToolReplayIdentity,resolveConnectionSearchDynamicTools};
1
+ import{createLogger}from"#internal/logging.js";import{loadContext}from"#context/container.js";import{toError}from"#shared/errors.js";import{defineJsonSchema}from"#tools/schema.js";import{stampDurableDynamicToolCallbacks}from"#tools/durable-callbacks.js";import{ContextKey}from"#context/key.js";import{ConnectionRegistryKey}from"#context/providers/connection-key.js";import{resolveApprovalPolicy}from"#approval/definition.js";import{getAuthorizationResults,requestAuthorization}from"#harness/authorization.js";import{createAuthorizationExecution}from"#runtime/connections/scoped-authorization.js";import{isConnectionAuthorizationFailedError,isConnectionAuthorizationRequiredError}from"#connections/errors.js";import{defineTool}from"#tools/definition.js";import{resolveConnectionAuthorization}from"#runtime/connections/resolve-authorization.js";import{supportsInteractiveAuthorization}from"#shared/connection-types.js";const logger=createLogger(`framework.connection-search-dynamic`),CONNECTION_SEARCH_INPUT_SCHEMA=defineJsonSchema({type:`object`,properties:{connection:{type:`string`,description:`Optional: limit search to a specific connection name.`},keywords:{type:`string`,description:`Search keywords and expanded aliases. Distill intent into keywords; avoid stop words like 'a', 'the', 'in'.`},limit:{type:`number`,description:`Max results to return. Default 10.`}},required:[`keywords`],additionalProperties:!1}),CONNECTION_SEARCH_OUTPUT_SCHEMA=defineJsonSchema({type:`array`,items:{type:`object`,properties:{connection:{type:`string`},description:{type:`string`},error:{type:`string`},inputSchema:{type:`object`},needsAuthorization:{type:`boolean`},outputSchema:{type:`object`},qualifiedName:{type:`string`},tool:{type:`string`}},required:[`connection`,`description`],additionalProperties:!1}}),ConnectionSearchResultsKey=new ContextKey(`eve.connectionSearchResults`);function qualifiedConnectionToolName(e,t){return`${e}__${t}`}function tokenize(e){return e.toLowerCase().split(/[\s_\-./]+/).filter(e=>e.length>1)}function scoreMatch(e,t){let n=tokenize(t.name),r=tokenize(t.description),i=0;for(let t of e){for(let e of n)(e.includes(t)||t.includes(e))&&(i+=3);for(let e of r)(e.includes(t)||t.includes(e))&&(i+=1)}return i}async function resolveInteractiveAuth(e,t){let n=e.getConnections().find(e=>e.connectionName===t);if(n===void 0)return;let r=await resolveConnectionAuthorization(n);if(r!==void 0&&supportsInteractiveAuthorization(r))return{scope:n.connectionName,instanceId:n.instanceId,connection:{url:n.url??``},authorization:r}}async function completePendingAuthorizations(e,t,n){assertPendingConnectionAuthorizationInstances(e);for(let r of t){if(!getAuthorizationResults().some(e=>e.name===r.connectionName))continue;let t=await resolveInteractiveAuth(e,r.connectionName);t!==void 0&&await n.complete(t)}}async function executeConnectionSearch(e){let t=loadContext(),n=t.get(ConnectionRegistryKey);if(n===void 0)return[];let r=e.limit??10,i=tokenize(e.keywords),a=[],o=[],s=e.connection!==void 0&&e.connection!==``?n.getConnections().filter(t=>t.connectionName===e.connection):n.getConnections();if(e.connection&&s.length===0)throw Error(`Connection "${e.connection}" is not registered. Available connections: ${n.getConnectionNames().join(`, `)}.`);let c=createAuthorizationExecution();await completePendingAuthorizations(n,s,c);let l=[];for(let e of s){let t;try{t=await n.getClient(e.connectionName).getToolMetadata()}catch(t){if(isConnectionAuthorizationRequiredError(t)){let r=await resolveInteractiveAuth(n,e.connectionName);if(r!==void 0)try{let e=await c.handleError(t,r);l.push(...e.challenges)}catch(t){let n=toError(t);logger.warn(`connection authorization failed`,{connection:e.connectionName,error:n}),o.push({connection:e.connectionName,description:e.description,error:isConnectionAuthorizationFailedError(n)?n.message:`Failed to start authorization for "${e.connectionName}": ${n.message}`});continue}o.push({connection:e.connectionName,description:e.description,needsAuthorization:!0});continue}if(isConnectionAuthorizationFailedError(t)){logger.warn(`connection authorization failed`,{connection:e.connectionName,reason:t.reason,retryable:t.retryable,error:t}),o.push({connection:e.connectionName,description:e.description,error:`Authorization failed for ${e.connectionName}: ${t.message}`});continue}let r=toError(t);logger.warn(`failed to load connection tools`,{connection:e.connectionName,error:r}),o.push({connection:e.connectionName,description:e.description,error:`Failed to load tools for "${e.connectionName}": ${r.message}`});continue}for(let n of t){let t=scoreMatch(i,n);t>0&&a.push({item:{connection:e.connectionName,description:n.description,inputSchema:n.inputSchema,outputSchema:n.outputSchema,qualifiedName:qualifiedConnectionToolName(e.connectionName,n.name),tool:n.name},score:t})}}if(l.length>0)return requestAuthorization(l);let u=o.filter(e=>e.error!==void 0);if(s.length>0&&u.length===s.length)throw Error(u.map(e=>e.error).join(`
2
+ `));a.sort((e,t)=>t.score-e.score);let d=a.slice(0,r).map(e=>e.item);if(d.length>0){let e=[...d,...o],n=t.get(ConnectionSearchResultsKey)??[],r=new Map(n.map(e=>[e.qualifiedName,e]));for(let e of d)e.qualifiedName&&r.set(e.qualifiedName,e);return t.set(ConnectionSearchResultsKey,[...r.values()]),e}return s.map(e=>o.find(t=>t.connection===e.connectionName)||{connection:e.connectionName,description:e.description})}function connectionToolReplayIdentity(e){let t=loadContext(),n=t.get(ConnectionSearchResultsKey)?.find(t=>t.qualifiedName===e);if(n!==void 0)return t.get(ConnectionRegistryKey)?.getConnections().find(e=>e.connectionName===n.connection)?.instanceId}function assertConnectionToolInstance(e){if(typeof e.instanceId!=`string`)return;let{connectionName:t}=readDiscoveredToolClosure(e);if(loadContext().get(ConnectionRegistryKey)?.getConnections().find(e=>e.connectionName===t)?.instanceId!==e.instanceId)throw Error(`The connection for this tool call changed or is unavailable. Request a new tool call and approval.`)}function readDiscoveredToolClosure(e){let t=e.connectionName,n=e.toolName;if(typeof t!=`string`||typeof n!=`string`)throw Error(`Discovered connection tool callback metadata is invalid.`);return{connectionName:t,toolName:n}}async function executeDiscoveredConnectionTool(e,t,n){let{connectionName:r,toolName:i}=readDiscoveredToolClosure(e),a=loadContext().get(ConnectionRegistryKey);if(a===void 0)throw Error(`Connection registry is unavailable while replaying a discovered tool.`);assertConnectionToolInstance(e),assertPendingConnectionAuthorizationInstances(a);let o=await resolveInteractiveAuth(a,r),s=createAuthorizationExecution();o!==void 0&&await s.complete(o);try{return await a.getClient(r).executeTool(i,t,{abortSignal:n.abortSignal,callId:n.callId})}catch(e){return await s.handleError(e,o)}}async function discoveredConnectionToolModelOutput(e,t){let{connectionName:n,toolName:r}=readDiscoveredToolClosure(e);return await(loadContext().get(ConnectionRegistryKey)?.getClient(n))?.toModelOutput?.(r,t)??{type:`json`,value:t??null}}function assertPendingConnectionAuthorizationInstances(e){let t=new Map(e.getConnections().map(e=>[e.connectionName,e]));for(let e of getAuthorizationResults())if(e.instanceId!==void 0&&t.get(e.name)?.instanceId!==e.instanceId)throw Error(`Authorization for "${e.name}" cannot complete because its resolved connection changed while sign-in was pending. Start sign-in again.`)}async function requestDiscoveredConnectionToolApproval(e,t){let{connectionName:n}=readDiscoveredToolClosure(e);assertConnectionToolInstance(e);let r=loadContext().get(ConnectionRegistryKey)?.getConnectionApproval(n);return r===void 0?`not-applicable`:await resolveApprovalPolicy(r)(t)}async function authorizeDiscoveredConnectionToolApproval(e,t){let{connectionName:n}=readDiscoveredToolClosure(e);assertConnectionToolInstance(e);let r=loadContext().get(ConnectionRegistryKey)?.getConnectionApproval(n),i=r===void 0||typeof r==`function`?void 0:r.response;return i===void 0?{reason:`Approval response authorization is unavailable.`,status:`rejected`}:await i(t)}async function resolveConnectionSearchDynamicTools(){let e=loadContext().get(ConnectionRegistryKey);if(!e||e.getConnections().length===0)return null;let t=e.getConnections(),n=t.map(e=>e.connectionName),r=new Set(n),i=(loadContext().get(ConnectionSearchResultsKey)??[]).filter(e=>r.has(e.connection)),a={},o=defineTool({description:`Search for tools across your connections. Discovered tools become directly callable by their qualified name (e.g. \`linear__list_issues\`) in your next response. Available connections: ${n.join(`, `)}.`,inputSchema:CONNECTION_SEARCH_INPUT_SCHEMA,async execute(e){return executeConnectionSearch(e)},outputSchema:CONNECTION_SEARCH_OUTPUT_SCHEMA});stampDurableDynamicToolCallbacks(o,{inputSchema:{callback:()=>CONNECTION_SEARCH_INPUT_SCHEMA,closure:{}},outputSchema:{callback:()=>CONNECTION_SEARCH_OUTPUT_SCHEMA,closure:{}},execute:{callback:(e,t)=>executeConnectionSearch(t),closure:{}}}),a.connection_search=o;for(let n of i){let r=n.connection,i=n.tool,o=e.getConnectionApproval(r),s=t.find(e=>e.connectionName===r),c=s?.instanceId,l=s?.protocol===`mcp`,u={connectionName:r,toolName:i};c!==void 0&&(u.instanceId=c);let d=defineTool({description:n.description,inputSchema:n.inputSchema??{type:`object`},approval:o,outputSchema:n.outputSchema,async execute(e,t){return await executeDiscoveredConnectionTool(u,e,t)},toModelOutput:l?e=>discoveredConnectionToolModelOutput(u,e):void 0});stampDurableDynamicToolCallbacks(d,{execute:{callback:executeDiscoveredConnectionTool,closure:u},toModelOutput:l?{callback:discoveredConnectionToolModelOutput,closure:u}:void 0,...o===void 0?{}:{approvalRequest:{callback:requestDiscoveredConnectionToolApproval,closure:u}},...o===void 0||typeof o==`function`||o.response===void 0?{}:{approvalResponse:{callback:authorizeDiscoveredConnectionToolApproval,closure:u}}}),a[qualifiedConnectionToolName(r,i)]=d}return a}export{connectionToolReplayIdentity,resolveConnectionSearchDynamicTools};
@@ -1 +1 @@
1
- import{sleep}from"#compiled/@workflow/core/index.js";async function executeSleepTool(e){"use workflow";return await sleep(Math.ceil(e.seconds*1e3)),{waitedSeconds:e.seconds}}executeSleepTool.workflowId=`workflow//eve@0.67.1//executeSleepTool`;export{executeSleepTool};
1
+ import{sleep}from"#compiled/@workflow/core/index.js";async function executeSleepTool(e){"use workflow";return await sleep(Math.ceil(e.seconds*1e3)),{waitedSeconds:e.seconds}}executeSleepTool.workflowId=`workflow//eve@0.68.0//executeSleepTool`;export{executeSleepTool};
@@ -1 +1 @@
1
- import{contextStorage}from"#context/container.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{hydrateDurableSession}from"#execution/session.js";import{withContextScope}from"#context/run-step.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{createSessionEventSink}from"#execution/session/event-sink.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";async function emitSubagentEventStep(e){"use step";let t=await deserializeContext(e.serializedContext),n=t.require(BundleKey),publish=async()=>{let n=createSessionEventSink({adapter:t.require(ChannelKey),ctx:t,isFirstTurn:e.sessionState.emissionState.sequence===0,sessionWritable:e.sessionWritable,sessionId:e.sessionState.sessionId});try{return await contextStorage.run(t,()=>n.emit(e.event))}finally{n.release()}},r=n.hookRegistry;if((r.streamEventsByType.get(e.event.type)?.length??0)===0&&r.streamEventsWildcard.length===0)return await publish(),{serializedContext:serializeContext(t),sessionState:e.sessionState};let i=resolveEffectiveAgentRuntime(n,t),a=hydrateDurableSession({durable:readDurableSession(e.sessionState),turnAgent:i.turnAgent,compactionOverrides:{thresholdPercent:i.thresholdPercent}}),o=await withContextScope(t,a,async e=>{let n=await publish();return n.suppressed||await dispatchStreamEventHooks({ctx:t,registry:r,event:n.event}),{result:void 0,session:e}});return{serializedContext:serializeContext(t),sessionState:createDurableSessionState({session:reconcileSessionContinuationToken(t,o.session)})}}export{emitSubagentEventStep};
1
+ import{contextStorage}from"#context/container.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{hydrateDurableSession}from"#execution/session.js";import{withContextScope}from"#context/run-step.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{createSessionEventSink}from"#execution/session/event-sink.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";async function emitSubagentEventStep(e){"use step";let t=await deserializeContext(e.serializedContext),n=t.require(BundleKey),publish=async()=>{let n=createSessionEventSink({adapter:t.require(ChannelKey),ctx:t,isFirstTurn:e.sessionState.emissionState.sequence===0,sessionWritable:e.sessionWritable,sessionId:e.sessionState.sessionId});try{return await contextStorage.run(t,()=>n.emit(e.event))}finally{n.release()}},r=n.hookRegistry;if((r.streamEventsByType.get(e.event.type)?.length??0)===0&&r.streamEventsWildcard.length===0)return await publish(),{serializedContext:serializeContext(t),sessionState:e.sessionState};let i=resolveEffectiveAgentRuntime(n,t),a=hydrateDurableSession({durable:readDurableSession(e.sessionState),turnAgent:i.turnAgent,compactionOverrides:{thresholdPercent:i.thresholdPercent}}),o=await withContextScope(t,a,async e=>{let n=await publish();return n.suppressed||await dispatchStreamEventHooks({cancelTurn:void 0,ctx:t,registry:r,event:n.event}),{result:void 0,session:e}});return{serializedContext:serializeContext(t),sessionState:createDurableSessionState({session:reconcileSessionContinuationToken(t,o.session)})}}export{emitSubagentEventStep};
@@ -8,7 +8,7 @@ import { type CompiledBundle } from "#runtime/sessions/runtime-context-keys.js";
8
8
  import type { DynamicRemoteAgentConfig } from "#runtime/subagents/dynamic-remote-agent-config.js";
9
9
  import { type RuntimeAgentHandleAction, type RuntimeSession } from "#subagents/handle-dispatch.js";
10
10
  import type { SubagentStartTarget } from "#execution/tools/subagent/start.js";
11
- export type OwnerAgentDispatchPlanEntry = {
11
+ type OwnerAgentDispatchPlanEntry = {
12
12
  readonly kind: "resume";
13
13
  readonly action: RuntimeAgentHandleAction;
14
14
  readonly agentId: string;
@@ -41,3 +41,4 @@ export declare function resolveAgentInvocationAction(input: {
41
41
  readonly input: AgentInvocationRequest["input"];
42
42
  readonly invocationId: string;
43
43
  }): RuntimeAgentDispatchRequest;
44
+ export {};
@@ -1,17 +1,17 @@
1
1
  import type { DurableSessionState } from "#execution/durable-session-store.js";
2
2
  import type { TaskAgentRequestDelivery } from "#tasks/types.js";
3
- export interface AgentRequestDelivery {
3
+ interface AgentRequestDelivery {
4
4
  readonly ownerId: string;
5
5
  readonly replyTo: TaskAgentRequestDelivery["replyTo"];
6
6
  readonly request: TaskAgentRequestDelivery["request"];
7
7
  readonly taskId?: string;
8
8
  }
9
- export interface TaskAgentRequestContext {
9
+ interface TaskAgentRequestContext {
10
10
  readonly sessionWritable: WritableStream<Uint8Array>;
11
11
  readonly serializedContext: Record<string, unknown>;
12
12
  readonly sessionState: DurableSessionState;
13
13
  }
14
- export interface AppliedTaskAgentRequest {
14
+ interface AppliedTaskAgentRequest {
15
15
  readonly serializedContext: Record<string, unknown>;
16
16
  readonly sessionState: DurableSessionState;
17
17
  }
@@ -21,3 +21,4 @@ export interface AppliedTaskAgentRequest {
21
21
  * handle. Child authorization and HITL ride their own task envelope arms.
22
22
  */
23
23
  export declare function applyTaskAgentRequest(delivery: AgentRequestDelivery, ctx: TaskAgentRequestContext): Promise<AppliedTaskAgentRequest>;
24
+ export {};
@@ -1,5 +1,8 @@
1
+ import type { SessionAuthContext } from "#channel/types.js";
1
2
  import type { InputResponse } from "#shared/input.js";
3
+ import type { ToolInputResponseResponder } from "#tools/definition.js";
4
+ export declare function toToolInputResponseResponder(auth: SessionAuthContext | null | undefined): ToolInputResponseResponder | undefined;
2
5
  /** Resumed with the bare response, not a session-inbox delivery, so the body can race the hook. */
3
- export declare function resumeWorkflowToolRunAnswers(answerToken: string, responses: readonly InputResponse[] | undefined): Promise<void>;
6
+ export declare function resumeWorkflowToolRunAnswers(answerToken: string, responses: readonly InputResponse[] | undefined, responder?: ToolInputResponseResponder): Promise<void>;
4
7
  /** Resolves a dismissible `ctx.ask()` request the user moved past without answering. */
5
8
  export declare function resumeWorkflowToolRunDismissal(answerToken: string): Promise<void>;
@@ -1 +1 @@
1
- import{resumeHook}from"#internal/workflow/runtime.js";async function resumeWorkflowToolRunAnswers(e,t){for(let n of t??[]){let t={optionId:n.optionId,status:`answered`,text:n.text};await resumeHook(e,t)}}async function resumeWorkflowToolRunDismissal(e){await resumeHook(e,{status:`dismissed`})}export{resumeWorkflowToolRunAnswers,resumeWorkflowToolRunDismissal};
1
+ import{resumeHook}from"#internal/workflow/runtime.js";function toToolInputResponseResponder(e){return e==null?void 0:{authenticator:e.authenticator,principalId:e.principalId,principalType:e.principalType}}async function resumeWorkflowToolRunAnswers(e,t,n){for(let r of t??[]){let t={optionId:r.optionId,status:`answered`,text:r.text,...n===void 0?{}:{responder:n}};await resumeHook(e,t)}}async function resumeWorkflowToolRunDismissal(e){await resumeHook(e,{status:`dismissed`})}export{resumeWorkflowToolRunAnswers,resumeWorkflowToolRunDismissal,toToolInputResponseResponder};
@@ -1,7 +1,7 @@
1
1
  import type { HarnessToolDefinition } from "#harness/execute-tool.js";
2
2
  import type { PreparedRuntimeTool } from "#runtime/sessions/turn.js";
3
3
  import { parseJsonObject, type JsonValue } from "#shared/json.js";
4
- export interface WorkflowToolHarnessDefinitionInput {
4
+ interface WorkflowToolHarnessDefinitionInput {
5
5
  readonly definition: HarnessToolDefinition;
6
6
  readonly executeInput?: (input: unknown) => JsonValue;
7
7
  /** Selected agent definition's runtime graph ID; absent for authored workflow tools. */
@@ -10,9 +10,5 @@ export interface WorkflowToolHarnessDefinitionInput {
10
10
  }
11
11
  export declare function createWorkflowToolHarnessDefinition(input: WorkflowToolHarnessDefinitionInput): HarnessToolDefinition;
12
12
  export declare function createPreparedWorkflowToolHarnessDefinition(tool: PreparedRuntimeTool): HarnessToolDefinition;
13
- /** Returns a task receipt after the background scope starts the owning run. */
14
- export declare function createWorkflowToolBackgroundExecute(input: {
15
- readonly toolName: string;
16
- readonly workflowId: string;
17
- }): NonNullable<HarnessToolDefinition["execute"]>;
18
13
  export declare function parseWorkflowToolInput(toolInput: unknown, toolName: string): ReturnType<typeof parseJsonObject>;
14
+ export {};