eve 0.55.0 → 0.57.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 (683) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/src/channel/adapter-context.d.ts +1 -1
  3. package/dist/src/channel/adapter.d.ts +2 -2
  4. package/dist/src/channel/audience.d.ts +3 -3
  5. package/dist/src/channel/channel-address.js +1 -1
  6. package/dist/src/channel/conversation-context.d.ts +4 -2
  7. package/dist/src/channel/conversation-context.js +1 -1
  8. package/dist/src/channel/session.d.ts +4 -3
  9. package/dist/src/channel/session.js +1 -1
  10. package/dist/src/channel/types.d.ts +7 -4
  11. package/dist/src/chunks/{use-eve-agent-D-KQzzyW.js → use-eve-agent-C2APNCdP.js} +45 -22
  12. package/dist/src/chunks/{use-eve-agent-CxPlg0KL.js → use-eve-agent-D0YnDLi_.js} +45 -22
  13. package/dist/src/cli/commands/init.d.ts +2 -6
  14. package/dist/src/cli/commands/init.js +1 -1
  15. package/dist/src/cli/commands/registry-metadata.d.ts +0 -18
  16. package/dist/src/cli/commands/registry-metadata.js +1 -1
  17. package/dist/src/cli/commands/registry-pnpm-build-policy-flow.js +1 -1
  18. package/dist/src/cli/commands/registry.js +1 -1
  19. package/dist/src/cli/commands/trace-detail.js +1 -1
  20. package/dist/src/cli/dev/environment.js +1 -1
  21. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  22. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  23. package/dist/src/cli/dev/tui/blocks.d.ts +3 -6
  24. package/dist/src/cli/dev/tui/blocks.js +3 -3
  25. package/dist/src/cli/dev/tui/command-typeahead.js +1 -1
  26. package/dist/src/cli/dev/tui/markdown.d.ts +8 -1
  27. package/dist/src/cli/dev/tui/markdown.js +7 -7
  28. package/dist/src/cli/dev/tui/message-queue.d.ts +11 -7
  29. package/dist/src/cli/dev/tui/message-queue.js +1 -1
  30. package/dist/src/cli/dev/tui/model-editor.d.ts +1 -1
  31. package/dist/src/cli/dev/tui/model-editor.js +1 -1
  32. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +0 -3
  33. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  34. package/dist/src/cli/dev/tui/prompt-commands.d.ts +1 -1
  35. package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
  36. package/dist/src/cli/dev/tui/question-panel.js +1 -1
  37. package/dist/src/cli/dev/tui/remote-auth-result.js +1 -1
  38. package/dist/src/cli/dev/tui/remote-auth.js +1 -1
  39. package/dist/src/cli/dev/tui/remote-startup.d.ts +10 -0
  40. package/dist/src/cli/dev/tui/remote-startup.js +1 -0
  41. package/dist/src/cli/dev/tui/runner.d.ts +16 -19
  42. package/dist/src/cli/dev/tui/runner.js +3 -1
  43. package/dist/src/cli/dev/tui/setup-commands.d.ts +7 -13
  44. package/dist/src/cli/dev/tui/setup-commands.js +2 -2
  45. package/dist/src/cli/dev/tui/setup-issues.d.ts +1 -1
  46. package/dist/src/cli/dev/tui/setup-issues.js +1 -1
  47. package/dist/src/cli/dev/tui/setup-panel.d.ts +5 -17
  48. package/dist/src/cli/dev/tui/setup-panel.js +5 -6
  49. package/dist/src/cli/dev/tui/status-line.d.ts +1 -8
  50. package/dist/src/cli/dev/tui/status-line.js +1 -1
  51. package/dist/src/cli/dev/tui/steering-stream.d.ts +15 -0
  52. package/dist/src/cli/dev/tui/steering-stream.js +1 -0
  53. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +8 -3
  54. package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
  55. package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +2 -2
  56. package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
  57. package/dist/src/cli/dev/tui/theme.d.ts +0 -2
  58. package/dist/src/cli/dev/tui/theme.js +1 -1
  59. package/dist/src/cli/dev/tui/tui.d.ts +4 -1
  60. package/dist/src/cli/dev/tui/vercel-status.d.ts +4 -2
  61. package/dist/src/cli/dev/tui/vercel-status.js +1 -1
  62. package/dist/src/cli/run.js +1 -1
  63. package/dist/src/cli/telemetry/index.d.ts +1 -1
  64. package/dist/src/cli/telemetry/index.js +1 -1
  65. package/dist/src/cli/ui/terminal-text.js +1 -1
  66. package/dist/src/client/agent-info-schema.d.ts +2 -57
  67. package/dist/src/client/agent-info-schema.js +1 -1
  68. package/dist/src/client/eve-agent-store-state.d.ts +19 -0
  69. package/dist/src/client/eve-agent-store.js +1 -1
  70. package/dist/src/client/ndjson.d.ts +2 -0
  71. package/dist/src/client/ndjson.js +3 -3
  72. package/dist/src/client/open-stream.d.ts +1 -0
  73. package/dist/src/client/open-stream.js +1 -1
  74. package/dist/src/compiled/.vendor-stamp.json +1 -1
  75. package/dist/src/compiled/@workflow/core/index.js +2 -2
  76. package/dist/src/compiled/@workflow/core/private.js +1 -1
  77. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -0
  78. package/dist/src/compiled/@workflow/core/runtime.js +2 -2
  79. package/dist/src/compiled/@workflow/core/serialization.js +1 -0
  80. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  81. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  82. package/dist/src/compiled/@workflow/world-vercel/index.js +2 -2
  83. package/dist/src/compiled/_chunks/workflow/attribute-changes-DTFAjP0J.js +6 -0
  84. package/dist/src/compiled/_chunks/workflow/{dist-PLkAQ-U7.js → dist-C5KCXSdI.js} +1 -1
  85. package/dist/src/compiled/_chunks/workflow/{frames-BvATzM2t.js → frames-DJw9L4rO.js} +3 -3
  86. package/dist/src/compiled/_chunks/workflow/global-DFW-hO6M.js +1 -0
  87. package/dist/src/compiled/_chunks/workflow/helpers-ClCA9Lmc.js +1 -0
  88. package/dist/src/compiled/_chunks/workflow/logger-D6vwIEf9.js +13 -0
  89. package/dist/src/compiled/_chunks/workflow/resume-hook-_baK8jaT.js +1 -0
  90. package/dist/src/compiled/_chunks/workflow/run-CRdL17z4.js +1 -0
  91. package/dist/src/compiled/_chunks/workflow/serialization-CWYPL4Eq.js +3 -0
  92. package/dist/src/compiled/_chunks/workflow/sleep-BL0kgJnT.js +1 -0
  93. package/dist/src/compiled/_chunks/workflow/wait-until-DyIt9lEx.js +1 -0
  94. package/dist/src/compiled/_chunks/workflow/{ws-transport-CVezyWwZ.js → ws-transport-Dl5FG4Sw.js} +1 -1
  95. package/dist/src/compiler/extension-compatibility.d.ts +27 -8
  96. package/dist/src/compiler/extension-compatibility.js +1 -1
  97. package/dist/src/compiler/manifest.d.ts +12 -11
  98. package/dist/src/compiler/manifest.js +1 -1
  99. package/dist/src/compiler/normalize-manifest.js +1 -1
  100. package/dist/src/compiler/normalize-tool.d.ts +0 -3
  101. package/dist/src/compiler/normalize-tool.js +1 -1
  102. package/dist/src/compiler/validate-artifact.js +1 -1
  103. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  104. package/dist/src/context/keys.d.ts +5 -1
  105. package/dist/src/context/keys.js +1 -1
  106. package/dist/src/eve-channel/audience.d.ts +2 -2
  107. package/dist/src/eve-channel/audience.js +1 -1
  108. package/dist/src/eve-channel/index.js +1 -1
  109. package/dist/src/eve-channel/request.js +4 -3
  110. package/dist/src/eve-channel/types.d.ts +5 -5
  111. package/dist/src/execution/activity-cohort.js +1 -1
  112. package/dist/src/execution/activity-collector.js +1 -1
  113. package/dist/src/execution/authorization-callback-match.d.ts +2 -1
  114. package/dist/src/execution/authorization-callback-match.js +1 -1
  115. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  116. package/dist/src/execution/cancel-indexed-session-tasks-step.js +1 -1
  117. package/dist/src/execution/cancelled-model-call-batch.d.ts +1 -1
  118. package/dist/src/execution/connections/callback-route.d.ts +1 -11
  119. package/dist/src/execution/connections/callback-route.js +1 -1
  120. package/dist/src/execution/continuation-conflict-step.d.ts +0 -1
  121. package/dist/src/execution/continuation-conflict-step.js +1 -1
  122. package/dist/src/execution/coordination-dispatch-shared.d.ts +1 -1
  123. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  124. package/dist/src/execution/coordination-dispatch-step.d.ts +2 -2
  125. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  126. package/dist/src/execution/create-session-step.d.ts +1 -1
  127. package/dist/src/execution/create-session-step.js +1 -1
  128. package/dist/src/execution/durable-session-store.d.ts +10 -49
  129. package/dist/src/execution/durable-session-store.js +1 -1
  130. package/dist/src/execution/dynamic-workflow/program-step.d.ts +21 -0
  131. package/dist/src/execution/dynamic-workflow/program-step.js +1 -0
  132. package/dist/src/execution/dynamic-workflow/schema.d.ts +36 -0
  133. package/dist/src/execution/dynamic-workflow/schema.js +1 -0
  134. package/dist/src/execution/dynamic-workflow/security-step.d.ts +3 -0
  135. package/dist/src/execution/dynamic-workflow/security-step.js +1 -0
  136. package/dist/src/execution/dynamic-workflow/tool.d.ts +8 -0
  137. package/dist/src/execution/dynamic-workflow/tool.js +1 -0
  138. package/dist/src/execution/dynamic-workflow/workflow.d.ts +10 -0
  139. package/dist/src/execution/dynamic-workflow/workflow.js +1 -0
  140. package/dist/src/execution/eve-workflow-attributes.d.ts +2 -17
  141. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  142. package/dist/src/execution/hook-ownership.d.ts +2 -4
  143. package/dist/src/execution/hook-ownership.js +1 -1
  144. package/dist/src/execution/legacy-session/authorization.d.ts +9 -0
  145. package/dist/src/execution/legacy-session/authorization.js +1 -0
  146. package/dist/src/execution/legacy-session/completion-step.d.ts +10 -0
  147. package/dist/src/execution/legacy-session/completion-step.js +1 -0
  148. package/dist/src/execution/legacy-session/inbox.d.ts +24 -0
  149. package/dist/src/execution/legacy-session/inbox.js +1 -0
  150. package/dist/src/execution/legacy-session/input.d.ts +19 -0
  151. package/dist/src/execution/legacy-session/input.js +1 -0
  152. package/dist/src/execution/legacy-session/interrupt-step.d.ts +3 -0
  153. package/dist/src/execution/legacy-session/interrupt-step.js +1 -0
  154. package/dist/src/execution/legacy-session/prepare-step.d.ts +24 -0
  155. package/dist/src/execution/legacy-session/prepare-step.js +1 -0
  156. package/dist/src/execution/legacy-session/snapshot.d.ts +12 -0
  157. package/dist/src/execution/legacy-session/snapshot.js +1 -0
  158. package/dist/src/execution/legacy-session/turn-workflow.d.ts +8 -0
  159. package/dist/src/execution/legacy-session/turn-workflow.js +1 -0
  160. package/dist/src/execution/model-call-batching.d.ts +1 -0
  161. package/dist/src/execution/model-call-batching.js +1 -1
  162. package/dist/src/execution/node-step.d.ts +1 -5
  163. package/dist/src/execution/node-step.js +1 -1
  164. package/dist/src/execution/proxied-deliver-step.d.ts +2 -20
  165. package/dist/src/execution/proxied-deliver-step.js +1 -1
  166. package/dist/src/execution/reconcile-session-continuation-token.d.ts +1 -1
  167. package/dist/src/execution/report-dropped-wire-payload-step.d.ts +1 -1
  168. package/dist/src/execution/route-child-delivery.d.ts +2 -2
  169. package/dist/src/execution/route-child-delivery.js +1 -1
  170. package/dist/src/execution/runtime-context.js +1 -1
  171. package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
  172. package/dist/src/execution/session/accepted-deployment.d.ts +3 -0
  173. package/dist/src/execution/session/accepted-deployment.js +1 -0
  174. package/dist/src/execution/session/admission.d.ts +38 -0
  175. package/dist/src/execution/session/admission.js +1 -0
  176. package/dist/src/execution/session/entry-input.d.ts +42 -0
  177. package/dist/src/execution/session/entry-input.js +1 -0
  178. package/dist/src/execution/session/entry.d.ts +13 -0
  179. package/dist/src/execution/session/entry.js +1 -0
  180. package/dist/src/execution/session/event-sink.d.ts +31 -0
  181. package/dist/src/execution/session/event-sink.js +1 -0
  182. package/dist/src/execution/session/finalization.d.ts +33 -0
  183. package/dist/src/execution/session/finalization.js +1 -0
  184. package/dist/src/execution/session/handoff-steps.d.ts +22 -0
  185. package/dist/src/execution/session/handoff-steps.js +1 -0
  186. package/dist/src/execution/session/handoff.d.ts +69 -0
  187. package/dist/src/execution/session/handoff.js +1 -0
  188. package/dist/src/execution/session/hook-tokens.d.ts +11 -0
  189. package/dist/src/execution/session/hook-tokens.js +1 -0
  190. package/dist/src/execution/session/input-queue.d.ts +72 -0
  191. package/dist/src/execution/session/input-queue.js +1 -0
  192. package/dist/src/execution/session/next-input.d.ts +32 -0
  193. package/dist/src/execution/session/next-input.js +1 -0
  194. package/dist/src/execution/{pending-turn-state.d.ts → session/pending-turn-state.d.ts} +0 -1
  195. package/dist/src/execution/{pending-turn-state.js → session/pending-turn-state.js} +1 -1
  196. package/dist/src/execution/session/program.d.ts +47 -0
  197. package/dist/src/execution/session/program.js +1 -0
  198. package/dist/src/execution/session/route-selected-delivery.d.ts +9 -0
  199. package/dist/src/execution/session/route-selected-delivery.js +1 -0
  200. package/dist/src/execution/session/state-cursor.d.ts +31 -0
  201. package/dist/src/execution/session/state-cursor.js +1 -0
  202. package/dist/src/execution/{session-timeout-control.d.ts → session/timeout-control.d.ts} +1 -1
  203. package/dist/src/execution/session/timeout-control.js +1 -0
  204. package/dist/src/execution/{session-timeout-steps.d.ts → session/timeout-steps.d.ts} +3 -2
  205. package/dist/src/execution/session/timeout-steps.js +1 -0
  206. package/dist/src/execution/{session-timeout-workflow.d.ts → session/timeout-workflow.d.ts} +3 -1
  207. package/dist/src/execution/session/timeout-workflow.js +1 -0
  208. package/dist/src/execution/session/timeout.d.ts +3 -0
  209. package/dist/src/execution/session/timeout.js +1 -0
  210. package/dist/src/execution/session/turn-step-result.d.ts +4 -0
  211. package/dist/src/execution/session/turn-step-result.js +1 -0
  212. package/dist/src/execution/session/turn-step-types.d.ts +68 -0
  213. package/dist/src/execution/session/turn-step-types.js +1 -0
  214. package/dist/src/execution/{workflow-steps.d.ts → session/turn-step.d.ts} +1 -2
  215. package/dist/src/execution/session/turn-step.js +1 -0
  216. package/dist/src/execution/session/turn.d.ts +31 -0
  217. package/dist/src/execution/session/turn.js +1 -0
  218. package/dist/src/execution/session-inbox/address.d.ts +21 -0
  219. package/dist/src/execution/session-inbox/address.js +1 -0
  220. package/dist/src/execution/session-inbox/inbox.d.ts +54 -0
  221. package/dist/src/execution/session-inbox/inbox.js +1 -0
  222. package/dist/src/execution/session-inbox/protocol.d.ts +10 -0
  223. package/dist/src/execution/session-inbox/protocol.js +1 -0
  224. package/dist/src/execution/session-inbox/release-step.d.ts +5 -0
  225. package/dist/src/execution/session-inbox/release-step.js +1 -0
  226. package/dist/src/execution/session-inbox/resume.d.ts +21 -0
  227. package/dist/src/execution/session-inbox/resume.js +1 -0
  228. package/dist/src/execution/{turn-workflow-tool-run.d.ts → session-workflow-tool-run.d.ts} +2 -2
  229. package/dist/src/execution/session-workflow-tool-run.js +1 -0
  230. package/dist/src/execution/session.d.ts +0 -1
  231. package/dist/src/execution/session.js +2 -2
  232. package/dist/src/execution/settle-cancelled-turn-step.d.ts +2 -2
  233. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  234. package/dist/src/execution/skills/instructions.js +1 -1
  235. package/dist/src/execution/stable-workflow-names.d.ts +1 -1
  236. package/dist/src/execution/stable-workflow-names.js +1 -1
  237. package/dist/src/execution/task-input-response-route.js +1 -1
  238. package/dist/src/execution/tasks/child/steps.d.ts +1 -1
  239. package/dist/src/execution/tasks/child/steps.js +1 -1
  240. package/dist/src/execution/tasks/child/workflow.js +1 -1
  241. package/dist/src/execution/tasks/parent/delegate.d.ts +7 -0
  242. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  243. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  244. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  245. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  246. package/dist/src/execution/terminal-session-completion-step.d.ts +1 -1
  247. package/dist/src/execution/terminal-session-event.d.ts +1 -1
  248. package/dist/src/execution/terminal-session-event.js +1 -1
  249. package/dist/src/execution/terminal-session-failure-step.d.ts +1 -1
  250. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  251. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  252. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  253. package/dist/src/execution/tools/subagent/accept-event-step.js +1 -1
  254. package/dist/src/execution/tools/subagent/emit-called-step.d.ts +1 -1
  255. package/dist/src/execution/tools/subagent/emit-called-step.js +1 -1
  256. package/dist/src/execution/tools/subagent/invoke-agent.d.ts +1 -1
  257. package/dist/src/execution/tools/subagent/invoke-agent.js +1 -1
  258. package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +6 -0
  259. package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
  260. package/dist/src/execution/tools/subagent/invoke-step.d.ts +2 -0
  261. package/dist/src/execution/tools/subagent/invoke-step.js +1 -1
  262. package/dist/src/execution/tools/subagent/steer.d.ts +13 -0
  263. package/dist/src/execution/tools/subagent/steer.js +1 -0
  264. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +1 -1
  265. package/dist/src/execution/tools/subagent/task-agent-requests.js +1 -1
  266. package/dist/src/execution/tools/subagent/task-cancel.js +1 -1
  267. package/dist/src/execution/tools/workflow/ask.d.ts +0 -9
  268. package/dist/src/execution/tools/workflow/ask.js +1 -1
  269. package/dist/src/execution/tools/workflow/body.d.ts +0 -2
  270. package/dist/src/execution/tools/workflow/body.js +1 -1
  271. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.d.ts +1 -1
  272. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.js +1 -1
  273. package/dist/src/execution/tools/workflow/messages.d.ts +0 -1
  274. package/dist/src/execution/tools/workflow/messages.js +1 -1
  275. package/dist/src/execution/tools/workflow/owner.d.ts +3 -1
  276. package/dist/src/execution/tools/workflow/owner.js +1 -1
  277. package/dist/src/execution/tools/workflow/resume-hook-step.d.ts +1 -1
  278. package/dist/src/execution/tools/workflow/step-context.d.ts +0 -1
  279. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  280. package/dist/src/execution/tools/workflow/step.js +1 -1
  281. package/dist/src/execution/tools/workflow/workflow.js +1 -1
  282. package/dist/src/execution/workflow-runtime.d.ts +15 -18
  283. package/dist/src/execution/workflow-runtime.js +1 -1
  284. package/dist/src/harness/advertised-tools.d.ts +0 -3
  285. package/dist/src/harness/advertised-tools.js +1 -1
  286. package/dist/src/harness/authorization.d.ts +5 -37
  287. package/dist/src/harness/authorization.js +1 -1
  288. package/dist/src/harness/compaction.js +1 -1
  289. package/dist/src/harness/coordination.js +1 -1
  290. package/dist/src/harness/emission-state.d.ts +1 -0
  291. package/dist/src/harness/emission.js +1 -1
  292. package/dist/src/harness/generation-steering.d.ts +22 -0
  293. package/dist/src/harness/generation-steering.js +1 -0
  294. package/dist/src/harness/messages.d.ts +1 -1
  295. package/dist/src/harness/messages.js +1 -1
  296. package/dist/src/harness/prompt-cache.js +1 -1
  297. package/dist/src/harness/proxy-input-requests.d.ts +1 -1
  298. package/dist/src/harness/proxy-input-requests.js +1 -1
  299. package/dist/src/harness/semantic-errors/rules/gateway.js +1 -1
  300. package/dist/src/harness/semantic-errors/signals.js +1 -1
  301. package/dist/src/harness/session-limit-enforcement.js +1 -1
  302. package/dist/src/harness/tool-loop.js +2 -2
  303. package/dist/src/harness/types.d.ts +2 -21
  304. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  305. package/dist/src/instrumentation/channel-delivery.js +1 -1
  306. package/dist/src/instrumentation/content.js +1 -1
  307. package/dist/src/instrumentation/lifecycle.d.ts +6 -7
  308. package/dist/src/instrumentation/native-events.d.ts +2 -0
  309. package/dist/src/instrumentation/native-events.js +1 -1
  310. package/dist/src/instrumentation/runtime.js +1 -1
  311. package/dist/src/instrumentation/session-context.d.ts +2 -0
  312. package/dist/src/instrumentation/session-context.js +1 -1
  313. package/dist/src/internal/application/compiled-artifacts.js +3 -2
  314. package/dist/src/internal/application/package.js +1 -1
  315. package/dist/src/internal/authored-definition/connection.js +1 -1
  316. package/dist/src/internal/authored-definition/schema-backed.d.ts +3 -4
  317. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  318. package/dist/src/internal/gateway.d.ts +1 -0
  319. package/dist/src/internal/gateway.js +1 -1
  320. package/dist/src/internal/model-auth/api-key.d.ts +7 -0
  321. package/dist/src/internal/model-auth/api-key.js +1 -0
  322. package/dist/src/internal/model-auth/available-models.d.ts +2 -0
  323. package/dist/src/internal/model-auth/available-models.js +1 -0
  324. package/dist/src/internal/model-auth/development-broker-client.d.ts +3 -0
  325. package/dist/src/internal/model-auth/development-broker-client.js +1 -0
  326. package/dist/src/internal/model-auth/development-broker-protocol.d.ts +12 -0
  327. package/dist/src/internal/model-auth/development-broker-protocol.js +1 -0
  328. package/dist/src/internal/model-auth/development-broker-server.d.ts +4 -0
  329. package/dist/src/internal/model-auth/development-broker-server.js +1 -0
  330. package/dist/src/internal/model-auth/gateway-credential.d.ts +2 -0
  331. package/dist/src/internal/model-auth/gateway-credential.js +1 -0
  332. package/dist/src/internal/model-auth/store.d.ts +16 -0
  333. package/dist/src/internal/model-auth/store.js +1 -0
  334. package/dist/src/internal/model-auth/transport.d.ts +6 -0
  335. package/dist/src/internal/model-auth/transport.js +1 -0
  336. package/dist/src/internal/model-auth/vercel-cli.d.ts +7 -0
  337. package/dist/src/internal/model-auth/vercel-cli.js +1 -0
  338. package/dist/src/internal/model-auth/vercel-team.d.ts +3 -0
  339. package/dist/src/internal/model-auth/vercel-team.js +1 -0
  340. package/dist/src/internal/model-auth/vercel.d.ts +13 -0
  341. package/dist/src/internal/model-auth/vercel.js +1 -0
  342. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  343. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  344. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  345. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  346. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  347. package/dist/src/internal/nitro/host/workflow-sandbox-runtime-plugin.js +1 -1
  348. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  349. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  350. package/dist/src/internal/nitro/routes/info.js +1 -1
  351. package/dist/src/internal/resolve-model-endpoint-status.d.ts +2 -0
  352. package/dist/src/internal/resolve-model-endpoint-status.js +1 -1
  353. package/dist/src/internal/vercel/api-resource.d.ts +4 -0
  354. package/dist/src/internal/vercel/api-resource.js +1 -0
  355. package/dist/src/internal/vercel/eve-service-contribution.js +1 -1
  356. package/dist/src/internal/vercel/vercel-services-config.d.ts +2 -0
  357. package/dist/src/internal/vercel/vercel-services-config.js +1 -1
  358. package/dist/src/internal/workflow/development-world-client.js +1 -1
  359. package/dist/src/internal/workflow/development-world-server.js +1 -1
  360. package/dist/src/internal/workflow/local-world-delivery-timeouts.d.ts +1 -1
  361. package/dist/src/internal/workflow/runtime.d.ts +1 -6
  362. package/dist/src/internal/workflow/runtime.js +1 -1
  363. package/dist/src/internal/workflow/vercel-world-defaults.d.ts +4 -0
  364. package/dist/src/internal/workflow/vercel-world-defaults.js +1 -0
  365. package/dist/src/protocol/activity.js +1 -1
  366. package/dist/src/protocol/message.d.ts +8 -0
  367. package/dist/src/protocol/message.js +2 -2
  368. package/dist/src/protocol/routes.d.ts +0 -2
  369. package/dist/src/protocol/routes.js +1 -1
  370. package/dist/src/public/channels/chat-sdk/audience.d.ts +2 -2
  371. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  372. package/dist/src/public/channels/index.d.ts +1 -1
  373. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  374. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  375. package/dist/src/public/channels/telegram/audience.d.ts +2 -2
  376. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  377. package/dist/src/public/connections/index.d.ts +1 -1
  378. package/dist/src/public/definitions/channel.d.ts +2 -2
  379. package/dist/src/public/definitions/channel.js +1 -1
  380. package/dist/src/public/definitions/connections/mcp.d.ts +1 -1
  381. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  382. package/dist/src/public/models/anthropic/index.d.ts +3 -0
  383. package/dist/src/public/models/anthropic/index.js +1 -0
  384. package/dist/src/public/models/openai/chatgpt/codex-app-server.js +1 -1
  385. package/dist/src/public/models/openai/chatgpt/credential-store.js +1 -1
  386. package/dist/src/public/models/openai/chatgpt/oauth.js +1 -1
  387. package/dist/src/public/models/openai/chatgpt/transport.js +1 -1
  388. package/dist/src/public/models/openai/index.d.ts +4 -2
  389. package/dist/src/public/models/openai/index.js +1 -1
  390. package/dist/src/public/sandbox/docker-sandbox.d.ts +1 -1
  391. package/dist/src/public/sandbox/microsandbox-sandbox.d.ts +1 -1
  392. package/dist/src/public/sandbox/vercel-sandbox.d.ts +1 -1
  393. package/dist/src/public/tools/workflow.d.ts +1 -4
  394. package/dist/src/public/tools/workflow.js +1 -1
  395. package/dist/src/public/vercel/index.d.ts +2 -1
  396. package/dist/src/public/vercel/index.js +1 -1
  397. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  398. package/dist/src/runtime/agent/resolve-model.js +1 -1
  399. package/dist/src/runtime/connections/authorization-tokens.d.ts +2 -4
  400. package/dist/src/runtime/connections/principal.d.ts +6 -6
  401. package/dist/src/runtime/connections/principal.js +1 -1
  402. package/dist/src/runtime/prompt/compose.js +1 -1
  403. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  404. package/dist/src/runtime/resolve-agent.js +1 -1
  405. package/dist/src/runtime/resolve-tool.js +1 -1
  406. package/dist/src/runtime/tools/registry.js +1 -1
  407. package/dist/src/runtime/types.d.ts +3 -9
  408. package/dist/src/self-modification/agent.js +1 -1
  409. package/dist/src/self-modification/extension/classify-registry-item.d.ts +3 -3
  410. package/dist/src/self-modification/extension/classify-registry-item.js +1 -1
  411. package/dist/src/self-modification/extension/tools/search_registry.d.ts +1 -7
  412. package/dist/src/self-modification/extension/tools/search_registry.js +1 -1
  413. package/dist/src/self-modification/setup.d.ts +9 -3
  414. package/dist/src/self-modification/setup.js +2 -2
  415. package/dist/src/setup/cli/option-row.d.ts +2 -1
  416. package/dist/src/setup/cli/option-row.js +1 -1
  417. package/dist/src/setup/cli/prompt-ui.d.ts +2 -0
  418. package/dist/src/setup/cli/prompt-ui.js +1 -1
  419. package/dist/src/setup/cli/select-state.d.ts +1 -1
  420. package/dist/src/setup/cli/select-state.js +1 -1
  421. package/dist/src/setup/flows/chatgpt-auth.js +1 -1
  422. package/dist/src/setup/flows/deploy.d.ts +4 -9
  423. package/dist/src/setup/flows/deploy.js +1 -1
  424. package/dist/src/setup/flows/ensure-vercel-project.js +1 -1
  425. package/dist/src/setup/flows/install-vercel-cli.d.ts +2 -3
  426. package/dist/src/setup/flows/login.d.ts +3 -1
  427. package/dist/src/setup/flows/login.js +1 -1
  428. package/dist/src/setup/flows/model-login-connection.d.ts +36 -0
  429. package/dist/src/setup/flows/model-login-connection.js +1 -0
  430. package/dist/src/setup/flows/model-login-progress.d.ts +7 -0
  431. package/dist/src/setup/flows/model-login-progress.js +1 -0
  432. package/dist/src/setup/flows/model-login.d.ts +22 -0
  433. package/dist/src/setup/flows/model-login.js +1 -0
  434. package/dist/src/setup/flows/model-source-change.d.ts +7 -0
  435. package/dist/src/setup/flows/model-source-change.js +1 -1
  436. package/dist/src/setup/flows/model.d.ts +6 -24
  437. package/dist/src/setup/flows/model.js +1 -1
  438. package/dist/src/setup/flows/registry.d.ts +3 -19
  439. package/dist/src/setup/flows/registry.js +1 -1
  440. package/dist/src/setup/flows/vercel-model-login.d.ts +5 -0
  441. package/dist/src/setup/flows/vercel-model-login.js +1 -0
  442. package/dist/src/setup/integrations/self-modification/setup.d.ts +2 -0
  443. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  444. package/dist/src/setup/project-resolution.js +1 -1
  445. package/dist/src/setup/prompter.d.ts +3 -1
  446. package/dist/src/setup/provider-settings.d.ts +19 -6
  447. package/dist/src/setup/provider-settings.js +1 -1
  448. package/dist/src/setup/scaffold/create/project.js +6 -2
  449. package/dist/src/setup/vercel-project.js +0 -0
  450. package/dist/src/setup/with-spinner.d.ts +1 -1
  451. package/dist/src/setup/with-spinner.js +1 -1
  452. package/dist/src/shared/action-types.js +1 -1
  453. package/dist/src/shared/agent-definition.d.ts +6 -4
  454. package/dist/src/shared/channel-definition.d.ts +2 -2
  455. package/dist/src/shared/chatgpt-model.d.ts +2 -2
  456. package/dist/src/shared/chatgpt-model.js +1 -1
  457. package/dist/src/shared/connection-types.d.ts +20 -7
  458. package/dist/src/shared/conversation-context.d.ts +15 -0
  459. package/dist/src/shared/model-connection.d.ts +17 -0
  460. package/dist/src/shared/model-connection.js +1 -0
  461. package/dist/src/shared/model-endpoint-status.d.ts +2 -1
  462. package/dist/src/shared/model-helper.d.ts +26 -0
  463. package/dist/src/shared/model-helper.js +1 -0
  464. package/dist/src/shared/package-version.d.ts +2 -0
  465. package/dist/src/shared/package-version.js +1 -0
  466. package/dist/src/shared/validate-authorization.js +1 -1
  467. package/dist/src/shared/vercel-services.d.ts +1 -0
  468. package/dist/src/shared/vercel-services.js +1 -1
  469. package/dist/src/shared/workflow-sandbox.d.ts +18 -12
  470. package/dist/src/shared/workflow-sandbox.js +1 -1
  471. package/dist/src/source-change/agent-config-ast.d.ts +6 -0
  472. package/dist/src/source-change/agent-config-ast.js +1 -1
  473. package/dist/src/source-change/apply-model-selection.d.ts +3 -1
  474. package/dist/src/source-change/apply-model-selection.js +1 -2
  475. package/dist/src/source-change/static-source-change.js +1 -1
  476. package/dist/src/subagents/callback-route.js +1 -1
  477. package/dist/src/subagents/event-proxy-step.d.ts +3 -3
  478. package/dist/src/subagents/event-proxy-step.js +1 -1
  479. package/dist/src/subagents/handle-dispatch.d.ts +12 -2
  480. package/dist/src/subagents/handle-dispatch.js +1 -1
  481. package/dist/src/subagents/handles/operation-id.d.ts +1 -1
  482. package/dist/src/subagents/handles/query.d.ts +0 -6
  483. package/dist/src/subagents/handles/query.js +1 -1
  484. package/dist/src/subagents/handles/state-key.d.ts +1 -1
  485. package/dist/src/subagents/handles/store.d.ts +1 -1
  486. package/dist/src/subagents/handles/store.js +1 -1
  487. package/dist/src/subagents/hitl-proxy.d.ts +1 -1
  488. package/dist/src/subagents/parent-notification.d.ts +2 -2
  489. package/dist/src/subagents/parent-result.d.ts +1 -1
  490. package/dist/src/subagents/remote-dispatch.d.ts +1 -1
  491. package/dist/src/subagents/remote-dispatch.js +1 -1
  492. package/dist/src/subagents/start-local.js +1 -1
  493. package/dist/src/subagents/tool.js +1 -1
  494. package/dist/src/svelte/index.js +1 -1
  495. package/dist/src/svelte/use-eve-agent.js +1 -1
  496. package/dist/src/tasks/session-index.d.ts +11 -0
  497. package/dist/src/tasks/session-index.js +1 -1
  498. package/dist/src/tasks/types.d.ts +1 -1
  499. package/dist/src/tools/auth.d.ts +5 -6
  500. package/dist/src/tools/provided/workflow.d.ts +12 -0
  501. package/dist/src/tools/provided/workflow.js +1 -0
  502. package/dist/src/tools/workflow-program-input.d.ts +6 -0
  503. package/dist/src/tools/workflow-program-input.js +1 -0
  504. package/dist/src/tracing/agent-otel-provider.js +2 -2
  505. package/dist/src/tracing/agent-otel-runtime-context.d.ts +2 -1
  506. package/dist/src/tracing/agent-otel-runtime-context.js +1 -1
  507. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  508. package/dist/src/tracing/agent-otel-usage.js +1 -1
  509. package/dist/src/tracing/agent-span-contract.d.ts +1 -0
  510. package/dist/src/tracing/agent-span-contract.js +1 -1
  511. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  512. package/dist/src/tracing/agent-trace-context-codec.js +1 -1
  513. package/dist/src/tracing/agent-trace-state.d.ts +2 -0
  514. package/dist/src/tracing/content-attributes.js +1 -1
  515. package/dist/src/tracing/local-instrumentation-runtime.d.ts +1 -1
  516. package/dist/src/tracing/local-instrumentation-runtime.js +1 -1
  517. package/dist/src/vue/index.js +1 -1
  518. package/dist/src/vue/use-eve-agent.js +1 -1
  519. package/docs/agent-config.md +23 -23
  520. package/docs/channels/chat-sdk.mdx +11 -2
  521. package/docs/channels/custom.mdx +32 -16
  522. package/docs/channels/eve.mdx +21 -19
  523. package/docs/channels/linear.mdx +7 -3
  524. package/docs/channels/linq.mdx +1 -1
  525. package/docs/channels/overview.mdx +17 -2
  526. package/docs/channels/photon.mdx +4 -1
  527. package/docs/channels/slack.mdx +12 -2
  528. package/docs/concepts/execution-model-and-durability.mdx +62 -13
  529. package/docs/concepts/sessions-runs-and-streaming.md +14 -5
  530. package/docs/connections/mcp.mdx +4 -1
  531. package/docs/connections/openapi.mdx +8 -2
  532. package/docs/connections/overview.mdx +16 -13
  533. package/docs/getting-started.mdx +8 -4
  534. package/docs/guides/deployment/self-hosting.md +1 -1
  535. package/docs/guides/deployment/vercel.mdx +3 -3
  536. package/docs/guides/dev-tui.md +58 -31
  537. package/docs/guides/dynamic-capabilities.md +4 -4
  538. package/docs/guides/frontend/overview.mdx +3 -1
  539. package/docs/guides/hooks.md +1 -1
  540. package/docs/guides/instrumentation/meta.json +5 -0
  541. package/docs/guides/instrumentation/otel.mdx +149 -0
  542. package/docs/guides/instrumentation/overview.md +199 -0
  543. package/docs/guides/instrumentation/providers.mdx +169 -0
  544. package/docs/guides/meta.json +0 -1
  545. package/docs/guides/remote-agents.md +19 -21
  546. package/docs/install-integrations.mdx +2 -4
  547. package/docs/memory/custom-provider.md +1 -1
  548. package/docs/patterns/multi-tenant-auth.md +3 -3
  549. package/docs/protocols/acp.md +1 -1
  550. package/docs/reference/cli.md +16 -16
  551. package/docs/reference/telemetry.md +1 -1
  552. package/docs/reference/typescript-api.md +21 -14
  553. package/docs/sandbox.mdx +3 -3
  554. package/docs/subagents/index.mdx +4 -4
  555. package/docs/tools/workflows.mdx +57 -2
  556. package/docs/tutorial/how-it-runs.mdx +1 -1
  557. package/package.json +6 -1
  558. package/dist/src/cli/commands/init-repl.d.ts +0 -80
  559. package/dist/src/cli/commands/init-repl.js +0 -1
  560. package/dist/src/cli/commands/init-self-modification.d.ts +0 -7
  561. package/dist/src/cli/commands/init-self-modification.js +0 -1
  562. package/dist/src/cli/commands/registry-package.d.ts +0 -52
  563. package/dist/src/cli/commands/registry-package.js +0 -1
  564. package/dist/src/cli/dev/tui/prompt-placeholder.d.ts +0 -12
  565. package/dist/src/cli/dev/tui/prompt-placeholder.js +0 -1
  566. package/dist/src/cli/dev/tui/remote-auth-command.d.ts +0 -11
  567. package/dist/src/cli/dev/tui/remote-auth-command.js +0 -3
  568. package/dist/src/compiled/_chunks/workflow/attribute-changes-BAcgmlXp.js +0 -20
  569. package/dist/src/compiled/_chunks/workflow/private-CFJkQA7R.js +0 -1
  570. package/dist/src/compiled/_chunks/workflow/resume-hook-BEHe0Uut.js +0 -1
  571. package/dist/src/compiled/_chunks/workflow/run-ChHLjaCt.js +0 -1
  572. package/dist/src/compiled/_chunks/workflow/sleep-BB2HuVie.js +0 -1
  573. package/dist/src/execution/accepted-delivery-deployment.d.ts +0 -7
  574. package/dist/src/execution/accepted-delivery-deployment.js +0 -1
  575. package/dist/src/execution/dispatch-turn-step.d.ts +0 -5
  576. package/dist/src/execution/dispatch-turn-step.js +0 -1
  577. package/dist/src/execution/durable-session-migrations/chain.d.ts +0 -38
  578. package/dist/src/execution/durable-session-migrations/chain.js +0 -1
  579. package/dist/src/execution/durable-session-migrations/snapshot.d.ts +0 -6
  580. package/dist/src/execution/durable-session-migrations/snapshot.js +0 -1
  581. package/dist/src/execution/durable-session-migrations/turn-workflow-v0-to-v1.d.ts +0 -12
  582. package/dist/src/execution/durable-session-migrations/turn-workflow-v0-to-v1.js +0 -1
  583. package/dist/src/execution/durable-session-migrations/turn-workflow-v1-to-v2.d.ts +0 -2
  584. package/dist/src/execution/durable-session-migrations/turn-workflow-v1-to-v2.js +0 -1
  585. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +0 -88
  586. package/dist/src/execution/durable-session-migrations/turn-workflow.js +0 -1
  587. package/dist/src/execution/forward-turn-cancellation-step.d.ts +0 -6
  588. package/dist/src/execution/forward-turn-cancellation-step.js +0 -1
  589. package/dist/src/execution/forward-turn-delivery-step.d.ts +0 -6
  590. package/dist/src/execution/forward-turn-delivery-step.js +0 -1
  591. package/dist/src/execution/inline-turn.d.ts +0 -31
  592. package/dist/src/execution/inline-turn.js +0 -1
  593. package/dist/src/execution/next-driver-action.d.ts +0 -93
  594. package/dist/src/execution/parked-delivery-wait.d.ts +0 -54
  595. package/dist/src/execution/parked-delivery-wait.js +0 -1
  596. package/dist/src/execution/session-command-inbox.d.ts +0 -52
  597. package/dist/src/execution/session-command-inbox.js +0 -1
  598. package/dist/src/execution/session-command-token.d.ts +0 -6
  599. package/dist/src/execution/session-command-token.js +0 -1
  600. package/dist/src/execution/session-state-cursor.d.ts +0 -25
  601. package/dist/src/execution/session-state-cursor.js +0 -1
  602. package/dist/src/execution/session-timeout-control.js +0 -1
  603. package/dist/src/execution/session-timeout-steps.js +0 -1
  604. package/dist/src/execution/session-timeout-workflow.js +0 -1
  605. package/dist/src/execution/session-timeout.d.ts +0 -2
  606. package/dist/src/execution/session-timeout.js +0 -1
  607. package/dist/src/execution/turn-cancellation-control.d.ts +0 -30
  608. package/dist/src/execution/turn-cancellation-control.js +0 -1
  609. package/dist/src/execution/turn-cancellation-token.d.ts +0 -10
  610. package/dist/src/execution/turn-cancellation-token.js +0 -1
  611. package/dist/src/execution/turn-control-protocol.d.ts +0 -36
  612. package/dist/src/execution/turn-control-protocol.js +0 -1
  613. package/dist/src/execution/turn-control-receiver.d.ts +0 -54
  614. package/dist/src/execution/turn-control-receiver.js +0 -1
  615. package/dist/src/execution/turn-dispatch.d.ts +0 -39
  616. package/dist/src/execution/turn-dispatch.js +0 -1
  617. package/dist/src/execution/turn-execution-cursor.d.ts +0 -49
  618. package/dist/src/execution/turn-execution-cursor.js +0 -1
  619. package/dist/src/execution/turn-workflow-tool-run.js +0 -1
  620. package/dist/src/execution/turn-workflow.d.ts +0 -13
  621. package/dist/src/execution/turn-workflow.js +0 -1
  622. package/dist/src/execution/wire/session-inbox-contract.d.ts +0 -38
  623. package/dist/src/execution/wire/session-inbox-contract.js +0 -1
  624. package/dist/src/execution/wire/session-inbox-encoder.d.ts +0 -47
  625. package/dist/src/execution/wire/session-inbox-encoder.js +0 -1
  626. package/dist/src/execution/wire/session-inbox-resume.d.ts +0 -12
  627. package/dist/src/execution/wire/session-inbox-resume.js +0 -1
  628. package/dist/src/execution/wire/session-inbox-wire.d.ts +0 -29
  629. package/dist/src/execution/wire/session-inbox-wire.js +0 -1
  630. package/dist/src/execution/wire/session-inbox-wire.v0.d.ts +0 -5
  631. package/dist/src/execution/wire/session-inbox-wire.v0.js +0 -1
  632. package/dist/src/execution/wire/session-inbox-wire.v1.d.ts +0 -237
  633. package/dist/src/execution/wire/session-inbox-wire.v1.js +0 -1
  634. package/dist/src/execution/wire/session-inbox-wire.v2-migration.d.ts +0 -2
  635. package/dist/src/execution/wire/session-inbox-wire.v2-migration.js +0 -1
  636. package/dist/src/execution/wire/session-inbox-wire.v2.d.ts +0 -478
  637. package/dist/src/execution/wire/session-inbox-wire.v2.js +0 -1
  638. package/dist/src/execution/wire/session-inbox-wire.v2.migration.d.ts +0 -3
  639. package/dist/src/execution/wire/session-inbox-wire.v2.migration.js +0 -1
  640. package/dist/src/execution/wire/session-inbox-wire.v3.d.ts +0 -480
  641. package/dist/src/execution/wire/session-inbox-wire.v3.js +0 -1
  642. package/dist/src/execution/wire/session-inbox-wire.v3.migration.d.ts +0 -3
  643. package/dist/src/execution/wire/session-inbox-wire.v3.migration.js +0 -1
  644. package/dist/src/execution/wire/session-inbox-wire.v4.d.ts +0 -267
  645. package/dist/src/execution/wire/session-inbox-wire.v4.js +0 -1
  646. package/dist/src/execution/wire/session-inbox-wire.v4.migration.d.ts +0 -3
  647. package/dist/src/execution/wire/session-inbox-wire.v4.migration.js +0 -1
  648. package/dist/src/execution/wire/session-inbox-wire.v5.d.ts +0 -341
  649. package/dist/src/execution/wire/session-inbox-wire.v5.js +0 -1
  650. package/dist/src/execution/wire/session-inbox-wire.v5.migration.d.ts +0 -3
  651. package/dist/src/execution/wire/session-inbox-wire.v5.migration.js +0 -1
  652. package/dist/src/execution/wire/session-inbox-wire.v6.d.ts +0 -341
  653. package/dist/src/execution/wire/session-inbox-wire.v6.js +0 -1
  654. package/dist/src/execution/wire/session-inbox-wire.v7.d.ts +0 -342
  655. package/dist/src/execution/wire/session-inbox-wire.v7.js +0 -1
  656. package/dist/src/execution/workflow-entry-crash.d.ts +0 -39
  657. package/dist/src/execution/workflow-entry-crash.js +0 -1
  658. package/dist/src/execution/workflow-entry-finalization.d.ts +0 -28
  659. package/dist/src/execution/workflow-entry-finalization.js +0 -1
  660. package/dist/src/execution/workflow-entry.d.ts +0 -37
  661. package/dist/src/execution/workflow-entry.js +0 -1
  662. package/dist/src/execution/workflow-steps.js +0 -1
  663. package/dist/src/harness/workflow-continuation-security.d.ts +0 -5
  664. package/dist/src/harness/workflow-continuation-security.js +0 -1
  665. package/dist/src/harness/workflow-interrupt-state.d.ts +0 -20
  666. package/dist/src/harness/workflow-interrupt-state.js +0 -1
  667. package/dist/src/harness/workflow-lifecycle.d.ts +0 -32
  668. package/dist/src/harness/workflow-lifecycle.js +0 -1
  669. package/dist/src/harness/workflow-sandbox.d.ts +0 -28
  670. package/dist/src/harness/workflow-sandbox.js +0 -2
  671. package/dist/src/harness/workflow-subagent-limit.d.ts +0 -28
  672. package/dist/src/harness/workflow-subagent-limit.js +0 -1
  673. package/dist/src/harness/workflow-task-state.d.ts +0 -9
  674. package/dist/src/harness/workflow-task-state.js +0 -1
  675. package/dist/src/harness/workflow-tool-description.d.ts +0 -22
  676. package/dist/src/harness/workflow-tool-description.js +0 -37
  677. package/dist/src/subagents/handles/rebase.d.ts +0 -4
  678. package/dist/src/subagents/handles/rebase.js +0 -1
  679. package/dist/src/tools/workflow.d.ts +0 -37
  680. package/dist/src/tools/workflow.js +0 -1
  681. package/docs/guides/instrumentation-providers.md +0 -249
  682. package/docs/guides/instrumentation.md +0 -453
  683. /package/dist/src/{execution/next-driver-action.js → client/eve-agent-store-state.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DPpTSio4.js";import{C as r,O as i,S as a,b as o,c as s,f as c,g as l,i as u,o as d,r as f,s as p,u as m,w as h,y as g}from"../../_chunks/workflow/schemas-DR7NTzNe.js";import{$ as _,A as v,B as y,C as b,F as x,G as S,H as C,I as w,J as ee,K as te,L as T,M as ne,N as re,O as ie,P as ae,R as oe,S as se,U as ce,V as le,at as ue,g as de,h as E,it as fe,j as pe,l as me,mt as D,o as he,pt as ge,r as _e,tt as ve,ut as ye,x as be,y as xe}from"../../_chunks/workflow/dist-PLkAQ-U7.js";import{n as Se,t as Ce}from"../../_chunks/workflow/coerce-ro2dOxbr.js";import{A as O,O as we,_ as Te,c as Ee,d as De,g as k,o as Oe,r as ke,t as Ae,v as je,y as Me}from"../../_chunks/workflow/dist-xTushGCp.js";import{a as Ne,i as Pe,n as Fe,o as Ie,r as Le,s as Re,t as ze}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{$ as Be,A as Ve,B as He,C as Ue,D as We,E as Ge,F as Ke,G as qe,H as Je,I as Ye,J as Xe,K as Ze,L as Qe,M as $e,N as et,O as tt,P as nt,Q as rt,R as it,S as at,T as ot,V as st,W as ct,X as lt,Y as ut,Z as dt,_ as ft,a as pt,at as mt,b as A,c as ht,d as gt,et as _t,f as j,g as vt,h as yt,i as bt,it as xt,j as St,k as Ct,l as wt,m as Tt,n as Et,nt as Dt,o as Ot,p as kt,q as At,r as jt,rt as Mt,s as Nt,t as Pt,tt as Ft,u as M,v as It,w as Lt,x as Rt,y as zt,z as Bt}from"../../_chunks/workflow/frames-BvATzM2t.js";import{i as Vt,r as Ht,t as Ut}from"../../_chunks/workflow/token-util-B0OPd7oj.js";import{randomUUID as Wt}from"crypto";import*as N from"path";import{webcrypto as Gt}from"node:crypto";import{AsyncLocalStorage as Kt}from"node:async_hooks";import qt from"node:assert/strict";import*as Jt from"fs";import Yt from"assert/strict";import*as Xt from"net";function P(e,t,n){return new O(`${e}: ${t} ${n}`,{code:`INVALID_ARGUMENT`,field:t})}const Zt=`[01234567][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{25}`,Qt=RegExp(`^wrun_${Zt}$`),$t=RegExp(`^(?:step|hook|wait|attr)_${Zt}$`),en=RegExp(`^evnt_${Zt}$`),tn=RegExp(`^step_${Zt}$`),nn=RegExp(`^hook_${Zt}$`),rn=RegExp(`^wait_${Zt}$`);function an(e,t,n){if(!Number.isInteger(t)||t<1||t>n)throw P(e,`pagination.limit`,`must be an integer between 1 and ${n} (received ${t})`)}function F(e,t){if(!Qt.test(t))throw P(e,`runId`,`must be a workflow run id ('wrun_' followed by a ULID), received ${JSON.stringify(t)}`)}function on(e,t){if(!$t.test(t))throw P(e,`correlationId`,`must be a step, hook, wait, or attribute id, received ${JSON.stringify(t)}`)}function sn(e,t){if(!en.test(t))throw P(e,`eventId`,`must be an event id ('evnt_' followed by a ULID), received ${JSON.stringify(t)}`)}function cn(e,t){if(!tn.test(t))throw P(e,`stepId`,`must be a step id ('step_' followed by a ULID), received ${JSON.stringify(t)}`)}function ln(e,t){if(!nn.test(t))throw P(e,`hookId`,`must be a hook id ('hook_' followed by a ULID), received ${JSON.stringify(t)}`)}function un(e,t){if(!rn.test(t))throw P(e,`waitId`,`must be a wait id ('wait_' followed by a ULID), received ${JSON.stringify(t)}`)}function dn(e,t){let n=Object.entries(t);if(n.length>8)throw P(e,`attributes`,`may filter by at most 8 pairs (received ${n.length})`);for(let[t,r]of n){if(!fe.safeParse(t).success)throw P(e,`attributes`,`key must be 1 to 256 characters, received ${t.length} in ${JSON.stringify(t)}`);if(!ue.safeParse(r).success)throw P(e,`attributes`,`value for ${JSON.stringify(t)} must be at most 256 UTF-8 bytes (received ${new TextEncoder().encode(r).length})`)}}function fn(e,t,n){if(t===void 0&&n===void 0)return;if(t===void 0||n===void 0)throw P(e,t===void 0?`startTime`:`endTime`,`is required when ${t===void 0?`endTime`:`startTime`} is provided; supply both or neither`);let r=new Date(t).getTime(),i=new Date(n).getTime();if(!Number.isFinite(r))throw P(e,`startTime`,`must be a parseable datetime, received ${JSON.stringify(t)}`);if(!Number.isFinite(i))throw P(e,`endTime`,`must be a parseable datetime, received ${JSON.stringify(n)}`);if(r>i)throw P(e,`startTime`,`must be before or equal to endTime (received startTime=${JSON.stringify(t)}, endTime=${JSON.stringify(n)})`)}function pn(e,t,n,r){n?.limit!==void 0&&(an(e,n.limit,r),t.set(`limit`,n.limit.toString())),n?.cursor&&t.set(`cursor`,n.cursor),n?.sortOrder&&t.set(`sortOrder`,n.sortOrder)}function mn(e){let t=e.toString();return t?`?${t}`:``}function hn(e,t){let n=[...new Set(t)];if(n.length===0)throw P(e,`eventIds`,`must contain at least one id`);if(n.length>100)throw P(e,`eventIds`,`must contain at most 100 unique ids (received ${n.length})`);for(let t of n)sn(e,t);return n}function gn(e,t,n){fn(e,n.startTime,n.endTime),n.workflowName!==void 0&&t.set(`workflowName`,n.workflowName),n.startTime!==void 0&&n.endTime!==void 0&&(t.set(`startTime`,n.startTime),t.set(`endTime`,n.endTime)),pn(e,t,n.pagination,100)}function _n(e){return{runs:{get(t){return F(`analytics.runs.get`,t),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}`,config:e,schema:ae})},list(t={}){fn(`analytics.runs.list`,t.startTime,t.endTime);let n=new URLSearchParams;return t.workflowName!==void 0&&n.set(`workflowName`,t.workflowName),t.status&&n.set(`status`,t.status),t.startTime!==void 0&&t.endTime!==void 0&&(n.set(`startTime`,t.startTime),n.set(`endTime`,t.endTime)),t.attributes&&Object.keys(t.attributes).length>0&&(dn(`analytics.runs.list`,t.attributes),n.set(`attributes`,JSON.stringify(t.attributes))),pn(`analytics.runs.list`,n,t.pagination,100),j({endpoint:`/v2/analytics/runs${mn(n)}`,config:e,schema:E(ae)})}},attributes:{list(t={}){let n=new URLSearchParams;return gn(`analytics.attributes.list`,n,t),j({endpoint:`/v2/analytics/attributes${mn(n)}`,config:e,schema:E(pe)})}},steps:{get(t,n){return F(`analytics.steps.get`,t),cn(`analytics.steps.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/steps/${encodeURIComponent(n)}`,config:e,schema:x})},list(t){F(`analytics.steps.list`,t.runId);let n=new URLSearchParams;return pn(`analytics.steps.list`,n,t.pagination,v),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/steps${mn(n)}`,config:e,schema:E(x)})}},events:{get(t,n){return F(`analytics.events.get`,t),sn(`analytics.events.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,config:e,schema:ne})},getMany(t,n){return F(`analytics.events.getMany`,t),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/events/get-many`,options:{method:`POST`},data:{eventIds:hn(`analytics.events.getMany`,n)},config:e,schema:ne.array()})},list(t){F(`analytics.events.list`,t.runId);let n=new URLSearchParams;return t.eventType&&n.set(`eventType`,t.eventType),t.correlationId!==void 0&&(on(`analytics.events.list`,t.correlationId),n.set(`correlationId`,t.correlationId)),pn(`analytics.events.list`,n,t.pagination,v),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/events${mn(n)}`,config:e,schema:E(ne)})},listByCorrelationId(t){F(`analytics.events.listByCorrelationId`,t.runId),on(`analytics.events.listByCorrelationId`,t.correlationId);let n=new URLSearchParams;return n.set(`correlationId`,t.correlationId),pn(`analytics.events.listByCorrelationId`,n,t.pagination,v),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/events${mn(n)}`,config:e,schema:E(ne)})}},hooks:{get(t,n){ln(`analytics.hooks.get`,t);let r=new URLSearchParams;return n?.runId!==void 0&&(F(`analytics.hooks.get`,n.runId),r.set(`runId`,n.runId)),j({endpoint:`/v2/analytics/hooks/${encodeURIComponent(t)}${mn(r)}`,config:e,schema:re})},list(t){F(`analytics.hooks.list`,t.runId);let n=new URLSearchParams;return n.set(`runId`,t.runId),pn(`analytics.hooks.list`,n,t.pagination,100),j({endpoint:`/v2/analytics/hooks${mn(n)}`,config:e,schema:E(re)})}},waits:{get(t,n){return F(`analytics.waits.get`,t),un(`analytics.waits.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/waits/${encodeURIComponent(n)}`,config:e,schema:w})},list(t){F(`analytics.waits.list`,t.runId);let n=new URLSearchParams;return t.status&&n.set(`status`,t.status),pn(`analytics.waits.list`,n,t.pagination,v),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/waits${mn(n)}`,config:e,schema:E(w)})}}}}const vn=ge(`@workflow/world-vercel//runIdFactory`,1,()=>({ulid:he(),lastRunId:void 0}));function yn(e){let t=Re(e),n=5,r=1;for(;n>=0&&r>0;){let e=t[n]+r;t[n]=e&255,r=e>>8,n--}if(r>0)throw Error(`ULID space exhausted`);return Ie(t)}function bn(e){return typeof e!=`string`||e===``||e===`unknown`?null:Object.hasOwn(Pe,e)?e:null}function xn(e){return bn(e?.region)??bn(process.env.VERCEL_REGION)??`iad1`}function Sn(e){let t=xn(e),n=Pe[t],r=Fe(vn.ulid(),n);if(vn.lastRunId!==void 0)for(;r<=vn.lastRunId;)r=Fe(yn(vn.lastRunId),n);return vn.lastRunId=r,r}function Cn(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{let e=ze(t);return e.tagged&&e.region?e.region:Le}catch{return null}}function wn(e){let t=e.runId;return typeof t!=`string`||t.length===0?null:{region:Cn(t)}}var Tn=class extends Error{status;constructor(e,t){super(e),this.name=`RunKeyFetchError`,this.status=t}};async function En(e,t,n){if(e.length!==32)throw Error(`Invalid deployment key length: expected 32 bytes for AES-256, got ${e.length} bytes`);if(!t||typeof t!=`string`)throw Error(`projectId must be a non-empty string`);let r=await Gt.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),i=new TextEncoder().encode(`${t}|${n}`),a=await Gt.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:i},r,256);return new Uint8Array(a)}async function Dn(e,t,n,r){let i=await Ue({token:r?.token});if(!i)throw Error(`Cannot fetch run key: no OIDC token or VERCEL_TOKEN available`);let a=new URLSearchParams({projectId:t,runId:n});r?.teamId&&a.set(`teamId`,r.teamId);let s=await(await A({method:`GET`,url:`https://api.vercel.com/v1/workflow/run-key/${e}?${a}`,headers:new Headers({Authorization:`Bearer ${i}`}),dispatcher:lt({dispatcher:r?.dispatcher}),peerService:`vercel-api`,timeoutMs:null,buildError:async t=>{let r;try{r=await t.text()}catch{r=`<unable to read response body>`}return new Tn(`Failed to fetch run key for ${n} (deployment ${e}): HTTP ${t.status} ${t.statusText}${r?` — ${r}`:``}`,t.status)}})).json(),c=D(o({key:h().nullable()})).safeParse(s);if(!c.success)throw Error(`Invalid response from Vercel API: expected { key: string | null }. Zod error: ${c.error.message}`);if(c.data.key!==null)return Buffer.from(c.data.key,`base64`)}function On(e,t,n,r){if(!e)return;let i=process.env.VERCEL===`1`,a;function o(){if(a)return a;let e=process.env.VERCEL_DEPLOYMENT_KEY;if(e)return a=Buffer.from(e,`base64`),a}return async function(a,s){let c=typeof a==`string`?a:a.runId,l=typeof a==`string`?s?.deploymentId:a.deploymentId;if(i&&(!l||l===process.env.VERCEL_DEPLOYMENT_ID)){let t=o();return t?En(t,e,c):void 0}if(l)return Dn(l,e,c,{token:n,teamId:t,dispatcher:r})}}async function kn(){let{getDeadline:t}=await import(`../../_chunks/workflow/functions-wMCGZAVk.js`).then(t=>e(t.default,1));return t()}const An={peerService:`workflow-server`,rpcSystem:`http`,rpcService:`workflow-server`},jn={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},Mn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function Nn(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function Pn(e,t){return typeof e[t]==`string`?e[t]:void 0}function Fn(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function In(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function Ln(e,t,n){let r=`${e}.${t}`,i={},a=jn[r],o=a===void 0?Mn.has(r)?Fn(n[0]):void 0:Pn(n,a);if(o&&Object.assign(i,Qe(o)),r===`world.steps.get`){let e=Pn(n,1);e&&Object.assign(i,St(e))}return i}function Rn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=Nn(t);r&&(n=`${e}.${a} ${r}`)}let r;if(e===`world.events`&&a===`createBatch`){let e=t[1];if(Array.isArray(e)){let t=new Map;for(let n of e){let e=n?.event?.eventType;typeof e==`string`&&t.set(e,(t.get(e)??0)+1)}r={"workflow.batch.size":e.length,"workflow.batch.shape":[...t].sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,t])=>`${e}:${t}`).join(`,`)}}}return ut(n,{kind:await Ze(`CLIENT`)},async o=>{o?.setAttributes({...We(An.peerService),...Ve(An.rpcSystem),...Ct(An.rpcService),...tt(n),...Ln(e,a,t),...r});let s=await i(...t),c=In(s);return c&&o?.setAttributes(Qe(c)),s})}}return n}var I=class extends Error{constructor(e){super(e),this.name=`MultipartParseError`}};function zn(e){let t=new TextEncoder().encode(e);return(e,n=0)=>Buffer.prototype.indexOf.call(e,t,n)}function Bn(e){let t=new TextEncoder().encode(e),n={};for(let e=0;e<t.length;++e){let r=t[e];n[r]===void 0&&(n[r]=[]),n[r].push(e)}return function(e){let r=e.length-1;if(e[r]in n){let i=n[e[r]];for(let n=i.length-1;n>=0;--n)for(let a=i[n],o=r;a>=0&&e[o]===t[a];--a,--o)if(a===0)return o}return-1}}function Vn(e){let t=new TextDecoder(`iso-8859-1`).decode(e).trim().split(/\r?\n/),n=[];for(let e of t){let t=e.indexOf(`:`);if(t>0){let r=e.slice(0,t).trim(),i=e.slice(t+1).trim();n.push([r,i])}}return new Headers(n)}function Hn(e){let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new I(`No boundary found in Content-Type header`);return t[1]??t[2]}var Un=class{queue=[];waiters=[];finished=!1;cancelled=!1;error=null;enqueue(e){this.finished||this.cancelled||(this.waiters.length>0?this.waiters.shift().resolve(e):this.queue.push(e))}finish(e){if(!this.finished)for(this.finished=!0,this.error=e||null;this.waiters.length>0;){let t=this.waiters.shift();e?t.reject(e):t.resolve(null)}}cancel(){if(!(this.cancelled||this.finished))for(this.cancelled=!0;this.waiters.length>0;)this.waiters.shift().resolve(null)}async dequeue(){if(this.queue.length>0)return this.queue.shift();if(this.finished||this.cancelled){if(this.error)throw this.error;return null}return new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}get isTerminal(){return this.finished||this.cancelled}};async function*Wn(e,t){if(!e.body)throw new I(`Response body is null`);let n=e.headers.get(`content-type`);if(!n)throw new I(`Missing Content-Type header`);yield*new Gn(Hn(n),t).parseStream(e.body)}var Gn=class{boundary;findOpeningBoundary;openingBoundaryLength;findBoundary;findPartialTailBoundary;boundaryLength;findDoubleNewline;maxHeaderSize;maxBoundaryBuffer;state=0;buffer=null;currentHeaders=new Headers;currentPayloadController=null;constructor(e,t={}){this.boundary=e,this.findOpeningBoundary=zn(`--${e}`),this.openingBoundaryLength=2+e.length,this.findBoundary=zn(`\r
1
+ import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DPpTSio4.js";import{C as r,O as i,S as a,b as o,c as s,f as c,g as l,i as u,o as d,r as f,s as p,u as m,w as h,y as g}from"../../_chunks/workflow/schemas-DR7NTzNe.js";import{$ as _,A as v,B as y,D as b,E as x,F as S,I as C,J as w,L as ee,M as te,N as T,O as ne,R as re,T as ie,U as ae,V as oe,X as se,at as ce,b as le,dt as ue,et as de,f as E,g as fe,j as pe,k as me,lt as he,mt as D,o as ge,p as _e,pt as ve,r as ye,v as be,y as xe}from"../../_chunks/workflow/dist-C5KCXSdI.js";import{n as Se,t as Ce}from"../../_chunks/workflow/coerce-ro2dOxbr.js";import{A as O,O as we,_ as Te,c as Ee,d as De,g as k,o as Oe,r as ke,t as Ae,v as je,y as Me}from"../../_chunks/workflow/dist-xTushGCp.js";import{a as Ne,i as Pe,n as Fe,o as Ie,r as Le,s as Re,t as ze}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{$ as Be,A as Ve,B as He,C as Ue,D as We,E as Ge,F as Ke,G as qe,H as Je,I as Ye,J as Xe,K as Ze,L as Qe,M as $e,N as et,O as tt,P as nt,Q as rt,R as it,S as at,T as ot,V as st,W as ct,X as lt,Y as ut,Z as dt,_ as ft,a as pt,at as mt,b as A,c as ht,d as gt,et as _t,f as j,g as vt,h as yt,i as bt,it as xt,j as St,k as Ct,l as wt,m as Tt,n as Et,nt as Dt,o as Ot,p as kt,q as At,r as jt,rt as Mt,s as Nt,t as Pt,tt as Ft,u as M,v as It,w as Lt,x as Rt,y as zt,z as Bt}from"../../_chunks/workflow/frames-DJw9L4rO.js";import{i as Vt,r as Ht,t as Ut}from"../../_chunks/workflow/token-util-B0OPd7oj.js";import{randomUUID as Wt}from"crypto";import*as N from"path";import{webcrypto as Gt}from"node:crypto";import{AsyncLocalStorage as Kt}from"node:async_hooks";import qt from"node:assert/strict";import*as Jt from"fs";import Yt from"assert/strict";import*as Xt from"net";function P(e,t,n){return new O(`${e}: ${t} ${n}`,{code:`INVALID_ARGUMENT`,field:t})}const Zt=`[01234567][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{25}`,Qt=RegExp(`^wrun_${Zt}$`),$t=RegExp(`^(?:step|hook|wait|attr)_${Zt}$`),en=RegExp(`^evnt_${Zt}$`),tn=RegExp(`^step_${Zt}$`),nn=RegExp(`^hook_${Zt}$`),rn=RegExp(`^wait_${Zt}$`);function an(e,t,n){if(!Number.isInteger(t)||t<1||t>n)throw P(e,`pagination.limit`,`must be an integer between 1 and ${n} (received ${t})`)}function F(e,t){if(!Qt.test(t))throw P(e,`runId`,`must be a workflow run id ('wrun_' followed by a ULID), received ${JSON.stringify(t)}`)}function on(e,t){if(!$t.test(t))throw P(e,`correlationId`,`must be a step, hook, wait, or attribute id, received ${JSON.stringify(t)}`)}function sn(e,t){if(!en.test(t))throw P(e,`eventId`,`must be an event id ('evnt_' followed by a ULID), received ${JSON.stringify(t)}`)}function cn(e,t){if(!tn.test(t))throw P(e,`stepId`,`must be a step id ('step_' followed by a ULID), received ${JSON.stringify(t)}`)}function ln(e,t){if(!nn.test(t))throw P(e,`hookId`,`must be a hook id ('hook_' followed by a ULID), received ${JSON.stringify(t)}`)}function un(e,t){if(!rn.test(t))throw P(e,`waitId`,`must be a wait id ('wait_' followed by a ULID), received ${JSON.stringify(t)}`)}function dn(e,t){let n=Object.entries(t);if(n.length>8)throw P(e,`attributes`,`may filter by at most 8 pairs (received ${n.length})`);for(let[t,r]of n){if(!_.safeParse(t).success)throw P(e,`attributes`,`key must be 1 to 256 characters, received ${t.length} in ${JSON.stringify(t)}`);if(!de.safeParse(r).success)throw P(e,`attributes`,`value for ${JSON.stringify(t)} must be at most 256 UTF-8 bytes (received ${new TextEncoder().encode(r).length})`)}}function fn(e,t,n){if(t===void 0&&n===void 0)return;if(t===void 0||n===void 0)throw P(e,t===void 0?`startTime`:`endTime`,`is required when ${t===void 0?`endTime`:`startTime`} is provided; supply both or neither`);let r=new Date(t).getTime(),i=new Date(n).getTime();if(!Number.isFinite(r))throw P(e,`startTime`,`must be a parseable datetime, received ${JSON.stringify(t)}`);if(!Number.isFinite(i))throw P(e,`endTime`,`must be a parseable datetime, received ${JSON.stringify(n)}`);if(r>i)throw P(e,`startTime`,`must be before or equal to endTime (received startTime=${JSON.stringify(t)}, endTime=${JSON.stringify(n)})`)}function pn(e,t,n,r){n?.limit!==void 0&&(an(e,n.limit,r),t.set(`limit`,n.limit.toString())),n?.cursor&&t.set(`cursor`,n.cursor),n?.sortOrder&&t.set(`sortOrder`,n.sortOrder)}function mn(e){let t=e.toString();return t?`?${t}`:``}function hn(e,t){let n=[...new Set(t)];if(n.length===0)throw P(e,`eventIds`,`must contain at least one id`);if(n.length>100)throw P(e,`eventIds`,`must contain at most 100 unique ids (received ${n.length})`);for(let t of n)sn(e,t);return n}function gn(e,t,n){fn(e,n.startTime,n.endTime),n.workflowName!==void 0&&t.set(`workflowName`,n.workflowName),n.startTime!==void 0&&n.endTime!==void 0&&(t.set(`startTime`,n.startTime),t.set(`endTime`,n.endTime)),pn(e,t,n.pagination,100)}function _n(e){return{runs:{get(t){return F(`analytics.runs.get`,t),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}`,config:e,schema:me})},list(t={}){fn(`analytics.runs.list`,t.startTime,t.endTime);let n=new URLSearchParams;return t.workflowName!==void 0&&n.set(`workflowName`,t.workflowName),t.status&&n.set(`status`,t.status),t.startTime!==void 0&&t.endTime!==void 0&&(n.set(`startTime`,t.startTime),n.set(`endTime`,t.endTime)),t.attributes&&Object.keys(t.attributes).length>0&&(dn(`analytics.runs.list`,t.attributes),n.set(`attributes`,JSON.stringify(t.attributes))),pn(`analytics.runs.list`,n,t.pagination,100),j({endpoint:`/v2/analytics/runs${mn(n)}`,config:e,schema:E(me)})}},attributes:{list(t={}){let n=new URLSearchParams;return gn(`analytics.attributes.list`,n,t),j({endpoint:`/v2/analytics/attributes${mn(n)}`,config:e,schema:E(x)})}},steps:{get(t,n){return F(`analytics.steps.get`,t),cn(`analytics.steps.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/steps/${encodeURIComponent(n)}`,config:e,schema:v})},list(t){F(`analytics.steps.list`,t.runId);let n=new URLSearchParams;return pn(`analytics.steps.list`,n,t.pagination,ie),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/steps${mn(n)}`,config:e,schema:E(v)})}},events:{get(t,n){return F(`analytics.events.get`,t),sn(`analytics.events.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,config:e,schema:b})},getMany(t,n){return F(`analytics.events.getMany`,t),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/events/get-many`,options:{method:`POST`},data:{eventIds:hn(`analytics.events.getMany`,n)},config:e,schema:b.array()})},list(t){F(`analytics.events.list`,t.runId);let n=new URLSearchParams;return t.eventType&&n.set(`eventType`,t.eventType),t.correlationId!==void 0&&(on(`analytics.events.list`,t.correlationId),n.set(`correlationId`,t.correlationId)),pn(`analytics.events.list`,n,t.pagination,ie),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/events${mn(n)}`,config:e,schema:E(b)})},listByCorrelationId(t){F(`analytics.events.listByCorrelationId`,t.runId),on(`analytics.events.listByCorrelationId`,t.correlationId);let n=new URLSearchParams;return n.set(`correlationId`,t.correlationId),pn(`analytics.events.listByCorrelationId`,n,t.pagination,ie),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/events${mn(n)}`,config:e,schema:E(b)})}},hooks:{get(t,n){ln(`analytics.hooks.get`,t);let r=new URLSearchParams;return n?.runId!==void 0&&(F(`analytics.hooks.get`,n.runId),r.set(`runId`,n.runId)),j({endpoint:`/v2/analytics/hooks/${encodeURIComponent(t)}${mn(r)}`,config:e,schema:ne})},list(t){F(`analytics.hooks.list`,t.runId);let n=new URLSearchParams;return n.set(`runId`,t.runId),pn(`analytics.hooks.list`,n,t.pagination,100),j({endpoint:`/v2/analytics/hooks${mn(n)}`,config:e,schema:E(ne)})}},waits:{get(t,n){return F(`analytics.waits.get`,t),un(`analytics.waits.get`,n),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t)}/waits/${encodeURIComponent(n)}`,config:e,schema:pe})},list(t){F(`analytics.waits.list`,t.runId);let n=new URLSearchParams;return t.status&&n.set(`status`,t.status),pn(`analytics.waits.list`,n,t.pagination,ie),j({endpoint:`/v2/analytics/runs/${encodeURIComponent(t.runId)}/waits${mn(n)}`,config:e,schema:E(pe)})}}}}const vn=ve(`@workflow/world-vercel//runIdFactory`,1,()=>({ulid:he(),lastRunId:void 0}));function yn(e){let t=Re(e),n=5,r=1;for(;n>=0&&r>0;){let e=t[n]+r;t[n]=e&255,r=e>>8,n--}if(r>0)throw Error(`ULID space exhausted`);return Ie(t)}function bn(e){return typeof e!=`string`||e===``||e===`unknown`?null:Object.hasOwn(Pe,e)?e:null}function xn(e){return bn(e?.region)??bn(process.env.VERCEL_REGION)??`iad1`}function Sn(e){let t=xn(e),n=Pe[t],r=Fe(vn.ulid(),n);if(vn.lastRunId!==void 0)for(;r<=vn.lastRunId;)r=Fe(yn(vn.lastRunId),n);return vn.lastRunId=r,r}function Cn(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{let e=ze(t);return e.tagged&&e.region?e.region:Le}catch{return null}}function wn(e){let t=e.runId;return typeof t!=`string`||t.length===0?null:{region:Cn(t)}}var Tn=class extends Error{status;constructor(e,t){super(e),this.name=`RunKeyFetchError`,this.status=t}};async function En(e,t,n){if(e.length!==32)throw Error(`Invalid deployment key length: expected 32 bytes for AES-256, got ${e.length} bytes`);if(!t||typeof t!=`string`)throw Error(`projectId must be a non-empty string`);let r=await Gt.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),i=new TextEncoder().encode(`${t}|${n}`),a=await Gt.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:i},r,256);return new Uint8Array(a)}async function Dn(e,t,n,r){let i=await Ue({token:r?.token});if(!i)throw Error(`Cannot fetch run key: no OIDC token or VERCEL_TOKEN available`);let a=new URLSearchParams({projectId:t,runId:n});r?.teamId&&a.set(`teamId`,r.teamId);let s=await(await A({method:`GET`,url:`https://api.vercel.com/v1/workflow/run-key/${e}?${a}`,headers:new Headers({Authorization:`Bearer ${i}`}),dispatcher:lt({dispatcher:r?.dispatcher}),peerService:`vercel-api`,timeoutMs:null,buildError:async t=>{let r;try{r=await t.text()}catch{r=`<unable to read response body>`}return new Tn(`Failed to fetch run key for ${n} (deployment ${e}): HTTP ${t.status} ${t.statusText}${r?` — ${r}`:``}`,t.status)}})).json(),c=D(o({key:h().nullable()})).safeParse(s);if(!c.success)throw Error(`Invalid response from Vercel API: expected { key: string | null }. Zod error: ${c.error.message}`);if(c.data.key!==null)return Buffer.from(c.data.key,`base64`)}function On(e,t,n,r){if(!e)return;let i=process.env.VERCEL===`1`,a;function o(){if(a)return a;let e=process.env.VERCEL_DEPLOYMENT_KEY;if(e)return a=Buffer.from(e,`base64`),a}return async function(a,s){let c=typeof a==`string`?a:a.runId,l=typeof a==`string`?s?.deploymentId:a.deploymentId;if(i&&(!l||l===process.env.VERCEL_DEPLOYMENT_ID)){let t=o();return t?En(t,e,c):void 0}if(l)return Dn(l,e,c,{token:n,teamId:t,dispatcher:r})}}async function kn(){let{getDeadline:t}=await import(`../../_chunks/workflow/functions-wMCGZAVk.js`).then(t=>e(t.default,1));return t()}const An={peerService:`workflow-server`,rpcSystem:`http`,rpcService:`workflow-server`},jn={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},Mn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function Nn(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function Pn(e,t){return typeof e[t]==`string`?e[t]:void 0}function Fn(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function In(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function Ln(e,t,n){let r=`${e}.${t}`,i={},a=jn[r],o=a===void 0?Mn.has(r)?Fn(n[0]):void 0:Pn(n,a);if(o&&Object.assign(i,Qe(o)),r===`world.steps.get`){let e=Pn(n,1);e&&Object.assign(i,St(e))}return i}function Rn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=Nn(t);r&&(n=`${e}.${a} ${r}`)}let r;if(e===`world.events`&&a===`createBatch`){let e=t[1];if(Array.isArray(e)){let t=new Map;for(let n of e){let e=n?.event?.eventType;typeof e==`string`&&t.set(e,(t.get(e)??0)+1)}r={"workflow.batch.size":e.length,"workflow.batch.shape":[...t].sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,t])=>`${e}:${t}`).join(`,`)}}}return ut(n,{kind:await Ze(`CLIENT`)},async o=>{o?.setAttributes({...We(An.peerService),...Ve(An.rpcSystem),...Ct(An.rpcService),...tt(n),...Ln(e,a,t),...r});let s=await i(...t),c=In(s);return c&&o?.setAttributes(Qe(c)),s})}}return n}var I=class extends Error{constructor(e){super(e),this.name=`MultipartParseError`}};function zn(e){let t=new TextEncoder().encode(e);return(e,n=0)=>Buffer.prototype.indexOf.call(e,t,n)}function Bn(e){let t=new TextEncoder().encode(e),n={};for(let e=0;e<t.length;++e){let r=t[e];n[r]===void 0&&(n[r]=[]),n[r].push(e)}return function(e){let r=e.length-1;if(e[r]in n){let i=n[e[r]];for(let n=i.length-1;n>=0;--n)for(let a=i[n],o=r;a>=0&&e[o]===t[a];--a,--o)if(a===0)return o}return-1}}function Vn(e){let t=new TextDecoder(`iso-8859-1`).decode(e).trim().split(/\r?\n/),n=[];for(let e of t){let t=e.indexOf(`:`);if(t>0){let r=e.slice(0,t).trim(),i=e.slice(t+1).trim();n.push([r,i])}}return new Headers(n)}function Hn(e){let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new I(`No boundary found in Content-Type header`);return t[1]??t[2]}var Un=class{queue=[];waiters=[];finished=!1;cancelled=!1;error=null;enqueue(e){this.finished||this.cancelled||(this.waiters.length>0?this.waiters.shift().resolve(e):this.queue.push(e))}finish(e){if(!this.finished)for(this.finished=!0,this.error=e||null;this.waiters.length>0;){let t=this.waiters.shift();e?t.reject(e):t.resolve(null)}}cancel(){if(!(this.cancelled||this.finished))for(this.cancelled=!0;this.waiters.length>0;)this.waiters.shift().resolve(null)}async dequeue(){if(this.queue.length>0)return this.queue.shift();if(this.finished||this.cancelled){if(this.error)throw this.error;return null}return new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}get isTerminal(){return this.finished||this.cancelled}};async function*Wn(e,t){if(!e.body)throw new I(`Response body is null`);let n=e.headers.get(`content-type`);if(!n)throw new I(`Missing Content-Type header`);yield*new Gn(Hn(n),t).parseStream(e.body)}var Gn=class{boundary;findOpeningBoundary;openingBoundaryLength;findBoundary;findPartialTailBoundary;boundaryLength;findDoubleNewline;maxHeaderSize;maxBoundaryBuffer;state=0;buffer=null;currentHeaders=new Headers;currentPayloadController=null;constructor(e,t={}){this.boundary=e,this.findOpeningBoundary=zn(`--${e}`),this.openingBoundaryLength=2+e.length,this.findBoundary=zn(`\r
2
2
  --${e}`),this.findPartialTailBoundary=Bn(`\r
3
3
  --${e}`),this.boundaryLength=4+e.length,this.findDoubleNewline=zn(`\r
4
4
  \r
@@ -40,4 +40,4 @@ To fix this, either:
40
40
  - Deploy to Vercel (OIDC tokens are provisioned automatically)
41
41
  - Provide a token explicitly: \`new QueueClient({ token: '...' })\`
42
42
 
43
- Cause: ${t}`)}}buildUrl(e,...t){let n=encodeURIComponent(e),r=t.map(e=>encodeURIComponent(e)),i=r.length>0?`/`+r.join(`/`):``,a=this.baseUrl.pathname.replace(/\/+$/,``);return`${this.baseUrl.origin}${a}${Us}/${n}${i}`}async fetch(e,t){let n=t.method||`GET`;if(Ps()){let r={method:n,url:e,headers:t.headers},i=t.body;i!=null&&(i instanceof ArrayBuffer||i instanceof Uint8Array?r.bodySize=i.byteLength:typeof i==`string`?r.bodySize=i.length:r.bodyType=typeof i),console.debug(`[VQS Debug] Request:`,JSON.stringify(r,null,2))}t.headers.set(`User-Agent`,`@vercel/queue/0.5.1`),t.headers.set(`Vqs-Client-Ts`,new Date().toISOString());let r=this.dispatcher?{...t,dispatcher:this.dispatcher}:t,i=await fetch(e,r);if(Ps()){let t={method:n,url:e,status:i.status,statusText:i.statusText,headers:i.headers};console.debug(`[VQS Debug] Response:`,JSON.stringify(t,null,2))}return i}async sendMessage(e){let t=this.transport,{queueName:n,payload:r,telemetry:i}=e,a=this.buildMessageHeaders(e,t.contentType);a.set(`Authorization`,`Bearer ${await this.getToken()}`);let o=this.getSendDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=t.serialize(r),c=Buffer.isBuffer(s)?new Uint8Array(s):s,l=ys(this.telemetry,i);return Ds(n,async e=>{await ws(a,l);let t=await this.fetch(this.buildUrl(n),{method:`POST`,body:c,headers:a,...c instanceof ReadableStream&&{duplex:`half`}});if(!t.ok){let e=await t.text();if(t.status===502&&t.headers.get(`Vqs-Error-Code`)===`consumer_discovery_failed`)throw new io(e||`Consumer discovery failed`,o);if(t.status===503)throw new ao(e||`Consumer registry not configured`);Ls(t.status,t.statusText,e,`send message`)}if(t.status===202)return await t.text(),{messageId:null};let r=await t.json();return e&&r.messageId&&e.setMessageId(r.messageId),r},l)}async sendBatch(e){let t=this.transport,{queueName:n,messages:r,telemetry:i}=e;if(r.length<1||r.length>100)throw RangeError(`Batch size must be between 1 and 100 messages`);let a=new Headers(this.customHeaders);a.set(`Authorization`,`Bearer ${await this.getToken()}`);let o=this.getSendDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=vs(r.map(e=>({headers:this.buildMessageHeaders(e,t.contentType),body:()=>t.serialize(e.payload)})));a.set(`Content-Type`,s.contentType);let c=ys(this.telemetry,i);return Ds(n,async()=>{try{await ws(a,c);let e=await this.fetch(this.buildUrl(n,`batch`),{method:`POST`,body:s.body,headers:a,duplex:`half`});if(!e.ok){let t=await e.text();if(e.status===503)throw new ao(t||`Consumer registry not configured`);Ls(e.status,e.statusText,t,`send message batch`)}let{results:t}=await e.json();if(t.length!==r.length)throw new to(`Invalid batch response: expected ${r.length} results, received ${t.length}`);return t}catch(e){throw await s.cancel(e),e}},c)}buildMessageHeaders(e,t){let n=new Headers(this.customHeaders);n.delete(`Authorization`);for(let[t,r]of Object.entries(e.headers??{})){let e=t.toLowerCase();r!==void 0&&e!==`authorization`&&e!==`content-type`&&!e.startsWith(`vqs-`)&&n.set(t,r)}return n.set(`Content-Type`,t),e.idempotencyKey&&n.set(`Vqs-Idempotency-Key`,e.idempotencyKey),e.retentionSeconds!==void 0&&n.set(`Vqs-Retention-Seconds`,e.retentionSeconds.toString()),e.delaySeconds!==void 0&&n.set(`Vqs-Delay-Seconds`,e.delaySeconds.toString()),n}async*receiveMessages(e){let t=this.transport,{queueName:n,consumerGroup:r,visibilityTimeoutSeconds:i,limit:a}=e;if(a!==void 0&&(a<1||a>10))throw new no(a);let o=new Headers({Authorization:`Bearer ${await this.getToken()}`,Accept:`multipart/mixed`,...this.customHeaders});i!==void 0&&o.set(`Vqs-Visibility-Timeout-Seconds`,i.toString()),a!==void 0&&o.set(`Vqs-Max-Messages`,a.toString());let s=this.getConsumeDeploymentId();s&&o.set(`Vqs-Deployment-Id`,s);let c=await this.fetch(this.buildUrl(n,`consumer`,r),{method:`POST`,headers:o});if(c.status===204){await c.text();return}if(!c.ok){let e=await c.text();Ls(c.status,c.statusText,e,`receive messages`)}for await(let e of Wn(c))try{let n=Rs(e.headers);if(!n){console.warn(`Missing required queue headers in multipart part`),await Fs(e.payload);continue}let r=await t.deserialize(e.payload);yield{...n,payload:r}}catch(t){console.warn(`Failed to process multipart message:`,t),await Fs(e.payload)}}async receiveMessageById(e){let t=this.transport,{queueName:n,consumerGroup:r,messageId:i,visibilityTimeoutSeconds:a}=e,o=new Headers({Authorization:`Bearer ${await this.getToken()}`,Accept:`multipart/mixed`,...this.customHeaders});a!==void 0&&o.set(`Vqs-Visibility-Timeout-Seconds`,a.toString());let s=this.getConsumeDeploymentId();s&&o.set(`Vqs-Deployment-Id`,s);let c=await this.fetch(this.buildUrl(n,`consumer`,r,`id`,i),{method:`POST`,headers:o});if(!c.ok){let e=await c.text();if(c.status===404)throw new Ja(i);if(c.status===409){let t={};try{t=JSON.parse(e)}catch{}throw t.originalMessageId?new Ya(i,`This message was a duplicate - use originalMessageId: ${t.originalMessageId}`):new Ya(i)}if(c.status===410)throw new ro(i);Ls(c.status,c.statusText,e,`receive message by ID`)}for await(let e of Wn(c)){let n=Rs(e.headers);if(!n)throw await Fs(e.payload),new Xa(i,`Missing required queue headers in response`);let r=await t.deserialize(e.payload);return{message:{...n,payload:r}}}throw new Ja(i)}async acknowledgeMessage(e){let{queueName:t,consumerGroup:n,receiptHandle:r}=e,i=new Headers({Authorization:`Bearer ${await this.getToken()}`,...this.customHeaders}),a=this.getConsumeDeploymentId();a&&i.set(`Vqs-Deployment-Id`,a);let o=await this.fetch(this.buildUrl(t,`consumer`,n,`lease`,r),{method:`DELETE`,headers:i});if(!o.ok){let e=await o.text();if(o.status===404)throw new Ja(r);if(o.status===409)throw new Ya(r,e||`Invalid receipt handle, message not in correct state, or already processed`);Ls(o.status,o.statusText,e,`acknowledge message`,`Missing or invalid receipt handle`,o.headers?.get(`Retry-After`)??null)}return await o.text(),{acknowledged:!0}}async changeVisibility(e){let{queueName:t,consumerGroup:n,receiptHandle:r,visibilityTimeoutSeconds:i}=e,a=new Headers({Authorization:`Bearer ${await this.getToken()}`,"Content-Type":`application/json`,...this.customHeaders}),o=this.getConsumeDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=await this.fetch(this.buildUrl(t,`consumer`,n,`lease`,r),{method:`PATCH`,headers:a,body:JSON.stringify({visibilityTimeoutSeconds:i})});if(!s.ok){let e=await s.text();if(s.status===404)throw new Ja(r);if(s.status===409)throw new Ya(r,e||`Invalid receipt handle, message not in correct state, or already processed`);Ls(s.status,s.statusText,e,`change visibility`,`Missing receipt handle or invalid visibility timeout`,s.headers?.get(`Retry-After`)??null)}return await s.text(),{success:!0}}},Gs=new WeakMap,Ks=Symbol.for(`@vercel/queue.apiClient`);function qs(e,t){Gs.set(e,t),Object.defineProperty(e,Ks,{value:t,writable:!1,enumerable:!1,configurable:!1})}function Js(e){let t=Gs.get(e);if(t)return t;let n=e[Ks];if(typeof n==`object`&&n){let t=n;return Gs.set(e,t),t}throw Error(`QueueClient not initialized. This may happen when multiple bundled copies of @vercel/queue are loaded in local dev.`)}function Ys(e){return`request`in e?e.request:e}function Xs(e){return Js(e)}var Zs=`iad1`;function Qs(e){return e||process.env.VERCEL_REGION||(Z()||console.warn(`[QueueClient] Region not detected \u2014 defaulting to "${Zs}". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })`),Zs)}var $s=class{constructor(e={}){let t=Qs(e.region);qs(this,new Ws({...e,region:t}))}send=async(e,t,n)=>{let r=Js(this),i=await r.sendMessage({queueName:e,payload:t,idempotencyKey:n?.idempotencyKey,retentionSeconds:n?.retentionSeconds,delaySeconds:n?.delaySeconds,headers:n?.headers,telemetry:n?.telemetry});return i.messageId&&Z()&&hs(e,i.messageId,r.getRegion(),n?.delaySeconds,n?.retentionSeconds),{messageId:i.messageId}};experimental_sendBatch=async(e,t,n)=>{let r=Js(this),i=await r.sendBatch({queueName:e,messages:t,telemetry:n?.telemetry});if(!Z())return i;let a=r.getRegion();for(let[n,r]of i.entries()){if(r.status!==`sent`)continue;let i=t[n];Yt(i),hs(e,r.messageId,a,i.delaySeconds,i.retentionSeconds)}return i};handleCallback=(e,t)=>{Z()&&Wo(e,this,t);let n=ys(Js(this).getTelemetry?.());return async r=>{let i=Ys(r);if(Z()&&i.headers.get(`x-vercel-queue-prime`)===`1`){let n=i.headers.get(`x-vercel-queue-prime-file`);return n&&Wo(e,this,t,n),Response.json({status:`primed`})}try{let r=await wo(i);return await js(i.headers,()=>To(e,r,{client:this,visibilityTimeoutSeconds:t?.visibilityTimeoutSeconds,retry:t?.retry}),n),Response.json({status:`success`})}catch(e){return console.error(`Queue callback error:`,e),e instanceof Error&&(e.message.includes(`Invalid content type`)||e.message.includes(`Invalid CloudEvent`)||e.message.includes(`Missing required CloudEvent`)||e.message.includes(`Failed to parse CloudEvent`)||e.message.includes(`Binary mode callback`))?Response.json({error:e.message},{status:400}):Response.json({error:`Failed to process queue message`},{status:500})}}};handleNodeCallback=(e,t)=>{Z()&&Wo(e,this,t);let n=ys(Js(this).getTelemetry?.());return async(r,i)=>{if(r.method!==`POST`){i.status(200).end();return}let a=r.headers[`x-vercel-queue-prime`];if(Z()&&a===`1`){let n=r.headers[`x-vercel-queue-prime-file`],a=Array.isArray(n)?n[0]:n;a&&Wo(e,this,t,a),i.status(200).json({status:`primed`});return}try{let a=Co(r.body,r.headers);await js(r.headers,()=>To(e,a,{client:this,visibilityTimeoutSeconds:t?.visibilityTimeoutSeconds,retry:t?.retry}),n),i.status(200).json({status:`success`})}catch(e){if(console.error(`Queue callback error:`,e),e instanceof Error&&(e.message.includes(`Invalid content type`)||e.message.includes(`Invalid CloudEvent`)||e.message.includes(`Missing required CloudEvent`)||e.message.includes(`Failed to parse CloudEvent`)||e.message.includes(`Binary mode callback`))){i.status(400).json({error:e.message});return}i.status(500).json({error:`Failed to process queue message`})}}}};function ec(e){return`${e} requires VERCEL_DEPLOYMENT_ID, which Vercel sets in every deployment, so this process is not running inside one. The Vercel world is only selected automatically when that variable is set, so it was requested explicitly here — most often by WORKFLOW_TARGET_WORLD=vercel in a process that is not a deployment, such as a production server started locally or in CI. To use the local filesystem world instead, set WORKFLOW_TARGET_WORLD=local or unset it.`}function tc(){let e=process.env.VERCEL_QUEUE_TRACE_PROPAGATION?.toLowerCase();return e===`off`||e===`0`||e===`false`}function nc(e){return e===void 0?{messageId:null,error:`Queue batch returned no result for this message`,retryable:!0}:e.status===`failed`?{messageId:null,error:e.error,retryable:e.retryable}:{messageId:e.messageId?be.parse(e.messageId):null}}var rc=class{contentType=`application/cbor`;serialize(e){return Buffer.from(Mt(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}return xt(Buffer.concat(t))}},ic=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}return JSON.parse(Buffer.concat(t).toString())}},ac=class{contentType=`application/cbor`;serialize(e){return Buffer.from(Mt(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t);try{return xt(r)}catch{return JSON.parse(r.toString())}}};const oc=new Kt,sc=D(o({payload:se,queueName:b,deploymentId:h().optional()})),cc=Number(process.env.VERCEL_QUEUE_MAX_DELAY_SECONDS||82800);function lc(e){let t=Math.min(Math.max(1,2**(e-1)),900),n=Math.floor(Math.random()*(Math.ceil(t*.25)+1));return Math.max(1,t-n)}function uc(e){if(`runId`in e&&typeof e.runId==`string`)return e.runId}const dc=(e,t)=>{let n;return{open(){e&&pt()&&(n=import(`../../_chunks/workflow/ws-transport-CVezyWwZ.js`).then(({openWsChannel:n})=>n(e,t)).catch(()=>void 0))},async close(){(await n)?.()}}};function fc(e){if(!e)return;let t=e.startsWith(`wrun_`)?e.slice(5):e;try{let e=ze(t);return!e.tagged||e.regionId===Pe.unknown?void 0:e.region??void 0}catch{return}}function pc(e,t){if(Ne(t?.region))return t.region;let n=fc(uc(e));if(n)return n;let r=process.env.VERCEL_REGION;return Ne(r)?r:`iad1`}function mc(e){let t={};return`runId`in e&&typeof e.runId==`string`&&(t[`x-vercel-workflow-run-id`]=e.runId),`stepId`in e&&typeof e.stepId==`string`&&(t[`x-vercel-workflow-step-id`]=e.stepId),Object.keys(t).length>0?t:void 0}const hc=/^__([a-z][a-z0-9]*_)?wkf_workflow_/,gc=ge(`@workflow/world-vercel//queueLogLatches`,1,()=>({loggedSequentialReplays:!1}));function _c(){return process.env.WORKFLOW_SEQUENTIAL_REPLAYS===`1`}function vc(e,t){return!_c()||!hc.test(e)?e:(gc.loggedSequentialReplays||(gc.loggedSequentialReplays=!0,console.warn(`[workflow] WORKFLOW_SEQUENTIAL_REPLAYS=1: routing flow messages to per-run queue topics`)),`__healthCheck`in t&&typeof t.correlationId==`string`?`${e}_${t.correlationId}`:`runId`in t&&typeof t.runId==`string`?`stepId`in t&&typeof t.stepId==`string`?`${e}_${t.runId}_${t.stepId}`:`${e}_${t.runId}`:e)}function yc(e){let{baseUrl:t,usingProxy:n}=gt(e),r=wt(e,{usingProxy:n}),i=new rc,a=new ic,o=new ac,s={dispatcher:rt(e),transport:o,...n&&{resolveBaseUrl:()=>new URL(`${t}/queues-proxy`),token:e?.token},headers:Object.fromEntries(r.entries())},c=(e,t,n)=>{let r=n?.deploymentId??process.env.VERCEL_DEPLOYMENT_ID;if(!r)throw Error(`${ec(`Enqueuing a workflow message`)} Callers outside a deployment can instead pass an explicit deploymentId in options.`);return{deploymentId:r,useCbor:(n?.specVersion??7)>=3,region:pc(t,n),topic:vc(e,t).replace(/[^A-Za-z0-9-_]/g,`-`),wrapper:{payload:t,queueName:e,deploymentId:n?.deploymentId},sendOptions:{idempotencyKey:n?.idempotencyKey,delaySeconds:n?.delaySeconds,headers:{...mc(t),...n?.headers}}}},l=e=>new $s({...s,...n&&{headers:{...s.headers,"x-vercel-queue-region":e.region}},region:e.region,deploymentId:e.deploymentId,transport:e.useCbor?i:a}),u=async(e,t,n)=>{let r=c(e,t,n),{messageId:i}=await l(r).send(r.topic,r.wrapper,r.sendOptions);return{messageId:i?be.parse(i):null}};return{queue:u,queueBatch:async(e,t)=>{let n=Array(t.length);if(t.length===0)return n;let r=tc()?{}:await At(),i=new Map;for(let[n,a]of t.entries()){let t=c(e,a.message,a.opts),o=`${t.region}${t.deploymentId}${t.useCbor}${t.topic}`,s=i.get(o)??{route:t,entries:[]};s.entries.push({index:n,topic:t.topic,message:{payload:t.wrapper,...t.sendOptions,headers:{...t.sendOptions.headers,...r}}}),i.set(o,s)}return await Promise.all([...i.values()].map(async({route:e,entries:t})=>{let r=l(e);for(let e=0;e<t.length;e+=100){let i=t.slice(e,e+100),a=await r.experimental_sendBatch(i[0].topic,i.map(e=>e.message));for(let[e,t]of i.entries())n[t.index]=nc(a[e])}})),n},createQueueHandler:(t,n)=>{let r=new $s(s).handleCallback(async(t,r)=>{if(!t||!r)return;let i=oc.getStore(),{payload:a,queueName:o,deploymentId:s}=sc.parse(t),c=dc(uc(a),e);c.open();try{let e=await n(a,{queueName:o,messageId:be.parse(r.messageId),attempt:r.deliveryCount,requestId:i});if(typeof e?.timeoutSeconds==`number`){let t=e.timeoutSeconds>0?Math.min(e.timeoutSeconds,cc):void 0;await u(o,a,{deploymentId:s,delaySeconds:t})}}finally{await c.close()}},{retry:(e,{messageId:t,deliveryCount:n})=>{let r=lc(n);return console.error(`[workflow] Queue handler failed for message "${t}" on delivery attempt ${n}; retrying in ${r}s:`,e),{afterSeconds:r}}});return async e=>{let t=e.headers.get(`x-vercel-id`)?.trim()||void 0;return oc.run(t,()=>r(e))}},getDeploymentId:async()=>{let e=process.env.VERCEL_DEPLOYMENT_ID;if(!e)throw Error(ec(`Starting a workflow run`));return e},isDeploymentUnavailableError:e=>e instanceof io}}var bc=mt();const xc=D(o({id:h()}));async function Sc(e){if(e?.token)return e.token;if(process.env.VERCEL===`1`){let e=await(0,bc.getVercelOidcToken)().catch(()=>null);if(e)return e}return Ue(e)}function Cc(e){return async function(){let t=process.env.VERCEL_DEPLOYMENT_ID;if(!t)throw Error(ec(`Resolving the latest deployment for deploymentId: 'latest'`));let n=await Sc(e);if(!n)throw Error(`Cannot resolve latest deployment: no OIDC token or VERCEL_TOKEN available`);let r=e?.projectConfig?.teamId,i=r?`?${new URLSearchParams({teamId:r})}`:``,a=`https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(t)}${i}`,o=await(await A({method:`GET`,url:a,headers:new Headers({Authorization:`Bearer ${n}`}),dispatcher:lt(e),peerService:`vercel-api`,timeoutMs:null,buildError:async e=>{let n;try{n=await e.text()}catch{n=`<unable to read response body>`}let r=e.status===404?". The deployment exists but was not visible to the identity this request authenticated as, which means the request resolved to a different team. Set the World's `projectConfig.teamId` to scope it explicitly.":``;return Error(`Failed to resolve latest deployment for ${t}: HTTP ${e.status} ${e.statusText}${n?` — ${n}`:``}${r}`)}})).json(),s=xc.safeParse(o);if(!s.success)throw Error(`Invalid response from Vercel API: expected { id: string }. Zod error: ${s.error.message}`);return s.data.id}}var wc=class extends Error{error;constructor(e){super(`Replay event observer failed`,{cause:e}),this.error=e,this.name=`ReplayEventObserverError`}};const Tc={run_created:{retryable:!0,reason:`conditional create → 409 if exists`},step_created:{retryable:!0,reason:`conditional create → 409 if exists`},wait_created:{retryable:!0,reason:`conditional create → 409 if exists`},hook_created:{retryable:!0,reason:`transactional token uniqueness → 409 if exists`},run_started:{retryable:!0,reason:`early-returns if already running, no duplicate row`},run_completed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},run_failed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},run_cancelled:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},step_completed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},step_failed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},wait_completed:{retryable:!0,reason:`waiting-state guard → 409, no duplicate row`},hook_disposed:{retryable:!0,reason:`conditional delete (exists) → 409, no duplicate row`},attr_set:{retryable:!0,reason:`correlationId constraint reuses eventId (idempotent replay)`},step_started:{retryable:!1,reason:`unconditional attempt increment → a retry double-counts attempts`},step_retrying:{retryable:!1,reason:`no duplicate guard → a retry appends a second event row`},hook_received:{retryable:!1,reason:`no server guard → a retry duplicates the row / re-delivers payload. EXCEPTION: the atomic lazy-resume shape (resumeId + digest) is deduplicated server-side by the (runId, resumeId) claim, so those writes opt in via withEventPostRetry({ idempotentHookResume })`},hook_conflict:{retryable:!1,reason:`server-originated; never POSTed by the SDK`},noop:{retryable:!1,reason:`server-originated; never POSTed by the SDK`}},Ec=new Set([`ECONNRESET`,`ECONNREFUSED`,`ENOTFOUND`,`ENETDOWN`,`ENETUNREACH`,`EHOSTDOWN`,`EHOSTUNREACH`,`EPIPE`,`ETIMEDOUT`,`UND_ERR_SOCKET`,`UND_ERR_REQ_RETRY`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`,`TimeoutError`,`RequestRetryError`]);function Dc(e,t=0){if(t>5||typeof e!=`object`||!e)return[];let n=[],r=e;return typeof r.code==`string`&&n.push(r.code),typeof r.name==`string`&&n.push(r.name),r.cause&&n.push(...Dc(r.cause,t+1)),n}function Oc(e){if(e instanceof wc||ke.is(e)||De.is(e)||Me.is(e)||je.is(e))return!1;if(O.is(e)){if(e.code===`PARSE_ERROR`||e.code===`TRANSPORT`)return!0;if(typeof e.status==`number`)return e.status>=500&&e.status<=599}return Dc(e).some(e=>Ec.has(e))}const kc=e=>new Promise(t=>setTimeout(t,e)),Ac=typeof process<`u`&&typeof process.env.DEBUG==`string`&&(process.env.DEBUG.includes(`workflow:`)||process.env.DEBUG===`*`);function jc(e,t){if(!Ac)return;let n=Object.entries(t).map(([e,t])=>`${e}=${t}`).join(` `);console.debug(`[workflow:world-vercel:event-retry] ${e} ${n}`)}function Mc(e){return O.is(e)?e.code??(e.status==null?e.name:`status_${e.status}`):Dc(e)[0]??(e instanceof Error?e.name:`unknown`)}function Nc(e){let t=0;return async n=>{let r=Math.max(1,typeof n.retryAfter==`number`?n.retryAfter:1)*1e3;if(t+r>3e4)throw jc(`throttle retry budget exhausted; surfacing to the queue`,{eventType:e,waitedMs:t,retryAfter:n.retryAfter}),n;t+=r,console.warn(`[workflow] Throttled (429) writing ${e} event; retrying in-process in ${r/1e3}s`),await kc(r)}}function Pc(e,t){return t?.batchIdempotent===void 0?e===`hook_received`&&t?.idempotentHookResume===!0||(Tc[e]?.retryable??!1):t.batchIdempotent}async function Fc(e,t,n){let r=Pc(t,n),i=Nc(t);for(let n=0;;)try{return await e()}catch(e){if(je.is(e)){await i(e);continue}if(!r||!Oc(e))throw e;if(n>=2)throw jc(`exhausted in-process retries; surfacing for queue redelivery`,{eventType:t,attempts:n+1,error:Mc(e)}),e;let a=100*2**n+Math.floor(Math.random()*50);n++,jc(`retrying event POST after transient failure`,{eventType:t,attempt:n,backoffMs:a,error:Mc(e)}),await kc(a)}}const Ic=`gzip`,Lc=`zstd`,Rc=new TextDecoder,zc=new Set([`devl`,`encr`,Ic,Lc]);function Bc(){try{return globalThis.process?.getBuiltinModule?.(`node:zlib`)}catch{return}}function Vc(e){return!(e instanceof Uint8Array)||e.byteLength<4?null:Rc.decode(e.subarray(0,4))}function Hc(e){let t=Vc(e);return t!==null&&zc.has(t)}function Uc(e,t){let n=Bc(),r=e===Lc?n?.zstdDecompressSync:n?.gunzipSync;if(!r)throw new O(`Received ${e}-compressed workflow data, but this Node.js runtime does not support ${e} decompression. Use a compatible Node.js runtime or request unresolved data.`);return new Uint8Array(r(t))}function Wc(e){let t=Vc(e);return t!==Lc&&t!==Ic?e:Uc(t,e.subarray(4))}function Gc(e){return{...e,input:Wc(e.input),output:Wc(e.output),error:Wc(e.error)}}function Kc(e){return{...e,input:Wc(e.input),output:Wc(e.output),error:Wc(e.error)}}function qc(e){return{...e,metadata:Wc(e.metadata)}}const Jc=D(oe.omit({error:!0}).extend({error:i([_,p()]).optional(),errorRef:p().optional()})),Yc=D(Jc.omit({input:!0,output:!0}).extend({inputRef:p().optional(),outputRef:p().optional(),input:u(Uint8Array).optional(),output:u(Uint8Array).optional()}));function Xc(e){let{error:t,errorRef:n,...r}=e,i={...r},a=t??n;return a!=null&&(i.error=a),i}function Zc(e,t){if(t===`none`){let{inputRef:t,outputRef:n,...r}=e;return{...Kc(Xc(r)),input:void 0,output:void 0}}return Kc(Xc(e))}async function Qc(e,t){let{runId:n,pagination:r,resolveData:i=`all`}=e,a=new URLSearchParams;r?.cursor&&a.set(`cursor`,r.cursor),r?.limit&&a.set(`limit`,r.limit.toString()),r?.sortOrder&&a.set(`sortOrder`,r.sortOrder);let o=i===`none`?`lazy`:`resolve`;a.set(`remoteRefBehavior`,o);let s=a.toString(),c=`/v2/runs/${encodeURIComponent(n)}/steps${s?`?${s}`:``}`,l=await j({endpoint:c,options:{method:`GET`},config:t,schema:E(o===`lazy`?Yc:Jc)});return{...l,data:l.data.map(e=>Zc(e,i))}}async function $c(e,t,n,r){let i=n?.resolveData??`all`,a=i===`none`?`lazy`:`resolve`,o=new URLSearchParams;o.set(`remoteRefBehavior`,a);let s=o.toString(),c=`/v2/runs/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}${s?`?${s}`:``}`;return Zc(await j({endpoint:c,options:{method:`GET`},config:r,schema:a===`lazy`?Yc:Jc}),i)}async function el(e,t,n,r,i){let a=dt(n),o=await A({method:t.method,url:e,headers:t.headers,body:t.body,dispatcher:a,attributes:i,onTransportOutcome:e=>Ft(a,e),deferTransportSuccessUntilBody:!0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:r,buildError:async t=>gl(t.status,It(t.headers),new Uint8Array(await t.arrayBuffer()),r,e)});if(!o.body)return Ft(a),o;let s=o.body.getReader(),c=new ReadableStream({async pull(t){try{let e=await s.read();e.done?(Ft(a),t.close()):t.enqueue(e.value)}catch(n){Ft(a,n);let i=vt(n);t.error(i?new k(`v4 ${r}: response stream transport failure (${i})`,{cause:n,url:e}):n)}},cancel(e){return Ft(a),s.cancel(e)}});return new Response(c,{status:o.status,statusText:o.statusText,headers:o.headers})}const tl=`x-wf-event-id`,nl=`x-wf-max-events`;function rl(e,t,n){return`${e}/v4/runs/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`}const il=Symbol(`omitted event payload`),al=D(a(e=>{if(typeof e!=`object`||!e||Array.isArray(e))return e;let t=e,n=typeof t.eventType==`string`?ve(t.eventType):void 0,r=t.eventData;return!n||typeof r!=`object`||!r||Array.isArray(r)||Object.hasOwn(r,n)?e:{...t,eventData:{...r,[n]:il}}},S).transform(e=>{let t=ve(e.eventType);if(!t||!(`eventData`in e))return e;let n=e.eventData;if(typeof n!=`object`||!n||Array.isArray(n)||n[t]!==il)return e;let r={...n};return delete r[t],{...e,eventData:r}})),ol=D(o({event:al,run:ce.optional(),step:Jc.transform(Xc).optional(),hook:xe.optional(),wait:T.optional(),stepCreated:l(!0).optional(),maxEvents:g().int().positive().optional()})),sl=D(i([o({events:s(al),cursor:h().nullable(),hasMore:m()}),o({events:d().optional(),cursor:d().optional(),hasMore:d().optional()})])),Q=D(ol.and(sl)),cl={run_created:D(ol.extend({run:ce}).and(sl)),run_started:D(ol.extend({run:ce.and(o({startedAt:Ce()}))}).and(sl)),step_started:D(ol.extend({step:Jc.extend({startedAt:Ce()}).transform(e=>({...Xc(e),startedAt:e.startedAt}))}).and(sl)),run_completed:Q,run_failed:Q,run_cancelled:Q,attr_set:Q,step_created:Q,step_completed:Q,step_failed:Q,step_retrying:Q,hook_created:Q,hook_received:Q,hook_disposed:Q,hook_conflict:Q,wait_created:Q,wait_completed:Q,noop:Q},ll=D(Se().int().positive()),ul=D(o({_end:l(1),next:h().optional(),hasMore:m()})),dl=D(o({_error:l(1),code:h(),message:h().optional()})),fl=new Set([`run_failed`,`step_failed`,`step_retrying`]);function pl(e){if(Hc(e))return e;try{let t=de.safeParse(xt(e.slice()));return t.success?t.data:e}catch{return e}}function ml({meta:e,body:t}){let n=te.parse(e.eventType);if(t.byteLength===0)return al.parse(e);let r=ve(n);return qt(r,`Event type ${n} cannot carry a payload body`),qt(e.eventData&&typeof e.eventData==`object`),al.parse({...e,eventData:{...e.eventData,[r]:fl.has(n)?pl(t):t}})}function hl(e){let t={eventType:e.eventType,specVersion:e.specVersion};return e.correlationId!==void 0&&(t.correlationId=e.correlationId),e.vercelId!==void 0&&(t.vercelId=e.vercelId),e.computeInstanceId!==void 0&&(t.computeInstanceId=e.computeInstanceId),e.occurredAt!==void 0&&(t.occurredAt=e.occurredAt),e.remoteRefBehavior!==void 0&&(t.remoteRefBehavior=e.remoteRefBehavior),e.deploymentId!==void 0&&(t.deploymentId=e.deploymentId),e.workflowName!==void 0&&(t.workflowName=e.workflowName),e.stepName!==void 0&&(t.stepName=e.stepName),e.attempt!==void 0&&(t.attempt=e.attempt),e.resumeAt!==void 0&&(t.resumeAt=e.resumeAt),e.retryAfter!==void 0&&(t.retryAfter=e.retryAfter),e.hookToken!==void 0&&(t.hookToken=e.hookToken),e.hookTokenRetentionUntil!==void 0&&(t.hookTokenRetentionUntil=e.hookTokenRetentionUntil),e.hookIsWebhook!==void 0&&(t.hookIsWebhook=e.hookIsWebhook),e.hookIsSystem!==void 0&&(t.hookIsSystem=e.hookIsSystem),e.resumeId!==void 0&&(t.resumeId=e.resumeId),e.errorCode!==void 0&&(t.errorCode=e.errorCode),e.cancelReason!==void 0&&(t.cancelReason=e.cancelReason),e.ownerMessageId!==void 0&&(t.ownerMessageId=e.ownerMessageId),e.executionContext!==void 0&&(t.executionContext=e.executionContext),e.attributes!==void 0&&(t.attributes=e.attributes),e.changes!==void 0&&(t.changes=e.changes),e.writer!==void 0&&(t.writer=e.writer),e.allowReservedAttributes!==void 0&&(t.allowReservedAttributes=e.allowReservedAttributes),e.encryptionPublicKey!==void 0&&(t.encryptionPublicKey=e.encryptionPublicKey),e.ttfs!==void 0&&(t.ttfs=e.ttfs),e.stso!==void 0&&(t.stso=e.stso),e.stepCount!==void 0&&(t.stepCount=e.stepCount),e.eventCount!==void 0&&(t.eventCount=e.eventCount),e.rsfs!==void 0&&(t.rsfs=e.rsfs),e.finalSchedulingReplay!==void 0&&(t.finalSchedulingReplay=e.finalSchedulingReplay),e.optimizations!==void 0&&(t.optimizations=e.optimizations),e.sinceCursor!==void 0&&(t.sinceCursor=e.sinceCursor),e.skipPreload&&(t.skipPreload=!0),e.maxSlot!==void 0&&(t.maxSlot=e.maxSlot),e.replayDivergenceCount!==void 0&&(t.replayDivergenceCount=e.replayDivergenceCount),e.resumePayloadDigest!==void 0&&(t.resumePayloadDigest=e.resumePayloadDigest),e.viaStepDispatch!==void 0&&(t.viaStepDispatch=e.viaStepDispatch),t}function gl(e,t,n,r,i){let a=`v4 ${r} failed: HTTP ${e}`,o,s,{record:c,text:l}=_l(n,Ml(t,`content-type`));c?(typeof c.message==`string`&&(a=c.message),typeof c.code==`string`&&(o=c.code),e===412&&(s=vl(c))):l&&(a+=` ${l}`);let u=Rt(Ml(t,`retry-after`));return Tt(e,a,{retryAfter:u,code:o,url:i,mitigated:Ml(t,`x-vercel-mitigated`),...s===void 0?{}:{details:s}})}function _l(e,t){if(typeof e!=`string`&&t?.includes(`application/cbor`)){try{let t=xt(e.slice());if(typeof t==`object`&&t)return{record:t}}catch{}return{}}let n=typeof e==`string`?e:new TextDecoder().decode(e);try{let e=JSON.parse(n);if(typeof e==`object`&&e)return{record:e}}catch{}return{text:n}}function vl(e){if(!Array.isArray(e.events)||e.events.length===0)return;let t=[];for(let n of e.events){if(typeof n!=`object`||!n)return;let e=n;if(typeof e.eventId!=`string`||yl(e))return;let r=al.safeParse(e);if(!r.success)return;t.push(r.data)}return{events:t,...typeof e.cursor==`string`?{cursor:e.cursor}:{}}}function yl(e){let t=e.eventType;if(typeof t!=`string`)return!1;let n=ve(t);if(!n)return!1;let r=e.eventData;if(typeof r!=`object`||!r)return!1;let i=r[n];return i!==void 0&&!(i instanceof Uint8Array)}async function bl(e,t,n){let{baseUrl:r,headers:i}=await M(n),a=new Headers(i);a.set(`Content-Type`,`application/octet-stream`),t===`event-stream`&&a.set(`Accept`,Et);let o=bt(hl(e),e.payload??new Uint8Array);return el(rl(r,e.runId,e.eventType),{method:`POST`,headers:a,body:o},n,`createEvent`,{...Ye(`http`),...Ke(e.eventType),...nt(`@workflow/world-vercel/${Dt}`),...e.eventType===`step_started`?{...it(e.payload===void 0?e.ownerMessageId===void 0?`single_bare`:`single_owned_recovery`:`single_lazy_create_claim`),...Bt(e.ownerMessageId!==void 0)}:{},...e.stso===void 0?{}:et(e.stso),...e.optimizations===void 0?{}:$e(e.optimizations)})}const xl=new Set([`step_completed`]);function Sl(e){if(Ot()&&xl.has(e))throw Error(`world-vercel: ${e} fell back to the HTTP events transport while the WS gate was on. WORKFLOW_INTERNAL_EVENTS_TRANSPORT_STRICT is set, so this is a failure rather than a silent demotion: no channel was resolvable for this run at write time.`)}async function Cl(e,t){if(pt()){let n=await Al(e,t);if(n)return wl(n,e.eventType);Sl(e.eventType)}let n=await bl(e,`materialized`,t);if(n.headers.get(`content-type`)?.startsWith(`application/vnd.workflow.v4-frames`))throw new O(`v4 createEvent: unexpected event page`,{code:`SCHEMA_VALIDATION`});return wl(n,e.eventType)}async function wl(e,t){let n;try{n=new Uint8Array(await e.arrayBuffer())}catch(e){throw k.is(e)?e:new O(`v4 createEvent: failed to read response body`,{code:`TRANSPORT`,cause:e})}if(n.byteLength===0)throw new O(`v4 createEvent: empty response body`,{code:`PARSE_ERROR`});let r=D(cl[t].refine(({event:e})=>e.eventType===t||t===`hook_created`&&e.eventType===`hook_conflict`,{path:[`event`,`eventType`]})),i;try{i=xt(n)}catch(e){throw new O(`v4 createEvent: invalid CBOR response body`,{code:`PARSE_ERROR`,cause:e})}let a=r.safeParse(i);if(!a.success)throw new O(`v4 createEvent: invalid response body`,{code:`SCHEMA_VALIDATION`,cause:a.error});return a.data}async function Tl(e,t,n){let r=await bl({...e,eventType:`run_started`},`event-stream`,t),i=await Ll(r,e.runId,t,n);if(!i.cursor)throw new O(`v4 createEvent: event stream missing cursor`,{code:`SCHEMA_VALIDATION`});let a=ll.safeParse(r.headers.get(nl));if(!a.success)throw new O(`v4 createEvent: invalid max-events header`,{code:`SCHEMA_VALIDATION`,cause:a.error});return{...i,maxEvents:a.data}}const El=D(o({status:g().int(),error:h(),message:h()}));async function Dl(e,t){qt(e.events.length>0,`v4 createEventBatch: empty batch`);let{baseUrl:n,headers:r}=await M(t),i=new Headers(r);i.set(`Content-Type`,`application/octet-stream`);let a=e.events.map(e=>bt(hl(e),e.payload??new Uint8Array)),o=0;for(let e of a)o+=e.byteLength;let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;let l=await el(`${n}/v4/runs/${encodeURIComponent(e.runId)}/events/batch`,{method:`POST`,headers:i,body:s},t,`createEventBatch`,{...Ye(`http`),"workflow.batch.bytes":s.byteLength,...e.events.some(e=>e.eventType===`step_started`)?{...it(e.events.some(e=>e.eventType===`step_created`)?`batch_create_claim`:`batch_bare`),...Bt(e.events.some(e=>e.ownerMessageId!==void 0))}:{}}),u=new Uint8Array(await l.arrayBuffer()),d=u.byteLength>0?xt(u):{};if(!Array.isArray(d.results)||d.results.length!==e.events.length)throw new O(`v4 createEventBatch: response \`results\` length (${Array.isArray(d.results)?d.results.length:`non-array`}) != ${e.events.length} submitted frames`,{code:`SCHEMA_VALIDATION`});return{results:d.results.map((t,n)=>{let r=El.safeParse(t);if(r.success&&r.data.status!==200)return r.data;if(t?.status!==200)throw new O(`v4 createEventBatch: result at index ${n} is neither a success (status 200) nor a well-formed failure`,{code:`SCHEMA_VALIDATION`});let i=e.events[n].eventType,a=cl[i].safeParse(t);if(!a.success)throw new O(`v4 createEventBatch: invalid result body at index ${n} (${i})`,{code:`SCHEMA_VALIDATION`,cause:a.error});if(a.data.event.eventType!==i)throw new O(`v4 createEventBatch: result at index ${n} carries a ${a.data.event.eventType} event, expected ${i}`,{code:`SCHEMA_VALIDATION`});return{status:200,...a.data}})}}function Ol(e){let t={};return typeof e.eventId==`string`&&(t[tl]=e.eventId),typeof e.retryAfter==`string`&&(t[`retry-after`]=e.retryAfter),typeof e.mitigated==`string`&&(t[`x-vercel-mitigated`]=e.mitigated),t}function kl(e,t){let{status:n}=e.meta;if(typeof n!=`number`)throw new O(`Failed to parse response body for POST ${t}: reply frame carried no numeric status (type: ${String(e.meta.type??`absent`)}). Refusing to treat an unrecognized reply as success — the write may or may not have been applied.`,{url:t,code:`PARSE_ERROR`});return n}async function Al(e,t){let{resolveWsTransport:n}=await import(`../../_chunks/workflow/ws-transport-CVezyWwZ.js`),{runId:r}=e,i=n(r,t);if(!i)return;let{transport:a,wsUrl:o}=i,s=`${o}#runs/${encodeURIComponent(r)}/events`,c=rl(gt(t).baseUrl,r,e.eventType);return Lt({method:`POST`,url:c,attributes:{...Ye(`ws`),...Ke(e.eventType),...nt(`@workflow/world-vercel/${Dt}`),...e.stso===void 0?{}:et(e.stso),...e.optimizations===void 0?{}:$e(e.optimizations),...e.eventType===`step_started`?{...it(e.payload===void 0?e.ownerMessageId===void 0?`single_bare`:`single_owned_recovery`:`single_lazy_create_claim`),...Bt(e.ownerMessageId!==void 0)}:{},...Ge(`websocket`),...qe(o)}},async t=>{let n=Date.now(),r;try{r=await a.request(n=>(t?.setAttributes({...ct(n)}),bt({reqId:n,type:`event`,event:hl(e)},e.payload??new Uint8Array)))}catch(e){let n=new O(`POST ${s} transport failure: ${e instanceof Error?e.message:String(e)}`,{url:o,code:`TRANSPORT`,cause:e});throw t?.setAttributes({...ot(`TRANSPORT`)}),t?.recordException?.(n),n}let i=Date.now()-n,c=kl(r,s),l=Ol(r.meta),u={get:e=>l[e.toLowerCase()]??null};if(zt(`POST`,`createEvent`,{status:c,headers:u},i),at(t,c),c<200||c>=300){let e=gl(c,l,new TextDecoder().decode(r.body),`createEvent`,s);throw t?.recordException?.(e),e}return{headers:u,arrayBuffer:async()=>r.body.slice().buffer}})}async function jl(e,t,n){let r=await bl({...e,eventType:`hook_received`},`event-stream`,t);if(!r.headers.get(`content-type`)?.startsWith(`application/vnd.workflow.v4-frames`))return{kind:`materialized`,result:await wl(r,`hook_received`)};let i=await Ll(r,e.runId,t,n),a=ll.safeParse(r.headers.get(nl));return{kind:`stream`,...i,canonicalEventId:r.headers.get(tl)??void 0,maxEvents:a.success?a.data:void 0}}function Ml(e,t){let n=e[t];if(typeof n==`string`)return n;if(Array.isArray(n)&&n.length>0)return n[0]}async function Nl(e,t,n,r){let{baseUrl:i,headers:a}=await M(r),o=await el(`${i}/v4/runs/${encodeURIComponent(e)}/events/${encodeURIComponent(t)}?remoteRefBehavior=${n}`,{method:`GET`,headers:a},r,`getEvent`),s=o.headers.get(`content-type`);if(!s?.startsWith(`application/vnd.workflow.v4-frames`))throw Error(`v4 getEvent: expected ${Et}, got ${s??`(none)`}`);let c=o.body;try{for await(let e of jt(c)){if(e.meta._error===1)throw Pl(e.meta,`getEvent`);if(Object.keys(e.meta).some(e=>e.startsWith(`_`)))throw Error(`v4 getEvent: unexpected control frame`);return ml(e)}}catch(e){throw e instanceof Pt&&k.is(e.cause)?e.cause:e}throw Error(`v4 getEvent: empty frame stream for ${t}`)}function Pl(e,t){let n=dl.safeParse(e);if(!n.success)return new O(`v4 ${t}: malformed terminal error frame`,{code:`SCHEMA_VALIDATION`,cause:n.error});let{code:r,message:i}=n.data,a=i??`(no detail)`;return r===`payload-missing`?new Ae(`the event log references a payload that no longer exists in storage: ${a}`):new O(`v4 ${t}: stream ended with terminal error "${r}": ${a}`,{code:`WORLD_CONTRACT_ERROR`})}function Fl(e,t){let n=e.at(-1)?.eventId;if(!n)throw t;return{kind:`partial`,events:e,cursor:`eid:${n}`,hasMore:!0,error:t}}async function Il(e,t,n){let r=e.headers.get(`content-type`);if(!r?.startsWith(`application/vnd.workflow.v4-frames`))throw new O(`v4 ${t}: expected ${Et}, got ${r??`(none)`}`,{code:`SCHEMA_VALIDATION`});if(!e.body)throw new O(`v4 ${t}: response body is missing`,{code:`TRANSPORT`});let i=[];try{for await(let r of jt(e.body)){if(r.meta._end===1){let e=ul.parse(r.meta);return{kind:`complete`,events:i,cursor:e.next??null,hasMore:e.hasMore}}if(r.meta._error===1)throw Pl(r.meta,t);if(Object.keys(r.meta).some(e=>e.startsWith(`_`)))throw Error(`v4 ${t}: unexpected control frame`);let e=ml(r);i.push(e);try{n?.(e)}catch(e){throw new wc(e)}}}catch(e){if(e instanceof wc||Ae.is(e)||O.is(e))throw e;if(e instanceof Pt&&k.is(e.cause))return Fl(i,e.cause);if(!(e instanceof Pt))throw new O(`v4 ${t}: invalid event frame stream`,{code:`SCHEMA_VALIDATION`,cause:e});return Fl(i,new O(`v4 ${t}: incomplete event frame stream`,{code:`TRANSPORT`,cause:e}))}return Fl(i,new O(`v4 ${t}: frame stream ended without the end-of-stream sentinel (${i.length} events read)`,{code:`TRANSPORT`}))}async function Ll(e,t,n,r){let i=await Il(e,`createEvent`,r);if(!i.hasMore)return{events:i.events,cursor:i.cursor,hasMore:!1};if(!i.cursor)throw new O(`v4 createEvent: partial event stream missing cursor`,{code:`SCHEMA_VALIDATION`});let a=await Vl(t,{cursor:i.cursor,remoteRefBehavior:`resolve`},n,r);return{events:[...i.events,...a.events],cursor:a.cursor??i.cursor,hasMore:a.hasMore}}async function Rl(e,t,n,r,i){return Il(await el(e,{method:`GET`,headers:t},n,r),r,i)}function zl(e,t){t.cursor&&e.set(`cursor`,t.cursor),t.limit!==void 0&&e.set(`limit`,String(t.limit)),t.sortOrder&&e.set(`sortOrder`,t.sortOrder),t.remoteRefBehavior&&e.set(`remoteRefBehavior`,t.remoteRefBehavior)}function Bl(e){let t=new URLSearchParams;return e.limit===void 0&&t.set(`returnAll`,`true`),zl(t,e),`?${t.toString()}`}async function Vl(e,t={},n,r){let{baseUrl:i,headers:a}=await M(n),o=[],s=t.cursor??null,c=0,l;do{l=await Rl(`${i}/v4/runs/${encodeURIComponent(e)}/events`+Bl({...t,cursor:s??void 0}),a,n,`listEvents`,r);let u=!!l.cursor&&l.cursor!==s;if(l.kind===`partial`){if(t.limit!==void 0||!u||c===2)throw l.error;c++,s=l.cursor}else if(!u&&(l.events.length>0||l.hasMore))throw new O(`v4 listEvents: response did not advance cursor`,{code:`SCHEMA_VALIDATION`});for(let e of l.events)o.push(e)}while(l.kind===`partial`);return{events:o,cursor:l.cursor||(c>0?s:null),hasMore:l.hasMore}}async function Hl(e,t,n={},r){let{baseUrl:i,headers:a}=await M(r),o=new URLSearchParams;o.set(`correlationId`,e),o.set(`runId`,t),zl(o,n);let s=await Rl(`${i}/v4/events?${o.toString()}`,a,r,`listEventsByCorrelationId`);if(s.kind===`partial`)throw s.error;return{events:s.events,cursor:s.cursor,hasMore:s.hasMore}}const Ul=D(C.omit({error:!0,errorCode:!0}).extend({error:i([_,p()]).optional(),errorCode:h().optional(),blobStorageBytes:g().optional(),streamStorageBytes:g().optional()})),Wl=D(Ul),Gl=D(Ul.omit({input:!0,output:!0}).extend({inputRef:p().optional(),outputRef:p().optional(),input:i([u(Uint8Array),p()]).optional(),output:i([u(Uint8Array),p()]).optional()}));function Kl(e,t){if(t===`none`){let{inputRef:t,outputRef:n,...r}=e;return{...Gc(ht(r)),input:void 0,output:void 0}}return Gc(ht(e))}async function ql(e={},t){let{workflowName:n,status:r,pagination:i,resolveData:a=`all`}=e,o=new URLSearchParams;n&&o.set(`workflowName`,n),r&&o.set(`status`,r),i?.limit&&o.set(`limit`,i.limit.toString()),i?.cursor&&o.set(`cursor`,i.cursor),i?.sortOrder&&o.set(`sortOrder`,i.sortOrder);let s=a===`none`?`lazy`:`resolve`;o.set(`remoteRefBehavior`,s);let c=o.toString(),l=`/v2/runs${c?`?${c}`:``}`,u=await j({endpoint:l,options:{method:`GET`},config:t,schema:E(s===`lazy`?Gl:Wl)});return{...u,data:u.data.map(e=>Kl(e,a))}}async function Jl(e,t){let n=await j({endpoint:`/v1/runs/create`,options:{method:`POST`},data:e,config:t,schema:Wl});return ht(n)}async function Yl(e,t,n){let r=t?.resolveData??`all`;try{return await Xl(e,{resolveData:r},n)}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}async function Xl(e,t,n){let{resolveData:r,waitMs:i,signal:a}=t,o=r===`none`?`lazy`:`resolve`,s=new URLSearchParams;s.set(`remoteRefBehavior`,o),i!==void 0&&s.set(`waitMs`,String(i));let c=i===void 0?``:`/status`,l=s.toString(),u=`/v2/runs/${encodeURIComponent(e)}${c}${l?`?${l}`:``}`;return Kl(await j({endpoint:u,options:{method:`GET`,...a?{signal:a}:{}},config:n,retryConnectTimeout:!0,schema:o===`lazy`?Gl:Wl}),r)}const Zl=ge(`@workflow/world-vercel//runStatusLongPollSupport`,1,()=>({unsupportedUntilByBaseUrl:new Map}));function Ql(e){return e.status===404||e.status===405||e.status===501||e.status===504||e.status===void 0&&(e.code===`TIMEOUT`||e.code===`TRANSPORT`)}async function $l(e,t,n){let r=t?.resolveData??`all`,i=Math.max(0,Math.min(t?.timeoutMs??0,yt()-1e4)),{baseUrl:a}=gt(n),o=Zl.unsupportedUntilByBaseUrl.get(a)??0;if(i===0||Date.now()<o)return Yl(e,{resolveData:r},n);try{return await Xl(e,{resolveData:r,waitMs:i,...t?.signal?{signal:t.signal}:{}},n)}catch(i){if(t?.signal?.aborted||!(i instanceof O)||!Ql(i))throw i;let o=await Yl(e,{resolveData:r},n);return Zl.unsupportedUntilByBaseUrl.set(a,Date.now()+3e5),o}}async function eu(e,t,n){let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await Yl(e,t,n)}catch(e){if(e instanceof we)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}async function tu(e,t,n){let r=t?.resolveData??`all`,i=r===`none`?`lazy`:`resolve`,a=new URLSearchParams;a.set(`remoteRefBehavior`,i);let o=a.toString(),s=`/v1/runs/${encodeURIComponent(e)}/cancel${o?`?${o}`:``}`;try{return Kl(await j({endpoint:s,options:{method:`PUT`},config:n,schema:i===`lazy`?Gl:Wl}),r)}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}async function nu(e,t){let{runIds:n,cancelReason:r}=y.parse(e),i=await j({endpoint:`/v4/runs/cancel`,options:{method:`POST`},data:r===void 0?{runIds:n}:{runIds:n,cancelReason:r},config:t,schema:le}),a=new Map(i.results.map(e=>[e.runId,e]));if(!(a.size===i.results.length&&i.results.length===n.length&&n.every(e=>a.has(e))))throw new O(`Bulk cancel response did not contain exactly one result per requested run ID (requested ${n.length}, received ${i.results.length}).`);let o=n.map(e=>a.get(e));return{summary:i.summary,results:o}}const ru=D(o({attributes:r(h(),h())}));async function iu(e,t,n,r){try{return{attributes:(await j({endpoint:`/v2/runs/${encodeURIComponent(e)}/attributes`,options:{method:`POST`},data:n?.allowReservedAttributes?{changes:t,allowReservedAttributes:!0}:{changes:t},config:r,schema:ru})).attributes}}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}function au(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return _e(`wrun_${ze(t).ulid}`,`wrun_`)}catch{return _e(e,`wrun_`)}}const ou=new Set([`run_created`,`run_started`,`step_started`]);function su(e){let t=e.eventData??{},n=ve(e.eventType),r={};if(typeof t.deploymentId==`string`&&(r.deploymentId=t.deploymentId),typeof t.workflowName==`string`&&(r.workflowName=t.workflowName),typeof t.stepName==`string`&&(r.stepName=t.stepName),typeof t.attempt==`number`&&(r.attempt=t.attempt),t.resumeAt instanceof Date)r.resumeAt=t.resumeAt;else if(typeof t.resumeAt==`string`){let e=new Date(t.resumeAt);Number.isNaN(e.getTime())||(r.resumeAt=e)}if(t.retryAfter instanceof Date)r.retryAfter=t.retryAfter;else if(typeof t.retryAfter==`string`){let e=new Date(t.retryAfter);Number.isNaN(e.getTime())||(r.retryAfter=e)}typeof t.token==`string`&&(r.hookToken=t.token),t.tokenRetentionUntil instanceof Date&&(r.hookTokenRetentionUntil=t.tokenRetentionUntil),typeof t.isWebhook==`boolean`&&(r.hookIsWebhook=t.isWebhook),typeof t.isSystem==`boolean`&&(r.hookIsSystem=t.isSystem),typeof t.errorCode==`string`&&(r.errorCode=t.errorCode),typeof t.cancelReason==`string`&&(r.cancelReason=t.cancelReason),typeof t.ownerMessageId==`string`&&(r.ownerMessageId=t.ownerMessageId),t.executionContext!==void 0&&t.executionContext!==null&&typeof t.executionContext==`object`&&(r.executionContext=t.executionContext),t.attributes!==void 0&&t.attributes!==null&&typeof t.attributes==`object`&&(r.attributes=t.attributes),Array.isArray(t.changes)&&(r.changes=t.changes),t.writer!==void 0&&t.writer!==null&&typeof t.writer==`object`&&(r.writer=t.writer),typeof t.allowReservedAttributes==`boolean`&&(r.allowReservedAttributes=t.allowReservedAttributes),typeof t.encryptionPublicKey==`string`&&(r.encryptionPublicKey=t.encryptionPublicKey),typeof t.ttfs==`number`&&(r.ttfs=t.ttfs),typeof t.stso==`number`&&(r.stso=t.stso),typeof t.stepCount==`number`&&Number.isSafeInteger(t.stepCount)&&t.stepCount>0&&(r.stepCount=t.stepCount),typeof t.eventCount==`number`&&Number.isSafeInteger(t.eventCount)&&t.eventCount>0&&(r.eventCount=t.eventCount),typeof t.rsfs==`number`&&(r.rsfs=t.rsfs),typeof t.finalSchedulingReplay==`number`&&(r.finalSchedulingReplay=t.finalSchedulingReplay),Array.isArray(t.optimizations)&&t.optimizations.every(e=>typeof e==`string`)&&(r.optimizations=t.optimizations);let i;if(n&&n in t){let r=t[n];if(r!==void 0){if(!(r instanceof Uint8Array))throw TypeError(`world-vercel v4: eventData.${n} for ${e.eventType} must be a Uint8Array (the runtime's dehydrated wire form); got ${typeof r==`object`?r===null?`null`:r.constructor?.name??typeof r:typeof r}.`);i=r}}return{payload:i,meta:r}}async function cu(e,t,n,r){return Nl(e,t,n?.resolveData===`none`?`lazy`:`resolve`,r)}async function lu(e,t){let{pagination:n,resolveData:r=`all`}=e,i={...n,remoteRefBehavior:r===`none`?`lazy`:`resolve`},a=await(`correlationId`in e?Hl(e.correlationId,e.runId,i,t):Vl(e.runId,i,t));return{data:`correlationId`in e?a.events.filter(t=>t.runId===e.runId):a.events,cursor:a.cursor,hasMore:a.hasMore}}async function uu(e,t,n,r){if(t.length===0)throw new O(`world-vercel: createBatch requires at least one event`,{status:400});if(t.some(({event:e})=>e.eventType===`hook_received`))throw new O(`world-vercel: hook_received cannot be batched (it has no entity condition, so a batch retry would append the delivery twice); send it through the single-event path`,{status:400});let i=t.map(({event:t,occurredAt:r,computeInstanceId:i})=>{let{payload:a,meta:o}=su(t);return{runId:e,eventType:t.eventType,specVersion:t.specVersion??2,...t.correlationId?{correlationId:t.correlationId}:{},occurredAt:r??new Date,...i===void 0?{}:{computeInstanceId:i},remoteRefBehavior:n?.resolveData===`all`?`resolve`:`lazy`,...n?.requestId?{vercelId:n.requestId}:{},payload:a,...o}}),a=t.every(({event:e})=>e.eventType!==`step_started`&&e.eventType!==`step_retrying`);return{results:(await Fc(()=>Dl({runId:e,events:i},r),t[0].event.eventType,{batchIdempotent:a})).results.map(e=>e.error===void 0?{status:200,event:e.event,...e.run?{run:e.run}:{},...e.step?{step:e.step}:{},...e.wait?{wait:e.wait}:{}}:{status:e.status,error:e.error,message:e.message})}}async function du(e,t,n,r){try{let i=await Fc(()=>fu(e,t,n,r),t.eventType,{idempotentHookResume:t.eventType===`hook_received`&&n?.resumeId!==void 0&&n?.resumePayloadDigest!==void 0});if(t.eventType===`run_created`&&!i.run)throw new O(`${t.eventType} response is missing the run entity`,{code:`SCHEMA_VALIDATION`});if(t.eventType===`run_started`&&!i.run?.startedAt)throw new O(`run_started response is missing run.startedAt`,{code:`SCHEMA_VALIDATION`});if(t.eventType===`step_started`&&!i.step?.startedAt)throw new O(`step_started response is missing step.startedAt`,{code:`SCHEMA_VALIDATION`});return i}catch(e){throw e instanceof wc?e.error:ee(t.eventType)&&O.is(e)&&e.status===404&&t.correlationId?new Oe(t.correlationId):e}}async function fu(e,t,n,r){if(n?.v1Compat){if(t.eventType===`run_cancelled`&&e)return{run:await tu(e,n,r)};if(t.eventType===`run_created`)return{run:await Jl(t.eventData,r)};if(e===null)throw new O(`world-vercel: v1Compat=true requires a runId for ${t.eventType}`,{status:400});return{event:await j({endpoint:`/v1/runs/${encodeURIComponent(e)}/events`,options:{method:`POST`},data:t,config:r,schema:al})}}if(e===null)throw new O(`world-vercel v4: createWorkflowRunEvent requires a client-generated runId for run_created (the runId is part of the payload storage ref key). Generate a wrun_ ULID before calling.`,{status:400});if(t.eventType===`run_created`){let t=au(e);if(t)throw new O(t,{status:400})}let i=ou.has(t.eventType)?`resolve`:`lazy`,{payload:a,meta:o}=su(t),s={runId:e,specVersion:t.specVersion??2,...t.correlationId?{correlationId:t.correlationId}:{},...n?.requestId?{vercelId:n.requestId}:{},...n?.computeInstanceId?{computeInstanceId:n.computeInstanceId}:{},...n?.eventCount===void 0?{}:{maxSlot:n.eventCount},replayDivergenceCount:n?.replayDivergenceCount,occurredAt:n?.occurredAt??new Date,...n?.sinceCursor?{sinceCursor:n.sinceCursor}:{},...n?.resumeId?{resumeId:n.resumeId}:{},...n?.resumePayloadDigest?{resumePayloadDigest:n.resumePayloadDigest}:{},...n?.viaStepDispatch?{viaStepDispatch:!0}:{},remoteRefBehavior:i,payload:a,...o};if(t.eventType===`run_started`&&!n?.skipPreload){let e=await Tl(s,r,n?.replayEventObserver),t=pu(e.events);if(!t)throw new O(`v4 createEvent: run_started stream is missing lifecycle events`,{code:`SCHEMA_VALIDATION`});return{event:t.event,run:t.run,events:e.events,cursor:e.cursor,hasMore:e.hasMore,maxEvents:e.maxEvents}}if(t.eventType===`hook_received`&&n?.preloadEvents===!0&&n.resumeId!==void 0&&n.resumePayloadDigest!==void 0){let e=await jl({...s,remoteRefBehavior:`lazy`},r,n.replayEventObserver);if(e.kind===`materialized`)return e.result;let{canonicalEventId:t,maxEvents:i,events:a,cursor:o,hasMore:c}=e,l=a.find(e=>e.eventId===t),u=pu(a);return{...l?{event:l}:{},...u?{run:u.run}:{},events:a,cursor:o,hasMore:c,...i===void 0?{}:{maxEvents:i}}}return Cl(t.eventType===`run_started`?{...s,eventType:`run_started`,skipPreload:!0}:{...s,eventType:t.eventType},r)}function pu(e){let t=e.find(e=>e.eventType===`run_created`),n=e.find(e=>e.eventType===`run_started`);if(!t||!n)return;let r=t.eventData.attributes??{},i=n.createdAt;for(let t of e)t.eventType===`attr_set`&&(r=ye(r,t.eventData.changes),i=t.createdAt);return{event:n,run:{runId:t.runId,status:`running`,deploymentId:t.eventData.deploymentId,workflowName:t.eventData.workflowName,specVersion:t.specVersion,executionContext:t.eventData.executionContext,input:t.eventData.input,attributes:r,encryptionPublicKey:t.eventData.encryptionPublicKey,startedAt:n.createdAt,createdAt:t.createdAt,updatedAt:i}}}function mu(e,t){if(t===`none`){let{metadataRef:t,...n}=e;return n}return qc(e)}const hu=D(xe.omit({metadata:!0}).extend({metadataRef:p().optional()}));async function gu(e,t){let{runId:n,pagination:r,resolveData:i=`all`}=e,a=new URLSearchParams;r?.limit&&a.set(`limit`,r.limit.toString()),r?.cursor&&a.set(`cursor`,r.cursor),r?.sortOrder&&a.set(`sortOrder`,r.sortOrder);let o=i===`none`?`lazy`:`resolve`;a.set(`remoteRefBehavior`,o),n&&a.set(`runId`,n);let s=a.toString(),c=`/v2/hooks${s?`?${s}`:``}`,l=await j({endpoint:c,options:{method:`GET`},config:t,schema:E(o===`lazy`?hu:xe)});return{...l,data:l.data.map(e=>mu(e,i))}}async function _u(e,t,n){let r=t?.resolveData||`all`,i=`/v2/hooks/${encodeURIComponent(e)}`;return mu(await j({endpoint:i,options:{method:`GET`},config:n,schema:xe}),r)}async function vu(e,t){try{return await j({endpoint:`/v2/hooks/by-token?token=${encodeURIComponent(e)}`,options:{method:`GET`},config:t,schema:xe})}catch(t){throw O.is(t)&&t.status===404?new Oe(e):t}}function yu(e){let t={runs:{get:((t,n)=>Yl(t,n,e)),waitForTerminalStatus:((t,n)=>$l(t,n,e)),getMany:((t,n)=>eu(t,n,e)),list:(t=>ql(t,e)),experimentalSetAttributes:(t,n,r)=>iu(t,n,r,e),cancelMany:t=>nu(t,e)},steps:{get:((t,n,r)=>$c(t,n,r,e)),list:(t=>Qc(t,e))},events:{create:(t,n,r)=>du(t,n,r,e),createBatch:(t,n,r)=>uu(t,n,r,e),get:(t,n,r)=>cu(t,n,r,e),list:t=>lu(t,e),listByCorrelationId:t=>lu(t,e)},hooks:{get:(t,n)=>_u(t,n,e),getByToken:t=>vu(t,e),list:t=>gu(t,e)}};return{runs:Rn(`world.runs`,t.runs),steps:Rn(`world.steps`,t.steps),events:Rn(`world.events`,t.events),hooks:Rn(`world.hooks`,t.hooks)}}const bu=1e3;function xu(e){let t=new TextEncoder;return e.map(e=>typeof e==`string`?t.encode(e):e)}function Su(e){return Cu(xu(e))}function Cu(e){let t=0;for(let n of e)if(t+=4+n.length,t>4294967295)throw RangeError(`encoded stream chunks exceed the u32 body-length limit: ${t} bytes`);let n=new Uint8Array(t),r=new DataView(n.buffer),i=0;for(let t of e)r.setUint32(i,t.length,!1),i+=4,n.set(t,i),i+=t.length;return n}const wu=bu,Tu=g().int().nonnegative(),Eu=Tu,Du=h().regex(/^wrtr_[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$/),Ou=o({type:l(`write`),reqId:Eu,chunkSeq:Tu,numChunks:g().int().positive().max(wu)}),ku=o({type:l(`close`),reqId:Eu});c(`type`,[Ou,ku]);const Au=o({type:l(`write_ack`),reqId:Eu}),ju=o({type:l(`close_ack`),reqId:Eu}),Mu=o({type:l(`error`),reqId:Eu.optional(),status:g().int(),message:h().optional()}),Nu=o({type:l(`drain`),reason:f([`auth_expiry`,`max_duration`]),graceMs:Tu}),Pu=c(`type`,[Au,ju,Mu,Nu]);function Fu(e,t,n,r){let i=Du.parse(r),a=new URL(e);return a.protocol=a.protocol===`https:`?`wss:`:`ws:`,a.pathname=`${a.pathname.replace(/\/$/,``)}/websockets/v1/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}`,a.search=new URLSearchParams({writerId:i}).toString(),a}function Iu(e,t){let n=Ou.parse(e);if(n.numChunks!==t.length)throw Error(`stream WebSocket write declares ${n.numChunks} chunks but received ${t.length}`);let r=xu(t);for(let e of r){let t=e.byteLength;if(t>10485760)throw Error(`stream WebSocket chunk is ${t} bytes; maximum is 10485760`)}return bt(n,Cu(r))}function Lu(e){return bt(ku.parse(e),new Uint8Array)}function Ru(e,t){if(t.byteLength!==0)throw Error(`stream WebSocket reply body must be empty`);return Pu.parse(e)}function zu(t,n){if(t.readyState===3)return;let r=!1,i=new Promise(e=>{let n=!1,i=()=>{n||(n=!0,clearTimeout(a),e())},a=setTimeout(()=>{r=!0,i()},250);a.unref?.(),t.once(`close`,i)}),a=ut(`workflow.stream.ws.close.cleanup`,async e=>{await i,e?.setAttribute(`workflow.stream.ws.close_cleanup_timeout`,r)});import(`../../_chunks/workflow/functions-wMCGZAVk.js`).then(t=>e(t.default,1)).then(({waitUntil:e})=>e(a)).catch(()=>{}),a.catch(()=>{}),t.close(1e3,n)}function $(){return performance.now()}function Bu(e,t,n){return e?{"workflow.stream.ws.session_first_write":e.sessionFirstWrite,"workflow.stream.ws.connection_first_write":t?.firstWriteSent===!1,"workflow.stream.ws.connection_attempt":t?.attempt??0,"workflow.stream.ws.session_to_write_ms":e.startedAt-n}:{}}function Vu(e,t,n){n&&(n.firstWriteSent=!0);let r=n?.openedAt,i=n?.socketStartedAt,a=n?.configFinishedAt;e?.setAttributes({"workflow.stream.ws.write_wait_for_open_ms":r?Math.max(0,r-t.startedAt):0,...i&&a?{"workflow.stream.ws.connect_setup_ms":i-a}:{},...i&&r?{"workflow.stream.ws.connect_ms":r-i}:{},...a&&n?{"workflow.stream.ws.config_token_ms":a-n.configStartedAt}:{}})}function Hu(e,t,n,r){let i=$();r.sentAt=i,e?.setAttributes({"workflow.stream.ws.write_to_send_ms":i-t.startedAt,...n?.openedAt?{"workflow.stream.ws.open_to_send_ms":Math.max(0,i-n.openedAt)}:{}})}function Uu(e,t,n){if(n?.sentAt===void 0||n.replyReceivedAt===void 0)return;let r=$();e?.setAttributes({"workflow.stream.ws.send_to_reply_ms":n.replyReceivedAt-n.sentAt,"workflow.stream.ws.reply_processing_ms":r-n.replyReceivedAt,"workflow.stream.ws.write_total_ms":r-t.startedAt})}function Wu(e){return e.get(`authorization`)}var Gu=class extends Error{constructor(e){super(e instanceof Error?e.message:String(e),{cause:e}),this.name=`StreamWsRequestNotSentError`}};async function Ku(e){let t;for await(let n of jt((async function*(){yield e})())){if(t)throw Error(`stream WebSocket message has multiple frames`);t=n}if(!t)throw Error(`stream WebSocket message has no frame`);return t}function qu(e){return e instanceof Uint8Array?e:typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}var Ju=class{runId;name;writerId;config;writeHttp;closeHttp;connectAfterFirstWrite;mode=`connecting`;socket;connect=Promise.resolve();transportDecision=Promise.resolve();tail=Promise.resolve();inbound=Promise.resolve();nextReqId=1;pending;poisonError;wsUrl;closeAcknowledged=!1;idleReconnects=0;drainReason;drainTimer;releaseDrainWait;lastAuthorization=null;sessionCreatedAt=$();sessionHasWrite=!1;connectionAttempt=0;connectionTiming;constructor(e,t,n,r,i,a,o){this.runId=e,this.name=t,this.writerId=n,this.config=r,this.writeHttp=i,this.closeHttp=a,this.connectAfterFirstWrite=o,o?this.mode=`deferred`:this.startInitialConnect()}write(e,t){let n={startedAt:$(),sessionFirstWrite:!this.sessionHasWrite};return this.sessionHasWrite=!0,this.enqueue(()=>this.writeInternal(e,t,n))}async writeInternal(e,t,n){if(this.assertUsable(),this.mode===`deferred`){await this.writeFirstGroup(t,n);return}if(this.mode===`waiting_to_connect`){await this.writeSecondGroupAndStartConnect(t,n);return}if(this.shouldWriteHttpWhileConnecting()){await this.writeWhileInitialConnectRuns(t,n);return}if(await this.transportDecision,this.assertUsable(),this.mode===`http`){await this.writeHttp(t);return}for(let r=0;r<t.length;r+=wu){let i=t.slice(r,r+wu),a;try{a=await this.request(t=>Iu({type:`write`,reqId:t,chunkSeq:e+r,numChunks:i.length},i),r===0?n:void 0,{chunkSeq:e+r,numChunks:i.length})}catch(e){if(!(e instanceof Gu))throw e;this.fallbackToHttpBeforeSend(),await this.writeHttp(t.slice(r));return}if(a.type!==`write_ack`)throw this.poison(Error(`stream WebSocket write received ${a.type}`))}}shouldWriteHttpWhileConnecting(){return this.mode===`connecting`&&this.connectionAttempt===1}async writeWhileInitialConnectRuns(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":this.connectionAttempt,"workflow.stream.ws.connecting_at_write":!0,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt})}catch(e){throw this.failUnknown(e),this.poisonError}}async writeSecondGroupAndStartConnect(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":0,"workflow.stream.ws.connecting_at_write":!1,"workflow.stream.ws.connect_after_http_group":2,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt},()=>{this.mode===`waiting_to_connect`&&this.startInitialConnect()})}catch(e){throw this.failUnknown(e),this.poisonError}}async writeFirstGroup(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":0,"workflow.stream.ws.connecting_at_write":!1,"workflow.stream.ws.connect_deferred_at_write":!0,"workflow.stream.ws.http_group_ordinal":1,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt})}catch(e){throw this.failUnknown(e),this.poisonError}this.mode===`deferred`&&(this.mode=`waiting_to_connect`)}dispose(){if(this.mode===`closed`)return;this.mode=`closed`,this.finishDrainWait();let e=this.pending;this.pending=void 0,e&&(clearTimeout(e.timer),e.reject(Error(`stream writer transport disposed`))),this.socket?.close(1e3,`stream writer disposed`)}close(){return this.enqueue(async()=>{if(this.assertUsable(),this.mode===`deferred`||this.mode===`waiting_to_connect`||this.connectAfterFirstWrite&&this.mode===`connecting`&&this.connectionAttempt===1){await this.closeHttp(),this.mode=`closed`,this.socket?.close(1e3,`stream closed over HTTP`);return}if(await this.transportDecision,this.assertUsable(),this.mode===`http`){await this.closeHttp(),this.mode=`closed`;return}let e;try{e=await this.request(e=>Lu({type:`close`,reqId:e}))}catch(e){if(!(e instanceof Gu))throw e;this.fallbackToHttpBeforeSend(),await this.closeHttp(),this.mode=`closed`;return}if(e.type!==`close_ack`)throw this.poison(Error(`stream WebSocket close received ${e.type}`));this.mode=`closed`,this.socket&&zu(this.socket,`stream closed`)})}enqueue(e){let t=this.tail.then(e);return this.tail=t.catch(()=>{}),t}assertUsable(){if(this.mode===`poisoned`)throw this.poisonError;if(this.mode===`closed`)throw Error(`stream writer is closed`)}startInitialConnect(){this.mode=`connecting`,this.connect=this.startConnect(),this.transportDecision=this.makeTransportDecision(!1)}makeTransportDecision(e){return new Promise(t=>{let n=!1,r=()=>{n||(n=!0,clearTimeout(i),t())},i=setTimeout(()=>{this.mode===`connecting`&&(this.mode=`http`,this.socket?.close(1e3,`connect budget expired`)),r()},e?250:1e4);i.unref?.(),this.connect.then(r)})}startConnect(e=!1){let t=$(),n={attempt:++this.connectionAttempt,configStartedAt:t,firstWriteSent:!1};return this.connectionTiming=n,this.connectSocket(e,n).catch(()=>{this.mode===`connecting`&&(this.mode=`http`)})}async connectSocket(e,t){if(!Nt()){this.mode=`http`;return}e&&await(0,bc.getVercelOidcToken)({expirationBufferMs:864e5}).catch(()=>void 0);let n=M(this.config).then(e=>(t.configFinishedAt=$(),e)),[{WebSocket:r},i]=await Promise.all([import(`../../_chunks/workflow/wrapper-CKui_eTd.js`),n]);if(this.mode!==`connecting`)return;if(e&&Wu(i.headers)===this.lastAuthorization){this.mode=`http`;return}if(this.lastAuthorization=Wu(i.headers),i.usingProxy){this.mode=`http`;return}if(this.mode!==`connecting`)return;let a=Fu(i.baseUrl,this.runId,this.name,this.writerId);this.wsUrl=a.toString(),await Lt({method:`GET`,url:this.wsUrl,spanName:`workflow.stream.ws.connect`,attributes:{"workflow.stream.transport":`ws`}},async()=>{if(await Xe(i.headers),this.mode!==`connecting`)return;t.socketStartedAt=$();let e=new r(a,{headers:It(i.headers)});this.socket=e,e.binaryType=`nodebuffer`,await new Promise(n=>{let r=!1,i=()=>{r||(this.mode===`connecting`&&(this.mode=`http`),n())};e.once(`open`,()=>{if(r=!0,t.openedAt=$(),this.mode!==`connecting`){e.close(1e3,`HTTP fallback selected`),n();return}this.mode=`ws`,n()}),e.once(`unexpected-response`,(t,n)=>{let r=n;r.resume?.(),r.destroy?.(),e.close(1e3,`upgrade declined`),i()}),e.once(`error`,e=>{if(!r){i();return}this.failUnknown(e)}),e.once(`close`,t=>{if(!r){i();return}this.inbound.then(()=>this.handleSocketClose(Number(t),e))}),e.on(`message`,e=>{let t=$();this.inbound=this.inbound.then(()=>this.handleMessage(qu(e),t))})})})}async handleMessage(e,t){try{let n=await Ku(e),r=Ru(n.meta,n.body);if(r.type===`drain`){this.handleDrain(r.reason,r.graceMs);return}let i=this.pending;if(!i||r.reqId===void 0||r.reqId!==i.reqId)throw r.type===`error`?Error(`stream WebSocket connection failed (${r.status}): ${r.message??`unknown error`}`):Error(`stream WebSocket reply cannot be correlated`);this.pending=void 0,i.replyReceivedAt=t,clearTimeout(i.timer),r.type===`close_ack`&&(this.closeAcknowledged=!0),r.type===`error`?(i.reject(this.poison(Error(`stream WebSocket request failed (${r.status}): ${r.message??`unknown error`}`))),this.socket?.close(1011,`stream request failed`)):(r.type===`write_ack`&&(this.idleReconnects=0),i.resolve(r))}catch(e){this.failUnknown(e)}}handleDrain(e,t){if(this.mode===`draining`){e===`auth_expiry`&&(this.drainReason=e);return}if(this.mode!==`ws`)return;this.mode=`draining`,this.drainReason=e,this.transportDecision=new Promise(e=>{this.releaseDrainWait=e});let n=this.socket;this.drainTimer=setTimeout(()=>{if(this.drainTimer=void 0,this.mode===`draining`&&n===this.socket){if(this.pending){this.failUnknown(Error(`stream WebSocket drain expired before request reply`));return}n?.close(1001,`stream drain grace expired`),this.handleSocketClose(1001,n)}},Math.min(t,2147483647)),this.drainTimer.unref?.()}handleSocketClose(e,t=this.socket){if(t===this.socket&&(this.drainTimer&&=(clearTimeout(this.drainTimer),void 0),!(this.mode===`closed`||this.mode===`http`||this.mode===`poisoned`||this.closeAcknowledged))){if(this.pending){this.failUnknown(Error(`stream WebSocket closed before reply`));return}if(this.mode===`draining`&&e!==1001){this.drainReason=void 0,this.mode=`http`,this.socket=void 0,this.finishDrainWait();return}if(this.mode===`draining`){let e=this.drainReason===`auth_expiry`;if(this.drainReason=void 0,this.idleReconnects>=3){this.mode=`http`,this.socket=void 0,this.finishDrainWait();return}this.idleReconnects++,this.mode=`connecting`,this.socket=void 0,this.connect=this.startConnect(e);let t=this.makeTransportDecision(!0);this.transportDecision=t,t.then(()=>this.finishDrainWait());return}if(this.idleReconnects>=3){this.mode=`http`,this.socket=void 0;return}this.idleReconnects++,this.mode=`connecting`,this.socket=void 0,this.connect=this.startConnect(),this.transportDecision=this.makeTransportDecision(!0)}}async request(e,t,n){this.assertUsable();let r=this.socket;if(this.mode!==`ws`||!r||r.readyState!==1)throw new Gu(Error(`stream WebSocket is not open before send`));let i=this.nextReqId++,a;try{a=e(i)}catch(e){throw new Gu(e)}let o=this.connectionTiming,s=o?.firstWriteSent===!1,c=t&&(t.sessionFirstWrite||s)?t:void 0;return Lt({method:`POST`,url:this.wsUrl??`ws://unknown`,spanName:`workflow.stream.write`,attributes:{"workflow.stream.transport":`ws`,"workflow.stream.ws.req_id":i,...n?{"workflow.stream.ws.chunk_seq":n.chunkSeq,"workflow.stream.ws.num_chunks":n.numChunks}:{},...Bu(c,o,this.sessionCreatedAt)}},async e=>{c&&Vu(e,c,o);let t,n=new Promise((n,s)=>{let l=setTimeout(()=>{this.failUnknown(Error(`stream WebSocket request ${i} timed out with no reply`))},yt());l.unref?.(),t={reqId:i,resolve:n,reject:s,timer:l},this.pending=t;try{c&&Hu(e,c,o,t),r.send(a,e=>{e&&this.failUnknown(e)})}catch(e){this.failUnknown(e)}});try{return await n}finally{c&&Uu(e,c,t)}})}finishDrainWait(){this.drainTimer&&=(clearTimeout(this.drainTimer),void 0);let e=this.releaseDrainWait;this.releaseDrainWait=void 0,e?.()}fallbackToHttpBeforeSend(){this.mode=`http`,this.socket?.close(1e3,`HTTP fallback before send`),this.socket=void 0}failUnknown(e){let t=this.poison(e);this.finishDrainWait();let n=this.pending;this.pending=void 0,n&&(clearTimeout(n.timer),n.reject(t)),this.socket?.close(1011,`unknown stream write outcome`)}poison(e){return this.mode!==`poisoned`&&(this.mode=`poisoned`,this.poisonError=e),this.poisonError}};function Yu(e,t,n,r,i,a,o=!0){return new Ju(e,t,Du.parse(n),r,i,a,o)}const Xu=()=>ie(`WORKFLOW_MAX_CHUNKS_PER_REQUEST`,1e3,{integer:!0,min:1});function Zu(e,t,n){return new URL(`${n.baseUrl}/v2/runs/${encodeURIComponent(t)}/stream/${encodeURIComponent(e)}`)}function Qu(e,t,n){return new URL(`${n.baseUrl}/v3/runs/${encodeURIComponent(t)}/stream/${encodeURIComponent(e)}`)}function $u(e){return{...Qe(e.runId),...He(e.name),...st(e.operation),...typeof e.startIndex==`number`?Je(e.startIndex):{}}}async function ed(e){let t=`Failed to fetch stream: ${e.status}`;if(e.status!==410)return new k(t,{status:e.status});try{let n=await e.json();return Tt(e.status,typeof n.message==`string`?n.message:t,{code:n.error,details:n.details})}catch{return new k(t,{status:e.status})}}function td(e,t){return O.is(t)||ke.is(t)||De.is(t)||k.is(t)||Te.is(t)||Me.is(t)||je.is(t)||Ee.is(t)?t:new k(e,{cause:t})}function nd(e,t,n,r){let i=[`PUT ${t.origin}${t.pathname}`,...ft(n.headers)];return new k(`Stream ${e} failed: HTTP ${n.status} (${i.join(`; `)}): ${r}`,{url:t.toString(),status:n.status})}const rd=D(o({tailIndex:g(),done:m()})),id=D(o({data:s(o({index:g(),data:u(Uint8Array)})),cursor:h().nullable(),hasMore:m(),done:m()}));async function ad(e,t,n,r,i,a){let o=await M(r);o.headers.set(`X-Stream-Multi`,`true`);let s=Math.min(Xu(),bu);for(let c=0;c<n.length;c+=s){let l=Zu(t,e,o);await(await A({method:`PUT`,url:l.toString(),body:Su(n.slice(c,c+s)),headers:o.headers,dispatcher:_t(r),timeoutMs:null,logLabel:l.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,onRequestDispatched:c===0?a:void 0,attributes:{...$u({runId:e,name:t,operation:`write_multi`}),...c===0?i:void 0},buildError:async e=>nd(`write`,l,e,await e.text())})).text()}}async function od(e,t,n){let r=await M(n);r.headers.set(`X-Stream-Done`,`true`);let i=Zu(t,e,r);await(await A({method:`PUT`,url:i.toString(),headers:r.headers,dispatcher:Be(n),timeoutMs:null,logLabel:i.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:e,name:t,operation:`close`}),buildError:async e=>nd(`close`,i,e,await e.text())})).text()}function sd(e){return{streams:{...Nt()?{createWriteSession(t,n,{writerId:r}){return Yu(t,n,r,e,(r,i,a)=>ad(t,n,r,e,i,a),()=>od(t,n,e))}}:{},async write(t,n,r){let i=await t,a=await M(e),o=Zu(n,i,a);await(await A({method:`PUT`,url:o.toString(),body:r,headers:a.headers,dispatcher:_t(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:o.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:i,name:n,operation:`write`}),buildError:async e=>nd(`write`,o,e,await e.text())})).text()},async writeMulti(t,n,r){if(r.length===0)return;let i=await t,a=await M(e);a.headers.set(`X-Stream-Multi`,`true`);let o=Xu();for(let t=0;t<r.length;t+=o){let s=Su(r.slice(t,t+o)),c=Zu(n,i,a);await(await A({method:`PUT`,url:c.toString(),body:s,headers:a.headers,dispatcher:_t(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:c.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:i,name:n,operation:`write_multi`}),buildError:async e=>nd(`write`,c,e,await e.text())})).text()}},async close(t,n){let r=await t,i=await M(e);i.headers.set(`X-Stream-Done`,`true`);let a=Zu(n,r,i);await(await A({method:`PUT`,url:a.toString(),headers:i.headers,dispatcher:Be(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:a.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:r,name:n,operation:`close`}),buildError:async e=>nd(`close`,a,e,await e.text())})).text()},async get(t,n,r){let i=await M(e);i.headers.set(`Accept`,`application/json`);let a=Qu(n,t,i);typeof r==`number`&&a.searchParams.set(`startIndex`,String(r));let o=await A({method:`GET`,url:a.toString(),headers:i.headers,dispatcher:void 0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:a.pathname,spanName:`workflow.stream.read.connect`,attributes:$u({runId:t,name:n,operation:`read`,startIndex:r}),buildError:ed});if(!o.body)throw new k(`No response body for stream`,{url:a.toString()});return o.body},async getChunks(t,n,r){let i=new URLSearchParams;r?.limit!=null&&i.set(`limit`,String(r.limit)),r?.cursor&&i.set(`cursor`,r.cursor);let a=i.toString(),o=`/v2/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}/chunks${a?`?${a}`:``}`;try{return await j({endpoint:o,config:e,schema:id})}catch(e){throw td(`Failed to read stream chunks for ${n}`,e)}},async getInfo(t,n){let r=`/v2/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}/info`;try{return await j({endpoint:r,config:e,schema:rd})}catch(e){throw td(`Failed to read stream info for ${n}`,e)}},async list(t){let n=await M(e),r=new URL(`${n.baseUrl}/v2/runs/${encodeURIComponent(t)}/streams`),i=await A({method:`GET`,url:r.toString(),headers:n.headers,dispatcher:void 0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:r.pathname,buildError:e=>new k(`Failed to list streams: ${e.status}`,{url:r.toString(),status:e.status})});try{return await i.json()}catch(e){throw td(`Failed to parse stream list response`,e)}}}}}function cd(e){let t=e?.projectConfig?.projectId||process.env.VERCEL_PROJECT_ID;return{specVersion:me(),capabilities:{hookRetention:{active:!0},maxConcurrency:!0,deploymentAffinity:!0},getRuntimeDeadline:kn,...yc(e),...yu(e),analytics:process.env.WORKFLOW_DISABLE_ANALYTICS_READS===`1`?void 0:_n(e),...Rn(`world.streams`,sd(e)),createRunId:Sn,describeRun:wn,getEnvironment:()=>kt(e),getEncryptionKeyForRun:On(t,e?.projectConfig?.teamId,e?.token,e?.dispatcher),resolveLatestDeploymentId:Cc(e)}}export{_n as createAnalytics,On as createGetEncryptionKeyForRun,yc as createQueue,Sn as createRunId,yu as createStorage,sd as createStreamer,cd as createWorld,En as deriveRunKey,wn as describeRun,Dn as fetchRunKey,Cn as regionForRunId};
43
+ Cause: ${t}`)}}buildUrl(e,...t){let n=encodeURIComponent(e),r=t.map(e=>encodeURIComponent(e)),i=r.length>0?`/`+r.join(`/`):``,a=this.baseUrl.pathname.replace(/\/+$/,``);return`${this.baseUrl.origin}${a}${Us}/${n}${i}`}async fetch(e,t){let n=t.method||`GET`;if(Ps()){let r={method:n,url:e,headers:t.headers},i=t.body;i!=null&&(i instanceof ArrayBuffer||i instanceof Uint8Array?r.bodySize=i.byteLength:typeof i==`string`?r.bodySize=i.length:r.bodyType=typeof i),console.debug(`[VQS Debug] Request:`,JSON.stringify(r,null,2))}t.headers.set(`User-Agent`,`@vercel/queue/0.5.1`),t.headers.set(`Vqs-Client-Ts`,new Date().toISOString());let r=this.dispatcher?{...t,dispatcher:this.dispatcher}:t,i=await fetch(e,r);if(Ps()){let t={method:n,url:e,status:i.status,statusText:i.statusText,headers:i.headers};console.debug(`[VQS Debug] Response:`,JSON.stringify(t,null,2))}return i}async sendMessage(e){let t=this.transport,{queueName:n,payload:r,telemetry:i}=e,a=this.buildMessageHeaders(e,t.contentType);a.set(`Authorization`,`Bearer ${await this.getToken()}`);let o=this.getSendDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=t.serialize(r),c=Buffer.isBuffer(s)?new Uint8Array(s):s,l=ys(this.telemetry,i);return Ds(n,async e=>{await ws(a,l);let t=await this.fetch(this.buildUrl(n),{method:`POST`,body:c,headers:a,...c instanceof ReadableStream&&{duplex:`half`}});if(!t.ok){let e=await t.text();if(t.status===502&&t.headers.get(`Vqs-Error-Code`)===`consumer_discovery_failed`)throw new io(e||`Consumer discovery failed`,o);if(t.status===503)throw new ao(e||`Consumer registry not configured`);Ls(t.status,t.statusText,e,`send message`)}if(t.status===202)return await t.text(),{messageId:null};let r=await t.json();return e&&r.messageId&&e.setMessageId(r.messageId),r},l)}async sendBatch(e){let t=this.transport,{queueName:n,messages:r,telemetry:i}=e;if(r.length<1||r.length>100)throw RangeError(`Batch size must be between 1 and 100 messages`);let a=new Headers(this.customHeaders);a.set(`Authorization`,`Bearer ${await this.getToken()}`);let o=this.getSendDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=vs(r.map(e=>({headers:this.buildMessageHeaders(e,t.contentType),body:()=>t.serialize(e.payload)})));a.set(`Content-Type`,s.contentType);let c=ys(this.telemetry,i);return Ds(n,async()=>{try{await ws(a,c);let e=await this.fetch(this.buildUrl(n,`batch`),{method:`POST`,body:s.body,headers:a,duplex:`half`});if(!e.ok){let t=await e.text();if(e.status===503)throw new ao(t||`Consumer registry not configured`);Ls(e.status,e.statusText,t,`send message batch`)}let{results:t}=await e.json();if(t.length!==r.length)throw new to(`Invalid batch response: expected ${r.length} results, received ${t.length}`);return t}catch(e){throw await s.cancel(e),e}},c)}buildMessageHeaders(e,t){let n=new Headers(this.customHeaders);n.delete(`Authorization`);for(let[t,r]of Object.entries(e.headers??{})){let e=t.toLowerCase();r!==void 0&&e!==`authorization`&&e!==`content-type`&&!e.startsWith(`vqs-`)&&n.set(t,r)}return n.set(`Content-Type`,t),e.idempotencyKey&&n.set(`Vqs-Idempotency-Key`,e.idempotencyKey),e.retentionSeconds!==void 0&&n.set(`Vqs-Retention-Seconds`,e.retentionSeconds.toString()),e.delaySeconds!==void 0&&n.set(`Vqs-Delay-Seconds`,e.delaySeconds.toString()),n}async*receiveMessages(e){let t=this.transport,{queueName:n,consumerGroup:r,visibilityTimeoutSeconds:i,limit:a}=e;if(a!==void 0&&(a<1||a>10))throw new no(a);let o=new Headers({Authorization:`Bearer ${await this.getToken()}`,Accept:`multipart/mixed`,...this.customHeaders});i!==void 0&&o.set(`Vqs-Visibility-Timeout-Seconds`,i.toString()),a!==void 0&&o.set(`Vqs-Max-Messages`,a.toString());let s=this.getConsumeDeploymentId();s&&o.set(`Vqs-Deployment-Id`,s);let c=await this.fetch(this.buildUrl(n,`consumer`,r),{method:`POST`,headers:o});if(c.status===204){await c.text();return}if(!c.ok){let e=await c.text();Ls(c.status,c.statusText,e,`receive messages`)}for await(let e of Wn(c))try{let n=Rs(e.headers);if(!n){console.warn(`Missing required queue headers in multipart part`),await Fs(e.payload);continue}let r=await t.deserialize(e.payload);yield{...n,payload:r}}catch(t){console.warn(`Failed to process multipart message:`,t),await Fs(e.payload)}}async receiveMessageById(e){let t=this.transport,{queueName:n,consumerGroup:r,messageId:i,visibilityTimeoutSeconds:a}=e,o=new Headers({Authorization:`Bearer ${await this.getToken()}`,Accept:`multipart/mixed`,...this.customHeaders});a!==void 0&&o.set(`Vqs-Visibility-Timeout-Seconds`,a.toString());let s=this.getConsumeDeploymentId();s&&o.set(`Vqs-Deployment-Id`,s);let c=await this.fetch(this.buildUrl(n,`consumer`,r,`id`,i),{method:`POST`,headers:o});if(!c.ok){let e=await c.text();if(c.status===404)throw new Ja(i);if(c.status===409){let t={};try{t=JSON.parse(e)}catch{}throw t.originalMessageId?new Ya(i,`This message was a duplicate - use originalMessageId: ${t.originalMessageId}`):new Ya(i)}if(c.status===410)throw new ro(i);Ls(c.status,c.statusText,e,`receive message by ID`)}for await(let e of Wn(c)){let n=Rs(e.headers);if(!n)throw await Fs(e.payload),new Xa(i,`Missing required queue headers in response`);let r=await t.deserialize(e.payload);return{message:{...n,payload:r}}}throw new Ja(i)}async acknowledgeMessage(e){let{queueName:t,consumerGroup:n,receiptHandle:r}=e,i=new Headers({Authorization:`Bearer ${await this.getToken()}`,...this.customHeaders}),a=this.getConsumeDeploymentId();a&&i.set(`Vqs-Deployment-Id`,a);let o=await this.fetch(this.buildUrl(t,`consumer`,n,`lease`,r),{method:`DELETE`,headers:i});if(!o.ok){let e=await o.text();if(o.status===404)throw new Ja(r);if(o.status===409)throw new Ya(r,e||`Invalid receipt handle, message not in correct state, or already processed`);Ls(o.status,o.statusText,e,`acknowledge message`,`Missing or invalid receipt handle`,o.headers?.get(`Retry-After`)??null)}return await o.text(),{acknowledged:!0}}async changeVisibility(e){let{queueName:t,consumerGroup:n,receiptHandle:r,visibilityTimeoutSeconds:i}=e,a=new Headers({Authorization:`Bearer ${await this.getToken()}`,"Content-Type":`application/json`,...this.customHeaders}),o=this.getConsumeDeploymentId();o&&a.set(`Vqs-Deployment-Id`,o);let s=await this.fetch(this.buildUrl(t,`consumer`,n,`lease`,r),{method:`PATCH`,headers:a,body:JSON.stringify({visibilityTimeoutSeconds:i})});if(!s.ok){let e=await s.text();if(s.status===404)throw new Ja(r);if(s.status===409)throw new Ya(r,e||`Invalid receipt handle, message not in correct state, or already processed`);Ls(s.status,s.statusText,e,`change visibility`,`Missing receipt handle or invalid visibility timeout`,s.headers?.get(`Retry-After`)??null)}return await s.text(),{success:!0}}},Gs=new WeakMap,Ks=Symbol.for(`@vercel/queue.apiClient`);function qs(e,t){Gs.set(e,t),Object.defineProperty(e,Ks,{value:t,writable:!1,enumerable:!1,configurable:!1})}function Js(e){let t=Gs.get(e);if(t)return t;let n=e[Ks];if(typeof n==`object`&&n){let t=n;return Gs.set(e,t),t}throw Error(`QueueClient not initialized. This may happen when multiple bundled copies of @vercel/queue are loaded in local dev.`)}function Ys(e){return`request`in e?e.request:e}function Xs(e){return Js(e)}var Zs=`iad1`;function Qs(e){return e||process.env.VERCEL_REGION||(Z()||console.warn(`[QueueClient] Region not detected \u2014 defaulting to "${Zs}". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })`),Zs)}var $s=class{constructor(e={}){let t=Qs(e.region);qs(this,new Ws({...e,region:t}))}send=async(e,t,n)=>{let r=Js(this),i=await r.sendMessage({queueName:e,payload:t,idempotencyKey:n?.idempotencyKey,retentionSeconds:n?.retentionSeconds,delaySeconds:n?.delaySeconds,headers:n?.headers,telemetry:n?.telemetry});return i.messageId&&Z()&&hs(e,i.messageId,r.getRegion(),n?.delaySeconds,n?.retentionSeconds),{messageId:i.messageId}};experimental_sendBatch=async(e,t,n)=>{let r=Js(this),i=await r.sendBatch({queueName:e,messages:t,telemetry:n?.telemetry});if(!Z())return i;let a=r.getRegion();for(let[n,r]of i.entries()){if(r.status!==`sent`)continue;let i=t[n];Yt(i),hs(e,r.messageId,a,i.delaySeconds,i.retentionSeconds)}return i};handleCallback=(e,t)=>{Z()&&Wo(e,this,t);let n=ys(Js(this).getTelemetry?.());return async r=>{let i=Ys(r);if(Z()&&i.headers.get(`x-vercel-queue-prime`)===`1`){let n=i.headers.get(`x-vercel-queue-prime-file`);return n&&Wo(e,this,t,n),Response.json({status:`primed`})}try{let r=await wo(i);return await js(i.headers,()=>To(e,r,{client:this,visibilityTimeoutSeconds:t?.visibilityTimeoutSeconds,retry:t?.retry}),n),Response.json({status:`success`})}catch(e){return console.error(`Queue callback error:`,e),e instanceof Error&&(e.message.includes(`Invalid content type`)||e.message.includes(`Invalid CloudEvent`)||e.message.includes(`Missing required CloudEvent`)||e.message.includes(`Failed to parse CloudEvent`)||e.message.includes(`Binary mode callback`))?Response.json({error:e.message},{status:400}):Response.json({error:`Failed to process queue message`},{status:500})}}};handleNodeCallback=(e,t)=>{Z()&&Wo(e,this,t);let n=ys(Js(this).getTelemetry?.());return async(r,i)=>{if(r.method!==`POST`){i.status(200).end();return}let a=r.headers[`x-vercel-queue-prime`];if(Z()&&a===`1`){let n=r.headers[`x-vercel-queue-prime-file`],a=Array.isArray(n)?n[0]:n;a&&Wo(e,this,t,a),i.status(200).json({status:`primed`});return}try{let a=Co(r.body,r.headers);await js(r.headers,()=>To(e,a,{client:this,visibilityTimeoutSeconds:t?.visibilityTimeoutSeconds,retry:t?.retry}),n),i.status(200).json({status:`success`})}catch(e){if(console.error(`Queue callback error:`,e),e instanceof Error&&(e.message.includes(`Invalid content type`)||e.message.includes(`Invalid CloudEvent`)||e.message.includes(`Missing required CloudEvent`)||e.message.includes(`Failed to parse CloudEvent`)||e.message.includes(`Binary mode callback`))){i.status(400).json({error:e.message});return}i.status(500).json({error:`Failed to process queue message`})}}}};function ec(e){return`${e} requires VERCEL_DEPLOYMENT_ID, which Vercel sets in every deployment, so this process is not running inside one. The Vercel world is only selected automatically when that variable is set, so it was requested explicitly here — most often by WORKFLOW_TARGET_WORLD=vercel in a process that is not a deployment, such as a production server started locally or in CI. To use the local filesystem world instead, set WORKFLOW_TARGET_WORLD=local or unset it.`}function tc(){let e=process.env.VERCEL_QUEUE_TRACE_PROPAGATION?.toLowerCase();return e===`off`||e===`0`||e===`false`}function nc(e){return e===void 0?{messageId:null,error:`Queue batch returned no result for this message`,retryable:!0}:e.status===`failed`?{messageId:null,error:e.error,retryable:e.retryable}:{messageId:e.messageId?be.parse(e.messageId):null}}var rc=class{contentType=`application/cbor`;serialize(e){return Buffer.from(Mt(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}return xt(Buffer.concat(t))}},ic=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}return JSON.parse(Buffer.concat(t).toString())}},ac=class{contentType=`application/cbor`;serialize(e){return Buffer.from(Mt(e))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t);try{return xt(r)}catch{return JSON.parse(r.toString())}}};const oc=new Kt,sc=D(o({payload:xe,queueName:le,deploymentId:h().optional()})),cc=Number(process.env.VERCEL_QUEUE_MAX_DELAY_SECONDS||82800);function lc(e){let t=Math.min(Math.max(1,2**(e-1)),900),n=Math.floor(Math.random()*(Math.ceil(t*.25)+1));return Math.max(1,t-n)}function uc(e){if(`runId`in e&&typeof e.runId==`string`)return e.runId}const dc=(e,t)=>{let n;return{open(){e&&pt()&&(n=import(`../../_chunks/workflow/ws-transport-Dl5FG4Sw.js`).then(({openWsChannel:n})=>n(e,t)).catch(()=>void 0))},async close(){(await n)?.()}}};function fc(e){if(!e)return;let t=e.startsWith(`wrun_`)?e.slice(5):e;try{let e=ze(t);return!e.tagged||e.regionId===Pe.unknown?void 0:e.region??void 0}catch{return}}function pc(e,t){if(Ne(t?.region))return t.region;let n=fc(uc(e));if(n)return n;let r=process.env.VERCEL_REGION;return Ne(r)?r:`iad1`}function mc(e){let t={};return`runId`in e&&typeof e.runId==`string`&&(t[`x-vercel-workflow-run-id`]=e.runId),`stepId`in e&&typeof e.stepId==`string`&&(t[`x-vercel-workflow-step-id`]=e.stepId),Object.keys(t).length>0?t:void 0}const hc=/^__([a-z][a-z0-9]*_)?wkf_workflow_/,gc=ve(`@workflow/world-vercel//queueLogLatches`,1,()=>({loggedSequentialReplays:!1}));function _c(){return process.env.WORKFLOW_SEQUENTIAL_REPLAYS===`1`}function vc(e,t){return!_c()||!hc.test(e)?e:(gc.loggedSequentialReplays||(gc.loggedSequentialReplays=!0,console.warn(`[workflow] WORKFLOW_SEQUENTIAL_REPLAYS=1: routing flow messages to per-run queue topics`)),`__healthCheck`in t&&typeof t.correlationId==`string`?`${e}_${t.correlationId}`:`runId`in t&&typeof t.runId==`string`?`stepId`in t&&typeof t.stepId==`string`?`${e}_${t.runId}_${t.stepId}`:`${e}_${t.runId}`:e)}function yc(e){let{baseUrl:t,usingProxy:n}=gt(e),r=wt(e,{usingProxy:n}),i=new rc,a=new ic,o=new ac,s={dispatcher:rt(e),transport:o,...n&&{resolveBaseUrl:()=>new URL(`${t}/queues-proxy`),token:e?.token},headers:Object.fromEntries(r.entries())},c=(e,t,n)=>{let r=n?.deploymentId??process.env.VERCEL_DEPLOYMENT_ID;if(!r)throw Error(`${ec(`Enqueuing a workflow message`)} Callers outside a deployment can instead pass an explicit deploymentId in options.`);return{deploymentId:r,useCbor:(n?.specVersion??7)>=3,region:pc(t,n),topic:vc(e,t).replace(/[^A-Za-z0-9-_]/g,`-`),wrapper:{payload:t,queueName:e,deploymentId:n?.deploymentId},sendOptions:{idempotencyKey:n?.idempotencyKey,delaySeconds:n?.delaySeconds,headers:{...mc(t),...n?.headers}}}},l=e=>new $s({...s,...n&&{headers:{...s.headers,"x-vercel-queue-region":e.region}},region:e.region,deploymentId:e.deploymentId,transport:e.useCbor?i:a}),u=async(e,t,n)=>{let r=c(e,t,n),{messageId:i}=await l(r).send(r.topic,r.wrapper,r.sendOptions);return{messageId:i?be.parse(i):null}};return{queue:u,queueBatch:async(e,t)=>{let n=Array(t.length);if(t.length===0)return n;let r=tc()?{}:await At(),i=new Map;for(let[n,a]of t.entries()){let t=c(e,a.message,a.opts),o=`${t.region}${t.deploymentId}${t.useCbor}${t.topic}`,s=i.get(o)??{route:t,entries:[]};s.entries.push({index:n,topic:t.topic,message:{payload:t.wrapper,...t.sendOptions,headers:{...t.sendOptions.headers,...r}}}),i.set(o,s)}return await Promise.all([...i.values()].map(async({route:e,entries:t})=>{let r=l(e);for(let e=0;e<t.length;e+=100){let i=t.slice(e,e+100),a=await r.experimental_sendBatch(i[0].topic,i.map(e=>e.message));for(let[e,t]of i.entries())n[t.index]=nc(a[e])}})),n},createQueueHandler:(t,n)=>{let r=new $s(s).handleCallback(async(t,r)=>{if(!t||!r)return;let i=oc.getStore(),{payload:a,queueName:o,deploymentId:s}=sc.parse(t),c=dc(uc(a),e);c.open();try{let e=await n(a,{queueName:o,messageId:be.parse(r.messageId),attempt:r.deliveryCount,requestId:i});if(typeof e?.timeoutSeconds==`number`){let t=e.timeoutSeconds>0?Math.min(e.timeoutSeconds,cc):void 0;await u(o,a,{deploymentId:s,delaySeconds:t})}}finally{await c.close()}},{retry:(e,{messageId:t,deliveryCount:n})=>{let r=lc(n);return console.error(`[workflow] Queue handler failed for message "${t}" on delivery attempt ${n}; retrying in ${r}s:`,e),{afterSeconds:r}}});return async e=>{let t=e.headers.get(`x-vercel-id`)?.trim()||void 0;return oc.run(t,()=>r(e))}},getDeploymentId:async()=>{let e=process.env.VERCEL_DEPLOYMENT_ID;if(!e)throw Error(ec(`Starting a workflow run`));return e},isDeploymentUnavailableError:e=>e instanceof io}}var bc=mt();const xc=D(o({id:h()}));async function Sc(e){if(e?.token)return e.token;if(process.env.VERCEL===`1`){let e=await(0,bc.getVercelOidcToken)().catch(()=>null);if(e)return e}return Ue(e)}function Cc(e){return async function(){let t=process.env.VERCEL_DEPLOYMENT_ID;if(!t)throw Error(ec(`Resolving the latest deployment for deploymentId: 'latest'`));let n=await Sc(e);if(!n)throw Error(`Cannot resolve latest deployment: no OIDC token or VERCEL_TOKEN available`);let r=e?.projectConfig?.teamId,i=r?`?${new URLSearchParams({teamId:r})}`:``,a=`https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(t)}${i}`,o=await(await A({method:`GET`,url:a,headers:new Headers({Authorization:`Bearer ${n}`}),dispatcher:lt(e),peerService:`vercel-api`,timeoutMs:null,buildError:async e=>{let n;try{n=await e.text()}catch{n=`<unable to read response body>`}let r=e.status===404?". The deployment exists but was not visible to the identity this request authenticated as, which means the request resolved to a different team. Set the World's `projectConfig.teamId` to scope it explicitly.":``;return Error(`Failed to resolve latest deployment for ${t}: HTTP ${e.status} ${e.statusText}${n?` — ${n}`:``}${r}`)}})).json(),s=xc.safeParse(o);if(!s.success)throw Error(`Invalid response from Vercel API: expected { id: string }. Zod error: ${s.error.message}`);return s.data.id}}var wc=class extends Error{error;constructor(e){super(`Replay event observer failed`,{cause:e}),this.error=e,this.name=`ReplayEventObserverError`}};const Tc={run_created:{retryable:!0,reason:`conditional create → 409 if exists`},step_created:{retryable:!0,reason:`conditional create → 409 if exists`},wait_created:{retryable:!0,reason:`conditional create → 409 if exists`},hook_created:{retryable:!0,reason:`transactional token uniqueness → 409 if exists`},run_started:{retryable:!0,reason:`early-returns if already running, no duplicate row`},run_completed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},run_failed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},run_cancelled:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},step_completed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},step_failed:{retryable:!0,reason:`terminal-state guard → 409, no duplicate row`},wait_completed:{retryable:!0,reason:`waiting-state guard → 409, no duplicate row`},hook_disposed:{retryable:!0,reason:`conditional delete (exists) → 409, no duplicate row`},attr_set:{retryable:!0,reason:`correlationId constraint reuses eventId (idempotent replay)`},step_started:{retryable:!1,reason:`unconditional attempt increment → a retry double-counts attempts`},step_retrying:{retryable:!1,reason:`no duplicate guard → a retry appends a second event row`},hook_received:{retryable:!1,reason:`no server guard → a retry duplicates the row / re-delivers payload. EXCEPTION: the atomic lazy-resume shape (resumeId + digest) is deduplicated server-side by the (runId, resumeId) claim, so those writes opt in via withEventPostRetry({ idempotentHookResume })`},hook_conflict:{retryable:!1,reason:`server-originated; never POSTed by the SDK`},noop:{retryable:!1,reason:`server-originated; never POSTed by the SDK`}},Ec=new Set([`ECONNRESET`,`ECONNREFUSED`,`ENOTFOUND`,`ENETDOWN`,`ENETUNREACH`,`EHOSTDOWN`,`EHOSTUNREACH`,`EPIPE`,`ETIMEDOUT`,`UND_ERR_SOCKET`,`UND_ERR_REQ_RETRY`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`,`TimeoutError`,`RequestRetryError`]);function Dc(e,t=0){if(t>5||typeof e!=`object`||!e)return[];let n=[],r=e;return typeof r.code==`string`&&n.push(r.code),typeof r.name==`string`&&n.push(r.name),r.cause&&n.push(...Dc(r.cause,t+1)),n}function Oc(e){if(e instanceof wc||ke.is(e)||De.is(e)||Me.is(e)||je.is(e))return!1;if(O.is(e)){if(e.code===`PARSE_ERROR`||e.code===`TRANSPORT`)return!0;if(typeof e.status==`number`)return e.status>=500&&e.status<=599}return Dc(e).some(e=>Ec.has(e))}const kc=e=>new Promise(t=>setTimeout(t,e)),Ac=typeof process<`u`&&typeof process.env.DEBUG==`string`&&(process.env.DEBUG.includes(`workflow:`)||process.env.DEBUG===`*`);function jc(e,t){if(!Ac)return;let n=Object.entries(t).map(([e,t])=>`${e}=${t}`).join(` `);console.debug(`[workflow:world-vercel:event-retry] ${e} ${n}`)}function Mc(e){return O.is(e)?e.code??(e.status==null?e.name:`status_${e.status}`):Dc(e)[0]??(e instanceof Error?e.name:`unknown`)}function Nc(e){let t=0;return async n=>{let r=Math.max(1,typeof n.retryAfter==`number`?n.retryAfter:1)*1e3;if(t+r>3e4)throw jc(`throttle retry budget exhausted; surfacing to the queue`,{eventType:e,waitedMs:t,retryAfter:n.retryAfter}),n;t+=r,console.warn(`[workflow] Throttled (429) writing ${e} event; retrying in-process in ${r/1e3}s`),await kc(r)}}function Pc(e,t){return t?.batchIdempotent===void 0?e===`hook_received`&&t?.idempotentHookResume===!0||(Tc[e]?.retryable??!1):t.batchIdempotent}async function Fc(e,t,n){let r=Pc(t,n),i=Nc(t);for(let n=0;;)try{return await e()}catch(e){if(je.is(e)){await i(e);continue}if(!r||!Oc(e))throw e;if(n>=2)throw jc(`exhausted in-process retries; surfacing for queue redelivery`,{eventType:t,attempts:n+1,error:Mc(e)}),e;let a=100*2**n+Math.floor(Math.random()*50);n++,jc(`retrying event POST after transient failure`,{eventType:t,attempt:n,backoffMs:a,error:Mc(e)}),await kc(a)}}const Ic=`gzip`,Lc=`zstd`,Rc=new TextDecoder,zc=new Set([`devl`,`encr`,Ic,Lc]);function Bc(){try{return globalThis.process?.getBuiltinModule?.(`node:zlib`)}catch{return}}function Vc(e){return!(e instanceof Uint8Array)||e.byteLength<4?null:Rc.decode(e.subarray(0,4))}function Hc(e){let t=Vc(e);return t!==null&&zc.has(t)}function Uc(e,t){let n=Bc(),r=e===Lc?n?.zstdDecompressSync:n?.gunzipSync;if(!r)throw new O(`Received ${e}-compressed workflow data, but this Node.js runtime does not support ${e} decompression. Use a compatible Node.js runtime or request unresolved data.`);return new Uint8Array(r(t))}function Wc(e){let t=Vc(e);return t!==Lc&&t!==Ic?e:Uc(t,e.subarray(4))}function Gc(e){return{...e,input:Wc(e.input),output:Wc(e.output),error:Wc(e.error)}}function Kc(e){return{...e,input:Wc(e.input),output:Wc(e.output),error:Wc(e.error)}}function qc(e){return{...e,metadata:Wc(e.metadata)}}const Jc=D(T.omit({error:!0}).extend({error:i([w,p()]).optional(),errorRef:p().optional()})),Yc=D(Jc.omit({input:!0,output:!0}).extend({inputRef:p().optional(),outputRef:p().optional(),input:u(Uint8Array).optional(),output:u(Uint8Array).optional()}));function Xc(e){let{error:t,errorRef:n,...r}=e,i={...r},a=t??n;return a!=null&&(i.error=a),i}function Zc(e,t){if(t===`none`){let{inputRef:t,outputRef:n,...r}=e;return{...Kc(Xc(r)),input:void 0,output:void 0}}return Kc(Xc(e))}async function Qc(e,t){let{runId:n,pagination:r,resolveData:i=`all`}=e,a=new URLSearchParams;r?.cursor&&a.set(`cursor`,r.cursor),r?.limit&&a.set(`limit`,r.limit.toString()),r?.sortOrder&&a.set(`sortOrder`,r.sortOrder);let o=i===`none`?`lazy`:`resolve`;a.set(`remoteRefBehavior`,o);let s=a.toString(),c=`/v2/runs/${encodeURIComponent(n)}/steps${s?`?${s}`:``}`,l=await j({endpoint:c,options:{method:`GET`},config:t,schema:E(o===`lazy`?Yc:Jc)});return{...l,data:l.data.map(e=>Zc(e,i))}}async function $c(e,t,n,r){let i=n?.resolveData??`all`,a=i===`none`?`lazy`:`resolve`,o=new URLSearchParams;o.set(`remoteRefBehavior`,a);let s=o.toString(),c=`/v2/runs/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}${s?`?${s}`:``}`;return Zc(await j({endpoint:c,options:{method:`GET`},config:r,schema:a===`lazy`?Yc:Jc}),i)}async function el(e,t,n,r,i){let a=dt(n),o=await A({method:t.method,url:e,headers:t.headers,body:t.body,dispatcher:a,attributes:i,onTransportOutcome:e=>Ft(a,e),deferTransportSuccessUntilBody:!0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:r,buildError:async t=>gl(t.status,It(t.headers),new Uint8Array(await t.arrayBuffer()),r,e)});if(!o.body)return Ft(a),o;let s=o.body.getReader(),c=new ReadableStream({async pull(t){try{let e=await s.read();e.done?(Ft(a),t.close()):t.enqueue(e.value)}catch(n){Ft(a,n);let i=vt(n);t.error(i?new k(`v4 ${r}: response stream transport failure (${i})`,{cause:n,url:e}):n)}},cancel(e){return Ft(a),s.cancel(e)}});return new Response(c,{status:o.status,statusText:o.statusText,headers:o.headers})}const tl=`x-wf-event-id`,nl=`x-wf-max-events`;function rl(e,t,n){return`${e}/v4/runs/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`}const il=Symbol(`omitted event payload`),al=D(a(e=>{if(typeof e!=`object`||!e||Array.isArray(e))return e;let t=e,n=typeof t.eventType==`string`?se(t.eventType):void 0,r=t.eventData;return!n||typeof r!=`object`||!r||Array.isArray(r)||Object.hasOwn(r,n)?e:{...t,eventData:{...r,[n]:il}}},y).transform(e=>{let t=se(e.eventType);if(!t||!(`eventData`in e))return e;let n=e.eventData;if(typeof n!=`object`||!n||Array.isArray(n)||n[t]!==il)return e;let r={...n};return delete r[t],{...e,eventData:r}})),ol=D(o({event:al,run:re.optional(),step:Jc.transform(Xc).optional(),hook:fe.optional(),wait:te.optional(),stepCreated:l(!0).optional(),maxEvents:g().int().positive().optional()})),sl=D(i([o({events:s(al),cursor:h().nullable(),hasMore:m()}),o({events:d().optional(),cursor:d().optional(),hasMore:d().optional()})])),Q=D(ol.and(sl)),cl={run_created:D(ol.extend({run:re}).and(sl)),run_started:D(ol.extend({run:re.and(o({startedAt:Ce()}))}).and(sl)),step_started:D(ol.extend({step:Jc.extend({startedAt:Ce()}).transform(e=>({...Xc(e),startedAt:e.startedAt}))}).and(sl)),run_completed:Q,run_failed:Q,run_cancelled:Q,attr_set:Q,step_created:Q,step_completed:Q,step_failed:Q,step_retrying:Q,hook_created:Q,hook_received:Q,hook_disposed:Q,hook_conflict:Q,wait_created:Q,wait_completed:Q,noop:Q},ll=D(Se().int().positive()),ul=D(o({_end:l(1),next:h().optional(),hasMore:m()})),dl=D(o({_error:l(1),code:h(),message:h().optional()})),fl=new Set([`run_failed`,`step_failed`,`step_retrying`]);function pl(e){if(Hc(e))return e;try{let t=_e.safeParse(xt(e.slice()));return t.success?t.data:e}catch{return e}}function ml({meta:e,body:t}){let n=oe.parse(e.eventType);if(t.byteLength===0)return al.parse(e);let r=se(n);return qt(r,`Event type ${n} cannot carry a payload body`),qt(e.eventData&&typeof e.eventData==`object`),al.parse({...e,eventData:{...e.eventData,[r]:fl.has(n)?pl(t):t}})}function hl(e){let t={eventType:e.eventType,specVersion:e.specVersion};return e.correlationId!==void 0&&(t.correlationId=e.correlationId),e.vercelId!==void 0&&(t.vercelId=e.vercelId),e.computeInstanceId!==void 0&&(t.computeInstanceId=e.computeInstanceId),e.occurredAt!==void 0&&(t.occurredAt=e.occurredAt),e.remoteRefBehavior!==void 0&&(t.remoteRefBehavior=e.remoteRefBehavior),e.deploymentId!==void 0&&(t.deploymentId=e.deploymentId),e.workflowName!==void 0&&(t.workflowName=e.workflowName),e.stepName!==void 0&&(t.stepName=e.stepName),e.attempt!==void 0&&(t.attempt=e.attempt),e.resumeAt!==void 0&&(t.resumeAt=e.resumeAt),e.retryAfter!==void 0&&(t.retryAfter=e.retryAfter),e.hookToken!==void 0&&(t.hookToken=e.hookToken),e.hookTokenRetentionUntil!==void 0&&(t.hookTokenRetentionUntil=e.hookTokenRetentionUntil),e.hookIsWebhook!==void 0&&(t.hookIsWebhook=e.hookIsWebhook),e.hookIsSystem!==void 0&&(t.hookIsSystem=e.hookIsSystem),e.resumeId!==void 0&&(t.resumeId=e.resumeId),e.errorCode!==void 0&&(t.errorCode=e.errorCode),e.cancelReason!==void 0&&(t.cancelReason=e.cancelReason),e.ownerMessageId!==void 0&&(t.ownerMessageId=e.ownerMessageId),e.executionContext!==void 0&&(t.executionContext=e.executionContext),e.attributes!==void 0&&(t.attributes=e.attributes),e.changes!==void 0&&(t.changes=e.changes),e.writer!==void 0&&(t.writer=e.writer),e.allowReservedAttributes!==void 0&&(t.allowReservedAttributes=e.allowReservedAttributes),e.encryptionPublicKey!==void 0&&(t.encryptionPublicKey=e.encryptionPublicKey),e.ttfs!==void 0&&(t.ttfs=e.ttfs),e.stso!==void 0&&(t.stso=e.stso),e.stepCount!==void 0&&(t.stepCount=e.stepCount),e.eventCount!==void 0&&(t.eventCount=e.eventCount),e.rsfs!==void 0&&(t.rsfs=e.rsfs),e.finalSchedulingReplay!==void 0&&(t.finalSchedulingReplay=e.finalSchedulingReplay),e.optimizations!==void 0&&(t.optimizations=e.optimizations),e.sinceCursor!==void 0&&(t.sinceCursor=e.sinceCursor),e.skipPreload&&(t.skipPreload=!0),e.maxSlot!==void 0&&(t.maxSlot=e.maxSlot),e.replayDivergenceCount!==void 0&&(t.replayDivergenceCount=e.replayDivergenceCount),e.resumePayloadDigest!==void 0&&(t.resumePayloadDigest=e.resumePayloadDigest),e.viaStepDispatch!==void 0&&(t.viaStepDispatch=e.viaStepDispatch),t}function gl(e,t,n,r,i){let a=`v4 ${r} failed: HTTP ${e}`,o,s,{record:c,text:l}=_l(n,Ml(t,`content-type`));c?(typeof c.message==`string`&&(a=c.message),typeof c.code==`string`&&(o=c.code),e===412&&(s=vl(c))):l&&(a+=` ${l}`);let u=Rt(Ml(t,`retry-after`));return Tt(e,a,{retryAfter:u,code:o,url:i,mitigated:Ml(t,`x-vercel-mitigated`),...s===void 0?{}:{details:s}})}function _l(e,t){if(typeof e!=`string`&&t?.includes(`application/cbor`)){try{let t=xt(e.slice());if(typeof t==`object`&&t)return{record:t}}catch{}return{}}let n=typeof e==`string`?e:new TextDecoder().decode(e);try{let e=JSON.parse(n);if(typeof e==`object`&&e)return{record:e}}catch{}return{text:n}}function vl(e){if(!Array.isArray(e.events)||e.events.length===0)return;let t=[];for(let n of e.events){if(typeof n!=`object`||!n)return;let e=n;if(typeof e.eventId!=`string`||yl(e))return;let r=al.safeParse(e);if(!r.success)return;t.push(r.data)}return{events:t,...typeof e.cursor==`string`?{cursor:e.cursor}:{}}}function yl(e){let t=e.eventType;if(typeof t!=`string`)return!1;let n=se(t);if(!n)return!1;let r=e.eventData;if(typeof r!=`object`||!r)return!1;let i=r[n];return i!==void 0&&!(i instanceof Uint8Array)}async function bl(e,t,n){let{baseUrl:r,headers:i}=await M(n),a=new Headers(i);a.set(`Content-Type`,`application/octet-stream`),t===`event-stream`&&a.set(`Accept`,Et);let o=bt(hl(e),e.payload??new Uint8Array);return el(rl(r,e.runId,e.eventType),{method:`POST`,headers:a,body:o},n,`createEvent`,{...Ye(`http`),...Ke(e.eventType),...nt(`@workflow/world-vercel/${Dt}`),...e.eventType===`step_started`?{...it(e.payload===void 0?e.ownerMessageId===void 0?`single_bare`:`single_owned_recovery`:`single_lazy_create_claim`),...Bt(e.ownerMessageId!==void 0)}:{},...e.stso===void 0?{}:et(e.stso),...e.optimizations===void 0?{}:$e(e.optimizations)})}const xl=new Set([`step_completed`]);function Sl(e){if(Ot()&&xl.has(e))throw Error(`world-vercel: ${e} fell back to the HTTP events transport while the WS gate was on. WORKFLOW_INTERNAL_EVENTS_TRANSPORT_STRICT is set, so this is a failure rather than a silent demotion: no channel was resolvable for this run at write time.`)}async function Cl(e,t){if(pt()){let n=await Al(e,t);if(n)return wl(n,e.eventType);Sl(e.eventType)}let n=await bl(e,`materialized`,t);if(n.headers.get(`content-type`)?.startsWith(`application/vnd.workflow.v4-frames`))throw new O(`v4 createEvent: unexpected event page`,{code:`SCHEMA_VALIDATION`});return wl(n,e.eventType)}async function wl(e,t){let n;try{n=new Uint8Array(await e.arrayBuffer())}catch(e){throw k.is(e)?e:new O(`v4 createEvent: failed to read response body`,{code:`TRANSPORT`,cause:e})}if(n.byteLength===0)throw new O(`v4 createEvent: empty response body`,{code:`PARSE_ERROR`});let r=D(cl[t].refine(({event:e})=>e.eventType===t||t===`hook_created`&&e.eventType===`hook_conflict`,{path:[`event`,`eventType`]})),i;try{i=xt(n)}catch(e){throw new O(`v4 createEvent: invalid CBOR response body`,{code:`PARSE_ERROR`,cause:e})}let a=r.safeParse(i);if(!a.success)throw new O(`v4 createEvent: invalid response body`,{code:`SCHEMA_VALIDATION`,cause:a.error});return a.data}async function Tl(e,t,n){let r=await bl({...e,eventType:`run_started`},`event-stream`,t),i=await Ll(r,e.runId,t,n);if(!i.cursor)throw new O(`v4 createEvent: event stream missing cursor`,{code:`SCHEMA_VALIDATION`});let a=ll.safeParse(r.headers.get(nl));if(!a.success)throw new O(`v4 createEvent: invalid max-events header`,{code:`SCHEMA_VALIDATION`,cause:a.error});return{...i,maxEvents:a.data}}const El=D(o({status:g().int(),error:h(),message:h()}));async function Dl(e,t){qt(e.events.length>0,`v4 createEventBatch: empty batch`);let{baseUrl:n,headers:r}=await M(t),i=new Headers(r);i.set(`Content-Type`,`application/octet-stream`);let a=e.events.map(e=>bt(hl(e),e.payload??new Uint8Array)),o=0;for(let e of a)o+=e.byteLength;let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;let l=await el(`${n}/v4/runs/${encodeURIComponent(e.runId)}/events/batch`,{method:`POST`,headers:i,body:s},t,`createEventBatch`,{...Ye(`http`),"workflow.batch.bytes":s.byteLength,...e.events.some(e=>e.eventType===`step_started`)?{...it(e.events.some(e=>e.eventType===`step_created`)?`batch_create_claim`:`batch_bare`),...Bt(e.events.some(e=>e.ownerMessageId!==void 0))}:{}}),u=new Uint8Array(await l.arrayBuffer()),d=u.byteLength>0?xt(u):{};if(!Array.isArray(d.results)||d.results.length!==e.events.length)throw new O(`v4 createEventBatch: response \`results\` length (${Array.isArray(d.results)?d.results.length:`non-array`}) != ${e.events.length} submitted frames`,{code:`SCHEMA_VALIDATION`});return{results:d.results.map((t,n)=>{let r=El.safeParse(t);if(r.success&&r.data.status!==200)return r.data;if(t?.status!==200)throw new O(`v4 createEventBatch: result at index ${n} is neither a success (status 200) nor a well-formed failure`,{code:`SCHEMA_VALIDATION`});let i=e.events[n].eventType,a=cl[i].safeParse(t);if(!a.success)throw new O(`v4 createEventBatch: invalid result body at index ${n} (${i})`,{code:`SCHEMA_VALIDATION`,cause:a.error});if(a.data.event.eventType!==i)throw new O(`v4 createEventBatch: result at index ${n} carries a ${a.data.event.eventType} event, expected ${i}`,{code:`SCHEMA_VALIDATION`});return{status:200,...a.data}})}}function Ol(e){let t={};return typeof e.eventId==`string`&&(t[tl]=e.eventId),typeof e.retryAfter==`string`&&(t[`retry-after`]=e.retryAfter),typeof e.mitigated==`string`&&(t[`x-vercel-mitigated`]=e.mitigated),t}function kl(e,t){let{status:n}=e.meta;if(typeof n!=`number`)throw new O(`Failed to parse response body for POST ${t}: reply frame carried no numeric status (type: ${String(e.meta.type??`absent`)}). Refusing to treat an unrecognized reply as success — the write may or may not have been applied.`,{url:t,code:`PARSE_ERROR`});return n}async function Al(e,t){let{resolveWsTransport:n}=await import(`../../_chunks/workflow/ws-transport-Dl5FG4Sw.js`),{runId:r}=e,i=n(r,t);if(!i)return;let{transport:a,wsUrl:o}=i,s=`${o}#runs/${encodeURIComponent(r)}/events`,c=rl(gt(t).baseUrl,r,e.eventType);return Lt({method:`POST`,url:c,attributes:{...Ye(`ws`),...Ke(e.eventType),...nt(`@workflow/world-vercel/${Dt}`),...e.stso===void 0?{}:et(e.stso),...e.optimizations===void 0?{}:$e(e.optimizations),...e.eventType===`step_started`?{...it(e.payload===void 0?e.ownerMessageId===void 0?`single_bare`:`single_owned_recovery`:`single_lazy_create_claim`),...Bt(e.ownerMessageId!==void 0)}:{},...Ge(`websocket`),...qe(o)}},async t=>{let n=Date.now(),r;try{r=await a.request(n=>(t?.setAttributes({...ct(n)}),bt({reqId:n,type:`event`,event:hl(e)},e.payload??new Uint8Array)))}catch(e){let n=new O(`POST ${s} transport failure: ${e instanceof Error?e.message:String(e)}`,{url:o,code:`TRANSPORT`,cause:e});throw t?.setAttributes({...ot(`TRANSPORT`)}),t?.recordException?.(n),n}let i=Date.now()-n,c=kl(r,s),l=Ol(r.meta),u={get:e=>l[e.toLowerCase()]??null};if(zt(`POST`,`createEvent`,{status:c,headers:u},i),at(t,c),c<200||c>=300){let e=gl(c,l,new TextDecoder().decode(r.body),`createEvent`,s);throw t?.recordException?.(e),e}return{headers:u,arrayBuffer:async()=>r.body.slice().buffer}})}async function jl(e,t,n){let r=await bl({...e,eventType:`hook_received`},`event-stream`,t);if(!r.headers.get(`content-type`)?.startsWith(`application/vnd.workflow.v4-frames`))return{kind:`materialized`,result:await wl(r,`hook_received`)};let i=await Ll(r,e.runId,t,n),a=ll.safeParse(r.headers.get(nl));return{kind:`stream`,...i,canonicalEventId:r.headers.get(tl)??void 0,maxEvents:a.success?a.data:void 0}}function Ml(e,t){let n=e[t];if(typeof n==`string`)return n;if(Array.isArray(n)&&n.length>0)return n[0]}async function Nl(e,t,n,r){let{baseUrl:i,headers:a}=await M(r),o=await el(`${i}/v4/runs/${encodeURIComponent(e)}/events/${encodeURIComponent(t)}?remoteRefBehavior=${n}`,{method:`GET`,headers:a},r,`getEvent`),s=o.headers.get(`content-type`);if(!s?.startsWith(`application/vnd.workflow.v4-frames`))throw Error(`v4 getEvent: expected ${Et}, got ${s??`(none)`}`);let c=o.body;try{for await(let e of jt(c)){if(e.meta._error===1)throw Pl(e.meta,`getEvent`);if(Object.keys(e.meta).some(e=>e.startsWith(`_`)))throw Error(`v4 getEvent: unexpected control frame`);return ml(e)}}catch(e){throw e instanceof Pt&&k.is(e.cause)?e.cause:e}throw Error(`v4 getEvent: empty frame stream for ${t}`)}function Pl(e,t){let n=dl.safeParse(e);if(!n.success)return new O(`v4 ${t}: malformed terminal error frame`,{code:`SCHEMA_VALIDATION`,cause:n.error});let{code:r,message:i}=n.data,a=i??`(no detail)`;return r===`payload-missing`?new Ae(`the event log references a payload that no longer exists in storage: ${a}`):new O(`v4 ${t}: stream ended with terminal error "${r}": ${a}`,{code:`WORLD_CONTRACT_ERROR`})}function Fl(e,t){let n=e.at(-1)?.eventId;if(!n)throw t;return{kind:`partial`,events:e,cursor:`eid:${n}`,hasMore:!0,error:t}}async function Il(e,t,n){let r=e.headers.get(`content-type`);if(!r?.startsWith(`application/vnd.workflow.v4-frames`))throw new O(`v4 ${t}: expected ${Et}, got ${r??`(none)`}`,{code:`SCHEMA_VALIDATION`});if(!e.body)throw new O(`v4 ${t}: response body is missing`,{code:`TRANSPORT`});let i=[];try{for await(let r of jt(e.body)){if(r.meta._end===1){let e=ul.parse(r.meta);return{kind:`complete`,events:i,cursor:e.next??null,hasMore:e.hasMore}}if(r.meta._error===1)throw Pl(r.meta,t);if(Object.keys(r.meta).some(e=>e.startsWith(`_`)))throw Error(`v4 ${t}: unexpected control frame`);let e=ml(r);i.push(e);try{n?.(e)}catch(e){throw new wc(e)}}}catch(e){if(e instanceof wc||Ae.is(e)||O.is(e))throw e;if(e instanceof Pt&&k.is(e.cause))return Fl(i,e.cause);if(!(e instanceof Pt))throw new O(`v4 ${t}: invalid event frame stream`,{code:`SCHEMA_VALIDATION`,cause:e});return Fl(i,new O(`v4 ${t}: incomplete event frame stream`,{code:`TRANSPORT`,cause:e}))}return Fl(i,new O(`v4 ${t}: frame stream ended without the end-of-stream sentinel (${i.length} events read)`,{code:`TRANSPORT`}))}async function Ll(e,t,n,r){let i=await Il(e,`createEvent`,r);if(!i.hasMore)return{events:i.events,cursor:i.cursor,hasMore:!1};if(!i.cursor)throw new O(`v4 createEvent: partial event stream missing cursor`,{code:`SCHEMA_VALIDATION`});let a=await Vl(t,{cursor:i.cursor,remoteRefBehavior:`resolve`},n,r);return{events:[...i.events,...a.events],cursor:a.cursor??i.cursor,hasMore:a.hasMore}}async function Rl(e,t,n,r,i){return Il(await el(e,{method:`GET`,headers:t},n,r),r,i)}function zl(e,t){t.cursor&&e.set(`cursor`,t.cursor),t.limit!==void 0&&e.set(`limit`,String(t.limit)),t.sortOrder&&e.set(`sortOrder`,t.sortOrder),t.remoteRefBehavior&&e.set(`remoteRefBehavior`,t.remoteRefBehavior)}function Bl(e){let t=new URLSearchParams;return e.limit===void 0&&t.set(`returnAll`,`true`),zl(t,e),`?${t.toString()}`}async function Vl(e,t={},n,r){let{baseUrl:i,headers:a}=await M(n),o=[],s=t.cursor??null,c=0,l;do{l=await Rl(`${i}/v4/runs/${encodeURIComponent(e)}/events`+Bl({...t,cursor:s??void 0}),a,n,`listEvents`,r);let u=!!l.cursor&&l.cursor!==s;if(l.kind===`partial`){if(t.limit!==void 0||!u||c===2)throw l.error;c++,s=l.cursor}else if(!u&&(l.events.length>0||l.hasMore))throw new O(`v4 listEvents: response did not advance cursor`,{code:`SCHEMA_VALIDATION`});for(let e of l.events)o.push(e)}while(l.kind===`partial`);return{events:o,cursor:l.cursor||(c>0?s:null),hasMore:l.hasMore}}async function Hl(e,t,n={},r){let{baseUrl:i,headers:a}=await M(r),o=new URLSearchParams;o.set(`correlationId`,e),o.set(`runId`,t),zl(o,n);let s=await Rl(`${i}/v4/events?${o.toString()}`,a,r,`listEventsByCorrelationId`);if(s.kind===`partial`)throw s.error;return{events:s.events,cursor:s.cursor,hasMore:s.hasMore}}const Ul=D(ee.omit({error:!0,errorCode:!0}).extend({error:i([w,p()]).optional(),errorCode:h().optional(),blobStorageBytes:g().optional(),streamStorageBytes:g().optional()})),Wl=D(Ul),Gl=D(Ul.omit({input:!0,output:!0}).extend({inputRef:p().optional(),outputRef:p().optional(),input:i([u(Uint8Array),p()]).optional(),output:i([u(Uint8Array),p()]).optional()}));function Kl(e,t){if(t===`none`){let{inputRef:t,outputRef:n,...r}=e;return{...Gc(ht(r)),input:void 0,output:void 0}}return Gc(ht(e))}async function ql(e={},t){let{workflowName:n,status:r,pagination:i,resolveData:a=`all`}=e,o=new URLSearchParams;n&&o.set(`workflowName`,n),r&&o.set(`status`,r),i?.limit&&o.set(`limit`,i.limit.toString()),i?.cursor&&o.set(`cursor`,i.cursor),i?.sortOrder&&o.set(`sortOrder`,i.sortOrder);let s=a===`none`?`lazy`:`resolve`;o.set(`remoteRefBehavior`,s);let c=o.toString(),l=`/v2/runs${c?`?${c}`:``}`,u=await j({endpoint:l,options:{method:`GET`},config:t,schema:E(s===`lazy`?Gl:Wl)});return{...u,data:u.data.map(e=>Kl(e,a))}}async function Jl(e,t){let n=await j({endpoint:`/v1/runs/create`,options:{method:`POST`},data:e,config:t,schema:Wl});return ht(n)}async function Yl(e,t,n){let r=t?.resolveData??`all`;try{return await Xl(e,{resolveData:r},n)}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}async function Xl(e,t,n){let{resolveData:r,waitMs:i,signal:a}=t,o=r===`none`?`lazy`:`resolve`,s=new URLSearchParams;s.set(`remoteRefBehavior`,o),i!==void 0&&s.set(`waitMs`,String(i));let c=i===void 0?``:`/status`,l=s.toString(),u=`/v2/runs/${encodeURIComponent(e)}${c}${l?`?${l}`:``}`;return Kl(await j({endpoint:u,options:{method:`GET`,...a?{signal:a}:{}},config:n,retryConnectTimeout:!0,schema:o===`lazy`?Gl:Wl}),r)}const Zl=ve(`@workflow/world-vercel//runStatusLongPollSupport`,1,()=>({unsupportedUntilByBaseUrl:new Map}));function Ql(e){return e.status===404||e.status===405||e.status===501||e.status===504||e.status===void 0&&(e.code===`TIMEOUT`||e.code===`TRANSPORT`)}async function $l(e,t,n){let r=t?.resolveData??`all`,i=Math.max(0,Math.min(t?.timeoutMs??0,yt()-1e4)),{baseUrl:a}=gt(n),o=Zl.unsupportedUntilByBaseUrl.get(a)??0;if(i===0||Date.now()<o)return Yl(e,{resolveData:r},n);try{return await Xl(e,{resolveData:r,waitMs:i,...t?.signal?{signal:t.signal}:{}},n)}catch(i){if(t?.signal?.aborted||!(i instanceof O)||!Ql(i))throw i;let o=await Yl(e,{resolveData:r},n);return Zl.unsupportedUntilByBaseUrl.set(a,Date.now()+3e5),o}}async function eu(e,t,n){let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await Yl(e,t,n)}catch(e){if(e instanceof we)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}async function tu(e,t,n){let r=t?.resolveData??`all`,i=r===`none`?`lazy`:`resolve`,a=new URLSearchParams;a.set(`remoteRefBehavior`,i);let o=a.toString(),s=`/v1/runs/${encodeURIComponent(e)}/cancel${o?`?${o}`:``}`;try{return Kl(await j({endpoint:s,options:{method:`PUT`},config:n,schema:i===`lazy`?Gl:Wl}),r)}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}async function nu(e,t){let{runIds:n,cancelReason:r}=S.parse(e),i=await j({endpoint:`/v4/runs/cancel`,options:{method:`POST`},data:r===void 0?{runIds:n}:{runIds:n,cancelReason:r},config:t,schema:C}),a=new Map(i.results.map(e=>[e.runId,e]));if(!(a.size===i.results.length&&i.results.length===n.length&&n.every(e=>a.has(e))))throw new O(`Bulk cancel response did not contain exactly one result per requested run ID (requested ${n.length}, received ${i.results.length}).`);let o=n.map(e=>a.get(e));return{summary:i.summary,results:o}}const ru=D(o({attributes:r(h(),h())}));async function iu(e,t,n,r){try{return{attributes:(await j({endpoint:`/v2/runs/${encodeURIComponent(e)}/attributes`,options:{method:`POST`},data:n?.allowReservedAttributes?{changes:t,allowReservedAttributes:!0}:{changes:t},config:r,schema:ru})).attributes}}catch(t){throw t instanceof O&&t.status===404?new we(e):t}}function au(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return ye(`wrun_${ze(t).ulid}`,`wrun_`)}catch{return ye(e,`wrun_`)}}const ou=new Set([`run_created`,`run_started`,`step_started`]);function su(e){let t=e.eventData??{},n=se(e.eventType),r={};if(typeof t.deploymentId==`string`&&(r.deploymentId=t.deploymentId),typeof t.workflowName==`string`&&(r.workflowName=t.workflowName),typeof t.stepName==`string`&&(r.stepName=t.stepName),typeof t.attempt==`number`&&(r.attempt=t.attempt),t.resumeAt instanceof Date)r.resumeAt=t.resumeAt;else if(typeof t.resumeAt==`string`){let e=new Date(t.resumeAt);Number.isNaN(e.getTime())||(r.resumeAt=e)}if(t.retryAfter instanceof Date)r.retryAfter=t.retryAfter;else if(typeof t.retryAfter==`string`){let e=new Date(t.retryAfter);Number.isNaN(e.getTime())||(r.retryAfter=e)}typeof t.token==`string`&&(r.hookToken=t.token),t.tokenRetentionUntil instanceof Date&&(r.hookTokenRetentionUntil=t.tokenRetentionUntil),typeof t.isWebhook==`boolean`&&(r.hookIsWebhook=t.isWebhook),typeof t.isSystem==`boolean`&&(r.hookIsSystem=t.isSystem),typeof t.errorCode==`string`&&(r.errorCode=t.errorCode),typeof t.cancelReason==`string`&&(r.cancelReason=t.cancelReason),typeof t.ownerMessageId==`string`&&(r.ownerMessageId=t.ownerMessageId),t.executionContext!==void 0&&t.executionContext!==null&&typeof t.executionContext==`object`&&(r.executionContext=t.executionContext),t.attributes!==void 0&&t.attributes!==null&&typeof t.attributes==`object`&&(r.attributes=t.attributes),Array.isArray(t.changes)&&(r.changes=t.changes),t.writer!==void 0&&t.writer!==null&&typeof t.writer==`object`&&(r.writer=t.writer),typeof t.allowReservedAttributes==`boolean`&&(r.allowReservedAttributes=t.allowReservedAttributes),typeof t.encryptionPublicKey==`string`&&(r.encryptionPublicKey=t.encryptionPublicKey),typeof t.ttfs==`number`&&(r.ttfs=t.ttfs),typeof t.stso==`number`&&(r.stso=t.stso),typeof t.stepCount==`number`&&Number.isSafeInteger(t.stepCount)&&t.stepCount>0&&(r.stepCount=t.stepCount),typeof t.eventCount==`number`&&Number.isSafeInteger(t.eventCount)&&t.eventCount>0&&(r.eventCount=t.eventCount),typeof t.rsfs==`number`&&(r.rsfs=t.rsfs),typeof t.finalSchedulingReplay==`number`&&(r.finalSchedulingReplay=t.finalSchedulingReplay),Array.isArray(t.optimizations)&&t.optimizations.every(e=>typeof e==`string`)&&(r.optimizations=t.optimizations);let i;if(n&&n in t){let r=t[n];if(r!==void 0){if(!(r instanceof Uint8Array))throw TypeError(`world-vercel v4: eventData.${n} for ${e.eventType} must be a Uint8Array (the runtime's dehydrated wire form); got ${typeof r==`object`?r===null?`null`:r.constructor?.name??typeof r:typeof r}.`);i=r}}return{payload:i,meta:r}}async function cu(e,t,n,r){return Nl(e,t,n?.resolveData===`none`?`lazy`:`resolve`,r)}async function lu(e,t){let{pagination:n,resolveData:r=`all`}=e,i={...n,remoteRefBehavior:r===`none`?`lazy`:`resolve`},a=await(`correlationId`in e?Hl(e.correlationId,e.runId,i,t):Vl(e.runId,i,t));return{data:`correlationId`in e?a.events.filter(t=>t.runId===e.runId):a.events,cursor:a.cursor,hasMore:a.hasMore}}async function uu(e,t,n,r){if(t.length===0)throw new O(`world-vercel: createBatch requires at least one event`,{status:400});if(t.some(({event:e})=>e.eventType===`hook_received`))throw new O(`world-vercel: hook_received cannot be batched (it has no entity condition, so a batch retry would append the delivery twice); send it through the single-event path`,{status:400});let i=t.map(({event:t,occurredAt:r,computeInstanceId:i})=>{let{payload:a,meta:o}=su(t);return{runId:e,eventType:t.eventType,specVersion:t.specVersion??2,...t.correlationId?{correlationId:t.correlationId}:{},occurredAt:r??new Date,...i===void 0?{}:{computeInstanceId:i},remoteRefBehavior:n?.resolveData===`all`?`resolve`:`lazy`,...n?.requestId?{vercelId:n.requestId}:{},payload:a,...o}}),a=t.every(({event:e})=>e.eventType!==`step_started`&&e.eventType!==`step_retrying`);return{results:(await Fc(()=>Dl({runId:e,events:i},r),t[0].event.eventType,{batchIdempotent:a})).results.map(e=>e.error===void 0?{status:200,event:e.event,...e.run?{run:e.run}:{},...e.step?{step:e.step}:{},...e.wait?{wait:e.wait}:{}}:{status:e.status,error:e.error,message:e.message})}}async function du(e,t,n,r){try{let i=await Fc(()=>fu(e,t,n,r),t.eventType,{idempotentHookResume:t.eventType===`hook_received`&&n?.resumeId!==void 0&&n?.resumePayloadDigest!==void 0});if(t.eventType===`run_created`&&!i.run)throw new O(`${t.eventType} response is missing the run entity`,{code:`SCHEMA_VALIDATION`});if(t.eventType===`run_started`&&!i.run?.startedAt)throw new O(`run_started response is missing run.startedAt`,{code:`SCHEMA_VALIDATION`});if(t.eventType===`step_started`&&!i.step?.startedAt)throw new O(`step_started response is missing step.startedAt`,{code:`SCHEMA_VALIDATION`});return i}catch(e){throw e instanceof wc?e.error:ae(t.eventType)&&O.is(e)&&e.status===404&&t.correlationId?new Oe(t.correlationId):e}}async function fu(e,t,n,r){if(n?.v1Compat){if(t.eventType===`run_cancelled`&&e)return{run:await tu(e,n,r)};if(t.eventType===`run_created`)return{run:await Jl(t.eventData,r)};if(e===null)throw new O(`world-vercel: v1Compat=true requires a runId for ${t.eventType}`,{status:400});return{event:await j({endpoint:`/v1/runs/${encodeURIComponent(e)}/events`,options:{method:`POST`},data:t,config:r,schema:al})}}if(e===null)throw new O(`world-vercel v4: createWorkflowRunEvent requires a client-generated runId for run_created (the runId is part of the payload storage ref key). Generate a wrun_ ULID before calling.`,{status:400});if(t.eventType===`run_created`){let t=au(e);if(t)throw new O(t,{status:400})}let i=ou.has(t.eventType)?`resolve`:`lazy`,{payload:a,meta:o}=su(t),s={runId:e,specVersion:t.specVersion??2,...t.correlationId?{correlationId:t.correlationId}:{},...n?.requestId?{vercelId:n.requestId}:{},...n?.computeInstanceId?{computeInstanceId:n.computeInstanceId}:{},...n?.eventCount===void 0?{}:{maxSlot:n.eventCount},replayDivergenceCount:n?.replayDivergenceCount,occurredAt:n?.occurredAt??new Date,...n?.sinceCursor?{sinceCursor:n.sinceCursor}:{},...n?.resumeId?{resumeId:n.resumeId}:{},...n?.resumePayloadDigest?{resumePayloadDigest:n.resumePayloadDigest}:{},...n?.viaStepDispatch?{viaStepDispatch:!0}:{},remoteRefBehavior:i,payload:a,...o};if(t.eventType===`run_started`&&!n?.skipPreload){let e=await Tl(s,r,n?.replayEventObserver),t=pu(e.events);if(!t)throw new O(`v4 createEvent: run_started stream is missing lifecycle events`,{code:`SCHEMA_VALIDATION`});return{event:t.event,run:t.run,events:e.events,cursor:e.cursor,hasMore:e.hasMore,maxEvents:e.maxEvents}}if(t.eventType===`hook_received`&&n?.preloadEvents===!0&&n.resumeId!==void 0&&n.resumePayloadDigest!==void 0){let e=await jl({...s,remoteRefBehavior:`lazy`},r,n.replayEventObserver);if(e.kind===`materialized`)return e.result;let{canonicalEventId:t,maxEvents:i,events:a,cursor:o,hasMore:c}=e,l=a.find(e=>e.eventId===t),u=pu(a);return{...l?{event:l}:{},...u?{run:u.run}:{},events:a,cursor:o,hasMore:c,...i===void 0?{}:{maxEvents:i}}}return Cl(t.eventType===`run_started`?{...s,eventType:`run_started`,skipPreload:!0}:{...s,eventType:t.eventType},r)}function pu(e){let t=e.find(e=>e.eventType===`run_created`),n=e.find(e=>e.eventType===`run_started`);if(!t||!n)return;let r=t.eventData.attributes??{},i=n.createdAt;for(let t of e)t.eventType===`attr_set`&&(r=ce(r,t.eventData.changes),i=t.createdAt);return{event:n,run:{runId:t.runId,status:`running`,deploymentId:t.eventData.deploymentId,workflowName:t.eventData.workflowName,specVersion:t.specVersion,executionContext:t.eventData.executionContext,input:t.eventData.input,attributes:r,encryptionPublicKey:t.eventData.encryptionPublicKey,startedAt:n.createdAt,createdAt:t.createdAt,updatedAt:i}}}function mu(e,t){if(t===`none`){let{metadataRef:t,...n}=e;return n}return qc(e)}const hu=D(fe.omit({metadata:!0}).extend({metadataRef:p().optional()}));async function gu(e,t){let{runId:n,pagination:r,resolveData:i=`all`}=e,a=new URLSearchParams;r?.limit&&a.set(`limit`,r.limit.toString()),r?.cursor&&a.set(`cursor`,r.cursor),r?.sortOrder&&a.set(`sortOrder`,r.sortOrder);let o=i===`none`?`lazy`:`resolve`;a.set(`remoteRefBehavior`,o),n&&a.set(`runId`,n);let s=a.toString(),c=`/v2/hooks${s?`?${s}`:``}`,l=await j({endpoint:c,options:{method:`GET`},config:t,schema:E(o===`lazy`?hu:fe)});return{...l,data:l.data.map(e=>mu(e,i))}}async function _u(e,t,n){let r=t?.resolveData||`all`,i=`/v2/hooks/${encodeURIComponent(e)}`;return mu(await j({endpoint:i,options:{method:`GET`},config:n,schema:fe}),r)}async function vu(e,t){try{return await j({endpoint:`/v2/hooks/by-token?token=${encodeURIComponent(e)}`,options:{method:`GET`},config:t,schema:fe})}catch(t){throw O.is(t)&&t.status===404?new Oe(e):t}}function yu(e){let t={runs:{get:((t,n)=>Yl(t,n,e)),waitForTerminalStatus:((t,n)=>$l(t,n,e)),getMany:((t,n)=>eu(t,n,e)),list:(t=>ql(t,e)),experimentalSetAttributes:(t,n,r)=>iu(t,n,r,e),cancelMany:t=>nu(t,e)},steps:{get:((t,n,r)=>$c(t,n,r,e)),list:(t=>Qc(t,e))},events:{create:(t,n,r)=>du(t,n,r,e),createBatch:(t,n,r)=>uu(t,n,r,e),get:(t,n,r)=>cu(t,n,r,e),list:t=>lu(t,e),listByCorrelationId:t=>lu(t,e)},hooks:{get:(t,n)=>_u(t,n,e),getByToken:t=>vu(t,e),list:t=>gu(t,e)}};return{runs:Rn(`world.runs`,t.runs),steps:Rn(`world.steps`,t.steps),events:Rn(`world.events`,t.events),hooks:Rn(`world.hooks`,t.hooks)}}const bu=1e3;function xu(e){let t=new TextEncoder;return e.map(e=>typeof e==`string`?t.encode(e):e)}function Su(e){return Cu(xu(e))}function Cu(e){let t=0;for(let n of e)if(t+=4+n.length,t>4294967295)throw RangeError(`encoded stream chunks exceed the u32 body-length limit: ${t} bytes`);let n=new Uint8Array(t),r=new DataView(n.buffer),i=0;for(let t of e)r.setUint32(i,t.length,!1),i+=4,n.set(t,i),i+=t.length;return n}const wu=bu,Tu=g().int().nonnegative(),Eu=Tu,Du=h().regex(/^wrtr_[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$/),Ou=o({type:l(`write`),reqId:Eu,chunkSeq:Tu,numChunks:g().int().positive().max(wu)}),ku=o({type:l(`close`),reqId:Eu});c(`type`,[Ou,ku]);const Au=o({type:l(`write_ack`),reqId:Eu}),ju=o({type:l(`close_ack`),reqId:Eu}),Mu=o({type:l(`error`),reqId:Eu.optional(),status:g().int(),message:h().optional()}),Nu=o({type:l(`drain`),reason:f([`auth_expiry`,`max_duration`]),graceMs:Tu}),Pu=c(`type`,[Au,ju,Mu,Nu]);function Fu(e,t,n,r){let i=Du.parse(r),a=new URL(e);return a.protocol=a.protocol===`https:`?`wss:`:`ws:`,a.pathname=`${a.pathname.replace(/\/$/,``)}/websockets/v1/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}`,a.search=new URLSearchParams({writerId:i}).toString(),a}function Iu(e,t){let n=Ou.parse(e);if(n.numChunks!==t.length)throw Error(`stream WebSocket write declares ${n.numChunks} chunks but received ${t.length}`);let r=xu(t);for(let e of r){let t=e.byteLength;if(t>10485760)throw Error(`stream WebSocket chunk is ${t} bytes; maximum is 10485760`)}return bt(n,Cu(r))}function Lu(e){return bt(ku.parse(e),new Uint8Array)}function Ru(e,t){if(t.byteLength!==0)throw Error(`stream WebSocket reply body must be empty`);return Pu.parse(e)}function zu(t,n){if(t.readyState===3)return;let r=!1,i=new Promise(e=>{let n=!1,i=()=>{n||(n=!0,clearTimeout(a),e())},a=setTimeout(()=>{r=!0,i()},250);a.unref?.(),t.once(`close`,i)}),a=ut(`workflow.stream.ws.close.cleanup`,async e=>{await i,e?.setAttribute(`workflow.stream.ws.close_cleanup_timeout`,r)});import(`../../_chunks/workflow/functions-wMCGZAVk.js`).then(t=>e(t.default,1)).then(({waitUntil:e})=>e(a)).catch(()=>{}),a.catch(()=>{}),t.close(1e3,n)}function $(){return performance.now()}function Bu(e,t,n){return e?{"workflow.stream.ws.session_first_write":e.sessionFirstWrite,"workflow.stream.ws.connection_first_write":t?.firstWriteSent===!1,"workflow.stream.ws.connection_attempt":t?.attempt??0,"workflow.stream.ws.session_to_write_ms":e.startedAt-n}:{}}function Vu(e,t,n){n&&(n.firstWriteSent=!0);let r=n?.openedAt,i=n?.socketStartedAt,a=n?.configFinishedAt;e?.setAttributes({"workflow.stream.ws.write_wait_for_open_ms":r?Math.max(0,r-t.startedAt):0,...i&&a?{"workflow.stream.ws.connect_setup_ms":i-a}:{},...i&&r?{"workflow.stream.ws.connect_ms":r-i}:{},...a&&n?{"workflow.stream.ws.config_token_ms":a-n.configStartedAt}:{}})}function Hu(e,t,n,r){let i=$();r.sentAt=i,e?.setAttributes({"workflow.stream.ws.write_to_send_ms":i-t.startedAt,...n?.openedAt?{"workflow.stream.ws.open_to_send_ms":Math.max(0,i-n.openedAt)}:{}})}function Uu(e,t,n){if(n?.sentAt===void 0||n.replyReceivedAt===void 0)return;let r=$();e?.setAttributes({"workflow.stream.ws.send_to_reply_ms":n.replyReceivedAt-n.sentAt,"workflow.stream.ws.reply_processing_ms":r-n.replyReceivedAt,"workflow.stream.ws.write_total_ms":r-t.startedAt})}function Wu(e){return e.get(`authorization`)}var Gu=class extends Error{constructor(e){super(e instanceof Error?e.message:String(e),{cause:e}),this.name=`StreamWsRequestNotSentError`}};async function Ku(e){let t;for await(let n of jt((async function*(){yield e})())){if(t)throw Error(`stream WebSocket message has multiple frames`);t=n}if(!t)throw Error(`stream WebSocket message has no frame`);return t}function qu(e){return e instanceof Uint8Array?e:typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}var Ju=class{runId;name;writerId;config;writeHttp;closeHttp;connectAfterFirstWrite;mode=`connecting`;socket;connect=Promise.resolve();transportDecision=Promise.resolve();tail=Promise.resolve();inbound=Promise.resolve();nextReqId=1;pending;poisonError;wsUrl;closeAcknowledged=!1;idleReconnects=0;drainReason;drainTimer;releaseDrainWait;lastAuthorization=null;sessionCreatedAt=$();sessionHasWrite=!1;connectionAttempt=0;connectionTiming;constructor(e,t,n,r,i,a,o){this.runId=e,this.name=t,this.writerId=n,this.config=r,this.writeHttp=i,this.closeHttp=a,this.connectAfterFirstWrite=o,o?this.mode=`deferred`:this.startInitialConnect()}write(e,t){let n={startedAt:$(),sessionFirstWrite:!this.sessionHasWrite};return this.sessionHasWrite=!0,this.enqueue(()=>this.writeInternal(e,t,n))}async writeInternal(e,t,n){if(this.assertUsable(),this.mode===`deferred`){await this.writeFirstGroup(t,n);return}if(this.mode===`waiting_to_connect`){await this.writeSecondGroupAndStartConnect(t,n);return}if(this.shouldWriteHttpWhileConnecting()){await this.writeWhileInitialConnectRuns(t,n);return}if(await this.transportDecision,this.assertUsable(),this.mode===`http`){await this.writeHttp(t);return}for(let r=0;r<t.length;r+=wu){let i=t.slice(r,r+wu),a;try{a=await this.request(t=>Iu({type:`write`,reqId:t,chunkSeq:e+r,numChunks:i.length},i),r===0?n:void 0,{chunkSeq:e+r,numChunks:i.length})}catch(e){if(!(e instanceof Gu))throw e;this.fallbackToHttpBeforeSend(),await this.writeHttp(t.slice(r));return}if(a.type!==`write_ack`)throw this.poison(Error(`stream WebSocket write received ${a.type}`))}}shouldWriteHttpWhileConnecting(){return this.mode===`connecting`&&this.connectionAttempt===1}async writeWhileInitialConnectRuns(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":this.connectionAttempt,"workflow.stream.ws.connecting_at_write":!0,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt})}catch(e){throw this.failUnknown(e),this.poisonError}}async writeSecondGroupAndStartConnect(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":0,"workflow.stream.ws.connecting_at_write":!1,"workflow.stream.ws.connect_after_http_group":2,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt},()=>{this.mode===`waiting_to_connect`&&this.startInitialConnect()})}catch(e){throw this.failUnknown(e),this.poisonError}}async writeFirstGroup(e,t){try{await this.writeHttp(e,{"workflow.stream.ws.session_first_write":t.sessionFirstWrite,"workflow.stream.ws.connection_attempt":0,"workflow.stream.ws.connecting_at_write":!1,"workflow.stream.ws.connect_deferred_at_write":!0,"workflow.stream.ws.http_group_ordinal":1,"workflow.stream.ws.session_to_write_ms":t.startedAt-this.sessionCreatedAt})}catch(e){throw this.failUnknown(e),this.poisonError}this.mode===`deferred`&&(this.mode=`waiting_to_connect`)}dispose(){if(this.mode===`closed`)return;this.mode=`closed`,this.finishDrainWait();let e=this.pending;this.pending=void 0,e&&(clearTimeout(e.timer),e.reject(Error(`stream writer transport disposed`))),this.socket?.close(1e3,`stream writer disposed`)}close(){return this.enqueue(async()=>{if(this.assertUsable(),this.mode===`deferred`||this.mode===`waiting_to_connect`||this.connectAfterFirstWrite&&this.mode===`connecting`&&this.connectionAttempt===1){await this.closeHttp(),this.mode=`closed`,this.socket?.close(1e3,`stream closed over HTTP`);return}if(await this.transportDecision,this.assertUsable(),this.mode===`http`){await this.closeHttp(),this.mode=`closed`;return}let e;try{e=await this.request(e=>Lu({type:`close`,reqId:e}))}catch(e){if(!(e instanceof Gu))throw e;this.fallbackToHttpBeforeSend(),await this.closeHttp(),this.mode=`closed`;return}if(e.type!==`close_ack`)throw this.poison(Error(`stream WebSocket close received ${e.type}`));this.mode=`closed`,this.socket&&zu(this.socket,`stream closed`)})}enqueue(e){let t=this.tail.then(e);return this.tail=t.catch(()=>{}),t}assertUsable(){if(this.mode===`poisoned`)throw this.poisonError;if(this.mode===`closed`)throw Error(`stream writer is closed`)}startInitialConnect(){this.mode=`connecting`,this.connect=this.startConnect(),this.transportDecision=this.makeTransportDecision(!1)}makeTransportDecision(e){return new Promise(t=>{let n=!1,r=()=>{n||(n=!0,clearTimeout(i),t())},i=setTimeout(()=>{this.mode===`connecting`&&(this.mode=`http`,this.socket?.close(1e3,`connect budget expired`)),r()},e?250:1e4);i.unref?.(),this.connect.then(r)})}startConnect(e=!1){let t=$(),n={attempt:++this.connectionAttempt,configStartedAt:t,firstWriteSent:!1};return this.connectionTiming=n,this.connectSocket(e,n).catch(()=>{this.mode===`connecting`&&(this.mode=`http`)})}async connectSocket(e,t){if(!Nt()){this.mode=`http`;return}e&&await(0,bc.getVercelOidcToken)({expirationBufferMs:864e5}).catch(()=>void 0);let n=M(this.config).then(e=>(t.configFinishedAt=$(),e)),[{WebSocket:r},i]=await Promise.all([import(`../../_chunks/workflow/wrapper-CKui_eTd.js`),n]);if(this.mode!==`connecting`)return;if(e&&Wu(i.headers)===this.lastAuthorization){this.mode=`http`;return}if(this.lastAuthorization=Wu(i.headers),i.usingProxy){this.mode=`http`;return}if(this.mode!==`connecting`)return;let a=Fu(i.baseUrl,this.runId,this.name,this.writerId);this.wsUrl=a.toString(),await Lt({method:`GET`,url:this.wsUrl,spanName:`workflow.stream.ws.connect`,attributes:{"workflow.stream.transport":`ws`}},async()=>{if(await Xe(i.headers),this.mode!==`connecting`)return;t.socketStartedAt=$();let e=new r(a,{headers:It(i.headers)});this.socket=e,e.binaryType=`nodebuffer`,await new Promise(n=>{let r=!1,i=()=>{r||(this.mode===`connecting`&&(this.mode=`http`),n())};e.once(`open`,()=>{if(r=!0,t.openedAt=$(),this.mode!==`connecting`){e.close(1e3,`HTTP fallback selected`),n();return}this.mode=`ws`,n()}),e.once(`unexpected-response`,(t,n)=>{let r=n;r.resume?.(),r.destroy?.(),e.close(1e3,`upgrade declined`),i()}),e.once(`error`,e=>{if(!r){i();return}this.failUnknown(e)}),e.once(`close`,t=>{if(!r){i();return}this.inbound.then(()=>this.handleSocketClose(Number(t),e))}),e.on(`message`,e=>{let t=$();this.inbound=this.inbound.then(()=>this.handleMessage(qu(e),t))})})})}async handleMessage(e,t){try{let n=await Ku(e),r=Ru(n.meta,n.body);if(r.type===`drain`){this.handleDrain(r.reason,r.graceMs);return}let i=this.pending;if(!i||r.reqId===void 0||r.reqId!==i.reqId)throw r.type===`error`?Error(`stream WebSocket connection failed (${r.status}): ${r.message??`unknown error`}`):Error(`stream WebSocket reply cannot be correlated`);this.pending=void 0,i.replyReceivedAt=t,clearTimeout(i.timer),r.type===`close_ack`&&(this.closeAcknowledged=!0),r.type===`error`?(i.reject(this.poison(Error(`stream WebSocket request failed (${r.status}): ${r.message??`unknown error`}`))),this.socket?.close(1011,`stream request failed`)):(r.type===`write_ack`&&(this.idleReconnects=0),i.resolve(r))}catch(e){this.failUnknown(e)}}handleDrain(e,t){if(this.mode===`draining`){e===`auth_expiry`&&(this.drainReason=e);return}if(this.mode!==`ws`)return;this.mode=`draining`,this.drainReason=e,this.transportDecision=new Promise(e=>{this.releaseDrainWait=e});let n=this.socket;this.drainTimer=setTimeout(()=>{if(this.drainTimer=void 0,this.mode===`draining`&&n===this.socket){if(this.pending){this.failUnknown(Error(`stream WebSocket drain expired before request reply`));return}n?.close(1001,`stream drain grace expired`),this.handleSocketClose(1001,n)}},Math.min(t,2147483647)),this.drainTimer.unref?.()}handleSocketClose(e,t=this.socket){if(t===this.socket&&(this.drainTimer&&=(clearTimeout(this.drainTimer),void 0),!(this.mode===`closed`||this.mode===`http`||this.mode===`poisoned`||this.closeAcknowledged))){if(this.pending){this.failUnknown(Error(`stream WebSocket closed before reply`));return}if(this.mode===`draining`&&e!==1001){this.drainReason=void 0,this.mode=`http`,this.socket=void 0,this.finishDrainWait();return}if(this.mode===`draining`){let e=this.drainReason===`auth_expiry`;if(this.drainReason=void 0,this.idleReconnects>=3){this.mode=`http`,this.socket=void 0,this.finishDrainWait();return}this.idleReconnects++,this.mode=`connecting`,this.socket=void 0,this.connect=this.startConnect(e);let t=this.makeTransportDecision(!0);this.transportDecision=t,t.then(()=>this.finishDrainWait());return}if(this.idleReconnects>=3){this.mode=`http`,this.socket=void 0;return}this.idleReconnects++,this.mode=`connecting`,this.socket=void 0,this.connect=this.startConnect(),this.transportDecision=this.makeTransportDecision(!0)}}async request(e,t,n){this.assertUsable();let r=this.socket;if(this.mode!==`ws`||!r||r.readyState!==1)throw new Gu(Error(`stream WebSocket is not open before send`));let i=this.nextReqId++,a;try{a=e(i)}catch(e){throw new Gu(e)}let o=this.connectionTiming,s=o?.firstWriteSent===!1,c=t&&(t.sessionFirstWrite||s)?t:void 0;return Lt({method:`POST`,url:this.wsUrl??`ws://unknown`,spanName:`workflow.stream.write`,attributes:{"workflow.stream.transport":`ws`,"workflow.stream.ws.req_id":i,...n?{"workflow.stream.ws.chunk_seq":n.chunkSeq,"workflow.stream.ws.num_chunks":n.numChunks}:{},...Bu(c,o,this.sessionCreatedAt)}},async e=>{c&&Vu(e,c,o);let t,n=new Promise((n,s)=>{let l=setTimeout(()=>{this.failUnknown(Error(`stream WebSocket request ${i} timed out with no reply`))},yt());l.unref?.(),t={reqId:i,resolve:n,reject:s,timer:l},this.pending=t;try{c&&Hu(e,c,o,t),r.send(a,e=>{e&&this.failUnknown(e)})}catch(e){this.failUnknown(e)}});try{return await n}finally{c&&Uu(e,c,t)}})}finishDrainWait(){this.drainTimer&&=(clearTimeout(this.drainTimer),void 0);let e=this.releaseDrainWait;this.releaseDrainWait=void 0,e?.()}fallbackToHttpBeforeSend(){this.mode=`http`,this.socket?.close(1e3,`HTTP fallback before send`),this.socket=void 0}failUnknown(e){let t=this.poison(e);this.finishDrainWait();let n=this.pending;this.pending=void 0,n&&(clearTimeout(n.timer),n.reject(t)),this.socket?.close(1011,`unknown stream write outcome`)}poison(e){return this.mode!==`poisoned`&&(this.mode=`poisoned`,this.poisonError=e),this.poisonError}};function Yu(e,t,n,r,i,a,o=!0){return new Ju(e,t,Du.parse(n),r,i,a,o)}const Xu=()=>ue(`WORKFLOW_MAX_CHUNKS_PER_REQUEST`,1e3,{integer:!0,min:1});function Zu(e,t,n){return new URL(`${n.baseUrl}/v2/runs/${encodeURIComponent(t)}/stream/${encodeURIComponent(e)}`)}function Qu(e,t,n){return new URL(`${n.baseUrl}/v3/runs/${encodeURIComponent(t)}/stream/${encodeURIComponent(e)}`)}function $u(e){return{...Qe(e.runId),...He(e.name),...st(e.operation),...typeof e.startIndex==`number`?Je(e.startIndex):{}}}async function ed(e){let t=`Failed to fetch stream: ${e.status}`;if(e.status!==410)return new k(t,{status:e.status});try{let n=await e.json();return Tt(e.status,typeof n.message==`string`?n.message:t,{code:n.error,details:n.details})}catch{return new k(t,{status:e.status})}}function td(e,t){return O.is(t)||ke.is(t)||De.is(t)||k.is(t)||Te.is(t)||Me.is(t)||je.is(t)||Ee.is(t)?t:new k(e,{cause:t})}function nd(e,t,n,r){let i=[`PUT ${t.origin}${t.pathname}`,...ft(n.headers)];return new k(`Stream ${e} failed: HTTP ${n.status} (${i.join(`; `)}): ${r}`,{url:t.toString(),status:n.status})}const rd=D(o({tailIndex:g(),done:m()})),id=D(o({data:s(o({index:g(),data:u(Uint8Array)})),cursor:h().nullable(),hasMore:m(),done:m()}));async function ad(e,t,n,r,i,a){let o=await M(r);o.headers.set(`X-Stream-Multi`,`true`);let s=Math.min(Xu(),bu);for(let c=0;c<n.length;c+=s){let l=Zu(t,e,o);await(await A({method:`PUT`,url:l.toString(),body:Su(n.slice(c,c+s)),headers:o.headers,dispatcher:_t(r),timeoutMs:null,logLabel:l.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,onRequestDispatched:c===0?a:void 0,attributes:{...$u({runId:e,name:t,operation:`write_multi`}),...c===0?i:void 0},buildError:async e=>nd(`write`,l,e,await e.text())})).text()}}async function od(e,t,n){let r=await M(n);r.headers.set(`X-Stream-Done`,`true`);let i=Zu(t,e,r);await(await A({method:`PUT`,url:i.toString(),headers:r.headers,dispatcher:Be(n),timeoutMs:null,logLabel:i.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:e,name:t,operation:`close`}),buildError:async e=>nd(`close`,i,e,await e.text())})).text()}function sd(e){return{streams:{...Nt()?{createWriteSession(t,n,{writerId:r}){return Yu(t,n,r,e,(r,i,a)=>ad(t,n,r,e,i,a),()=>od(t,n,e))}}:{},async write(t,n,r){let i=await t,a=await M(e),o=Zu(n,i,a);await(await A({method:`PUT`,url:o.toString(),body:r,headers:a.headers,dispatcher:_t(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:o.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:i,name:n,operation:`write`}),buildError:async e=>nd(`write`,o,e,await e.text())})).text()},async writeMulti(t,n,r){if(r.length===0)return;let i=await t,a=await M(e);a.headers.set(`X-Stream-Multi`,`true`);let o=Xu();for(let t=0;t<r.length;t+=o){let s=Su(r.slice(t,t+o)),c=Zu(n,i,a);await(await A({method:`PUT`,url:c.toString(),body:s,headers:a.headers,dispatcher:_t(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:c.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:i,name:n,operation:`write_multi`}),buildError:async e=>nd(`write`,c,e,await e.text())})).text()}},async close(t,n){let r=await t,i=await M(e);i.headers.set(`X-Stream-Done`,`true`);let a=Zu(n,r,i);await(await A({method:`PUT`,url:a.toString(),headers:i.headers,dispatcher:Be(e),timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:a.pathname,spanName:`workflow.stream.write`,durationAttribute:`workflow.stream.write.chunk_rtt`,attributes:$u({runId:r,name:n,operation:`close`}),buildError:async e=>nd(`close`,a,e,await e.text())})).text()},async get(t,n,r){let i=await M(e);i.headers.set(`Accept`,`application/json`);let a=Qu(n,t,i);typeof r==`number`&&a.searchParams.set(`startIndex`,String(r));let o=await A({method:`GET`,url:a.toString(),headers:i.headers,dispatcher:void 0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:a.pathname,spanName:`workflow.stream.read.connect`,attributes:$u({runId:t,name:n,operation:`read`,startIndex:r}),buildError:ed});if(!o.body)throw new k(`No response body for stream`,{url:a.toString()});return o.body},async getChunks(t,n,r){let i=new URLSearchParams;r?.limit!=null&&i.set(`limit`,String(r.limit)),r?.cursor&&i.set(`cursor`,r.cursor);let a=i.toString(),o=`/v2/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}/chunks${a?`?${a}`:``}`;try{return await j({endpoint:o,config:e,schema:id})}catch(e){throw td(`Failed to read stream chunks for ${n}`,e)}},async getInfo(t,n){let r=`/v2/runs/${encodeURIComponent(t)}/streams/${encodeURIComponent(n)}/info`;try{return await j({endpoint:r,config:e,schema:rd})}catch(e){throw td(`Failed to read stream info for ${n}`,e)}},async list(t){let n=await M(e),r=new URL(`${n.baseUrl}/v2/runs/${encodeURIComponent(t)}/streams`),i=await A({method:`GET`,url:r.toString(),headers:n.headers,dispatcher:void 0,timeoutMs:null,transportErrorCode:`STREAM_ERROR`,logLabel:r.pathname,buildError:e=>new k(`Failed to list streams: ${e.status}`,{url:r.toString(),status:e.status})});try{return await i.json()}catch(e){throw td(`Failed to parse stream list response`,e)}}}}}function cd(e){let t=e?.projectConfig?.projectId||process.env.VERCEL_PROJECT_ID;return{specVersion:ge(),capabilities:{hookRetention:{active:!0},maxConcurrency:!0,deploymentAffinity:!0},getRuntimeDeadline:kn,...yc(e),...yu(e),analytics:process.env.WORKFLOW_DISABLE_ANALYTICS_READS===`1`?void 0:_n(e),...Rn(`world.streams`,sd(e)),createRunId:Sn,describeRun:wn,getEnvironment:()=>kt(e),getEncryptionKeyForRun:On(t,e?.projectConfig?.teamId,e?.token,e?.dispatcher),resolveLatestDeploymentId:Cc(e)}}export{_n as createAnalytics,On as createGetEncryptionKeyForRun,yc as createQueue,Sn as createRunId,yu as createStorage,sd as createStreamer,cd as createWorld,En as deriveRunKey,wn as describeRun,Dn as fetchRunKey,Cn as regionForRunId};
@@ -0,0 +1,6 @@
1
+ import{st as e,tt as t}from"./dist-C5KCXSdI.js";import{Cn as n,Sn as r,Tn as i,wn as a}from"./logger-D6vwIEf9.js";import{i as o}from"./dist-xTushGCp.js";function s(e,t){let n=Error.captureStackTrace;n?.(e,t)}const c=Symbol.for(`nodejs.util.inspect.custom`);function l(e){return`code`in e?`\`${e.code}\``:`dim`in e?e.dim:e.text}function u(e){return`code`in e?r(e.code):`dim`in e?n(e.dim):e.text}function d(e){return e.type===`docs`?`docs: ${e.url}`:e.segments.map(l).join(``)}function f(e){return e.type===`docs`?a(e.url):e.segments.map(u).join(``)}function p(e){let t=[e.title.map(l).join(``)];return e.details.forEach((n,r)=>{let i=r===e.details.length-1,a=i?`╰▶ `:`├▶ `,o=i?` `:`│ `;d(n).split(`
2
+ `).forEach((e,n)=>{t.push(`${n===0?a:o}${e}`)})}),t.join(`
3
+ `)}function m(e){let t=e.title.map(u).join(``);return i(t,e.details.map(f))}var h=class extends Error{fatal=!0;#e;constructor(e){super(p(e)),this.#e=e}[c](){let e=m(this.#e),t=this.message.split(`
4
+ `).length,n=(this.stack??``).split(`
5
+ `).slice(t).join(`
6
+ `);return n?`${this.name}: ${e}\n${n}`:`${this.name}: ${e}`}toString(){return`${this.name}: ${m(this.#e)}`}},g=class extends h{name=`NotInWorkflowContextError`;constructor(e,t){super({title:[{code:e},{text:` can only be called inside a workflow function`}],details:[{type:`docs`,url:t}]})}},_=class extends h{name=`NotInStepContextError`;constructor(e,t){super({title:[{code:e},{text:` can only be called inside a step function`}],details:[{type:`docs`,url:t}]})}},v=class extends h{name=`NotInWorkflowOrStepContextError`;constructor(e,t){super({title:[{code:e},{text:` can only be called inside a workflow or step function`}],details:[{type:`docs`,url:t}]})}};const y=Symbol.for(`WORKFLOW_CONTEXT`);function b(){let e=globalThis[y];if(!e){let e=new v(`getWorkflowMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-workflow-metadata`);throw s(e,b),e}return e}var x=class extends h{name=`UnavailableInWorkflowContextError`;constructor(e,t){let n=globalThis[y]?.workflowName,r=(()=>{if(!n)return null;let e=n.match(/^(workflow\/|step\/)(.*)$/);return e?[{dim:e[1]},{text:e[2]}]:[{text:n}]})(),i=r?{type:`plain`,segments:[{text:`this call was made from the `},...r,{text:` workflow context.`}]}:{type:`plain`,segments:[{text:`this call was made from a workflow context.`}]};super({title:[{code:e},{text:` cannot be called from a workflow context.`}],details:[{type:`plain`,segments:[{text:`calling this in a workflow context can cause determinism issues.`}]},i,{type:`docs`,url:t}]})}};function S(e,t,n){let r=new g(e,t);throw s(r,n),r}function C(e,t,n){let r=new _(e,t);throw s(r,n),r}function w(e,t,n){let r=new v(e,t);throw s(r,n),r}function T(e,t,n){let r=new x(e,t);throw s(r,n),r}function E(n,r={}){if(typeof n!=`object`||!n||Array.isArray(n))throw new o(`setAttributes requires a plain object, got ${n===null?`null`:Array.isArray(n)?`array`:typeof n}`);let i=Object.entries(n).map(([e,t])=>({key:e,value:t===void 0?null:t}));if(i.length===0)return i;let a=r.allowReservedAttributes===!0;try{e(i,{allowReservedAttributes:a})}catch(e){throw e instanceof t?new o(e.message):e}return i}export{w as a,b as c,v as d,S as i,_ as l,x as n,T as o,C as r,y as s,E as t,g as u};