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
@@ -61,6 +61,7 @@ helpers documented in [Session context](./session-context):
61
61
  interface HookContext extends SessionContext {
62
62
  readonly agent: { readonly name: string; readonly nodeId?: string };
63
63
  readonly channel: { readonly kind?: string; readonly continuationToken?: string };
64
+ cancel(): void;
64
65
  }
65
66
  ```
66
67
 
@@ -181,9 +182,40 @@ Hooks always run after the event is durably recorded, so if a hook throws, the s
181
182
 
182
183
  ## What happens when a hook throws
183
184
 
184
- A thrown handler during a model turn propagates through turn execution and surfaces as `turn.failed`. This includes handlers for `turn.started` and the first `step.started` of a model call: the failed turn ends with `session.waiting`, and the next message can start another turn. If a hook subscribed to a failure-cascade event also throws, it escalates to `session.failed`. For belt-and-suspenders semantics inside a hook, wrap the body in `try`/`catch`. eve treats a thrown hook as a real failure.
185
+ eve logs a thrown or rejected handler with the hook slug, subscription, event type, event ID, and session ID, then runs the remaining subscribers in order. The current turn, subagent notification, and session continue. This applies to every stream-event hook, including `turn.started`, `step.started`, and failure events. Throwing from a hook does not reject work or veto a turn. To stop the running turn, call [`ctx.cancel()`](#cancel-the-running-turn-from-a-hook).
185
186
 
186
- For `subagent.called`, `subagent.completed`, and events proxied from a child, a thrown handler fails the publishing step and follows the workflow runtime's step retry policy. A retry can publish the event again before rerunning its hooks. Parent execution waits for the publishing step to finish or exhaust its retries. Exhausting retries fails the session.
187
+ A hook failure does not trigger a retry. State changes and external side effects made before the exception are not rolled back. If a side effect needs retries or compensation, handle that inside the hook. Runtime failures outside the authored handler, such as failures setting up context or persisting state, still propagate. If persisting state after a subagent notification fails, the workflow runtime retries the notification step, which can publish the event again.
188
+
189
+ ## Cancel the running turn from a hook
190
+
191
+ Call `ctx.cancel()` when a hook finds that the turn cannot proceed. For example, a `turn.started` hook that cannot load the caller's credentials can stop the turn before the model runs, instead of letting every tool call fail:
192
+
193
+ ```ts title="agent/hooks/require-credentials.ts"
194
+ import { defineHook } from "eve/hooks";
195
+ import { loadWorkspaceCredentials } from "../lib/credentials";
196
+
197
+ export default defineHook({
198
+ events: {
199
+ async "turn.started"(_event, ctx) {
200
+ try {
201
+ await loadWorkspaceCredentials(ctx.session.auth.current);
202
+ } catch (error) {
203
+ console.warn("cancelling turn: workspace credentials unavailable", {
204
+ error,
205
+ sessionId: ctx.session.id,
206
+ });
207
+ ctx.cancel();
208
+ }
209
+ },
210
+ },
211
+ });
212
+ ```
213
+
214
+ The remaining subscribers for the event still run. Then eve cancels the turn the same way [`session.cancel()`](./client/streaming) does: in-flight model and tool work is aborted, delegated child turns are cancelled, and the turn ends with `turn.cancelled` followed by `session.waiting`. No failure event is emitted. A cancel from `turn.started` or `step.started` takes effect before that model call. In a conversation, the next message starts a new turn. A delegated task reports the cancellation to its caller.
215
+
216
+ `ctx.cancel()` returns `void` rather than a promise. The turn stops after the hook returns, so there is nothing to await. Call it before the handler's promise settles: eve ignores a call from work the handler does not await and logs a warning.
217
+
218
+ `ctx.cancel()` only stops a running turn. eve logs a warning and ignores the call on `step.failed`, `turn.completed`, `turn.failed`, `turn.cancelled`, `session.waiting`, `session.completed`, `session.failed`, `context.cleared`, and `subagent.*` events, and during clear or compact requests.
187
219
 
188
220
  ## Subagent isolation
189
221
 
@@ -19,7 +19,7 @@ eve add memory/file
19
19
 
20
20
  If an item is not found, `eve add` searches the available catalogs and prints close matches without installing anything.
21
21
 
22
- Web Chat installs a shared Next.js application at `apps/web` for either a standalone agent or a selected member of an agent workspace. Choose **Vercel services** (recommended) to deploy Web Chat and agents as separate services, or **Next.js** to serve Web Chat and route agent requests through one Next.js app. Existing authored Next.js or Vercel configuration is preserved, and eve stops with manual composition guidance instead of overwriting it. See [Project Structure](./concepts/project-structure) for browser-app placement and [Next.js](./guides/frontend/nextjs) for Next.js-owned integration.
22
+ Web Chat installs a shared Next.js application at `apps/web` for either a standalone agent or a selected member of an agent workspace. Choose **Vercel services** (recommended) to deploy Web Chat and agents as separate services, or **Next.js** to serve Web Chat and route agent requests through one Next.js app. Vercel services run locally without a linked Vercel project; link one when you are ready to deploy. Existing authored Next.js or Vercel configuration is preserved, and eve stops with manual composition guidance instead of overwriting it. See [Project Structure](./concepts/project-structure) for browser-app placement and [Next.js](./guides/frontend/nextjs) for Next.js-owned integration.
23
23
 
24
24
  If you do not know an item name yet, run `eve add` without an argument. Its help output shows how to search the registry with `eve registry search <query>`.
25
25
 
@@ -208,26 +208,29 @@ eve dev [options]
208
208
 
209
209
  Starts a local development server and terminal UI. To connect the UI to an existing agent, use `eve remote connect --url <url>`.
210
210
 
211
- | Flag | Type | Default | Description |
212
- | ----------------------------------- | ------ | ------------------ | ------------------------------------------- |
213
- | `--host <host>` | string | all interfaces | Host interface to bind |
214
- | `--port <port>` | number | `$PORT`, then 2000 | Port to listen on |
215
- | `--no-ui` | flag | UI on | Start the server without an interactive UI |
216
- | `--no-default-extensions` | flag | extensions on | Do not mount bundled development extensions |
217
- | `--name <name>` | string | app folder name | Title shown in the terminal UI |
218
- | `--input <text>` | string | none | Pre-fill the prompt input |
219
- | `--tools <mode>` | enum | `auto-collapsed` | Tool-call rendering |
220
- | `--reasoning <mode>` | enum | `full` | Reasoning rendering |
221
- | `--subagents <mode>` | enum | `auto-collapsed` | Subagent-section rendering |
222
- | `--connection-auth <mode>` | enum | `full` | Connection-authorization rendering |
223
- | `--assistant-response-stats <mode>` | enum | `tokensPerSecond` | Assistant header statistic |
224
- | `--context-size <tokens>` | number | none | Model context window size |
225
- | `--logs <mode>` | enum | `stderr` | Server and agent logs to show |
211
+ | Flag | Type | Default | Description |
212
+ | ----------------------------------- | ------ | ------------------ | --------------------------------------------------------------- |
213
+ | `--host <host>` | string | all interfaces | Host interface to bind |
214
+ | `--port <port>` | number | `$PORT`, then 2000 | Port to listen on |
215
+ | `--no-ui` | flag | UI on | Start the server without an interactive UI |
216
+ | `--resume` | flag | off | Attempt recovery of retained runs from previous dev invocations |
217
+ | `--no-default-extensions` | flag | extensions on | Do not mount bundled development extensions |
218
+ | `--name <name>` | string | app folder name | Title shown in the terminal UI |
219
+ | `--input <text>` | string | none | Pre-fill the prompt input |
220
+ | `--tools <mode>` | enum | `auto-collapsed` | Tool-call rendering |
221
+ | `--reasoning <mode>` | enum | `full` | Reasoning rendering |
222
+ | `--subagents <mode>` | enum | `auto-collapsed` | Subagent-section rendering |
223
+ | `--connection-auth <mode>` | enum | `full` | Connection-authorization rendering |
224
+ | `--assistant-response-stats <mode>` | enum | `tokensPerSecond` | Assistant header statistic |
225
+ | `--context-size <tokens>` | number | none | Model context window size |
226
+ | `--logs <mode>` | enum | `stderr` | Server and agent logs to show |
226
227
 
227
228
  Local development mounts bundled development extensions without adding files to your project. Pass `--no-default-extensions` to disable them. See [Self-Modification](../guides/self-modification) for details.
228
229
 
229
230
  A fresh `eve init` opens the TUI and reuses an available model connection or opens `/login`. No Vercel project, channels, integrations, or review step is required before chat. Use `/model` to change models and settings, and `/add` to install an addition. Other `--input` text stays editable in the prompt. See [Terminal UI](../guides/dev-tui) for credential precedence and login options.
230
231
 
232
+ ### Local development lifecycle
233
+
231
234
  Local dev records the last ready URL per resolved app root in `.eve/dev-server-state.v1.json`. A second interactive `eve dev` reconnects only when that URL is loopback and healthy; each terminal UI creates a fresh client session while sharing the server process. A stale or malformed record is replaced when eve starts a new server. Passing `--host`, `--port`, or a `PORT` environment value skips reconnection and reports a healthy recorded server instead.
232
235
 
233
236
  Local dev keeps immutable runtime generations under `.eve/dev-runtime/snapshots/` so in-flight turns hold a consistent code revision while new turns pick up rebuilds. Each generation contains the compiled authored module graph and runtime resources rather than a recursive copy of the app or workspace. The terminal REPL keeps its logical session across successful rebuilds, so the next turn continues the conversation on the latest generation; `/new` terminally retires that session before clearing the transcript, and the next prompt starts a fresh session with a new session-scoped sandbox on first sandbox use. After a generation is superseded, `eve dev` retains it for at least 30 minutes and also retains the five most recently superseded generations, regardless of the configured Workflow World. The active generation is never pruned. Old runtime snapshots and local sandbox templates are pruned in the background. For manual cleanup, stop `eve dev` before deleting `.eve/dev-runtime/snapshots/` or `.eve/sandbox-cache/local/templates/`. A turn that remains unfinished beyond the automatic retention window can no longer resume after its generation is pruned.
@@ -236,6 +239,24 @@ Local development records traces under `.eve/traces/` by default and bounds that
236
239
 
237
240
  `eve acp` reserves stdin and stdout for newline-delimited JSON-RPC and sends diagnostics to stderr. Without a URL, it supervises an isolated local development server. With a URL, it bridges ACP to that server's existing eve HTTP API. See [Agent Client Protocol (ACP)](../protocols/acp) for client configuration and capability limits.
238
241
 
242
+ ### Local workflow recovery
243
+
244
+ With the built-in local Workflow World, a new `eve dev` server leaves previous invocations' runs dormant by default, including deliveries triggered by timers or hooks. A new message or control request addressed to a dormant conversation fails instead of being accepted without a response; the HTTP channel reports its usual request failure. Start a new conversation, or restart `eve dev` with `--resume` to attempt recovery. Already-open event streams are not changed by this request guard. Source-watcher rebuilds and worker restarts within the same server retain current runs' eligibility.
245
+
246
+ Pass `eve dev --resume` to attempt recovery of unfinished runs from previous invocations. Recovery requires a retained snapshot with readable generation metadata. Snapshots from older eve versions with a valid `runtimeAppRoot` remain eligible. Changes to the eve framework or authored workflow sources do not prevent the attempt, but replay can fail and leave the run terminally failed after executing some work. Use `--resume` only when you want to try continuing those previous runs.
247
+
248
+ Runs with malformed generation metadata remain stored and dormant for that server invocation, including later timer and hook deliveries. Startup with `--resume` reports why recovery was skipped without blocking other eligible runs. Restore malformed snapshot metadata from a backup or start a new session.
249
+
250
+ Recovery eligibility is decided before startup queue delivery begins. Hot reload does not recheck admitted runs against the latest workflow sources, so follow-up turns, cancellation, and `/new` retain their existing behavior. Changing an authored workflow body while it is running can likewise cause replay failure.
251
+
252
+ With the built-in local Workflow World, `eve dev` cancels unfinished runs whose runtime snapshots are missing, at startup and after snapshot pruning. This includes waiting conversations and session timeout workflows. Cancellation records the reason in the run history without a terminal warning; normal run-data retention still applies. Stopping `eve dev` does not cancel runs whose snapshots remain available, but recovering them on the next start requires `--resume`.
253
+
254
+ Recovery limits:
255
+
256
+ - Custom Workflow Worlds do not use this cleanup and recovery policy; `eve dev --resume` rejects them.
257
+ - `eve dev --resume` refuses to attach to an already running local server. The flag requires starting a server.
258
+ - `eve dev --resume` recovers workflows, not the terminal transcript or a particular TUI conversation.
259
+
239
260
  ## `eve remote`
240
261
 
241
262
  Use `eve remote` only with an explicit existing agent URL:
@@ -169,6 +169,8 @@ export default askQuestion();
169
169
 
170
170
  `ask_question` is an ordinary [workflow tool](/docs/tools/workflows) built on `ctx.ask()`. Write your own workflow tool with `ctx.ask()` when you need a different schema or want to act on the answer in the same call. Without any asking tool, the model asks in its reply text and the user's next message carries the answer.
171
171
 
172
+ In a custom workflow tool, an answered `ctx.ask()` returns the authenticated responder's `authenticator`, `principalId`, and `principalType` when that identity is available. It does not include channel attributes. `ctx.session.auth.current` remains the run's auth snapshot; use the response's `responder` to identify who answered.
173
+
172
174
  ## How pause and resume works
173
175
 
174
176
  Approvals and questions share one protocol:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.67.1",
3
+ "version": "0.68.0",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -368,6 +368,24 @@
368
368
  "import": "./dist/src/extensions/code/extension/lib/prwatch.js",
369
369
  "default": "./dist/src/extensions/code/extension/lib/prwatch.js"
370
370
  },
371
+ "./computer-use": {
372
+ "eve-source": "./dist/src/computer-use/extension/extension.js",
373
+ "types": "./dist/src/computer-use/extension/extension.d.ts",
374
+ "import": "./dist/src/computer-use/extension/extension.js",
375
+ "default": "./dist/src/computer-use/extension/extension.js"
376
+ },
377
+ "./computer-use/tools": {
378
+ "eve-source": "./dist/src/computer-use/tools.js",
379
+ "types": "./dist/src/computer-use/tools.d.ts",
380
+ "import": "./dist/src/computer-use/tools.js",
381
+ "default": "./dist/src/computer-use/tools.js"
382
+ },
383
+ "./computer-use/sandbox": {
384
+ "eve-source": "./dist/src/computer-use/extension/lib/sandbox.js",
385
+ "types": "./dist/src/computer-use/extension/lib/sandbox.d.ts",
386
+ "import": "./dist/src/computer-use/extension/lib/sandbox.js",
387
+ "default": "./dist/src/computer-use/extension/lib/sandbox.js"
388
+ },
371
389
  "./extension": {
372
390
  "types": "./dist/src/public/extension/index.d.ts",
373
391
  "import": "./dist/src/public/extension/index.js",
@@ -523,12 +541,12 @@
523
541
  "@vercel/otel": "2.1.3",
524
542
  "@vercel/sandbox": "3.3.0",
525
543
  "@vercel/sdk": "1.28.8",
526
- "@workflow/core": "5.0.0-beta.56",
527
- "@workflow/errors": "5.0.0-beta.23",
544
+ "@workflow/core": "5.0.0-beta.57",
545
+ "@workflow/errors": "5.0.0-beta.24",
528
546
  "@workflow/serde": "5.0.0-beta.2",
529
- "@workflow/world": "5.0.0-beta.38",
530
- "@workflow/world-local": "5.0.0-beta.47",
531
- "@workflow/world-vercel": "5.0.0-beta.51",
547
+ "@workflow/world": "5.0.0-beta.39",
548
+ "@workflow/world-local": "5.0.0-beta.48",
549
+ "@workflow/world-vercel": "5.0.0-beta.52",
532
550
  "ai": "^7.0.105",
533
551
  "chat": "4.41.0",
534
552
  "chokidar": "5.0.0",
@@ -553,8 +571,8 @@
553
571
  "shadcn": "4.18.0",
554
572
  "svelte": "^5.0.0",
555
573
  "turndown": "7.2.4",
556
- "vite": "^8.1.5",
557
- "vitest": "4.1.10",
574
+ "vite": "^8.3.1",
575
+ "vitest": "5.0.2",
558
576
  "vue": "^3.5.0",
559
577
  "zod": "4.5.4",
560
578
  "zod-validation-error": "5.0.0"
@@ -598,6 +616,9 @@
598
616
  },
599
617
  "./extensions/code": {
600
618
  "dist": "./dist/src/extensions/code/extension"
619
+ },
620
+ "./computer-use": {
621
+ "dist": "./dist/src/computer-use/extension"
601
622
  }
602
623
  }
603
624
  },
@@ -610,6 +631,7 @@
610
631
  "check:bin-runtime-dependencies": "node ./scripts/check-bin-runtime-dependencies.mjs",
611
632
  "dev": "pnpm run build:compiled && node ./scripts/copy-runtime-assets.mjs && tsc -p tsconfig.dev.json --watch --preserveWatchOutput",
612
633
  "test": "pnpm run test:unit && pnpm run test:integration",
634
+ "test:framework-fixtures": "pnpm run build:compiled && vitest run --config vitest.framework-fixtures.config.ts",
613
635
  "test:integration": "pnpm run build:js && vitest run --config vitest.integration.config.ts",
614
636
  "test:scenario": "pnpm run build:compiled && vitest run --config vitest.scenario.config.ts",
615
637
  "test:unit": "pnpm run build:compiled && vitest run --config vitest.unit.config.ts",
@@ -617,7 +639,6 @@
617
639
  "typecheck": "pnpm run check:web-template && pnpm run build:compiled && tsc -p tsconfig.json --noEmit",
618
640
  "generate:web-template": "node src/setup/build.ts --write",
619
641
  "check:web-template": "node src/setup/build.ts --check",
620
- "test:tui": "pnpm run build:js && tsc -p tsconfig.tui.json --noEmit && node test/tui-client/run-all.mjs",
621
- "test:vercel": "vitest run --config vitest.vercel.config.ts"
642
+ "test:tui": "pnpm run build:js && tsc -p tsconfig.tui.json --noEmit && node test/tui-client/run-all.mjs"
622
643
  }
623
644
  }
@@ -1,21 +0,0 @@
1
- import type { ChannelKind } from "#setup/scaffold/index.js";
2
- import type { DisabledChannelReasons } from "#setup/cli/index.js";
3
- /**
4
- * Existing authored registrations that affect the scaffolded channel picker
5
- * or would conflict with a generated channel module.
6
- */
7
- export interface ExistingChannelRegistrations {
8
- readonly disabledChannelReasons: DisabledChannelReasons;
9
- readonly webRouteOwners: readonly string[];
10
- readonly slackOwners: readonly string[];
11
- }
12
- /**
13
- * Inspects compiled authored channels so custom filenames still disable the
14
- * scaffold option for the channel behavior they register.
15
- */
16
- export declare function inspectExistingChannelRegistrations(projectRoot: string): Promise<ExistingChannelRegistrations>;
17
- /**
18
- * Rejects scaffolding when another authored module already owns behavior
19
- * emitted by the generated channel module.
20
- */
21
- export declare function assertCanAddSelectedChannels(selectedChannels: readonly ChannelKind[], registrations: ExistingChannelRegistrations): void;
@@ -1 +0,0 @@
1
- import{EVE_SESSION_ROUTE_PATH}from"#protocol/routes.js";import{join}from"node:path";import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{createCompiledBindingNamespaceLoader}from"#compiler/load-binding-namespace.js";import{discoverAgent}from"#discover/discover-agent.js";const SCAFFOLDED_WEB_CHANNEL_LOGICAL_PATH=`channels/eve.ts`;async function inspectExistingChannelRegistrations(e){let t=join(e,`agent`),{manifest:n}=await discoverAgent({agentRoot:t,appRoot:e}),r=new Set,i=new Set;for(let e of n.channels){let n={backing:{externalDependencies:[],kind:`filesystem`,sourcePath:join(t,e.logicalPath)},logicalPath:e.logicalPath,owner:{kind:`application`}},a=await compileChannelDefinition(t,e,{binding:n,loadNamespace:createCompiledBindingNamespaceLoader({bindings:{[e.sourceId]:n},registries:[]})});if(a.kind===`channel`)for(let t of a.definitions)t.kind===`channel`&&(t.method===`POST`&&t.urlPath===EVE_SESSION_ROUTE_PATH&&r.add(e.logicalPath),t.adapterKind===`slack`&&i.add(e.logicalPath))}let a={};return[...r].some(e=>e!==SCAFFOLDED_WEB_CHANNEL_LOGICAL_PATH)&&(a.web=`POST ${EVE_SESSION_ROUTE_PATH} already registered`),i.size>0&&(a.slack=`Slack channel already registered`),{disabledChannelReasons:a,webRouteOwners:[...r],slackOwners:[...i]}}function assertCanAddSelectedChannels(e,t){if(e.includes(`web`)){let e=t.webRouteOwners.find(e=>e!==SCAFFOLDED_WEB_CHANNEL_LOGICAL_PATH);if(e!==void 0)throw Error(`Cannot scaffold Web Chat because agent/${e} already defines POST ${EVE_SESSION_ROUTE_PATH}. Web Chat scaffolds the same eve session routes.`)}if(e.includes(`slack`)){let e=t.slackOwners.find(e=>e!==`channels/slack.ts`);if(e!==void 0)throw Error(`Cannot scaffold Slack because agent/${e} already defines a Slack channel. Slack scaffolding would register the channel again.`)}}export{assertCanAddSelectedChannels,inspectExistingChannelRegistrations};
@@ -1,16 +0,0 @@
1
- import type { RegistrySearchItem } from "#compiled/shadcn-registry/index.js";
2
- export declare function normalizeRegistryText(value: string): string;
3
- export declare function printRegistrySearchResults(logger: {
4
- log(message: string): void;
5
- }, result: {
6
- items: RegistrySearchItem[];
7
- }, options: {
8
- json?: boolean;
9
- query: string | undefined;
10
- sections: readonly {
11
- label: string;
12
- items: RegistrySearchItem[];
13
- total: number;
14
- address(item: RegistrySearchItem): string;
15
- }[];
16
- }): void;
@@ -1,6 +0,0 @@
1
- import{createCliTheme,sanitizeForTerminal}from"#cli/ui/output.js";import{clipVisible,wrapVisibleLine}from"#cli/ui/terminal-text.js";function normalizeRegistryText(e){return sanitizeForTerminal(e).replaceAll(`\\"`,`"`).replaceAll(`\\'`,`'`).replaceAll(/\s+/gu,` `).trim()}function registryDescriptionSummary(e){let t=normalizeRegistryText(e);return t.match(/^.*?[.!?](?=\s|$)/u)?.[0]??t}function renderSearchItem(e,t,n,r){let i=Math.max(1,n-4),a=wrapVisibleLine(normalizeRegistryText(t),i),o=normalizeRegistryText(e.name),s=o.split(`/`).at(-1)??o,c=[` ${r.label(s)}`,...a.map(e=>` ${e}`)];if(!e.description)return c.join(`
2
- `);let l=registryDescriptionSummary(e.description);if(l.length===0)return c.join(`
3
- `);let u=wrapVisibleLine(l,i),d=u.length<=2?u:[u[0],`${clipVisible(u[1],Math.max(1,i-1)).trimEnd()}…`];return c.push(...d.map(e=>r.muted(` ${e}`))),c.join(`
4
- `)}function printRegistrySearchResults(e,t,n){if(n.json){e.log(JSON.stringify(t,null,2));return}if(t.items.length===0){let t=n.query&&normalizeRegistryText(n.query);e.log(t?`No registry items match "${t}".`:`No registry items found.`);return}let r=createCliTheme(),i=Math.max(20,process.stdout.columns??80),a=n.sections.flatMap(e=>{if(e.items.length===0)return[];let t=`${e.total} result${e.total===1?``:`s`}`,n=e.items.length<e.total?`showing ${e.items.length} of ${t}`:t;return[[`${r.label(e.label)} ${r.muted(`(${n})`)}`,...e.items.map(t=>renderSearchItem(t,e.address(t),i,r))].join(`
5
- `)]});e.log(a.join(`
6
- `))}export{normalizeRegistryText,printRegistrySearchResults};
@@ -1,3 +0,0 @@
1
- import{s as e,t}from"./rolldown-runtime-B_knIduE.js";function n(e,t,n){return n===1?e:t}var r=t(((e,t)=>{var n=1e3,r=n*60,i=r*60,a=i*24,o=a*7,s=a*365.25;t.exports=function(e,t){t||={};var n=typeof e;if(n===`string`&&e.length>0)return c(e);if(n===`number`&&isFinite(e))return t.long?u(e):l(e);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(e))};function c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var c=parseFloat(t[1]);switch((t[2]||`ms`).toLowerCase()){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return c*s;case`weeks`:case`week`:case`w`:return c*o;case`days`:case`day`:case`d`:return c*a;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return c*i;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return c*r;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return c*n;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return c;default:return}}}}function l(e){var t=Math.abs(e);return t>=a?Math.round(e/a)+`d`:t>=i?Math.round(e/i)+`h`:t>=r?Math.round(e/r)+`m`:t>=n?Math.round(e/n)+`s`:e+`ms`}function u(e){var t=Math.abs(e);return t>=a?d(e,t,a,`day`):t>=i?d(e,t,i,`hour`):t>=r?d(e,t,r,`minute`):t>=n?d(e,t,n,`second`):e+` ms`}function d(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+` `+r+(i?`s`:``)}})),i=e(r(),1);function a(e){if(typeof e==`string`){let t=(0,i.default)(e);if(typeof t!=`number`||t<0)throw Error(`Invalid duration: "${e}". Expected a valid duration string like "1s", "1m", "1h", etc.`);return new Date(Date.now()+t)}if(typeof e==`number`){if(e<0||!Number.isFinite(e))throw Error(`Invalid duration: ${e}. Expected a non-negative finite number of milliseconds.`);return new Date(Date.now()+e)}if(e instanceof Date||e&&typeof e==`object`&&typeof e.getTime==`function`)return e instanceof Date?e:new Date(e.getTime());throw Error(`Invalid duration parameter. Expected a duration string, number (milliseconds), or Date object.`)}const o={USER_ERROR:`USER_ERROR`,RUNTIME_ERROR:`RUNTIME_ERROR`,CORRUPTED_EVENT_LOG:`CORRUPTED_EVENT_LOG`,REPLAY_DIVERGENCE:`REPLAY_DIVERGENCE`,MAX_DELIVERIES_EXCEEDED:`MAX_DELIVERIES_EXCEEDED`,MAX_EVENTS_EXCEEDED:`MAX_EVENTS_EXCEEDED`,REPLAY_TIMEOUT:`REPLAY_TIMEOUT`,STREAM_ERROR:`STREAM_ERROR`,WORLD_CONTRACT_ERROR:`WORLD_CONTRACT_ERROR`,DEPLOYMENT_MISMATCH:`DEPLOYMENT_MISMATCH`};function s(e){return typeof e==`object`&&!!e&&`name`in e&&`message`in e}function c(e,t){if(t.length===0)return e;let n=[e];return t.forEach((e,r)=>{let i=r===t.length-1,a=i?`╰▶ `:`├▶ `,o=i?` `:`│ `;`${e.label}: ${e.value}`.split(`
2
- `).forEach((e,t)=>{n.push(`${t===0?a:o}${e}`)})}),n.join(`
3
- `)}function l(e,t){let n=[];return e&&n.push({label:`hint`,value:e}),t&&n.push({label:`docs`,value:`https://workflow-sdk.dev/err/${t}`}),n}const u={NODE_JS_MODULE_IN_WORKFLOW:`node-js-module-in-workflow`,START_INVALID_WORKFLOW_FUNCTION:`start-invalid-workflow-function`,SERIALIZATION_FAILED:`serialization-failed`,WEBHOOK_INVALID_RESPOND_WITH_VALUE:`webhook-invalid-respond-with-value`,WEBHOOK_RESPONSE_NOT_SENT:`webhook-response-not-sent`,FETCH_IN_WORKFLOW_FUNCTION:`fetch-in-workflow`,TIMEOUT_FUNCTIONS_IN_WORKFLOW:`timeout-in-workflow`,HOOK_CONFLICT:`hook-conflict`,HOOK_FORCE_CLAIMED:`hook-force-claimed`,CORRUPTED_EVENT_LOG:`corrupted-event-log`,REPLAY_DIVERGENCE:`replay-divergence`,STEP_NOT_REGISTERED:`step-not-registered`,WORKFLOW_NOT_REGISTERED:`workflow-not-registered`,RUNTIME_DECRYPTION_FAILED:`runtime-decryption-failed`,DEPLOYMENT_MISMATCH:`deployment-mismatch`};var d=class extends Error{cause;constructor(e,t){let n=c(e,l(void 0,t?.slug));super(n,{cause:t?.cause}),t?.cause!==void 0&&(this.cause=t.cause),t?.cause instanceof Error&&(this.stack=`${this.stack}\nCaused by: ${t.cause.stack}`)}static is(e){return s(e)&&e.name===`WorkflowError`}},f=class extends d{status;code;url;retryAfter;field;constructor(e,t){super(e,{cause:t?.cause}),this.name=`WorkflowWorldError`,this.status=t?.status,this.code=t?.code,this.url=t?.url,this.retryAfter=t?.retryAfter,this.field=t?.field}static is(e){return s(e)&&e.name===`WorkflowWorldError`}},p=class extends d{runId;errorCode;constructor(e,t,n={}){let r=t instanceof Error?t.message:typeof t==`string`?t:t&&typeof t==`object`&&`message`in t?String(t.message):`Unknown error`;super(`Workflow run "${e}" failed: ${r}`,{cause:t}),this.name=`WorkflowRunFailedError`,this.runId=e,n.errorCode!==void 0&&(this.errorCode=n.errorCode)}static is(e){return s(e)&&e.name===`WorkflowRunFailedError`}},m=class extends d{runId;status;constructor(e,t){super(`Workflow run "${e}" has not completed`,{}),this.name=`WorkflowRunNotCompletedError`,this.runId=e,this.status=t}static is(e){return s(e)&&e.name===`WorkflowRunNotCompletedError`}},h=class extends d{constructor(e,t){super(e,{...t}),this.name=`WorkflowRuntimeError`}static is(e){return s(e)&&e.name===`WorkflowRuntimeError`}},g=class extends h{constructor(e,t){super(e,{...t,slug:u.CORRUPTED_EVENT_LOG}),this.name=`CorruptedEventLogError`}static is(e){return s(e)&&e.name===`CorruptedEventLogError`}},_=class extends h{eventId;constructor(e,t){super(e,{...t,slug:u.REPLAY_DIVERGENCE}),this.name=`ReplayDivergenceError`,this.eventId=t.eventId}static is(e){return s(e)&&e.name===`ReplayDivergenceError`&&typeof e.eventId==`string`}},v=class extends d{eventCount;limit;constructor(e,t,n){super(`Workflow exceeded the maximum of ${t} events per run`,n),this.name=`MaxEventsExceededError`,this.eventCount=e,this.limit=t}static is(e){return s(e)&&e.name===`MaxEventsExceededError`}},y=class extends h{constructor(e,t){super(e,{cause:t?.cause,slug:u.RUNTIME_DECRYPTION_FAILED}),this.name=`RuntimeDecryptionError`,t?.context!==void 0&&(this.context=t.context)}static is(e){return s(e)&&e.name===`RuntimeDecryptionError`}},b=class extends d{hint;constructor(e,t){let n=c(e,l(t?.hint,void 0));super(n,{cause:t?.cause}),this.name=`WorkflowBuildError`,this.hint=t?.hint}static is(e){return s(e)&&e.name===`WorkflowBuildError`}},x=class extends d{hint;fatal=!0;constructor(e,t){let n=c(e,l(t?.hint,void 0));super(n,{cause:t?.cause}),this.name=`SerializationError`,this.hint=t?.hint}static is(e){return s(e)&&e.name===`SerializationError`}},S=class extends h{stepName;constructor(e){super(`Step "${e}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`,{slug:u.STEP_NOT_REGISTERED}),this.name=`StepNotRegisteredError`,this.stepName=e}static is(e){return s(e)&&e.name===`StepNotRegisteredError`}},C=class extends h{workflowName;constructor(e){super(`Workflow "${e}" is not registered in the current deployment. This usually means a run was started against a deployment that does not have this workflow, or there was a build/bundling issue.`,{slug:u.WORKFLOW_NOT_REGISTERED}),this.name=`WorkflowNotRegisteredError`,this.workflowName=e}static is(e){return s(e)&&e.name===`WorkflowNotRegisteredError`}},w=class extends h{runId;expectedDeploymentId;actualDeploymentId;recoveryAttempts;constructor(e,t,r,i){let a=i?.recoveryAttempts??0,o=a>0?` The runtime re-routed the message to "${t}" ${a} ${n(`time`,`times`,a)} and it kept arriving elsewhere, so the run was stopped to protect against code-skew errors.`:` The run was stopped to protect against code-skew errors.`;super(`Workflow run "${e}" is pinned to deployment "${t}", but was received by deployment "${r}".${o} Verify that the run's deployment is still available and that queue callbacks are routed to it.`,{slug:u.DEPLOYMENT_MISMATCH,cause:i?.cause}),this.name=`WorkflowDeploymentMismatchError`,this.runId=e,this.expectedDeploymentId=t,this.actualDeploymentId=r,this.recoveryAttempts=a}static is(e){return s(e)&&e.name===`WorkflowDeploymentMismatchError`}},T=class extends d{runId;constructor(e){super(`Workflow run "${e}" not found`,{}),this.name=`WorkflowRunNotFoundError`,this.runId=e}static is(e){return s(e)&&e.name===`WorkflowRunNotFoundError`}},E=class extends d{token;conflictingRunId;constructor(e,t){super(`Hook token "${e}" is already in use by another workflow${t?` (run "${t}")`:``}`,{slug:u.HOOK_CONFLICT}),this.name=`HookConflictError`,this.token=e,t!==void 0&&(this.conflictingRunId=t)}static is(e){return s(e)&&e.name===`HookConflictError`}},D=class extends d{token;claimedByRunId;claimedByHookId;constructor(e,t,n){super(`Hook token "${e}" was force-claimed by another workflow (run "${t}")`,{slug:u.HOOK_FORCE_CLAIMED}),this.name=`HookForceClaimedError`,this.token=e,this.claimedByRunId=t,n!==void 0&&(this.claimedByHookId=n)}static is(e){return s(e)&&e.name===`HookForceClaimedError`}},O=class extends d{token;constructor(e){super(`Hook not found`,{}),this.name=`HookNotFoundError`,this.token=e}static is(e){return s(e)&&e.name===`HookNotFoundError`}},k=class extends f{constructor(e){super(e),this.name=`EntityConflictError`}static is(e){return s(e)&&e.name===`EntityConflictError`}},A=class extends f{runId;runStatus;expiredAt;constructor(e,t,n,r){super(e,{status:410,code:`run-expired`}),this.runId=t,this.runStatus=n,this.expiredAt=r,this.name=`RunExpiredError`}static is(e){return s(e)&&e.name===`RunExpiredError`}},j=class extends f{constructor(e,t){super(e,{code:o.STREAM_ERROR,cause:t?.cause,url:t?.url,status:t?.status}),this.name=`StreamError`}static is(e){return s(e)&&e.name===`StreamError`}},M=class extends f{runId;streamId;expiredAt;constructor(e,t,n,r){super(e,{status:410,code:`stream-expired`}),this.runId=t,this.streamId=n,this.expiredAt=r,this.name=`StreamExpiredError`}static is(e){return s(e)&&e.name===`StreamExpiredError`}},N=class extends f{constructor(e,t){super(e,{retryAfter:t?.retryAfter}),this.name=`TooEarlyError`}static is(e){return s(e)&&e.name===`TooEarlyError`}},P=class extends f{retryAfter;constructor(e,t){super(e),this.name=`ThrottleError`,this.retryAfter=t?.retryAfter}static is(e){return s(e)&&e.name===`ThrottleError`}},F=class extends f{details;constructor(e,t){super(e,{status:412,retryAfter:t?.retryAfter}),this.name=`PreconditionFailedError`,this.details=t?.details}static is(e){return s(e)&&e.name===`PreconditionFailedError`}},I=class extends d{runId;constructor(e){super(`Workflow run "${e}" cancelled`,{}),this.name=`WorkflowRunCancelledError`,this.runId=e}static is(e){return s(e)&&e.name===`WorkflowRunCancelledError`}},L=class extends d{runSpecVersion;worldSpecVersion;constructor(e,t){super(`Run requires spec version ${e}, but world supports version ${t}. Please upgrade 'workflow' package.`),this.name=`RunNotSupportedError`,this.runSpecVersion=e,this.worldSpecVersion=t}static is(e){return s(e)&&e.name===`RunNotSupportedError`}},R=class extends Error{fatal=!0;constructor(e){super(e),this.name=`FatalError`}static is(e){return s(e)?e.name===`FatalError`||e.fatal===!0:!1}},z=class extends Error{retryAfter;constructor(e,t={}){super(e),this.name=`RetryableError`,this.retryAfter=t.retryAfter===void 0?new Date(Date.now()+1e3):a(t.retryAfter)}static is(e){return s(e)&&e.name===`RetryableError`}};const B="Your current vercel account does not have access to this resource. Use `vercel login` or `vercel switch` to ensure you are linked to the right account.",V=Symbol.for(`@workflow/errors//FatalError`),H=Symbol.for(`@workflow/errors//RetryableError`),U=Symbol.for(`@workflow/errors//HookConflictError`),W=Symbol.for(`@workflow/errors//HookForceClaimedError`),G=Symbol.for(`@workflow/errors//RuntimeDecryptionError`),K=Symbol.for(`@workflow/errors//StreamError`);typeof globalThis<`u`&&(Object.hasOwn(globalThis,V)||Object.defineProperty(globalThis,V,{value:R,writable:!1,enumerable:!1,configurable:!1}),Object.hasOwn(globalThis,H)||Object.defineProperty(globalThis,H,{value:z,writable:!1,enumerable:!1,configurable:!1}),Object.hasOwn(globalThis,U)||Object.defineProperty(globalThis,U,{value:E,writable:!1,enumerable:!1,configurable:!1}),Object.hasOwn(globalThis,W)||Object.defineProperty(globalThis,W,{value:D,writable:!1,enumerable:!1,configurable:!1}),Object.hasOwn(globalThis,G)||Object.defineProperty(globalThis,G,{value:y,writable:!1,enumerable:!1,configurable:!1}),Object.hasOwn(globalThis,K)||Object.defineProperty(globalThis,K,{value:j,writable:!1,enumerable:!1,configurable:!1}));export{h as A,w as C,p as D,I as E,n as F,o as M,a as N,m as O,r as P,b as S,C as T,j as _,E as a,N as b,v as c,z as d,A as f,S as g,x as h,R as i,f as j,T as k,F as l,y as m,u as n,D as o,L as p,k as r,O as s,g as t,_ as u,M as v,d as w,B as x,P as y};
@@ -1 +0,0 @@
1
- import{S as e,_ as t,it as n,u as r,ut as i,w as a}from"./dist-BQSf8Hax.js";import{B as o,G as s,Gn as c,H as l,Kn as u,L as d,On as f,R as p,V as m,Vn as h,Xt as g,Yt as _,an as ee,at as v,d as y,fn as b,n as x,ot as S,st as C,y as w,z as T}from"./logger-BCEj9caG.js";import{M as E,j as D,l as O}from"./dist-BfMqXLK3.js";const k=`5.0.0-beta.56`,te=/^[a-zA-Z0-9_\-./@()[\]]+$/;function ne(t,n){if(!te.test(t))throw Error(`Invalid workflow name "${t}": must only contain alphanumeric characters, underscores, hyphens, dots, forward slashes, at signs, parentheses, or square brackets`);return`${e(`workflow`,a(n))}${t}`}const re=i();function A(e){return`__health_check__${e}`}function ie(e){let n=t.safeParse(e);if(n.success)return n.data}function j(e){return`wrun_hc_${e}`}async function M(e,t){let n=await u(),r=A(e.correlationId),i;if(e.runId)try{let t=await n.getEncryptionKeyForRun?.(e.runId);t&&(i=h((await c(t)).publicKey))}catch(t){x.warn(`Health check could not derive a run public key; the caller will fall back to a key lookup`,{correlationId:e.correlationId,error:t instanceof Error?t.message:String(t)})}let a=JSON.stringify({healthy:!0,correlationId:e.correlationId,specVersion:t??8,workflowCoreVersion:k,hookResumeInputVersion:1,...i?{encryptionPublicKey:i}:{},timestamp:Date.now()}),o=j(e.correlationId);await n.streams.write(o,r,a),await n.streams.close(o,r)}function N(e,t){let n;return Promise.race([e,new Promise((e,r)=>{n=setTimeout(()=>r(Error(`Operation timed out after ${t}ms`)),t)})]).finally(()=>clearTimeout(n))}async function P(e,t){let n=[],r=!1,i=!1;for(;!r&&!i;){let a=e.read(),o=new Promise(e=>setTimeout(()=>{i=!0,e({done:!0,value:void 0})},t)),s=await Promise.race([a,o]);r=s.done,s.value&&n.push(s.value)}return{chunks:n,timedOut:i}}function F(e){if(e.length===0)return null;let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;let i=new TextDecoder().decode(n),a;try{a=JSON.parse(i)}catch{return i.length>0?{healthy:!0}:null}if(typeof a!=`object`||!a||!(`healthy`in a)||typeof a.healthy!=`boolean`)return null;let o=a,s={healthy:o.healthy};return typeof o.specVersion==`number`&&(s.specVersion=o.specVersion),typeof o.workflowCoreVersion==`string`&&(s.workflowCoreVersion=o.workflowCoreVersion),typeof o.encryptionPublicKey==`string`&&(s.encryptionPublicKey=o.encryptionPublicKey),typeof o.hookResumeInputVersion==`number`&&(s.hookResumeInputVersion=o.hookResumeInputVersion),s}async function I(t,n){let r=n?.timeout??3e4,i=t.createRunId?.()??re(),o=A(i),s=`${e(`workflow`,a(n?.namespace))}health_check`,c=Date.now();try{for(await t.queue(s,{__healthCheck:!0,correlationId:i,...n?.runId?{runId:n.runId}:{}},{specVersion:1,deploymentId:n?.deploymentId});Date.now()-c<r;)try{let e=r-(Date.now()-c),n=(await N(t.streams.get(j(i),o),e)).getReader(),{chunks:a,timedOut:s}=await P(n,500);if(s){try{n.cancel()}catch{}await new Promise(e=>setTimeout(e,100));continue}let l=F(a);if(l)return{...l,latencyMs:Date.now()-c};await new Promise(e=>setTimeout(e,100))}catch{await new Promise(e=>setTimeout(e,100))}return{healthy:!1,error:`Health check timed out after ${r}ms`}}catch(e){return{healthy:!1,error:e instanceof Error?e.message:String(e)}}}function L(e,t){return new D(`Event pagination ${t} for workflow run "${e}".`,{code:E.WORLD_CONTRACT_ERROR})}function R(e,t,n){if(t){if(n.has(t))throw L(e,`did not advance`);n.add(t)}}function z(e,t,n){if(t.length===0)return;let r=n??new Set(e.map(e=>e.eventId));for(let n of t)r.has(n.eventId)||(r.add(n.eventId),e.push(n))}function B(e,t){let n=e.length;for(;n>0;){let r=e[n-1];if(r.eventId===t.eventId)return;if(r.eventId<t.eventId)break;n--}e.splice(n,0,t)}function V(e,t,n,r){if(t){if(n===null)throw L(e,`returned more pages without a cursor`);if(r.has(n))throw L(e,`repeated a cursor`)}}function H(e,t,n){return t!==null&&!n&&D.is(e)&&e.status===400}async function U(e,t){let n=t!==void 0;return w(`workflow.replay.load`,async r=>{r?.setAttributes({...b(e),...ee(n?`events_list_incremental`:`events_list`)});let i=[],a=new Set,o=new Set,s=t??null,c=!0,l=0,d=!1,f=await u(),p=Date.now();for(;c;){let t=Date.now(),r=s;R(e,r,o);let u;try{u=await f.events.list({runId:e,pagination:{sortOrder:`asc`,cursor:r??void 0}})}catch(t){if(H(t,r,d)){x.warn(`Event cursor was rejected; retrying with a full event reload.`,{workflowRunId:e}),i.length=0,a.clear(),o.clear(),s=null,d=!0;continue}throw t}z(i,u.data,a),c=u.hasMore,V(e,c,u.cursor,o),s=u.cursor??s,l++,x.debug(`Loaded event page`,{workflowRunId:e,incremental:n,page:l,pageEvents:u.data.length,totalEvents:i.length,hasMore:c,pageMs:Date.now()-t})}return x.debug(`Event load complete`,{workflowRunId:e,incremental:n,totalEvents:i.length,pagesLoaded:l,totalMs:Date.now()-p}),r?.setAttributes({..._(i.length),...g(l)}),{events:i,cursor:s}})}function W(e,t){z(e.events,t.events),e.cursor=t.cursor??e.cursor}function G(){return process.env.WORKFLOW_SLOT_GAP_CHECK!==`0`}function K(e,t){let n=e.length;z(e,t);let r=e.length-n;return r>0&&e.sort((e,t)=>e.eventId<t.eventId?-1:+(e.eventId>t.eventId)),r}function ae(e,t){let n=t.events?.length??0;return n===0?{added:0,offered:0,truncated:!1}:t.hasMore===!0?{added:0,offered:n,truncated:!0}:{added:K(e,t.events??[]),offered:n,truncated:!1}}function q(e){let t;for(let n of e){let e=r(n.eventId);(t===void 0||e>t)&&(t=e)}return t}function J(e){let t=new Set,n=0;for(let i of e){let e=r(i.eventId);t.add(e),e>n&&(n=e)}if(n===0)return;let i=t.has(1)?1:2;if(t.size===n-i+1)return;let a,o=0;for(let e=i;e<=n;e++)t.has(e)||(a??=e,o++);if(a!==void 0)return{firstMissingSlot:a,missingCount:o,maxSlot:n}}const oe=3;async function se(e,t){let n=t,r=J(n.events);for(let t=0;r!==void 0&&t<3;t++)await new Promise(e=>setTimeout(e,25*2**t)),n=await U(e),r=J(n.events);return{log:n,gap:r}}function ce(e){let t=q(e);return t===void 0?{}:{eventCount:t}}function le(e,t){if(!O.is(e))return null;let n=e.details;if(typeof n!=`object`||!n)return null;let{events:r,cursor:i}=n;if(!Array.isArray(r)||r.length===0)return null;for(let e of r)if(typeof e!=`object`||!e||typeof e.eventId!=`string`||e.runId!==t)return null;return{events:r,cursor:typeof i==`string`?i:null}}const Y={"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`POST, OPTIONS, GET, HEAD`,"Access-Control-Allow-Headers":`Content-Type`};function X(e,t){return async n=>{let r=new URL(n.url);return r.searchParams.has(`__health`)?n.method===`OPTIONS`?new Response(null,{status:204,headers:Y}):new Response(JSON.stringify({healthy:!0,endpoint:r.pathname,specVersion:t??8,workflowCoreVersion:k}),{status:200,headers:{"Content-Type":`application/json`,...Y}}):await e(n)}}function Z(e,t){return e?.[n]??t}function ue(e){return{deploymentId:e.deploymentId,specVersion:e.specVersion??0,...e.startedAt?{startedAt:+e.startedAt}:{},rootRunId:Z(e.attributes,e.runId)}}function de(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function fe(e,t){return`${e}:${de(t)}`}async function Q(e,...t){let n=t[0];await w(`queue.publish`,{attributes:{...m(`vercel-queue`),...p(n),...o(`publish`),...l(`vercel-queue`),...C(`vercel-queue`),...S(`vqs`),...v(`publish`)},kind:await y(`PRODUCER`)},async n=>{let{messageId:r}=await e.queue(...t);r&&n?.setAttributes(T(r))})}async function pe(e,t,n){if(n.length===0)return;let r=e.queueBatch?.bind(e);if(!r){await Promise.all(n.map(n=>Q(e,t,n.message,n.opts)));return}await w(`queue.publish`,{attributes:{...m(`vercel-queue`),...p(t),...o(`publish`),...d(n.length),...l(`vercel-queue`),...C(`vercel-queue`),...S(`vqs`),...v(`publishBatch`)},kind:await y(`PRODUCER`)},async()=>{let e=await r(t,n);if(e.length!==n.length)throw Object.assign(Error(`Queue batch for ${t} returned ${e.length} result(s) for ${n.length} message(s)`),{retryable:!0});let i=e.filter(e=>e.error!==void 0);if(i.length===0)return;let a=i.some(e=>e.error!==void 0&&e.retryable),o=Error(`Failed to publish ${i.length} of ${n.length} queue message(s) to ${t}: ${i[0]?.error}`);throw Object.assign(o,{retryable:a}),o})}function me(e){if(e.requestedAt)try{return s(Date.now()-e.requestedAt.getTime())}catch{return}}async function $(e,t,n){let r=typeof t==`string`?await e.getEncryptionKeyForRun?.(t,n):await e.getEncryptionKeyForRun?.(t);return r?await f(r):void 0}function he(e,t){let n;return()=>(n||=$(e,t),n)}export{se as C,k as D,X as E,ue as S,fe as T,le as _,J as a,$ as b,M as c,G as d,U as f,ie as g,K as h,z as i,I as l,he as m,ae as n,me as o,q as p,W as r,ne as s,oe as t,B as u,Q as v,ce as w,Z as x,pe as y};
@@ -1,14 +0,0 @@
1
- import{mt as e}from"./dist-BQSf8Hax.js";import{A as t,m as n}from"./dist-BfMqXLK3.js";import{n as r,r as i}from"./global-BQnKzRXo.js";function a(e,t){if(typeof t!=`string`)return null;let[n,r,...i]=t.split(`//`);if(n!==e||!r||i.length===0)return null;let a=i.join(`//`),o=a.split(`/`).at(-1)??``,s=``;return s=r.startsWith(`./`)?r.split(`/`).at(-1)??``:(r.split(`@`).slice(0,-1).join(`@`)||r.split(`@`)[0])?.split(`/`).at(-1)??``,[`default`,`__default`].includes(o)&&s&&(o=s),{shortName:o,moduleSpecifier:r,functionName:a}}function o(e){return a(`workflow`,e)}function s(e){return a(`step`,e)}function c(e){return p(s(e),e)}function l(e){return p(o(e),e)}function u(e){return o(e)?.shortName??f(`workflow`,e)??e}function d(e){return s(e)?.shortName??f(`step`,e)??e}function f(e,t){if(!t.startsWith(`${e}--`))return null;let n=t.split(`--`).filter(Boolean),r=n.at(-1)?.split(`-`).filter(Boolean).at(-1)??``;if([`default`,`__default`].includes(r)){let t=n.at(-2)?.split(`-`).filter(Boolean).at(-1);t&&t!==e&&(r=t)}return r||null}function p(e,t){return e?`${e.shortName} (${e.moduleSpecifier})`:t}async function m(e,n=[`encrypt`,`decrypt`]){if(e.byteLength!==32)throw new t(`Encryption key must be exactly 32 bytes, got ${e.byteLength}`);return globalThis.crypto.subtle.importKey(`raw`,e,`AES-GCM`,!1,n)}async function h(e,t,r){let i=globalThis.crypto.getRandomValues(new Uint8Array(12)),a;try{a=await globalThis.crypto.subtle.encrypt({name:`AES-GCM`,iv:i,tagLength:128,...r?{additionalData:r}:{}},e,t)}catch(e){throw new n(`AES-256-GCM encryption failed: ${e instanceof Error?e.message:String(e)}`,{cause:e,context:{operation:`encrypt`,byteLength:t.byteLength}})}let o=new Uint8Array(12+a.byteLength);return o.set(i,0),o.set(new Uint8Array(a),12),o}async function g(e,t,r){if(t.byteLength<28)throw new n(`Encrypted data too short: expected at least 28 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let i=t.subarray(0,12),a=t.subarray(12),o;try{o=await globalThis.crypto.subtle.decrypt({name:`AES-GCM`,iv:i,tagLength:128,...r?{additionalData:r}:{}},e,a)}catch(e){let r=e instanceof Error?e.message:String(e);throw new n(`AES-256-GCM decryption failed: ${r}`,{cause:e,context:{operation:`decrypt`,byteLength:t.byteLength}})}return new Uint8Array(o)}function _(e){let n=e.specVersion;if(!(n!=null&&n>=6&&n<=8))throw new t(`This Workflow runtime supports Worlds with spec version 6 through 8, but the configured World declares spec version ${n??`none`}. Install a World package version compatible with the current Workflow runtime.`)}const v=Symbol.for(`@workflow/world//cache`),y=Symbol.for(`@workflow/world//cachePromise`),ee=Symbol.for(`@workflow/world//getWorldFn`);async function te(){let e=globalThis;if(e[v])return _(e[v]),e[v];if(e[y])return e[v]=await e[y],_(e[v]),e[v];let t=e[ee];if(t){let e=await t();return _(e),e}throw Error("Workflow world runtime was not initialized. Import from the host workflow entrypoints (`workflow`, `workflow/api`, or `workflow/runtime`) so @workflow/core/runtime/world-init can register getWorld before getWorldLazy() is used.")}const b=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]),x=new TextEncoder;function ne(e){if(e.byteLength!==32)throw new t(`Run key material must be exactly 32 bytes, got ${e.byteLength}`)}function re(e,n){if(e.byteLength!==32)throw new t(`${n} must be exactly 32 bytes, got ${e.byteLength}`)}async function S(e){ne(e);let t=await globalThis.crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),n=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:x.encode(`workflow/encp/x25519/v1`)},t,256),r=new Uint8Array(n);return{scalar:r,publicKey:await ie(r)}}async function ie(e){let n=await C(e,!0),r=await globalThis.crypto.subtle.exportKey(`jwk`,n);if(!r.x)throw new t(`X25519 JWK export did not include a public key component ("x")`);let i=se(r.x);if(i.byteLength!==32)throw new t(`X25519 JWK export produced a ${i.byteLength}-byte public key, expected 32`);return i}async function C(e,t){let n=new Uint8Array(b.length+e.byteLength);return n.set(b,0),n.set(e,b.length),globalThis.crypto.subtle.importKey(`pkcs8`,n,{name:`X25519`},t,[`deriveBits`])}function w(e){return globalThis.crypto.subtle.importKey(`raw`,e,{name:`X25519`},!0,[])}const T=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;function ae(e){let t=``;for(let n=0;n<e.length;n+=3){let r=e[n],i=n+1<e.length?e[n+1]:0,a=n+2<e.length?e[n+2]:0;t+=T[r>>2&63],t+=T[(r&3)<<4|i>>4&15],t+=n+1<e.length?T[(i&15)<<2|a>>6&3]:`=`,t+=n+2<e.length?T[a&63]:`=`}return t}function oe(e){let t=e.length;for(;t>0&&e[t-1]===`=`;)t--;let n=e.slice(0,t);if(n.includes(`=`)||n.length%4==1||t!==e.length&&e.length%4!=0)return;let r=0,i=0,a=[];for(let e=0;e<n.length;e++){let t=T.indexOf(n[e]);if(t===-1)return;r=r<<6|t,i+=6,i>=8&&(i-=8,a.push(r>>i&255))}if(!(i>0&&r&(1<<i)-1))return new Uint8Array(a)}function se(e){let n=0,r=0,i=[];for(let a=0;a<e.length;a++){let o=e[a];if(o===`=`)break;let s=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`.indexOf(o);if(s===-1)throw new t(`Invalid base64url character "${o}" in X25519 JWK key component`);n=n<<6|s,r+=6,r>=8&&(r-=8,i.push(n>>r&255))}return new Uint8Array(i)}async function ce(e,t,n,r){let i=x.encode(`workflow/encp/aes256gcm/v1`),a=new Uint8Array(i.length+t.length+n.length);a.set(i,0),a.set(t,i.length),a.set(n,i.length+t.length);let o=await globalThis.crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),s=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:a},o,256);return globalThis.crypto.subtle.importKey(`raw`,new Uint8Array(s),`AES-GCM`,!1,r)}async function le(e){re(e,`Recipient public key`);let n;try{n=await w(e)}catch(e){throw new t(`Invalid X25519 recipient public key: ${e instanceof Error?e.message:String(e)}`,{cause:e})}let r=await globalThis.crypto.subtle.generateKey({name:`X25519`},!0,[`deriveBits`]),i=new Uint8Array(await globalThis.crypto.subtle.exportKey(`raw`,r.publicKey)),a;try{a=await globalThis.crypto.subtle.deriveBits({name:`X25519`,public:n},r.privateKey,256)}catch(e){throw new t(`X25519 key agreement failed: the recipient public key is not a valid curve point (low-order point or corrupted key material)`,{cause:e})}return{ephemeralPublicKey:i,contentKey:await ce(new Uint8Array(a),i,e,[`encrypt`])}}async function ue(e,t){if(t.byteLength!==32)throw new n(`Sealed payload has a malformed ephemeral public key: expected 32 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let r;try{let[n,i]=await Promise.all([C(e.scalar,!1),w(t)]);r=await globalThis.crypto.subtle.deriveBits({name:`X25519`,public:i},n,256)}catch(e){throw new n(`X25519 key agreement failed while opening a sealed payload: ${e instanceof Error?e.message:String(e)}`,{cause:e,context:{operation:`decrypt`,byteLength:t.byteLength}})}return ce(new Uint8Array(r),t,e.publicKey,[`decrypt`])}async function de(e,t,n){let{ephemeralPublicKey:r,contentKey:i}=await le(e),a=await h(i,t,n),o=new Uint8Array(r.byteLength+a.byteLength);return o.set(r,0),o.set(a,r.byteLength),o}async function fe(e,t,r){if(t.byteLength<60)throw new n(`Sealed payload too short: expected at least 60 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let i=t.subarray(0,32),a=t.subarray(32);return g(await ue(e,i),a,r)}function pe(e,t){let n;return{async seal(r){n??=le(e);let{ephemeralPublicKey:i,contentKey:a}=await n,o=await h(a,r,t),s=new Uint8Array(i.byteLength+o.byteLength);return s.set(i,0),s.set(o,i.byteLength),s}}}function me(e,t){let r,i;return{async open(a){if(a.byteLength<60)throw new n(`Sealed payload too short: expected at least 60 bytes, got ${a.byteLength}`,{context:{operation:`decrypt`,byteLength:a.byteLength}});let o=a.subarray(0,32),s=a.subarray(32),c=he(o);(c!==r||!i)&&(r=c,i=ue(e,o));let l;try{l=await i}catch(e){throw r=void 0,i=void 0,e}return g(l,s,t)}}}function he(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function ge(e){if(!e)return;let t=oe(e);if(t&&t.byteLength===32)return t}function E(e){return e.length===4&&/^[a-z0-9]{4}$/.test(e)}const D={DEVALUE_V1:`devl`,ENCRYPTED:`encr`,SEALED:`encp`,GZIP:`gzip`,ZSTD:`zstd`},_e=new TextEncoder,O=new TextDecoder;function k(e,t){if(!(t instanceof Uint8Array))return t;let n=_e.encode(e),r=new Uint8Array(4+t.length);return r.set(n,0),r.set(t,4),r}function A(e){if(!(e instanceof Uint8Array)||e.length<4)return null;let t=e.subarray(0,4),n=O.decode(t);return E(n)?n:null}function ve(e){return A(e)===D.ENCRYPTED}function j(e){if(!(e instanceof Uint8Array))return{format:D.DEVALUE_V1,payload:new TextEncoder().encode(JSON.stringify(e))};if(e.length<4)throw Error(`Data too short to contain format prefix: expected at least 4 bytes, got ${e.length}`);let t=e.subarray(0,4),n=O.decode(t);if(!E(n))throw Error(`Invalid format prefix: "${n}". Must be 4 characters of [a-z0-9].`);return{format:n,payload:e.subarray(4)}}const M=Symbol.for(`workflow.serialization.sealTarget`),N=Symbol.for(`workflow.serialization.runKeys`);function ye(e,t){return{[M]:!0,recipientPublicKey:e,aad:t}}function P(e,t,n){return{[N]:!0,aes:e,keyPair:t,aad:n}}async function be(e){let[t,n]=await Promise.all([m(e),S(e)]);return P(t,n)}function F(e){return typeof e==`object`&&!!e&&e[M]===!0}function I(e){return typeof e==`object`&&!!e&&e[N]===!0}function L(e){if(e){if(I(e))return e.aes;if(!F(e))return e}}async function xe(e){return typeof e==`function`?e():e}async function Se(e,t){if(!t||!(e instanceof Uint8Array))return e;if(F(t)){let n=await de(t.recipientPublicKey,e,t.aad);return k(D.SEALED,n)}let n=await h(I(t)?t.aes:t,e);return k(D.ENCRYPTED,n)}async function Ce(e,t){if(!I(t))throw new n(`Sealed data encountered but no run keypair is available. Opening a sealed payload requires the run's own encryption key material; a symmetric key or a seal-only target cannot decrypt it.`,{context:{operation:`decrypt`,byteLength:e.byteLength,formatPrefix:`encp`}});let{payload:r}=j(e);try{return await fe(t.keyPair,r,t.aad)}catch(e){throw n.is(e)&&e.context&&(e.context.formatPrefix=D.SEALED),e}}async function we(e,t){if(!(e instanceof Uint8Array))return e;let r=A(e);if(r===D.SEALED)return Ce(e,t);if(r!==D.ENCRYPTED)return e;let i=L(t);if(!i)throw new n(`Encrypted data encountered but no encryption key is available. Encryption is not configured or no key was provided for this run.`,{context:{operation:`decrypt`,byteLength:e.byteLength,formatPrefix:`encr`}});let{payload:a}=j(e);try{return await g(i,a)}catch(e){throw n.is(e)&&e.context&&(e.context.formatPrefix=r),e}}const Te=(()=>{let e=globalThis.process;return e?.env?e.env.FORCE_COLOR&&e.env.FORCE_COLOR!==`0`?!0:!e.env.NO_COLOR&&!!e.stdout?.isTTY:!1})(),R=(e,t)=>n=>Te?`\x1b[${e}m${n}\x1b[${t}m`:n,z={bold:R(1,22),dim:R(2,22),italic:R(3,23),red:R(31,39),blue:R(34,39),cyan:R(36,39),yellow:R(33,39),magenta:R(35,39)},B={info:z.blue,help:z.cyan,warn:z.yellow,error:z.red};function Ee(e){let t=Array.isArray(e)?e.join(`
2
- `):e;return B.info(`${z.bold(`hint:`)} ${t}`)}function De(e){return B.info(`${z.bold(`docs:`)} ${e}`)}function Oe(e){return z.italic(`${z.dim("`")}${e}${z.dim("`")}`)}function V(e){return z.dim(e)}function ke(e){return z.bold(e)}function Ae(e){return z.red(e)}function je(e){return z.magenta(e)}function Me(e,t){let n=[e];return t.forEach((e,r)=>{let i=e.split(`
3
- `),a=r===t.length-1,o=a?`╰▶ `:`├▶ `,s=a?` `:`│ `,c=i.map((e,t)=>`${t===0?o:s}${e}`);n.push(...c)}),n.join(`
4
- `)}function Ne(e,t,n){let[r,...i]=t.split(`
5
- `),a=i.join(`
6
- `),o=a.trim()?a:H(n??{},`errorStack`)??``,s=Pe(r??``,o,n),c=Fe(o),l=[`${e} ${r??``}`];return s&&l.push(s),c&&l.push(c),l.join(`
7
- `)}function Pe(e,t,n){if(!n||Object.keys(n).length===0)return null;let r=new Set;r.add(`errorStack`);let i=H(n,`errorMessage`);i&&(e.includes(i)||t.includes(i))&&r.add(`errorMessage`);let a=new Set([`workflowRunId`,`workflowName`,`stepId`,`stepName`,`errorAttribution`,`errorCode`,`errorName`,`errorMessage`,`errorStack`,`errorCause`,`hint`,`attempt`,`retryCount`]),o=[],s=H(n,`errorName`),u=H(n,`errorAttribution`),d=s!==null&&Le(t,s);if(u||s&&!d){let e=u?u===`sdk`?je(`sdk error`):Ae(`user error`):``,t=s?ke(s):``,n=e&&t?V(` · `):``;o.push(` ${e}${n}${t}`)}let f=H(n,`workflowRunId`),p=H(n,`workflowName`);f?o.push(W(`run`,f,p,l)):p&&o.push(W(`run`,null,p,l));let m=H(n,`stepId`),h=H(n,`stepName`);if((m||h)&&o.push(W(`step`,m,h,c)),n.attempt!==void 0||n.retryCount!==void 0){let e=n.attempt,t=n.retryCount;e!==void 0&&t!==void 0?o.push(` ${U(`retry`)} ${e} ${V(`attempts ·`)} ${t} ${V(`max retries`)}`):e!==void 0&&o.push(` ${U(`retry`)} ${e} ${V(`attempts`)}`)}let g=H(n,`errorCode`);g&&g!==s&&o.push(` ${U(`code`)} ${V(g)}`),i&&!r.has(`errorMessage`)&&o.push(` ${U(`error`)} ${G(i)}`);let _=H(n,`errorCause`);_&&!t.includes(_)&&o.push(` ${U(`cause`)} ${G(_)}`);let v=H(n,`hint`);v&&o.push(` ${Ee(v)}`);let y=Object.entries(n).filter(([e,t])=>!a.has(e)&&!r.has(e)&&t!=null).sort(([e],[t])=>e.localeCompare(t));for(let[e,t]of y)o.push(` ${U(e)} ${G(t)}`);return o.length?o.join(`
8
- `):null}function Fe(e){if(!e)return null;let t=e.split(`
9
- `),n=[],r=0,i=0,a=0,o=()=>{r>0&&(n.push(V(` … ${r} more ${r===1?`frame`:`frames`} in framework internals`)),r=0)};for(let e of t){let t=e.trimStart().startsWith(`at `);if(t&&Ie(e)){r++;continue}if(t&&i>=6){a++;continue}o(),n.push(e),t&&i++}return o(),a>0&&n.push(V(` … ${a} more ${a===1?`frame`:`frames`} (run \`pnpm wf inspect run <id>\` for the full stack)`)),n.join(`
10
- `)}function Ie(e){let t=e.trimStart();return t.startsWith(`at `)?!!(t.includes(`node:internal/`)||t.includes(`node_modules/.pnpm/`)||t.includes(`node_modules__pnpm_`)||t.includes(`_next_dist_`)||t.includes(`node_modules/next/`)||t.includes(`node_modules/@opentelemetry/`)||t.includes(`node_modules/vitest/`)||t.includes(`node_modules/@vitest/`)):!1}function Le(e,t){let n=e.split(`
11
- `,1)[0]?.trim()??``;return n===t||n.startsWith(`${t}:`)}function H(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:null}function U(e){return V(e.padEnd(6))}function W(e,t,n,r){let i=t||V(`—`),a=n&&(e===`run`?o(n):s(n))?`${V(`·`)} ${r(n)}`:``;return` ${U(e)} ${i}${a?` `+a:``}`}function G(e){if(typeof e==`string`)return e.includes(`
12
- `)?e.split(`
13
- `).map((e,t)=>t===0?e:` ${e}`).join(`
14
- `):e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function K(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const Re=K(`workflow.name`),ze=K(`workflow.operation`),Be=K(`workflow.run.id`),Ve=K(`workflow.run.status`),He=K(`workflow.started_at`),Ue=K(`workflow.events.count`),We=K(`workflow.execution.mode`),Ge=K(`workflow.bundle.compile.cache_hit`),Ke=K(`workflow.replay.load.source`),qe=K(`workflow.events.parked.count`),Je=K(`workflow.events.parked.event_id`),Ye=K(`workflow.events.parked.event_type`),Xe=K(`workflow.arguments.count`),Ze=K(`workflow.result.type`),Qe=K(`workflow.trace.propagated`),$e=K(`workflow.trace.mode`),et=K(`workflow.turbo`),tt=K(`workflow.error.name`),nt=K(`workflow.error.message`),rt=K(`workflow.error.code`),it=K(`workflow.steps.created`),at=K(`workflow.hooks.created`),ot=K(`workflow.waits.created`),st=K(`workflow.steps.failed_serialization`),ct=K(`workflow.inline_ownership.owned_recovery_steps`),lt=K(`workflow.inline_ownership.backstop_wakes_armed`),ut=K(`workflow.dispatch.republish_skipped`),dt=K(`workflow.route.type`),ft=K(`workflow.route.handler_cached`),pt=K(`workflow.route.invocation_count`),mt=K(`workflow.route.entrypoint_age_ms`),ht=K(`workflow.route.module_body_init_ms`),gt=K(`faas.instance`),_t=K(`step.name`),vt=K(`step.id`),yt=K(`step.attempt`),bt=K(`step.status`),xt=K(`step.max_retries`),St=K(`step.ttfs_ms`),Ct=K(`step.stso_ms`),wt=K(`step.rsfs_ms`),Tt=K(`step.final_scheduling_replay_ms`),Et=K(`step.latency_optimizations`),Dt=K(`workflow.step_start.strategy`),Ot=K(`step.skipped`),kt=K(`step.skip_reason`),At=K(`step.arguments.count`),jt=K(`step.result.type`),Mt=K(`step.error.name`),Nt=K(`step.error.message`),Pt=K(`step.fatal_error`),Ft=K(`step.retry.exhausted`),It=K(`step.retry.timeout_seconds`),Lt=K(`step.retry.will_retry`),Rt=K(`messaging.system`),zt=K(`messaging.destination.name`),Bt=K(`messaging.message.id`),Vt=K(`messaging.operation.type`),Ht=K(`messaging.batch.message_count`),Ut=K(`workflow.queue.overhead_ms`),Wt=K(`deployment.id`),Gt=K(`workflow.deployment.pinned_id`),Kt=K(`workflow.deployment_mismatch.retry_count`),qt=K(`workflow.deployment_mismatch.recovered`),Jt=K(`workflow.hook.token`),Yt=K(`workflow.hook.id`),Xt=K(`workflow.hook.found`),Zt=K(`workflow.hook.resume_committed`),Qt=K(`workflow.hook.wake_published`),$t=K(`workflow.hook.resilient_resume_materialized`),en=K(`workflow.resume_setup_source`),tn=K(`workflow.step.resilient_dispatch_recovered`),nn=K(`workflow.step.resilient_dispatch_materialized`),rn=K(`workflow.step.dispatch_prologue`),an=K(`workflow.resume.total_ms`),on=K(`workflow.resume.phase.producer_prep_ms`),sn=K(`workflow.resume.phase.queue_delivery_ms`),cn=K(`workflow.resume.phase.resume_setup_ms`),ln=K(`workflow.resume.phase.replay_ms`),un=K(`workflow.resume.phase.step_dispatch_ms`),dn=K(`workflow.resume.phase.step_claim_ms`),fn=K(`workflow.resume.phase.step_prepare_ms`),pn=K(`workflow.resume.trigger`),mn=K(`workflow.resume.strategy`),hn=K(`workflow.resume.setup_source`),gn=K(`workflow.resume.step_execution`),_n=K(`workflow.suspension.state`),vn=K(`workflow.suspension.hook_count`),yn=K(`workflow.suspension.step_count`),bn=K(`workflow.suspension.wait_count`),xn=K(`http.request.method`),Sn=K(`http.route`),Cn=K(`http.response.status_code`),wn=K(`error.type`),Tn=K(`workflow.events.pages_loaded`),En=K(`workflow.queue.deserialize_time_ms`),Dn=K(`workflow.queue.execution_time_ms`),On=K(`workflow.queue.serialize_time_ms`),kn=K(`workflow.serialization.operation`),An=K(`workflow.serialization.compressed`),jn=K(`workflow.serialization.codec`),Mn=K(`workflow.serialization.uncompressed_bytes`),Nn=K(`workflow.serialization.stored_bytes`),Pn=K(`workflow.serialization.compression_ratio`),Fn=K(`workflow.serialization.guest_code_executions`),In=K(`workflow.serialization.guest_code_details`),Ln=K(`peer.service`),Rn=K(`rpc.system`),zn=K(`rpc.service`),Bn=K(`rpc.method`),Vn=K(`error.retryable`),Hn=K(`error.category`),Un=e(`@workflow/core//traceModeWarnings`,1,()=>({unrecognized:new Set}));function Wn(){let e=process.env.WORKFLOW_TRACE_MODE;return e===`continuous`?`continuous`:(e&&e!==`linked`&&!Un.unrecognized.has(e)&&(Un.unrecognized.add(e),$.warn(`Unrecognized WORKFLOW_TRACE_MODE value "${e}"; expected "linked" or "continuous". Falling back to "linked".`)),`linked`)}function q(e){return e!==void 0&&Object.keys(e).length>0}function Gn(e,t){return e===`linked`&&q(t)?Promise.resolve(t):qn()}async function Kn(e,t){if(e!==`linked`)return lr();let n=await ur(q(t)?t:void 0);return n?[n]:void 0}async function qn(){let e=await J.value;if(!e)return{};let t={};return e.propagation.inject(e.context.active(),t),t}async function Jn(e){let t=await J.value;if(t)return t.propagation.extract(t.context.active(),e)}async function Yn(e,t){if(!e)return t();let n=await J.value;if(!n)return t();let r=await Jn(e);return r?n.context.with(r,async()=>await t()):t()}const J=i(async()=>{try{return await import(`../../@opentelemetry/api/index.js`)}catch{return $.info(`OpenTelemetry not available, tracing will be disabled`),null}}),Y=i(async()=>{let e=await J.value;if(!e)return null;let t=e.trace.getTracer(`workflow`);return Qn(e,t),t}),Xn=i(async()=>{let e=await J.value;return e?e.metrics.getMeter(`workflow`).createHistogram(`workflow.step.execute.duration`,{description:`Duration of user step execution`,unit:`ms`}):null});let X=!1;function Zn(e){try{return typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`?e.message:String(e)}catch{return`Unknown error`}}function Qn(e,t){let n=typeof process<`u`&&typeof process.env.DEBUG==`string`&&(process.env.DEBUG.includes(`workflow:`)||process.env.DEBUG===`*`);if(!X&&n){X=!0;try{let n=globalThis[Symbol.for(`opentelemetry.js.api.1`)],r=e.trace.getTracerProvider(),i=r.getDelegate?.()??r,a=t.startSpan(`workflow.otel.probe.core`);console.warn(`[workflow:otel-diag] core`,JSON.stringify({globalRegistrationVersion:n?.version??null,providerCtor:r?.constructor?.name??null,delegateCtor:i?.constructor?.name??null,tracerCtor:t?.constructor?.name??null,probeCtor:a?.constructor?.name??null,probeRecording:a.isRecording()})),a.end()}catch(e){console.warn(`[workflow:otel-diag] core failed:`,e instanceof Error?e.message:e)}}}async function $n(e,...t){let[n,i]=await Promise.all([Y.value,J.value]),{fn:a,opts:o}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!a)throw Error(`Function to trace must be provided`);return!n||!i?await a():n.startActiveSpan(e,o,async e=>{try{let t=await a(e);return e.setStatus({code:i.SpanStatusCode.OK}),t}catch(t){throw r.is(t)?(e.setStatus({code:i.SpanStatusCode.OK}),ar(t,e)):e.setStatus({code:i.SpanStatusCode.ERROR,message:Zn(t)}),t}finally{e.end()}})}async function er(e){let[t,n]=await Promise.all([Y.value,J.value]);if(!t||!n)return{end(){},fail(){}};let r=t.startSpan(e),i=!1,a=e=>{i||(i=!0,r.setStatus(e),r.end())};return{end:()=>a({code:n.SpanStatusCode.OK}),fail:e=>a({code:n.SpanStatusCode.ERROR,message:Zn(e)})}}async function tr(e){let t=await J.value;return t?t.context.bind(t.context.active(),e):e}async function nr(){let e=await J.value;if(!e)return{refresh(){},run:e=>e()};let t=e.context.active(),n={getValue:e=>t.getValue(e),setValue:(e,n)=>t.setValue(e,n),deleteValue:e=>t.deleteValue(e)};return{refresh:()=>{t=e.context.active()},run:t=>e.context.with(n,t)}}async function rr(e,t,n){let r=await Y.value;r&&r.startSpan(e,{...n,startTime:t}).end()}async function ir(e,t){(await Xn.value)?.record(e,{"workflow.step.status":t})}function ar(e,t){t.setAttributes({..._n(`suspended`),...yn(e.stepCount),...vn(e.hookCount),...bn(e.waitCount)})}async function or(e){let[t,n]=await Promise.all([Jn(e),J.value]);if(t&&n)return n.trace.getSpanContext(t)}async function sr(){return await Z(e=>e.trace.getActiveSpan())}async function cr(e){return Z(t=>t.SpanKind[e])}async function Z(e){let t=await J.value;if(t)return await e(t)}function lr(){return Z(e=>{let t=e.trace.getActiveSpan()?.spanContext();if(t)return[{context:t}]})}async function ur(e){if(!e)return;let[t,n]=await Promise.all([or(e),J.value]);if(t&&n&&n.trace.isSpanContextValid(t))return{context:t}}async function dr(e,t){let n=await J.value;if(!n)return t();let r=n.propagation.createBaggage({"workflow.run_id":{value:e.workflowRunId},"workflow.name":{value:e.workflowName}}),i=n.propagation.setBaggage(n.context.active(),r);return n.context.with(i,()=>t())}function fr(e,t){if(!t)return!1;let n=!1;for(let r of t.split(`,`)){let t=r.trim();if(!t)continue;let i=t.startsWith(`-`),a=i?t.slice(1):t;RegExp(`^${a.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`).replace(/\*/g,`.*`)}$`).test(e)&&(n=!i)}return n}function Q(e,t={}){let n=r=>{let i=n=>t.debugNamespace??`workflow:${e}:${n}`,a=t=>{let n=i(t);return(i,a)=>{let o=Object.keys(r).length>0,s=a&&Object.keys(a).length>0,c=o||s?{...r,...a??{}}:void 0;(t===`error`||t===`warn`)&&(t===`error`?console.error:console.warn)(Ne(`[workflow-sdk]`,i,c)),fr(n,process.env.DEBUG)&&(console.debug(`[${n}] ${i}`,c??``),sr().then(n=>{n?.addEvent(`${t}.${e}`,{message:i,...c})}).catch(()=>{}))}};return{debug:a(`debug`),info:a(`info`),warn:a(`warn`),error:a(`error`),child:e=>n({...r,...e}),forRun:(e,t,i)=>n({...r,workflowRunId:e,...t===void 0?{}:{workflowName:t},...i??{}})}};return n({})}const pr=Q(`step`),$=Q(`runtime`),mr=Q(`webhook`),hr=Q(`events`);Q(`adapter`),Q(`build`,{debugNamespace:`workflow:build`});export{un as $,Re as $t,Zt as A,I as An,Ft as At,Vt as B,E as Bn,Xe as Bt,Hn as C,V as Cn,vt as Ct,Xt as D,we as Dn,nn as Dt,gt as E,L as En,_t as Et,Cn as F,j as Fn,Ot as Ft,Ut as G,S as Gn,ut as Gt,Ln as H,me as Hn,Ge as Ht,Sn as I,k as In,Dt as It,sn as J,m as Jn,tt as Jt,On as K,te as Kn,rt as Kt,Ht as L,ve as Ln,bt as Lt,Jt as M,xe as Mn,Lt as Mt,Qt as N,P as Nn,wt as Nt,Yt as O,be as On,tn as Ot,xn as P,ye as Pn,kt as Pt,dn as Q,at as Qt,zt as R,A as Rn,Ct as Rt,Wt as S,Oe as Sn,Tt as St,wn as T,Me as Tn,xt as Tt,En as U,pe as Un,qt as Ut,Rt as V,ae as Vn,lt as Vt,Dn as W,ge as Wn,Kt as Wt,cn as X,d as Xn,Tn as Xt,ln as Y,o as Yn,Ue as Yt,hn as Z,u as Zn,We as Zt,qn as _,st as _n,yt as _t,ar as a,Ke as an,Bn as at,Yn as b,et as bn,Mt as bt,nr as c,ft as cn,jn as ct,cr as d,dt as dn,In as dt,ze as en,gn as et,Wn as f,Be as fn,Fn as ft,ir as g,it as gn,At as gt,rr as h,He as hn,Mn as ht,mr as i,qe as in,pn as it,en as j,F as jn,It as jt,$t as k,Se as kn,jt as kt,sr as l,pt as ln,An as lt,ur as m,Ve as mn,Nn as mt,$ as n,Je as nn,mn as nt,tr as o,Ze as on,zn as ot,q as p,Gt as pn,kn as pt,on as q,_ as qn,nt as qt,pr as r,Ye as rn,an as rt,Kn as s,mt as sn,Rn as st,hr as t,ct as tn,fn as tt,Gn as u,ht as un,Pn as ut,er as v,$e as vn,rn as vt,Vn as w,De as wn,Et as wt,dr as x,ot as xn,Pt as xt,$n as y,Qe as yn,Nt as yt,Bt as z,D as zn,St as zt};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-B_knIduE.js";import{_ as t,a as n,ot as r,ut as i,x as a,z as o}from"./dist-BQSf8Hax.js";import{$t as s,A as c,D as l,Jn as u,Kn as d,M as f,N as p,O as m,On as h,Pn as g,Wn as ee,fn as _,m as te,n as v,y,zn as b}from"./logger-BCEj9caG.js";import{A as x,f as S,j as C,k as w,n as T,o as E,s as D}from"./dist-BfMqXLK3.js";import{d as ne,dt as O,k}from"./serialization-CJ265vSe.js";import{s as A}from"./helpers-CNMO7zB1.js";import{n as j,r as re,t as ie}from"./wait-until-Bo2U6ON9.js";import{z as M}from"#compiled/zod/index.js";const N=[25,100];function P(e,t){if(t?.(e))return!1;let n=e??{},r=n.status??n.statusCode;if(typeof r==`number`)return r>=500||r===408||r===429;let i=e?.name;return i!==`BadRequestError`&&i!==`UnauthorizedError`&&i!==`ForbiddenError`}async function F(e,t){let n;for(let r=0;r<=N.length;r++)try{await e();return}catch(e){if(n=e,!P(e,t))break;let i=N[r];i!==void 0&&await new Promise(e=>setTimeout(e,i))}throw D.is(n)?new x(`The hook resume was committed, but its workflow wake could not be published`,{cause:n}):n}async function I(e,t,n){let r=n.claimedFrom;if(!r||r.runId===t)return`skipped`;if(r.workflowName===void 0)return v.warn(`Force-claimed a hook from a run whose workflow name is unknown; not waking it`,{workflowRunId:t,victimRunId:r.runId}),`skipped`;try{return await F(()=>e.queue(A(r.workflowName),{runId:r.runId},{...r.deploymentId!==void 0&&{deploymentId:r.deploymentId},specVersion:r.runSpecVersion??1,idempotencyKey:`hook-force-claim-${n.hookId}`}),e.isDeploymentUnavailableError?.bind(e)),`published`}catch(e){return v.error(`Force-claimed a hook token but could not wake the run it was taken from; it will read the disposal on its next invocation`,{workflowRunId:t,victimRunId:r.runId,error:e instanceof Error?e.message:String(e)}),`failed`}}function L(e){if(e)for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.eventType===`hook_received`||n.eventType===`noop`||n.eventType===`hook_disposed`&&n.eventData?.forceClaimedBy!==void 0))return n.eventType===`hook_created`&&n.eventData.forceClaimedFrom!==void 0?n:void 0}}async function R(e,t,n){let r=L(n);if(!r)return;let i=r.eventData.forceClaimedFrom,a=await I(e,t,{hookId:r.correlationId,claimedFrom:i});a!==`skipped`&&v.info(`Republished the wake of a force-claimed hook victim`,{workflowRunId:t,hookId:r.correlationId,victimRunId:i.runId,victimWake:a})}const z=M.object({type:M.literal(`hook_resume`),version:M.literal(1),hookId:M.string(),token:M.string(),payload:M.instanceof(Uint8Array)}),ae=M.discriminatedUnion(`status`,[M.object({status:M.literal(`accepted`)}),M.object({status:M.literal(`rejected`),code:M.enum([`HOOK_NOT_FOUND`,`INVALID_INPUT`])})]);async function B(e,t,n,i){let a=z.safeParse(i);if(!a.success||!n)throw new C(`Invalid invocation input`,{status:400,code:`INVALID_INPUT`});let s=a.data,c=Buffer.from(await crypto.subtle.digest(`SHA-256`,s.payload)).toString(`hex`);try{let n=await e.hooks.get(s.hookId);if(n.runId!==t||n.token!==s.token)throw new D(s.token);let r=await e.runs.get(t,{resolveData:`none`});if(o(r.status))throw new D(s.token)}catch(i){if(!V(i))throw i;let a=await e.runs.get(t,{resolveData:`none`});if(a.expiredAt||o(a.status)&&r(a.attributes).mode===`none`)throw new C(`Invocation data has expired under the run retention policy`,{status:410,code:`INVOCATION_DATA_EXPIRED`});if(!e.capabilities?.hookResumeDedup||!await H(e,t,s.hookId,n))throw i}return await e.events.create(t,{eventType:`hook_received`,correlationId:s.hookId,specVersion:8,eventData:{token:s.token,payload:s.payload}},{...e.capabilities?.hookResumeDedup?{resumeId:n,resumePayloadDigest:c}:{}}),{status:`accepted`}}function V(e){return D.is(e)||S.is(e)||w.is(e)}async function H(e,t,n,r){let i=null;do{let a=await e.events.listByCorrelationId({runId:t,correlationId:n,resolveData:`none`,pagination:{limit:100,...i?{cursor:i}:{}}});if(a.data.some(e=>e.eventType===`hook_received`&&e.resumeId===r))return!0;i=a.hasMore?a.cursor:null}while(i);return!1}var U=class{revision=0;listeners=new Set;notify(){this.revision++;for(let e of this.listeners)e()}async waitForActivity(e,t=100){return this.revision!==e||(await new Promise(e=>{let n=()=>{clearTimeout(r),this.listeners.delete(n),e()},r=setTimeout(n,t);this.listeners.add(n)}),this.revision!==e)}};function W(e){return n=>{let r=new Map;return async(i,o)=>{if(t.safeParse(i).success)return n(i,o);let s=a.safeParse(i);if(!e.capabilities?.invoke||!s.success||s.data.stepId)return n(i,o);let c=s.data,l=r.get(c.runId);l||(l={activity:new U,admission:Promise.resolve(),references:0},r.set(c.runId,l));let u=l;u.references++;try{if(c.invoke){if(!c.requestId)throw new x(`Invocation requestId is required`);let t=c.requestId,n=u.admission.then(()=>y(`workflow.invoke.receive`,async n=>{n?.setAttributes({..._(c.runId),"workflow.invocation.id":t});let r=await B(e,c.runId,t,c.input);return r.status===`accepted`&&u.activity.notify(),r}));return u.admission=n.catch(()=>{}),await n}if(u.execution)return await u.execution;let t=n(i,o,u.activity);u.execution=t;try{return await t}finally{u.execution===t&&(u.execution=void 0)}}finally{u.references--,u.references===0&&r.get(c.runId)===u&&r.delete(c.runId)}}}}var G=e({getHookByToken:()=>X,resumeHook:()=>Z,resumeWebhook:()=>de});const K=i();async function oe(e){let t=await crypto.subtle.digest(`SHA-256`,e),n=new Uint8Array(t),r=``;for(let e of n)r+=e.toString(16).padStart(2,`0`);return r}function se(e){let t=e.executionContext?.workflowCoreVersion,n=e.executionContext?.traceCarrier,r=e.executionContext?.hookResumeInputVersion;return{deploymentId:e.deploymentId,workflowName:e.workflowName,runSpecVersion:e.specVersion,workflowCoreVersion:typeof t==`string`?t:void 0,traceCarrier:n&&typeof n==`object`?n:void 0,encryptionPublicKey:e.encryptionPublicKey,hookResumeInputVersion:typeof r==`number`?r:void 0}}async function q(e){if(e.resumeContext)return{resumeContext:e.resumeContext,source:`hook`};let t=await(await d()).runs.get(e.runId);return{resumeContext:se(t),source:`run_fallback`,run:t}}async function ce(e,t){let n=await d(),r=t.run?await n.getEncryptionKeyForRun?.(t.run):await n.getEncryptionKeyForRun?.(e.runId,{deploymentId:t.resumeContext.deploymentId});return r?await u(r):void 0}function le(e){let t=Object.getOwnPropertyDescriptor(e,`metadata`);return t!==void 0&&typeof t.get==`function`}function J(e){let t=e.metadata,n,r,i=async()=>{let n=await d(),i=await q(e),a=i.run?await n.getEncryptionKeyForRun?.(i.run):await n.getEncryptionKeyForRun?.(e.runId,{deploymentId:i.resumeContext.deploymentId});return r=a?await h(a):void 0,await k(t,e.runId,r)},a=e;return Object.defineProperty(a,"metadata",{get:()=>n??=t===void 0?Promise.resolve(void 0):i(),enumerable:!1,configurable:!0}),{hook:a,metadataEncryptionKey:()=>r}}function Y(e){return le(e)?e:J(e).hook}async function X(e){return J(await(await d()).hooks.getByToken(e)).hook}async function Z(e,t,n){return $(e,t,n,!1,Date.now())}const Q=new WeakMap;async function $(e,t,n,r,i,a=!1){return await j(()=>y(`hook.resume`,async o=>{let s=await d(),c=typeof e==`string`?e:e.token,l=e,u=r,f=n,p=0,m=0,h=K(),g=e=>{if(t instanceof Request&&t.body!==null&&t.bodyUsed)throw o?.setAttributes({"workflow.hook.resume_redirect_unresendable":!0}),new x(`Hook token "${c}" changed owner while this webhook request was being delivered; a request body can be sent only once and it was not delivered anywhere — retry the request, which will reach the token's new owner`,{cause:e})};for(;;)try{return await ue(s,o,l,t,f,u,i,h,a)}catch(e){if(typeof e==`object`&&e&&Q.get(e)===`not-webhook`)throw e;if(p>=3)throw E.is(e)?(o?.setAttributes({"workflow.hook.resume_redirects_exhausted":!0}),new x(`Hook token "${c}" changed owner ${p} times while this resume was in flight; nothing was delivered — retry the resume`,{cause:e})):e;if(E.is(e)){g(e),p++,o?.setAttributes({"workflow.hook.resume_redirects":p,"workflow.hook.resume_redirect_to_run":e.claimedByRunId}),l=c,u=!0,f=void 0,m=0;continue}if(D.is(e)&&p>0&&typeof l==`string`&&m<5){g(e),m++,await new Promise(e=>setTimeout(e,50));continue}if(D.is(e)&&Q.get(e)!==`lookup`){let t=typeof l==`string`?void 0:l.hookId,n;try{n=await s.hooks.getByToken(c)}catch(e){D.is(e)||v.warn(`Hook resume: re-resolving the token after a not-found failed; surfacing the original error`,{token:c,error:e instanceof Error?e.message:String(e)})}if(n?.claimedFrom!==void 0&&n.hookId!==t&&(t===void 0||n.claimedFrom.hookId===t)&&!(a&&n.isWebhook===!1)){g(e),p++,o?.setAttributes({"workflow.hook.resume_redirects":p,"workflow.hook.resume_redirect_to_run":n.runId}),l=n,u=!0,f=void 0;continue}}throw e}}))}async function ue(e,t,r,i,a,u,d,h,y){try{let l=typeof r==`string`,C;if(l)try{C=await e.hooks.getByToken(r)}catch(e){throw D.is(e)&&Q.set(e,`lookup`),e}else C=r;if(y&&C.isWebhook===!1){let e=new D(C.token);throw Q.set(e,`not-webhook`),e}let w=l||u,T=await q(C),{resumeContext:O}=T;if(t?.setAttributes({...f(C.token),...m(C.hookId),..._(C.runId),"workflow.hook.resume_context_source":T.source}),T.run&&o(T.run.status))throw new D(C.token);let k=re(O.workflowCoreVersion),j,M=a?void 0:ee(O.encryptionPublicKey);if(M)j=g(M);else{let e=a??await ce(C,T);k.supportedFormats.has(b.ENCRYPTED)||(e=void 0),j=e}let N=(O.runSpecVersion??0)>=5&&k.supportedFormats.has(b.GZIP),P=[],I=[],L=n(C.specVersion),R=await ne(i,C.runId,j,P,globalThis,L,k.framedByteStreams,N,void 0,I);if(await Promise.all(P.map(e=>e.catch(e=>{if(e!==void 0)throw e}))),ie(Promise.all(I),e=>{e!==void 0&&v.warn(`Background readback of hook payload failed`,{workflowRunId:C.runId,hookId:C.hookId,error:e instanceof Error?e.message:String(e)})}),e.capabilities?.invoke===!0&&!L&&R instanceof Uint8Array){if(!e.invoke)throw new x(`World advertises invoke without implementing it`);t?.setAttributes({"workflow.hook.resume_strategy":`invoke`});let n=ae.parse(await e.invoke(C.runId,{type:`hook_resume`,version:1,hookId:C.hookId,token:C.token,payload:R},{idempotencyKey:h}));if(n.status===`rejected`)throw n.code===`HOOK_NOT_FOUND`?new D(C.token):new x(`Executor rejected the hook invocation input`);return t?.setAttributes(c(!0)),Y(C)}t?.setAttributes({...s(O.workflowName)});let z=await te(O.traceCarrier);z&&t?.addLink?.(z);let B=A(O.workflowName),V={deploymentId:O.deploymentId,specVersion:O.runSpecVersion??1},H=((w?C.resumeCapabilities?.hookResumeDedupVersion??0:0)>=1||e.capabilities?.hookResumeDedup===!0)&&!L&&R instanceof Uint8Array;t?.setAttributes({"workflow.hook.resume_strategy":`sequential`});let U=H?h:void 0,W=H?await oe(R):void 0;U&&t?.setAttributes({"workflow.hook.resume_id":U});let G=e=>D.is(e)||S.is(e);try{await e.events.create(C.runId,{eventType:`hook_received`,specVersion:8,correlationId:C.hookId,eventData:{...L?{}:{token:C.token},payload:R}},{v1Compat:L,...U&&W?{resumeId:U,resumePayloadDigest:W}:{}})}catch(e){throw E.is(e)?e:G(e)?new D(C.token):e}t?.setAttributes(c(!0));let K=Date.now();return await F(()=>e.queue(B,{runId:C.runId,traceCarrier:O.traceCarrier??void 0,hookResumeTiming:{resumeRequestedAtMs:d,queuePublishRequestedAtMs:K,strategy:`sequential`}},{...V,...U?{idempotencyKey:`hook-${U}`}:{}}),e.isDeploymentUnavailableError?.bind(e)),t?.setAttributes(p(!0)),Y(C)}catch(e){throw t?.setAttributes({...f(typeof r==`string`?r:r.token),...l(!1)}),e}}async function de(e,t){let n=Date.now(),{hook:r,metadataEncryptionKey:i}=J(await(await d()).hooks.getByToken(e));if(r.isWebhook===!1)throw new D(e);let a=await r.metadata,o,s;if(a&&typeof a==`object`&&`respondWith`in a){if(a.respondWith===`manual`){let{readable:e,writable:n}=new TransformStream;s=e,t[O]=n}else if(a.respondWith instanceof Response)o=a.respondWith;else throw new x(`Invalid \`respondWith\` value: ${a.respondWith}`,{slug:T.WEBHOOK_INVALID_RESPOND_WITH_VALUE})}else o=new Response(null,{status:202});if(await $(r,t,i(),!0,n,!0),s){let e=s.getReader(),t=await e.read();t.value&&(o=t.value),e.cancel()}if(!o)throw new x(`Workflow run did not send a response`,{slug:T.WEBHOOK_RESPONSE_NOT_SENT});return o}export{W as a,G as i,Z as n,I as o,de as r,R as s,X as t};
@@ -1 +0,0 @@
1
- import{a as e,ft as t,i as n,it as r,mt as i,nt as a,rt as o,ut as s}from"./dist-BQSf8Hax.js";import{$t as c,Bt as l,Gn as u,Jn as d,Kn as f,On as p,Pn as ee,S as te,Vn as ne,Wn as re,Zn as m,_ as ie,en as ae,fn as oe,mn as se,n as h,qn as ce,y as g,zn as le}from"./logger-BCEj9caG.js";import{A as _,C as v,D as y,E as b,M as x,O as S,T as C,_ as w,c as T,f as E,g as D,j as O,k,m as A,r as j,t as M,u as N,y as P}from"./dist-BfMqXLK3.js";import{$ as F,C as I,G as L,L as R,M as z,N as B,O as V,Q as H,S as U,W,f as ue,o as de}from"./serialization-CJ265vSe.js";import{D as fe,l as pe,s as G}from"./helpers-CNMO7zB1.js";import{t as me}from"./attribute-changes-DzJovO_f.js";import{n as he,r as ge,t as _e}from"./wait-until-Bo2U6ON9.js";const ve=new Set([`PARSE_ERROR`,`SCHEMA_VALIDATION`,x.WORLD_CONTRACT_ERROR]),ye=new Set([`TRANSPORT`,`TIMEOUT`,x.STREAM_ERROR]),be=[_.is,D.is,C.is,A.is];function K(e){if(!O.is(e)||e.status!==void 0)return!1;let t=`cause`in e?e.cause:void 0;return e.code!==void 0&&ve.has(e.code)||e.message.startsWith(`Failed to parse response body for `)||e.message.startsWith(`Schema validation failed for `)||typeof t==`object`&&!!t&&`name`in t&&t.name===`ZodError`}function q(e){return P.is(e)?!0:w.is(e)?e.status===void 0||e.status>=500:O.is(e)?e.status!==void 0&&e.status>=500||e.code!==void 0&&ye.has(e.code):!1}function xe(e){if(N.is(e))return x.REPLAY_DIVERGENCE;if(M.is(e))return x.CORRUPTED_EVENT_LOG;if(T.is(e))return x.MAX_EVENTS_EXCEEDED;if(v.is(e))return x.DEPLOYMENT_MISMATCH;if(w.is(e))return x.STREAM_ERROR;if(K(e)||q(e))return x.WORLD_CONTRACT_ERROR;for(let t of be)if(t(e))return x.RUNTIME_ERROR;return x.USER_ERROR}const J=[`node`,`quickjs`];function Y(e=process.env){let t=e.WORKFLOW_VM;if(t!==void 0&&t!==``){if(J.includes(t))return t;throw new _(`Invalid WORKFLOW_VM value: "${t}". Expected one of: ${J.join(`, `)}.`)}}function Se(e){let t=e.executionContext?.workflowVm;if(t!==void 0){if(!J.includes(t))throw new _(`Invalid executionContext.workflowVm value: "${t}". Expected one of: ${J.join(`, `)}.`);return t===`quickjs`}return Y()===`quickjs`}const Ce=s();function we(){let e=L.getStore(),t=e?.workflowMetadata?.workflowRunId;if(t)return{[r]:e.rootRunId??t,[a]:t}}const X=i(`@workflow/core//latestNoOpWarning`,1,()=>({warned:!1}));async function Z(t,r,i){"use step";return await he(()=>{let a=t?.workflowId;if(!a)throw new _(`'start' received an invalid workflow function. Ensure the Workflow SDK is configured correctly and the function includes a 'use workflow' directive.`,{slug:`start-invalid-workflow-function`});let s=`workflow.start ${m(a)}`;return g(s,async t=>{t?.setAttributes({...c(a),...ae(`start`)});let s=[],p=i??{};Array.isArray(r)?s=r:typeof r==`object`&&(p=r),t?.setAttributes({...l(s.length)});let m=p.world??await f();ce(m);let g=await m.getDeploymentId(),v=p.deploymentId??g;v===`latest`&&(m.resolveLatestDeploymentId?v=await m.resolveLatestDeploymentId():(X.warned||(X.warned=!0,h.warn(`deploymentId: 'latest' has no effect in this world and was ignored. It is only supported by worlds with atomic deployments, such as Vercel. The run will target the current deployment.`,{currentDeploymentId:g})),v=g));let y=`wrun_${m.createRunId?m.createRunId(p):Ce()}`,b,x,S,C;if(v===g)b=!0,x=!0,S=1;else if(typeof m.streams?.get!=`function`)b=!1,x=!1,S=void 0;else{let e=await pe(m,{deploymentId:v,runId:y,timeout:2e3,namespace:p.namespace}).catch(()=>void 0);C=e?.encryptionPublicKey;let t=ge(e?.workflowCoreVersion);b=t.framedByteStreams,x=t.supportedFormats.has(le.GZIP),S=e?.hookResumeInputVersion}let w=[],T=await ie(),E=p.specVersion??m.specVersion,D=e(E),O=p.allowReservedAttributes===!0,k;if(p.attributes&&Object.keys(p.attributes).length>0){if(E<4)throw new _(`Initial workflow attributes require a World that supports spec version 4 or later.`);for(let[e,t]of Object.entries(p.attributes))if(typeof t!=`string`)throw new _(`Initial workflow attribute ${JSON.stringify(e)} must be a string value.`);let e=me(p.attributes,{allowReservedAttributes:O});k=Object.fromEntries(e.map(({key:e,value:t})=>[e,t]))}let A;if(p.experimental_retention!==void 0&&p.experimental_retention!=="default"){if(p.experimental_retention!==0)throw new _(`start({ experimental_retention }) must be 0 or 'default'; received ${JSON.stringify(p.experimental_retention)}.`);if(E<4)throw new _(`start({ experimental_retention }) requires a World that supports spec version 4 or later.`);A={[o]:`0`}}let M=E>=4?we():void 0,N=M||A?{...M,...k,...A}:k,P=N?{attributes:N,...O||M!=null||A!=null?{allowReservedAttributes:!0}:{}}:{};if(p.replayedFromRunId!==void 0&&!n.safeParse(p.replayedFromRunId).success)throw new _(`replayedFromRunId must be a run ID (wrun_<ulid>); received ${JSON.stringify(String(p.replayedFromRunId).slice(0,64))}.`);let F=re(C),I,L;if(F)I=ee(F),L=C;else{let e=await m.getEncryptionKeyForRun?.(y,{...p,deploymentId:v});I=e?await d(e):void 0,L=e?ne((await u(e)).publicKey):void 0}let R=await ue(s,y,I,w,globalThis,D,b,x&&E>=5),z=m.getEnvironment?.(),B=Y(),V={traceCarrier:T,workflowCoreVersion:fe,features:{encryption:!!I},...S===void 0?{}:{hookResumeInputVersion:S},...B?{workflowVm:B}:{},...p.replayedFromRunId?{replayedFromRunId:p.replayedFromRunId}:{}},[H,U]=await Promise.allSettled([m.events.create(y,{eventType:`run_created`,specVersion:E,eventData:{deploymentId:v,workflowName:a,input:R,executionContext:V,...L?{encryptionPublicKey:L}:{},...P}},{v1Compat:D}),m.queue(G(a,p.namespace),{runId:y,traceCarrier:T,...E>=3?{runInput:{input:R,deploymentId:v,workflowName:a,specVersion:E,executionContext:V,...L?{encryptionPublicKey:L}:{},...z===void 0?{}:{environment:z},...P}}:{}},{deploymentId:v,specVersion:E,...p.region===void 0?{}:{region:p.region}})]);if(U.status===`rejected`)throw U.reason;let W=!1;if(H.status===`rejected`){let e=H.reason;if(!j.is(e)){if(q(e))W=!0,h.warn(`Run creation event failed, but the run was accepted via the queue. The run_created event will be re-tried async by the runtime.`,{workflowRunId:y,error:e.message});else throw e}}else{let e=H.value;if(!D&&e.run.runId!==y)throw new _(`Server returned different runId than requested: expected ${y}, got ${e.run.runId}`)}return _e(Promise.all(w),e=>{h.warn(`Background flush of workflow argument streams failed`,{workflowRunId:y,error:e instanceof Error?e.message:String(e)})}),t?.setAttributes({...oe(y),...te(v),...H.status===`fulfilled`?se(H.value.run.status):{}}),new $(y,{resilientStart:W})})})}const Te=e=>Array.isArray(e)?e:[e];async function Ee(e,t,n={}){try{let r=await e.runs.get(t,{resolveData:`all`}),i=await e.getEncryptionKeyForRun?.(r),a=i?await p(i):void 0,o=Te(await z(r.input,t,a,globalThis)),s=n.specVersion??r.specVersion??1,c=n.deploymentId??r.deploymentId;return(await Z({workflowId:r.workflowName},o,{deploymentId:c,world:e,specVersion:s,replayedFromRunId:t,namespace:n.namespace})).runId}catch(e){throw Error(`Failed to recreate run from ${t}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async function De(t,n,r){try{let i=(await t.runs.get(n,{resolveData:`none`})).specVersion??1,a=e(i),o={eventType:`run_cancelled`,specVersion:i,...r?.cancelReason===void 0?{}:{eventData:{cancelReason:r.cancelReason}}};await t.events.create(n,o,{v1Compat:a})}catch(e){throw Error(`Failed to cancel run ${n}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async function Oe(e,t,n){if(t.length===0)throw Error(`cancelRuns requires at least one run ID.`);if(t.length>500)throw Error(`cancelRuns accepts at most 500 run IDs (received ${t.length}).`);if(new Set(t).size!==t.length)throw Error(`cancelRuns requires unique run IDs (duplicates found).`);if(e.runs.cancelMany)return e.runs.cancelMany({runIds:t,...n?.cancelReason===void 0?{}:{cancelReason:n.cancelReason}});let r=Array(t.length),i=0,a=async()=>{for(;;){let a=i++;if(a>=t.length)return;let o=t[a];try{await De(e,o,n),r[a]={runId:o,outcome:`cancelled`}}catch{r[a]={runId:o,outcome:`failed`,code:`internal_error`,retryable:!0}}}},o=Math.min(20,t.length);await Promise.all(Array.from({length:o},()=>a()));let s={requested:t.length,cancelled:0,alreadyCancelled:0,notCancellable:0,notFound:0,failed:0};for(let e of r)switch(e.outcome){case`cancelled`:s.cancelled++;break;case`already_cancelled`:s.alreadyCancelled++;break;case`not_cancellable`:s.notCancellable++;break;case`not_found`:s.notFound++;break;case`failed`:s.failed++}return{summary:s,results:r}}async function ke(e,t,n){try{let r=await e.runs.get(t,{resolveData:`none`});await e.queue(G(r.workflowName,n?.namespace),{runId:t},{deploymentId:r.deploymentId,specVersion:r.specVersion??1})}catch(e){throw Error(`Failed to re-enqueue run ${t}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async function Ae(t,n,r){try{let i=await t.runs.get(n,{resolveData:`none`}),a=e(i.specVersion),o=[],s=null;do{let e=await t.events.list({runId:n,pagination:{sortOrder:`asc`,...s?{cursor:s}:{}},resolveData:`none`});o.push(...e.data),s=e.hasMore?e.cursor:null}while(s);let c=o.filter(e=>e.eventType===`wait_created`),l=new Set(o.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),u=c.filter(e=>!l.has(e.correlationId));if(r?.correlationIds&&r.correlationIds.length>0){let e=new Set(r.correlationIds);u=u.filter(t=>t.correlationId&&e.has(t.correlationId))}let d=[],f=0;for(let e of u){if(!e.correlationId)continue;let r=a?{eventType:`wait_completed`,correlationId:e.correlationId}:{eventType:`wait_completed`,correlationId:e.correlationId,specVersion:i.specVersion,eventData:{resumeAt:e.eventData.resumeAt}};try{await t.events.create(n,r,{v1Compat:a}),f++}catch(e){j.is(e)?f++:d.push(e instanceof Error?e:Error(String(e)))}}if(f>0&&await t.queue(G(i.workflowName,r?.namespace),{runId:n},{deploymentId:i.deploymentId,specVersion:i.specVersion??1}),d.length>0)throw AggregateError(d,`Failed to complete ${d.length}/${u.length} pending wait(s) for run ${n}`);return{stoppedCount:f}}catch(e){throw e instanceof AggregateError?e:Error(`Failed to wake up run ${n}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async function je(e,t,n,r){try{return await e.streams.get(t,n,r?.startIndex)}catch(e){throw w.is(e)?e:new w(`Failed to read stream ${n}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async function Me(e,t){try{return await e.streams.list(t)}catch(e){throw w.is(e)?e:new w(`Failed to list streams for run ${t}: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}const Ne=new Set([`completed`,`failed`]),Q=[1e3,3e3,6e3];function Pe(){return t(`WORKFLOW_RETURN_VALUE_POLL_INTERVAL_MS`,1e3,{integer:!0,min:1})}function Fe(){return t(`WORKFLOW_RETURN_VALUE_WAIT_MS`,5e4,{integer:!0,min:1})}function Ie(){return t(`WORKFLOW_RETURN_VALUE_MAX_LONG_POLLS`,10,{integer:!0,min:1})}function Le(){let e=process.env.WORKFLOW_RETURN_VALUE_LONG_POLL;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}var $=class e{static[F](e){return{runId:e.runId,resilientStart:e.#r}}static[H](t){return new e(t.runId,{resilientStart:t.resilientStart})}runId;#e;get#t(){return this.#e||=f(),this.#e}#n=null;#r=!1;constructor(e,t){this.runId=e,this.#r=t?.resilientStart??!1}#i(e){return this.#n||=(async()=>{let t=await this.#t,n=e??await t.runs.get(this.runId),r=await t.getEncryptionKeyForRun?.(n);return r?await p(r):void 0})(),this.#n}#a(){return()=>this.#i()}async wakeUp(e){"use step";return Ae(await this.#t,this.runId,e)}async cancel(e){"use step";await(await this.#t).events.create(this.runId,{eventType:`run_cancelled`,specVersion:8,...e?.cancelReason===void 0?{}:{eventData:{cancelReason:e.cancelReason}}})}get exists(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(()=>!0).catch(e=>{if(k.is(e))return!1;throw e}))}get status(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(e=>e.status))}get returnValue(){"use step";return this.#c()}get workflowName(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(e=>e.workflowName))}get createdAt(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(e=>e.createdAt))}get startedAt(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(e=>e.startedAt))}get completedAt(){"use step";return this.#t.then(e=>e.runs.get(this.runId,{resolveData:`none`}).then(e=>e.completedAt))}get readable(){return this.getReadable()}getReadable(e={}){"use step";let{ops:t=[],global:n=globalThis,startIndex:r,namespace:i}=e,a=W(this.runId,i),o=this.#a(),s=I(n,t,this.runId,a,r,o),c=this.#t,l=this.runId;return Object.assign(s,{getTailIndex:async()=>(await(await c).streams.getInfo(l,a)).tailIndex})}get writable(){return this.getWritable()}getWritable(e={}){"use step";let{ops:t=[],global:n=globalThis,namespace:r}=e,i=W(this.runId,r),a,o,s=()=>(a??=this.#o().then(async e=>{let t={key:await U(this.runId,e.deploymentId,e.encryptionPublicKey),deploymentId:e.deploymentId,encryptionPublicKey:e.encryptionPublicKey};return R(o,t),t}),a);return o=de({global:n,ops:t,runId:this.runId,name:i,key:()=>s().then(({key:e})=>e)}),o}async#o(){let e=await this.#t,t=this.#r?Q.length:0,n=0;for(;;)try{return await e.runs.get(this.runId,{resolveData:`none`})}catch(e){if(!k.is(e)||n>=t)throw e;let r=Q[n];n++,await new Promise(e=>setTimeout(e,r))}}async#s(e){let t=e.expiredAt;if(t!=null&&t<=new Date)throw new E(`Run "${this.runId}" ${e.status===`completed`?`completed`:`is ${e.status}`}, but its data expired at ${t.toISOString()} and is no longer readable.`,this.runId,e.status,t);if(e.status===`completed`){let t=await this.#i(e);return await B(e.output,this.runId,t)}if(e.status===`cancelled`)throw new b(this.runId);if(e.status===`failed`){let t=await this.#i(e),n;try{n=await V(e.error,this.runId,t)}catch{n=Error(`Failed to hydrate workflow run error`)}throw new y(this.runId,n,{errorCode:e.errorCode})}throw new S(this.runId,e.status)}async#c(){let e=await this.#t,t=0,n=this.#r?Q.length:0,r=Le()?e.runs.waitForTerminalStatus?.bind(e.runs):void 0,i=0,a=Ie();for(;;){let o=Date.now();try{let t=r&&i<a;t&&i++;let n=t?await r(this.runId,{timeoutMs:Fe(),resolveData:`none`}):await e.runs.get(this.runId,{resolveData:`none`});if(n.status===`cancelled`)throw new b(this.runId);if(Ne.has(n.status)){let t=await e.runs.get(this.runId,{resolveData:`all`});return await this.#s(t)}throw new S(this.runId,n.status)}catch(e){if(S.is(e)){let e=Pe()-(Date.now()-o);e>0&&await new Promise(t=>setTimeout(t,e));continue}if(k.is(e)&&t<n){let e=Q[t];t++,await new Promise(t=>setTimeout(t,e));continue}throw e}}}};function Re(e){return new $(e)}export{Me as a,ke as c,Se as d,xe as f,Oe as i,Ae as l,K as m,Re as n,je as o,q as p,De as r,Ee as s,$ as t,Z as u};