eve 0.37.0 → 0.38.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 (410) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/src/channel/routes.d.ts +13 -3
  3. package/dist/src/channel/routes.js +1 -1
  4. package/dist/src/channel/session-callback.js +1 -1
  5. package/dist/src/channel/session.d.ts +2 -1
  6. package/dist/src/channel/session.js +1 -1
  7. package/dist/src/channel/types.d.ts +41 -0
  8. package/dist/src/chunks/{use-eve-agent-COmP-H8R.js → use-eve-agent-BbSsu99c.js} +79 -32
  9. package/dist/src/chunks/{use-eve-agent-CnppTEFk.js → use-eve-agent-Dt8Y5QtW.js} +78 -31
  10. package/dist/src/cli/acp/command.d.ts +2 -1
  11. package/dist/src/cli/acp/command.js +2 -2
  12. package/dist/src/cli/application-command.d.ts +8 -0
  13. package/dist/src/cli/application-command.js +1 -0
  14. package/dist/src/cli/application-root.d.ts +8 -0
  15. package/dist/src/cli/application-root.js +1 -0
  16. package/dist/src/cli/commands/build.d.ts +2 -1
  17. package/dist/src/cli/commands/build.js +1 -1
  18. package/dist/src/cli/commands/init-git.js +1 -1
  19. package/dist/src/cli/commands/init-recovery.d.ts +3 -0
  20. package/dist/src/cli/commands/init-recovery.js +3 -0
  21. package/dist/src/cli/commands/init-repl.js +1 -1
  22. package/dist/src/cli/commands/init-target.d.ts +21 -0
  23. package/dist/src/cli/commands/init-target.js +1 -0
  24. package/dist/src/cli/commands/init.js +1 -1
  25. package/dist/src/cli/commands/register-integration-commands.d.ts +2 -1
  26. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  27. package/dist/src/cli/commands/register-project-commands.d.ts +2 -1
  28. package/dist/src/cli/commands/register-project-commands.js +1 -1
  29. package/dist/src/cli/commands/register-registry-commands.d.ts +2 -1
  30. package/dist/src/cli/commands/register-registry-commands.js +4 -1
  31. package/dist/src/cli/commands/registry-recovery.d.ts +14 -0
  32. package/dist/src/cli/commands/registry-recovery.js +1 -0
  33. package/dist/src/cli/commands/registry.d.ts +2 -5
  34. package/dist/src/cli/commands/registry.js +1 -1
  35. package/dist/src/cli/dev/diagnostic-dump.js +1 -1
  36. package/dist/src/cli/dev/environment.js +1 -1
  37. package/dist/src/cli/dev/tui/runner.d.ts +8 -0
  38. package/dist/src/cli/dev/tui/runner.js +1 -1
  39. package/dist/src/cli/dev/tui/subagent-pump.d.ts +27 -22
  40. package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
  41. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +16 -0
  42. package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
  43. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  44. package/dist/src/cli/invoke/command.d.ts +3 -2
  45. package/dist/src/cli/invoke/command.js +1 -1
  46. package/dist/src/cli/run.d.ts +3 -2
  47. package/dist/src/cli/run.js +3 -3
  48. package/dist/src/client/eve-agent-store.d.ts +15 -3
  49. package/dist/src/client/eve-agent-store.js +2 -2
  50. package/dist/src/client/message-response.d.ts +10 -2
  51. package/dist/src/client/message-response.js +1 -1
  52. package/dist/src/client/open-stream.d.ts +2 -0
  53. package/dist/src/client/open-stream.js +1 -1
  54. package/dist/src/client/session.js +1 -1
  55. package/dist/src/compiled/.vendor-stamp.json +5 -1
  56. package/dist/src/compiled/@ai-sdk/otel/index.js +3 -3
  57. package/dist/src/compiled/@chat-adapter/slack/index.js +25 -25
  58. package/dist/src/compiled/@modelcontextprotocol/server/LICENSE +216 -0
  59. package/dist/src/compiled/@modelcontextprotocol/server/index.d.ts +98 -0
  60. package/dist/src/compiled/@modelcontextprotocol/server/index.js +80 -0
  61. package/dist/src/compiled/@opentelemetry/api/index.js +1 -1
  62. package/dist/src/compiled/@opentelemetry/otlp-transformer/index.js +1 -1
  63. package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +61 -61
  64. package/dist/src/compiled/@vercel/oidc/index.js +14 -14
  65. package/dist/src/compiled/@vercel/otel/index.js +1 -1
  66. package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
  67. package/dist/src/compiled/@workflow/core/index.js +1 -1
  68. package/dist/src/compiled/@workflow/core/private.js +1 -1
  69. package/dist/src/compiled/@workflow/core/runtime.js +2 -2
  70. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  71. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  72. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  73. package/dist/src/compiled/@workflow/world-vercel/index.js +13 -13
  74. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BoH7JsWp.js → attribute-changes-DZtQkszH.js} +1 -1
  75. package/dist/src/compiled/_chunks/workflow/chunk-5MU5Z6L3-B_3nkJFi.js +1 -0
  76. package/dist/src/compiled/_chunks/workflow/{chunk-NWCAEW5Y-Oxw40oRR.js → chunk-NWCAEW5Y-BgbcH0OK.js} +1 -1
  77. package/dist/src/compiled/_chunks/workflow/{dist-DlFv0aHY.js → dist-CPlyFOVo.js} +1 -1
  78. package/dist/src/compiled/_chunks/workflow/{dist-tJoQXAF6.js → dist-DpYyXbJv.js} +1 -1
  79. package/dist/src/compiled/_chunks/workflow/{dist-CRTn4Sg8.js → dist-xQXN70ED.js} +1 -1
  80. package/dist/src/compiled/_chunks/workflow/esm-seIr7a6j.js +1 -0
  81. package/dist/src/compiled/_chunks/workflow/{frames-CTpeJYEQ.js → frames-BBs-9k1d.js} +2 -2
  82. package/dist/src/compiled/_chunks/workflow/{functions-CeeNvKsq.js → functions-DAYiHNti.js} +1 -1
  83. package/dist/src/compiled/_chunks/workflow/{getMachineId-bsd-WEBNKY2R-CEYkx6Nv.js → getMachineId-bsd-WEBNKY2R-BTaxrQ52.js} +1 -1
  84. package/dist/src/compiled/_chunks/workflow/{getMachineId-darwin-LT47KAXP-DPwWlhif.js → getMachineId-darwin-LT47KAXP-DhYmwE_R.js} +1 -1
  85. package/dist/src/compiled/_chunks/workflow/{getMachineId-linux-LTVQO6VW-DAFXHwZp.js → getMachineId-linux-LTVQO6VW-Dru_L5ru.js} +1 -1
  86. package/dist/src/compiled/_chunks/workflow/{getMachineId-unsupported-UKWBA27G-BZKOI8mG.js → getMachineId-unsupported-UKWBA27G-DGfoqVW1.js} +1 -1
  87. package/dist/src/compiled/_chunks/workflow/{getMachineId-win-NLJKOPY6-r7_CJB5o.js → getMachineId-win-NLJKOPY6-CLM98q4X.js} +1 -1
  88. package/dist/src/compiled/_chunks/workflow/{private-tvMBynnC.js → private-UQtz8ZcW.js} +1 -1
  89. package/dist/src/compiled/_chunks/workflow/{resume-hook-BPQHjeY5.js → resume-hook-CYtSorp6.js} +1 -1
  90. package/dist/src/compiled/_chunks/workflow/{rolldown-runtime-DaDcL9Zw.js → rolldown-runtime-8V8biNmG.js} +1 -1
  91. package/dist/src/compiled/_chunks/workflow/{run-DQ5dOyjm.js → run-Cjo0A3NO.js} +1 -1
  92. package/dist/src/compiled/_chunks/workflow/{signal-exit-C8vsI6zj.js → signal-exit-o3IPQwwv.js} +1 -1
  93. package/dist/src/compiled/_chunks/workflow/sleep-C1P0OWBm.js +1 -0
  94. package/dist/src/compiled/_chunks/workflow/{token-DHD-q-fS.js → token-DGzfw-Vb.js} +1 -1
  95. package/dist/src/compiled/_chunks/workflow/{token-DtCUEpJs.js → token-DNbxVpeq.js} +1 -1
  96. package/dist/src/compiled/_chunks/workflow/token-util-BneBe0g5.js +27 -0
  97. package/dist/src/compiled/_chunks/workflow/{token-util-Ldar52H7.js → token-util-DjMgNdXS.js} +1 -1
  98. package/dist/src/compiled/_chunks/workflow/{undici-CUIybhQ2.js → undici-BBG5cZTy.js} +1 -1
  99. package/dist/src/compiled/_chunks/workflow/{wait-until-DK2lnH6U.js → wait-until-CT1ve8qB.js} +3 -3
  100. package/dist/src/compiled/_chunks/workflow/{wrapper-CMGju7QA.js → wrapper-CQNxP9mU.js} +3 -3
  101. package/dist/src/compiled/_chunks/workflow/{ws-transport-Csi6Cydc.js → ws-transport-beXxD0s_.js} +1 -1
  102. package/dist/src/compiled/env-runner/node-worker.js +1 -1
  103. package/dist/src/compiled/jose/index.js +1 -1
  104. package/dist/src/compiled/shadcn-registry/index.js +403 -403
  105. package/dist/src/compiler/artifacts.js +1 -1
  106. package/dist/src/compiler/compile-agent.js +2 -2
  107. package/dist/src/compiler/extension-compatibility.d.ts +20 -10
  108. package/dist/src/compiler/extension-compatibility.js +1 -1
  109. package/dist/src/compiler/manifest.js +1 -1
  110. package/dist/src/compiler/normalize-agent-config.js +1 -1
  111. package/dist/src/compiler/normalize-extension.d.ts +8 -5
  112. package/dist/src/compiler/normalize-extension.js +1 -1
  113. package/dist/src/compiler/normalize-manifest.js +1 -1
  114. package/dist/src/compiler/normalize-subagent.d.ts +1 -1
  115. package/dist/src/compiler/normalize-subagent.js +1 -1
  116. package/dist/src/context/serialized-dynamic-model-selection.d.ts +2 -0
  117. package/dist/src/context/serialized-dynamic-model-selection.js +1 -0
  118. package/dist/src/discover/discover-agent.js +1 -1
  119. package/dist/src/discover/extensions.d.ts +0 -6
  120. package/dist/src/discover/extensions.js +1 -1
  121. package/dist/src/evals/cli/eval.d.ts +1 -1
  122. package/dist/src/evals/cli/eval.js +1 -1
  123. package/dist/src/execution/agent-handle-dispatch.d.ts +15 -1
  124. package/dist/src/execution/agent-handle-dispatch.js +1 -1
  125. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  126. package/dist/src/execution/delegated-parent-notification.d.ts +17 -0
  127. package/dist/src/execution/delegated-parent-notification.js +1 -1
  128. package/dist/src/execution/deliver-payloads.js +1 -1
  129. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +155 -0
  130. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -0
  131. package/dist/src/execution/dispatch-runtime-actions-step.d.ts +18 -14
  132. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  133. package/dist/src/execution/dispatch-workflow-runtime-actions-step.d.ts +7 -2
  134. package/dist/src/execution/dispatch-workflow-runtime-actions-step.js +1 -1
  135. package/dist/src/execution/effective-output-schema.d.ts +21 -0
  136. package/dist/src/execution/effective-output-schema.js +1 -0
  137. package/dist/src/execution/eve-workflow-attributes.d.ts +2 -0
  138. package/dist/src/execution/node-step.js +1 -1
  139. package/dist/src/execution/parked-delivery-wait.d.ts +8 -12
  140. package/dist/src/execution/parked-delivery-wait.js +1 -1
  141. package/dist/src/execution/{route-proxied-deliver-step.d.ts → proxied-deliver-step.d.ts} +7 -4
  142. package/dist/src/execution/proxied-deliver-step.js +1 -0
  143. package/dist/src/execution/remote-agent-dispatch.d.ts +32 -0
  144. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  145. package/dist/src/execution/remote-agent-route-url.d.ts +2 -0
  146. package/dist/src/execution/remote-agent-route-url.js +1 -0
  147. package/dist/src/execution/route-child-delivery.d.ts +2 -1
  148. package/dist/src/execution/route-child-delivery.js +1 -1
  149. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  150. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  151. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
  152. package/dist/src/execution/sandbox/prewarm.js +1 -1
  153. package/dist/src/execution/session-callback-step.d.ts +11 -0
  154. package/dist/src/execution/session-callback-step.js +1 -1
  155. package/dist/src/execution/session-command-wire.js +1 -1
  156. package/dist/src/execution/session-state-cursor.d.ts +25 -0
  157. package/dist/src/execution/session-state-cursor.js +1 -0
  158. package/dist/src/execution/settle-cancelled-turn-step.d.ts +2 -0
  159. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  160. package/dist/src/execution/subagent-event-proxy-step.d.ts +15 -0
  161. package/dist/src/execution/subagent-event-proxy-step.js +1 -1
  162. package/dist/src/execution/subagent-hitl-proxy.d.ts +14 -7
  163. package/dist/src/execution/subagent-hitl-proxy.js +1 -1
  164. package/dist/src/execution/subagent-start-local.d.ts +29 -0
  165. package/dist/src/execution/subagent-start-local.js +1 -0
  166. package/dist/src/execution/subagent-start-remote.d.ts +23 -0
  167. package/dist/src/execution/subagent-start-remote.js +1 -0
  168. package/dist/src/execution/task-event-callback.d.ts +13 -0
  169. package/dist/src/execution/task-event-callback.js +1 -0
  170. package/dist/src/execution/task-input-capability.d.ts +4 -0
  171. package/dist/src/execution/task-input-capability.js +1 -0
  172. package/dist/src/execution/tasks/child/steps.d.ts +46 -0
  173. package/dist/src/execution/tasks/child/steps.js +1 -0
  174. package/dist/src/execution/tasks/child/workflow.d.ts +31 -0
  175. package/dist/src/execution/tasks/child/workflow.js +1 -0
  176. package/dist/src/execution/tasks/parent/agent-identity.d.ts +13 -0
  177. package/dist/src/execution/tasks/parent/agent-identity.js +1 -0
  178. package/dist/src/execution/tasks/parent/agent-views.d.ts +6 -0
  179. package/dist/src/execution/tasks/parent/agent-views.js +1 -0
  180. package/dist/src/execution/tasks/parent/continuation-dispatch.d.ts +37 -0
  181. package/dist/src/execution/tasks/parent/continuation-dispatch.js +1 -0
  182. package/dist/src/execution/tasks/parent/control-shared.d.ts +36 -0
  183. package/dist/src/execution/tasks/parent/control-shared.js +1 -0
  184. package/dist/src/execution/tasks/parent/delegate.d.ts +70 -0
  185. package/dist/src/execution/tasks/parent/delegate.js +1 -0
  186. package/dist/src/execution/tasks/parent/dispatch-task-step.d.ts +19 -0
  187. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -0
  188. package/dist/src/execution/tasks/parent/dispatch.d.ts +33 -0
  189. package/dist/src/execution/tasks/parent/dispatch.js +1 -0
  190. package/dist/src/execution/tasks/parent/hitl-proxy-steps.d.ts +29 -0
  191. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -0
  192. package/dist/src/execution/tasks/parent/run-parent.d.ts +72 -0
  193. package/dist/src/execution/tasks/parent/run-parent.js +1 -0
  194. package/dist/src/execution/tasks/parent/send.d.ts +25 -0
  195. package/dist/src/execution/tasks/parent/send.js +1 -0
  196. package/dist/src/execution/tasks/workflow-target.d.ts +2 -0
  197. package/dist/src/execution/tasks/workflow-target.js +1 -0
  198. package/dist/src/execution/terminate-child-sessions-step.d.ts +1 -0
  199. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  200. package/dist/src/execution/turn-control-receiver.d.ts +10 -0
  201. package/dist/src/execution/turn-control-receiver.js +1 -1
  202. package/dist/src/execution/turn-dispatch.d.ts +2 -0
  203. package/dist/src/execution/turn-dispatch.js +1 -1
  204. package/dist/src/execution/turn-execution-cursor.d.ts +2 -8
  205. package/dist/src/execution/turn-execution-cursor.js +1 -1
  206. package/dist/src/execution/turn-workflow.js +1 -1
  207. package/dist/src/execution/workflow-callback-url.d.ts +5 -0
  208. package/dist/src/execution/workflow-callback-url.js +1 -1
  209. package/dist/src/execution/workflow-entry.js +1 -1
  210. package/dist/src/execution/workflow-runtime.d.ts +9 -0
  211. package/dist/src/execution/workflow-runtime.js +1 -1
  212. package/dist/src/execution/workflow-steps.d.ts +7 -21
  213. package/dist/src/execution/workflow-steps.js +1 -1
  214. package/dist/src/harness/advertised-tools.js +1 -1
  215. package/dist/src/harness/authorization.js +1 -1
  216. package/dist/src/harness/execute-tool.d.ts +7 -0
  217. package/dist/src/harness/handles/prompt.d.ts +12 -0
  218. package/dist/src/harness/handles/prompt.js +2 -1
  219. package/dist/src/harness/handles/query.js +1 -1
  220. package/dist/src/harness/handles/store.d.ts +9 -2
  221. package/dist/src/harness/handles/store.js +1 -1
  222. package/dist/src/harness/handles/transitions.d.ts +10 -1
  223. package/dist/src/harness/handles/transitions.js +1 -1
  224. package/dist/src/harness/instrumentation/providers.js +1 -1
  225. package/dist/src/harness/instrumentation/runtime-context.d.ts +2 -0
  226. package/dist/src/harness/instrumentation/runtime-context.js +1 -1
  227. package/dist/src/harness/instrumentation/runtime.d.ts +3 -1
  228. package/dist/src/harness/proxy-input-requests.d.ts +21 -4
  229. package/dist/src/harness/proxy-input-requests.js +1 -1
  230. package/dist/src/harness/runtime-actions.d.ts +2 -0
  231. package/dist/src/harness/runtime-actions.js +1 -1
  232. package/dist/src/harness/session-limit-enforcement.js +1 -1
  233. package/dist/src/harness/tool-loop.js +2 -2
  234. package/dist/src/harness/workflow-runtime-action-state.js +1 -1
  235. package/dist/src/internal/application/cache-metadata.js +1 -1
  236. package/dist/src/internal/application/compiled-artifacts.js +2 -2
  237. package/dist/src/internal/application/optional-package-install.js +1 -1
  238. package/dist/src/internal/application/output-publication-lock.js +1 -1
  239. package/dist/src/internal/application/package.js +1 -1
  240. package/dist/src/internal/application/paths.js +1 -1
  241. package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
  242. package/dist/src/internal/authored-definition/core.js +1 -1
  243. package/dist/src/internal/authored-module-evaluation-error.js +4 -4
  244. package/dist/src/internal/authored-module-loader.js +3 -3
  245. package/dist/src/internal/authored-package-boundary.js +1 -1
  246. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  247. package/dist/src/internal/bundler/extension-scope-plugin.js +1 -1
  248. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  249. package/dist/src/internal/instrumentation-layout.js +1 -1
  250. package/dist/src/internal/invocation/agent-invocation.d.ts +54 -0
  251. package/dist/src/internal/invocation/agent-invocation.js +1 -0
  252. package/dist/src/internal/invocation/attributes.d.ts +2 -0
  253. package/dist/src/internal/invocation/attributes.js +1 -0
  254. package/dist/src/internal/invocation/metadata.d.ts +9 -0
  255. package/dist/src/internal/invocation/metadata.js +1 -0
  256. package/dist/src/internal/invocation/workflow-execution.d.ts +32 -0
  257. package/dist/src/internal/invocation/workflow-execution.js +1 -0
  258. package/dist/src/internal/materialized-authored-modules.js +1 -1
  259. package/dist/src/internal/mcp/http-security.d.ts +12 -0
  260. package/dist/src/internal/mcp/http-security.js +1 -0
  261. package/dist/src/internal/mcp/protected-resource.d.ts +9 -0
  262. package/dist/src/internal/mcp/protected-resource.js +1 -0
  263. package/dist/src/internal/mcp/streamable-http-server.d.ts +51 -0
  264. package/dist/src/internal/mcp/streamable-http-server.js +1 -0
  265. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
  266. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  267. package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
  268. package/dist/src/internal/nitro/dev-runtime-source-snapshot-local-roots.js +1 -1
  269. package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
  270. package/dist/src/internal/nitro/host/application-route-registry.d.ts +88 -0
  271. package/dist/src/internal/nitro/host/application-route-registry.js +1 -0
  272. package/dist/src/internal/nitro/host/build-application.js +1 -1
  273. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  274. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  275. package/dist/src/internal/nitro/host/channel-routes.d.ts +4 -11
  276. package/dist/src/internal/nitro/host/channel-routes.js +3 -3
  277. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  278. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  279. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  280. package/dist/src/internal/nitro/host/dev-runner.js +1 -1
  281. package/dist/src/internal/nitro/host/dev-workspace-extensions.js +1 -1
  282. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  283. package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
  284. package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
  285. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  286. package/dist/src/internal/nitro/host/start-production-server.js +2 -2
  287. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  288. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  289. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +14 -0
  290. package/dist/src/internal/nitro/routes/channel-route-context.js +1 -1
  291. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +2 -0
  292. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  293. package/dist/src/internal/process/pnpm.js +1 -1
  294. package/dist/src/internal/vercel-agent-summary.d.ts +1 -1
  295. package/dist/src/internal/workflow/development-world-client.js +1 -1
  296. package/dist/src/internal/workflow/development-world-server.js +1 -1
  297. package/dist/src/internal/workflow-bundle/builder-support.d.ts +12 -8
  298. package/dist/src/internal/workflow-bundle/builder-support.js +8 -7
  299. package/dist/src/internal/workflow-bundle/builder.d.ts +1 -1
  300. package/dist/src/internal/workflow-bundle/builder.js +2 -3
  301. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  302. package/dist/src/protocol/message.d.ts +28 -0
  303. package/dist/src/protocol/message.js +2 -2
  304. package/dist/src/protocol/routes.d.ts +14 -0
  305. package/dist/src/protocol/routes.js +1 -1
  306. package/dist/src/public/channels/auth.d.ts +36 -0
  307. package/dist/src/public/channels/auth.js +1 -1
  308. package/dist/src/public/channels/discord/discordChannel.d.ts +2 -0
  309. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  310. package/dist/src/public/channels/eve.d.ts +2 -0
  311. package/dist/src/public/channels/eve.js +1 -1
  312. package/dist/src/public/channels/github/dispatch.js +1 -1
  313. package/dist/src/public/channels/github/githubChannel.d.ts +2 -0
  314. package/dist/src/public/channels/linear/linearChannel.d.ts +2 -0
  315. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  316. package/dist/src/public/channels/mcp.d.ts +19 -0
  317. package/dist/src/public/channels/mcp.js +1 -0
  318. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +2 -0
  319. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  320. package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
  321. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  322. package/dist/src/public/channels/teams/teamsChannel.d.ts +2 -0
  323. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  324. package/dist/src/public/channels/telegram/telegramChannel.d.ts +2 -0
  325. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  326. package/dist/src/public/channels/twilio/twilioChannel.d.ts +2 -0
  327. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  328. package/dist/src/public/definitions/channel.d.ts +2 -2
  329. package/dist/src/public/definitions/channel.js +1 -1
  330. package/dist/src/public/instrumentation/index.d.ts +9 -3
  331. package/dist/src/public/next/server.js +1 -1
  332. package/dist/src/public/nuxt/dev-server.js +1 -1
  333. package/dist/src/public/sveltekit/dev-server.js +1 -1
  334. package/dist/src/react/use-eve-agent.d.ts +4 -4
  335. package/dist/src/react/use-eve-agent.js +1 -1
  336. package/dist/src/runtime/actions/types.d.ts +9 -0
  337. package/dist/src/runtime/actions/types.js +1 -1
  338. package/dist/src/runtime/agent/bootstrap.js +1 -1
  339. package/dist/src/runtime/connections/authorization-complete-page.js +70 -28
  340. package/dist/src/runtime/framework-channels/index.js +1 -1
  341. package/dist/src/runtime/framework-tools/index.js +1 -1
  342. package/dist/src/runtime/framework-tools/tasks.d.ts +95 -0
  343. package/dist/src/runtime/framework-tools/tasks.js +1 -0
  344. package/dist/src/runtime/prompt/compose.d.ts +1 -0
  345. package/dist/src/runtime/prompt/compose.js +1 -1
  346. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  347. package/dist/src/runtime/resolve-agent.js +1 -1
  348. package/dist/src/runtime/session-callback-route.js +1 -1
  349. package/dist/src/runtime/task-input-response-route.d.ts +5 -0
  350. package/dist/src/runtime/task-input-response-route.js +1 -0
  351. package/dist/src/services/inspect-application.js +1 -1
  352. package/dist/src/setup/primitives/pm/pnpm.js +2 -2
  353. package/dist/src/setup/primitives/run-vercel.js +1 -1
  354. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  355. package/dist/src/setup/scaffold/create/extension.js +1 -1
  356. package/dist/src/setup/scaffold/create/project.js +1 -1
  357. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  358. package/dist/src/setup/scaffold/create/web-template.js +8 -86
  359. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  360. package/dist/src/setup/scaffold/workspace-root.js +1 -1
  361. package/dist/src/shared/agent-definition.d.ts +7 -0
  362. package/dist/src/svelte/index.js +1 -1
  363. package/dist/src/svelte/use-eve-agent.d.ts +3 -3
  364. package/dist/src/svelte/use-eve-agent.js +1 -1
  365. package/dist/src/tasks/json.d.ts +88 -0
  366. package/dist/src/tasks/json.js +1 -0
  367. package/dist/src/tasks/session-index.d.ts +48 -0
  368. package/dist/src/tasks/session-index.js +1 -0
  369. package/dist/src/tasks/task-id.d.ts +34 -0
  370. package/dist/src/tasks/task-id.js +1 -0
  371. package/dist/src/tasks/transitions.d.ts +23 -0
  372. package/dist/src/tasks/transitions.js +1 -0
  373. package/dist/src/tasks/types.d.ts +295 -0
  374. package/dist/src/tasks/types.js +1 -0
  375. package/dist/src/tasks/wire.d.ts +26 -0
  376. package/dist/src/tasks/wire.js +1 -0
  377. package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -1
  378. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  379. package/dist/src/tracing/otel-declaration.d.ts +32 -3
  380. package/dist/src/tracing/otel-declaration.js +1 -1
  381. package/dist/src/tracing/otel-registration.js +1 -1
  382. package/dist/src/vue/index.js +1 -1
  383. package/dist/src/vue/use-eve-agent.d.ts +3 -3
  384. package/dist/src/vue/use-eve-agent.js +1 -1
  385. package/docs/channels/custom.mdx +1 -1
  386. package/docs/channels/discord.mdx +1 -1
  387. package/docs/channels/eve.mdx +15 -2
  388. package/docs/channels/github.mdx +1 -1
  389. package/docs/channels/linear.mdx +1 -1
  390. package/docs/channels/overview.mdx +1 -1
  391. package/docs/channels/photon.mdx +1 -1
  392. package/docs/channels/slack.mdx +1 -1
  393. package/docs/channels/teams.mdx +1 -1
  394. package/docs/channels/telegram.mdx +1 -1
  395. package/docs/channels/twilio.mdx +1 -1
  396. package/docs/extensions.md +10 -6
  397. package/docs/guides/client/streaming.mdx +7 -6
  398. package/docs/guides/frontend/overview.mdx +10 -8
  399. package/docs/guides/frontend/use-eve-agent-svelte.mdx +10 -10
  400. package/docs/guides/frontend/use-eve-agent-vue.mdx +10 -10
  401. package/docs/install-integrations.mdx +4 -0
  402. package/docs/reference/cli.md +1 -1
  403. package/docs/schedules.mdx +2 -2
  404. package/docs/tools/human-in-the-loop.md +3 -1
  405. package/package.json +7 -1
  406. package/dist/src/compiled/_chunks/workflow/chunk-5MU5Z6L3-CaJgXkVg.js +0 -1
  407. package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +0 -1
  408. package/dist/src/compiled/_chunks/workflow/src-Cj3P1ChQ.js +0 -1
  409. package/dist/src/compiled/_chunks/workflow/token-util-DNwIAn_u.js +0 -27
  410. package/dist/src/execution/route-proxied-deliver-step.js +0 -1
@@ -1,5 +1,5 @@
1
- import{i as e,o as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DaDcL9Zw.js";import{E as r,O as i,_ as a,d as o,f as s,o as c,r as l}from"../../_chunks/workflow/dist-CRTn4Sg8.js";import"../../_chunks/workflow/dist-tJoQXAF6.js";import{i as u,n as d,r as f,t as p}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{$ as m,A as h,B as g,Cr as _,F as v,G as y,H as b,I as x,Ir as S,L as C,Tn as w,U as ee,V as te,W as ne,X as re,Z as ie,a as T,c as ae,et as E,g as D,hi as O,j as oe,k as se,l as ce,m as k,n as le,o as ue,p as de,q as fe,r as pe,u as me,v as A,x as he}from"../../_chunks/workflow/dist-DlFv0aHY.js";import{n as j}from"../../_chunks/workflow/env-config-DxamfI7T.js";import{n as ge,t as _e}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{t as ve}from"../../_chunks/workflow/undici-CUIybhQ2.js";import{t as ye}from"../../_chunks/workflow/signal-exit-C8vsI6zj.js";import{createHash as M}from"node:crypto";import{promisify as N}from"node:util";import{fileURLToPath as P}from"node:url";import{promises as F}from"node:fs";import I,{access as be,constants as xe,mkdir as Se,readFile as L,readdir as Ce,readlink as we,rm as Te,unlink as Ee,writeFile as R}from"node:fs/promises";import z from"node:path";import{tmpdir as De}from"node:os";import{execFile as Oe}from"node:child_process";import{setTimeout as ke}from"node:timers/promises";import Ae from"node:assert";import{EventEmitter as je}from"node:events";var Me=class extends i{dataDir;constructor(e,t){super(`[workflow] The local (filesystem) world cannot create its data directory "${e}" (${t}). Workflow runs cannot be stored, so every run will fail before its first step. If this is a Vercel deployment, its filesystem is read-only and the local world cannot work there. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world. Otherwise point WORKFLOW_LOCAL_DATA_DIR at a writable directory.`,{code:t}),this.name=`UnwritableDataDirError`,this.dataDir=e}static is(e){return e instanceof Error&&e.name===`UnwritableDataDirError`}};const Ne=new Set([`EROFS`,`EACCES`,`EPERM`]);function Pe(e){return e!==void 0&&Ne.has(e)}let Fe=!1;function Ie(e){if(Fe||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=z.resolve(e),n=De();t===n||t.startsWith(`${n}${z.sep}`)||(Fe=!0,console.warn(`[workflow] Warning: the local (filesystem) world is running inside a Vercel deployment, writing to ${t}. That filesystem is read-only, so workflow runs will fail before their first step. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world.`))}function Le(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function Re(e,t){let n=[],r=e.trim().split(`
2
- `);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=Le(i.slice(s+1));c!==void 0&&n.push(c)}return n}const ze=N(Oe);function Be(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const Ve=((e,t)=>e.join(t))([``,`proc`],`/`);async function He(e){let t=[`${Ve}/net/tcp`,`${Ve}/net/tcp6`],n=[],r=new Set,i=`${Ve}/${e}/fd`;try{let e=(await Ce(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await we(`${i}/${e}`)).match(/^socket:\[(\d+)\]$/)?.[1]??null));for(let e of t)e.status===`fulfilled`&&e.value&&(n.push(e.value),r.add(e.value))}catch{return[]}if(n.length===0)return[];let a=new Map;for(let e of t)try{let t=(await L(e,`utf8`)).split(`
3
- `).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=Be(c,16);l!==void 0&&a.set(o,l)}}catch{}let o=[];for(let e of n){let t=a.get(e);t!==void 0&&o.push(t)}return o}async function Ue(e){try{let{stdout:t}=await ze(`lsof`,[`-a`,`-i`,`-P`,`-n`,`-p`,e.toString()]),n=[],r=t.split(`
4
- `);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Be(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function We(e){try{let{stdout:t}=await ze(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Re(t,e)}catch{return[]}}async function Ge(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await He(e);case`darwin`:return await Ue(e);case`win32`:return await We(e);default:return[]}}catch(e){return process.env.NODE_ENV===`development`&&console.debug(`[getAllPorts] Detection failed:`,e),[]}}const Ke=`${p}/flow?__health`;async function qe(e,t={}){let{endpoint:n=Ke,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function Je(e){let t=await Ge();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await qe(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(process.env.NODE_ENV===`development`&&console.debug(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function Ye(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const Xe=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,Ze=()=>process.env.WORKFLOW_LOCAL_BASE_URL,Qe=Ye(()=>({dataDir:Xe(),baseUrl:Ze()}));function $e(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return!(t===`0`||t===`false`)}function et(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??d(`http://localhost`)}async function tt(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return d(`http://localhost:${e.port}`);if(process.env.PORT)return d(`http://localhost:${process.env.PORT}`);let t=await Je({endpoint:f()});if(t)return d(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const nt=ue(()=>Math.random());function rt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var it=class extends i{constructor(e,t){super(`Unsafe ${e} "${rt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function B(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new it(e,t)}function V(e,...t){let n=z.resolve(e),r=z.resolve(e,...t);if(r!==n&&!r.startsWith(n+z.sep))throw new it(`path`,t.join(`/`));return r}const at=process.platform===`win32`;async function H(e,t=5){if(!at)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}const ot=new Set,st=new Set;function ct(){ot.clear(),st.clear()}const lt=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function U(e){return e.replace(lt,``)}function ut(e,t){return e.endsWith(`.${t}`)}function dt(e){return!lt.test(e)}function W(e,t,n,r){return B(`fileId`,n),r!==void 0&&B(`tag`,r),V(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function G(e,t,n,r,i){if(B(`fileId`,n),i!==void 0&&B(`tag`,i),i){let a=await J(V(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return J(V(e,t,`${n}.json`),r)}async function ft(e,t){let n=`.${t}.json`;try{return(await F.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function pt(e,t,n){let r=`.${t}${n}`;try{return(await F.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function mt(e){let t=z.resolve(e);if(!st.has(t))try{await F.mkdir(t,{recursive:!0}),st.add(t)}catch(e){let n=e.code;if(Pe(n)&&!await ht(t))throw new Me(t,n)}}async function ht(e){try{return(await F.stat(e)).isDirectory()}catch{return!1}}async function gt(e,t){await mt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return st.delete(z.resolve(e)),await mt(e),t()}}function K(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function _t(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function q(e,t,n){return vt(e,JSON.stringify(t,K,2),n)}async function vt(e,t,n){if(!n?.overwrite){if(ot.has(e))throw new l(`File ${e} already exists and 'overwrite' is false`);try{throw await F.access(e),ot.add(e),new l(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${nt()}`,i=!1;try{await gt(z.dirname(e),async()=>{await F.writeFile(r,t),i=!0,await H(()=>F.rename(r,e))}),ot.add(e)}catch(e){throw i&&await H(()=>F.unlink(r),3).catch(()=>{}),e}}async function J(e,t){try{let n=await F.readFile(e,`utf-8`);return t.parse(JSON.parse(n,_t))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function yt(e){return await F.readFile(e)}async function bt(e){let t=await F.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Y(e){try{await H(()=>F.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function X(e,t){let n=`${e}.tmp.${nt()}`,r=!1;try{return await gt(z.dirname(e),async()=>{await F.writeFile(n,t,{flag:`wx`}),r=!0;try{return await H(()=>F.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await H(()=>F.unlink(n),3).catch(()=>{})}}async function xt(e,t){try{return await gt(z.dirname(t),()=>H(()=>F.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Z(e){return St(e,`.json`)}async function St(e,t){try{return(await F.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const Ct=`key:`;function wt(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Tt(e,t,n){return n?`${Ct}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function Q(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&B(`filePrefix`,i);let m=z.resolve(t),h=await Z(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=wt(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=z.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await J(t,n):structuredClone(e)}catch(t){if(t instanceof O)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Tt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}let Et=null;function Dt(){return typeof import.meta.url==`string`&&import.meta.url?z.dirname(P(import.meta.url)):null}async function Ot(){if(Et)return Et;let e=Dt();if(e)try{let t=await L(z.join(e,`../package.json`),`utf-8`);return Et=JSON.parse(t),Et}catch{}return Et={name:`@workflow/world-local`,version:`5.0.0-beta.35`},Et}const kt=`version.txt`;var At=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},jt=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function Mt(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function $(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Nt(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:Mt(t.substring(n+1))}}function Pt(e,t){return`${e}@${$(t)}`}function Ft(e,t){console.log(`[world-local] Upgrading from version ${$(e)} to ${$(t)}`)}async function It(e){let t=z.resolve(e);try{await Se(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new At(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await be(t,xe.R_OK)}catch(e){let n=e;throw new At(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=z.join(t,`.workflow-write-test-${Date.now()}`);try{await R(n,``),await Ee(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new At(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Lt(e){let t=z.join(z.resolve(e),kt);try{return Nt(await L(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Rt(e,t){await R(z.join(z.resolve(e),kt),Pt((await Ot()).name,t))}function zt(e,t){return t||$(e)}async function Bt(e){await It(e);let t=await Ot(),n=Mt(t.version),r=await Lt(e);if(r===null){await Rt(e,n);return}let{version:i}=r;if($(i)!==$(n))try{Ft(i,n),await Rt(e,n)}catch(e){let r=zt(i,e instanceof jt?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${$(i)} to ${$(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}let Vt=null;async function Ht(){return Vt||=import(`../../_chunks/workflow/src-Cj3P1ChQ.js`).then(e=>t(e.t(),1)).catch(()=>null),Vt}let Ut=null;async function Wt(){return Ut||=Ht().then(e=>e?e.trace.getTracer(`workflow`):null),Ut}async function Gt(e,...t){let[n,r]=await Promise.all([Wt(),Ht()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Kt(e){let t=await Ht();if(t)return t.SpanKind[e]}function qt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const Jt=qt(`peer.service`),Yt=qt(`rpc.system`),Xt=qt(`rpc.service`),Zt=qt(`rpc.method`),Qt=qt(`workflow.run.id`),$t=qt(`step.id`),en={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},tn={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},nn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function rn(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 an(e,t){return typeof e[t]==`string`?e[t]:void 0}function on(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function sn(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 cn(e,t,n){let r=`${e}.${t}`,i={},a=tn[r],o=a===void 0?nn.has(r)?on(n[0]):void 0:an(n,a);if(o&&Object.assign(i,Qt(o)),r===`world.steps.get`){let e=an(n,1);e&&Object.assign(i,$t(e))}return i}function ln(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=rn(t);r&&(n=`${e}.${a} ${r}`)}return Gt(n,{kind:await Kt(`INTERNAL`)},async r=>{r?.setAttributes({...Jt(en.peerService),...Yt(en.rpcSystem),...Xt(en.rpcService),...Zt(n),...cn(e,a,t)});let o=await i(...t),s=sn(o);return s&&r?.setAttributes(Qt(s)),o})}}return n}var un=n((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),dn=ve(),fn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,K))}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).toString();return JSON.parse(r,_t)}};const pn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,mn=2147483647,hn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function gn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function _n(){return{bodyTimeout:gn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,3e4),connections:1e3,headersTimeout:gn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,3e4),keepAliveTimeout:3e4}}const vn=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function yn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(vn))return!0;t=`cause`in t?t.cause:void 0}return!1}function bn(e){let t=new dn.Agent(_n()),n=new fn,r=ue(),i=new un.Sema(hn),a=new AbortController,o=a.signal,s=new Map,c=new Map,l=async(a,l,d)=>{let f=[];if(d?.idempotencyKey){let e=s.get(d.idempotencyKey);if(e)return{messageId:e}}let p=n.serialize(l),{prefix:m}=he(a),h=D.parse(`msg_${r()}`),g=l,_=g.runId??void 0,v=g.stepId??void 0;if(d?.idempotencyKey){let e=d.idempotencyKey;s.set(e,h),f.push(()=>{s.delete(e)})}return(async()=>{d?.delaySeconds&&d.delaySeconds>0&&await ke(Math.min(d.delaySeconds*1e3,mn),void 0,{signal:o}),i.tryAcquire()||(console.warn(`[world-local]: concurrency limit (${hn}) reached, waiting for queue to free up`),await i.acquire());let n=0;try{for(let r=0;r<256;r++){let i={...d?.headers,"content-type":`application/json`,"x-vqs-queue-name":a,"x-vqs-message-id":h,"x-vqs-message-attempt":String(n+1)},s=c.get(m),l,f;try{if(s)l=await s(new Request(u(et(e),{type:`flow`}),{method:`POST`,headers:i,body:p}));else{let n=await tt(e);l=await fetch(u(n,{type:`flow`}),{method:`POST`,duplex:`half`,dispatcher:t,headers:i,body:p})}n++,f=await l.text()}catch(e){let t=e?.name;if(o.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(yn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${r+1}), retrying`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},error:String(e)}),await ke(5e3,void 0,{signal:o});continue}if(l.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){e>0&&await ke(Math.min(e*1e3,mn),void 0,{signal:o});continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${n}, HTTP ${l.status})`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},handlerError:f}),await ke(5e3,void 0,{signal:o})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v}})}finally{i.release()}})().catch(e=>{e?.name===`AbortError`||e?.name===`ResponseAborted`||(yn(e)?console.error(`[local world] Queue operation failed: detected "${vn}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of f)e()}),{messageId:h}},d=_({"x-vqs-queue-name":A,"x-vqs-message-id":D,"x-vqs-message-attempt":E()});return{queue:l,createQueueHandler:(e,t)=>async n=>{let r=d.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new fn().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a}),n=null;return typeof e?.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,pn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Ot()).version}`,registerHandler(e,t){c.set(e,t)},async close(){o.aborted||(a.abort(),await t.close())}}}var xn=n(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!e||e.code===`ENOSYS`||(!process.getuid||process.getuid()!==0)&&(e.code===`EINVAL`||e.code===`EPERM`)}}})),Sn=n(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=64*1024,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),Cn=n(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),wn=n(((t,n)=>{var r=e(`fs`),i=xn(),a=Sn(),o=Cn(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
5
- GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=ee,e.createWriteStream=te;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=w),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;re(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function w(){var e=this;re(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function ee(t,n){return new e.ReadStream(t,n)}function te(t,n){return new e.WriteStream(t,n)}var ne=e.open;e.open=re;function re(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return ne(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),Tn=n(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1;var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),En=n((e=>{var t=Tn();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),Dn=n(((e,t)=>{t.exports=En()})),On=n(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),kn=n(((t,n)=>{let r=e(`path`),i=wn(),a=Dn(),o=ye(),s=On(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),An=n(((e,t)=>{let n=wn();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),jn=n(((e,t)=>{let n=kn(),{toPromise:r,toSync:i,toSyncOptions:a}=An();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function Mn(e){return M(`sha256`).update(e).digest(`hex`)}function Nn(e,t,n){return V(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Pn(e,t,n){let r=[Nn(e,t)];n&&r.push(Nn(e,t,n));for(let e of r)try{return await I.access(e),!0}catch{}return!1}function Fn(e,t,n){return V(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function In(e,t,n){let r=[Fn(e,t)];n&&r.push(Fn(e,t,n));for(let e of r)try{return await I.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function Ln(e,t,n){return V(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Rn(e,t,n,r){return z.join(Ln(e,t,r),`${n}.json`)}async function zn(e,t,n){let r=[Ln(e,t)];n&&r.push(Ln(e,t,n));for(let e of r){let t;try{t=await I.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await H(()=>I.unlink(z.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await I.rmdir(e).catch(()=>{})}}async function Bn(e,t,n){let r=await Vn(e,t,n),i=Date.now();if(r.maxId)try{let e=T(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${Yn(i)}`,createdAt:new Date(i)}}async function Vn(e,t,n){let r=[];try{r=await I.readdir(z.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!dt(t)&&!(n&&ut(t,n)))continue;let r=U(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=ae(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Hn(e,t){return z.join(e,`hooks`,`tokens`,`${Mn(t)}.json`)}const Un=_({hookId:S().optional(),runId:S(),eventId:S().optional(),tokenRetentionUntil:m().optional()});async function Wn(e){try{return await J(e,Un)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}async function Gn(e,t,n){let r=Hn(e,t);await I.mkdir(z.dirname(r),{recursive:!0});let a=new AbortController,o;try{o=await(0,jn.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){a.abort(new i(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new i(`Could not acquire Hook token claim lock`,{cause:e})}let s;try{s=await n(a.signal),a.signal.throwIfAborted()}catch(e){throw a.signal.aborted||await o().catch(()=>{}),e}try{await o()}catch(e){throw new i(`Could not release Hook token claim lock`,{cause:e})}return s}function Kn(e,t,n){let r=M(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return z.join(e,`hooks`,`resumes`,`${r}.json`)}async function qn(e,t,n,r){await Gn(e,t,async i=>{let a=Hn(e,t),o=await Wn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Y(a))})}function Jn(e,t,n,r){let i=M(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return z.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const Yn=ue(()=>Math.random()),Xn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=U(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);return i===-1?le(r.replace(/\.json$/,``).replace(t,``)):e===`step`?null:le(r.substring(i+1).replace(/\.json$/,``).replace(t,``))}},Zn=_({runId:S()}),Qn=_({hookId:S(),tag:S().optional()});function $n(e,t){return V(e,`hooks`,`token-index`,Mn(t))}function er(e,t){return B(`hookId`,t),V(e,`hooks`,`id-index`,t)}function tr(e){return V(e,`hooks`,`by-run`)}function nr(e){let t=U(e);return t===e?void 0:e.slice(t.length+1)}function rr(e,t){return t?dt(e)||ut(e,t):dt(e)}async function ir(e){try{return await J(e,C)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}async function ar(e,t,n,r,i,a){B(`runId`,n),B(`eventId`,i),a!==void 0&&B(`tag`,a);let o=a?`${i}.${a}.json`:`${i}.json`,s=JSON.stringify({runId:n});await Promise.all([X(z.join($n(e,t),o),s),X(z.join(er(e,r),o),s)])}function or(e,t,n,r){return W(e,`hooks/by-run`,`${t}-${n}`,r)}async function sr(e,t,n,r){await X(or(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function cr(e,t,n,r){await Y(or(e,t,n,r)),r&&await Y(or(e,t,n))}async function lr(e,t){B(`runId`,t);let n=tr(e),r=`${t}-`,i=[];for(let e of await Z(n)){if(!e.startsWith(r))continue;let t=null;try{t=await J(z.join(n,`${e}.json`),Qn)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function ur(e,t){await Y(z.join(tr(e),`${t}.json`))}const dr=new Map;function fr(){dr.clear()}async function pr(e){let t=z.resolve(e),n=dr.get(t);return n||(n=hr(t).catch(e=>{throw dr.delete(t),e}),dr.set(t,n)),n}async function mr(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function hr(e){let t=z.join(e,`hooks`,`.hook-index-complete`);try{await I.access(t);return}catch{}let n=z.join(e,`events`);await mr(await Z(n),32,async t=>{let r=await ir(z.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await ar(e,i,r.runId,r.correlationId,r.eventId,nr(t))}catch{}});let r=z.join(e,`hooks`);await mr(await Z(r),32,async t=>{let n=null;try{n=await J(z.join(r,`${t}.json`),k)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}if(n)try{await sr(e,n.runId,n.hookId,nr(t))}catch{}}),await X(t,``)}async function gr(e,t,n,r){await pr(e);let i;try{i=t.kind===`token`?$n(e,t.token):er(e,t.hookId)}catch{return null}let a=(await Z(i)).filter(e=>rr(e,r)).sort((e,t)=>U(t).localeCompare(U(e)));for(let t of a){let r=null;try{r=await J(z.join(i,`${t}.json`),Zn)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}if(!r)continue;let a=U(t),o;try{o=W(e,`events`,`${r.runId}-${a}`,nr(t))}catch{continue}let s=await ir(o);if(s&&s.eventType===`hook_created`&&typeof s.correlationId==`string`&&n(s))return s}return null}function _r(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function vr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function yr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function br(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function xr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function Sr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Cr(e,t,n){let r=await G(e,`runs`,t,v,n);return r?x(r.status):!1}async function wr(e,t,n,r){let i=await gr(e,t,e=>Sr(e,n),r);if(!i||!Sr(i,n))return null;if(await Cr(e,i.runId,r)){let e=i.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return null}return await Pn(e,i.correlationId,r)?null:i}async function Tr(e,t,n){let r=xr(t);return await X(Hn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil})),await sr(e,r.runId,r.hookId,n),await X(W(e,`hooks`,r.hookId,n),JSON.stringify(r,K,2)),r}async function Er(e,t,n){let r=await wr(e,{kind:`token`,token:t},e=>br(e)===t,n);return r?Tr(e,r,n):null}async function Dr(e,t,n){let r=await wr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Tr(e,r,n):null}function Or(e,t){async function n(n){return await Pn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Cr(e,n.runId,t)}async function r(r){let i=await Wn(Hn(e,r));if(i?.hookId){try{let a=await G(e,`hooks`,i.hookId,k,t);if(a?.token===r){if(!await n(a))throw new c(r);return{...a,isWebhook:a.isWebhook??!0}}}catch(e){if(!it.is(e))throw e}return null}let a=z.join(e,`hooks`),o=await Z(a);for(let e of o){let t=await J(z.join(a,`${e}.json`),k);if(t?.token===r){if(!await n(t))throw new c(r);return{...t,isWebhook:t.isWebhook??!0}}}return null}async function i(r,i){B(`hookId`,r);let a=await G(e,`hooks`,r,k,t);if(a&&!await n(a))throw new c(r);let o=a??await Dr(e,r,t);if(!o)throw new c(r);let s=i?.resolveData||`all`;return yr({...o,isWebhook:o.isWebhook??!0},s)}async function a(n){let i=await r(n)??await Er(e,n,t);if(!i)throw new c(n);return i}async function o(t){let r=z.join(e,`hooks`),i=t.resolveData||`all`,a=await Q({directory:r,schema:k,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>yr(e,i))}}return{get:i,getByToken:a,list:o}}async function kr(e,t){await pr(e);for(let n of await lr(e,t)){if(n.hookId){let r=null,i=null;try{i=W(e,`hooks`,n.hookId,n.tag),r=await J(i,k)}catch(e){if(!it.is(e)&&!(e instanceof SyntaxError||e instanceof O))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await qn(e,r.token,r.runId,r.hookId),await Y(Jn(e,r.token,r.runId,r.hookId)),await Y(i)}}await ur(e,n.fileId)}}async function Ar(e,t,n,r,i,a){if(x(a.status)||await In(e,t))throw new o(`Workflow run "${t}" is already in a terminal state`);let s=Rn(e,t,n);await X(s,r);try{if(await In(e,t)||await xt(s,i)!==`linked`)throw new o(`Workflow run "${t}" is already in a terminal state`)}finally{await I.unlink(s).catch(()=>{})}}async function jr(e,t,n,r,i){B(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await X(Fn(e,t),``),await zn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes};return await q(V(e,`runs`,`${t}.json`),i,{overwrite:!0}),await kr(e,t),{event:void 0,run:_r(i,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${Yn()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:5},c=V(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await Ar(e,t,i,JSON.stringify(s,K,2),c,r):await q(c,s),{event:y(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const Mr=new Map;function Nr(e,t){let n=Mr.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{Mr.get(e)===r.task&&Mr.delete(e)}})();return r.task=i,Mr.set(e,i),i}function Pr(e,t){let n=(async(n,i)=>{B(`runId`,n);let a=await G(e,`runs`,n,v,t);if(!a)throw new r(n);return _r(a,i?.resolveData??`all`)});return{get:n,getMany:(async(e,t)=>{let i=[...new Set(e)],a=await Promise.all(i.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof r)return null;throw e}})),o=new Map(i.map((e,t)=>[e,a[t]]));return e.map(e=>o.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await Q({directory:z.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status&&e.status!==t.status),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:Xn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(n,i,a)=>(B(`runId`,n),Nr(n,async()=>{let o=await G(e,`runs`,n,v,t);if(!o)throw new r(n);try{ie(i,{existingKeys:Object.keys(o.attributes??{}),allowReservedAttributes:a?.allowReservedAttributes})}catch(e){throw e instanceof fe,e}let s=re(o.attributes,i),c={...o,attributes:s,updatedAt:new Date};return await q(W(e,`runs`,n,t),c,{overwrite:!0}),{attributes:s}}))}}const Fr=1440*60*1e3;function Ir(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new i(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Fr}const Lr=_({eventId:S()}),Rr=_({runId:S(),resumeId:S(),hookId:S(),eventId:S(),payloadDigest:S().optional()});function zr(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function Br(e,t,n,r){let i=await Vn(e,t,r);for(let a of i.ids){let i=await G(e,`events`,`${t}-${a}`,C,r);if(i&&i.resumeId===n.resumeId&&zr(i,n))return i}return null}async function Vr(e,t,n){if(t.hookId&&await Pn(e,t.hookId,n))return!0;let r=await G(e,`runs`,t.runId,v,n);return r?x(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Hr(e){try{return await J(e,Lr)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}function Ur(e){return ce(e.eventId)?e.eventId:null}function Wr(e,t){let n=U(t).slice(e.length+1);return ce(n)?n:null}async function Gr(e,t,n){return(await Q({directory:z.join(e,`events`),schema:C,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:Xn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Kr(e,t,n,r,i){let a=await G(e,`events`,`${t}-${r}`,C,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await G(e,`hooks`,n,k,i))return;let o=xr(a);await ar(e,o.token,t,n,r,i),await sr(e,t,n,i),await X(W(e,`hooks`,n,i),JSON.stringify(o,K,2))}async function qr(e,t,n,r,i){let a=Jn(e,t,n,r);return await X(a,JSON.stringify({eventId:i}))?i:(await Hr(a))?.eventId??null}function Jr(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Yr(e,t){let n=z.join(e,`waits`),r=await Z(n);for(let e of r)e.startsWith(`${t}-`)&&await Y(z.join(n,`${e}.json`))}async function Xr(e,t,n,r){return Nr(t,async()=>{let i=await J(W(e,`runs`,t,n),v),a={...r,attributes:i?.attributes??r.attributes};return await q(W(e,`runs`,t,n),a,{overwrite:!0}),a})}function Zr(e,t){let n=Ir(),u=4*1024*1024,d=new Map,f=new Map,p=new Map,m=0;function _(e){let t=d.get(e);if(!t)return;d.delete(e),m-=f.get(e)??0,f.delete(e);let n=p.get(t.runId);n?.delete(e),n?.size===0&&p.delete(t.runId)}function S(e){for(let t of p.get(e)??[])_(t)}function w(){d.clear(),f.clear(),p.clear(),m=0,T.clear()}let T=new Map;function E(e){return t?`${e}.${t}`:e}async function D(n,r){let i=`${n}-${me(r)}`;for(let n of t?[W(e,`events`,i,t),W(e,`events`,i)]:[W(e,`events`,i)])try{return await I.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function O(n,r){let i=E(n),a=T.get(i);if(a===void 0||r?.rescan){let r=await Vn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},T.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await D(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function ue(e,t){let n=ae(t);if(n===null)return;let r=T.get(E(e));r&&(r.published=Math.max(r.published,n))}async function de(e){let t=await O(e);return t===null?`evnt_${Yn()}`:me(t)}async function fe(n){let r=await O(n,{rescan:!0});return r===null?Bn(e,n,t):{eventId:me(r),createdAt:new Date}}function A(e,t,n){if(n>u)return;for(;d.size>0&&(d.size>=1e3||m+n>u);){let e=d.keys().next().value;_(e)}d.set(e,t),f.set(e,n),m+=n;let r=p.get(t.runId)??new Set;r.add(e),p.set(t.runId,r)}function he(e,t,n){if(ne(e.eventType)){S(e.runId);return}let r=Buffer.byteLength(n);if(r>u)return;let i=C.safeParse(JSON.parse(n,_t));i.success&&A(t,i.data,r)}async function ve(n){let r=n;for(let n=0;;n++){let i=W(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,K,2),o=ae(r.eventId);if(o===null)return await vt(i,a),he(r,i,a),r;if(await X(i,a))return ue(r.runId,r.eventId),he(r,i,a),r;let s=await O(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Ae(s!==null),r={...r,eventId:me(s)}}}let ye=(t,n)=>Q({directory:z.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:Xn(`evnt`),getId:e=>e.eventId,getSortKey:Ur,getSortKeyFromFileId:e=>Wr(t,e)}),M=new Map,N=new Map,P={clearCache:w,async create(u,d,f){if(d.eventType===`hook_created`&&d.eventData.tokenRetentionUntil!==void 0&&d.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new i(`Hook minimum retention cannot exceed ${n/Fr} days in the Local World.`,{status:400});if(u!=null&&u!==``&&B(`runId`,u),`correlationId`in d&&typeof d.correlationId==`string`&&B(`correlationId`,d.correlationId),ee(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.${t}`:`${u}-${d.correlationId}`;return Jr(M,e,p)}if(b(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.hook.${t}`:`${u}-${d.correlationId}.hook`;return Jr(N,e,p)}return p();async function p(){let n=``,p=!1,m=null,_=new Date,b;if(d.eventType===`run_created`&&(!u||u===``))b=`wrun_${Yn()}`;else if(u)b=u;else throw Error(`runId is required for non-run_created events`);if(d.eventType===`run_created`&&u&&u!==``){let e=pe(b,`wrun_`);if(e)throw new i(e)}let S=d.specVersion??5,w=null;if(d.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(d.eventType)&&(w=await G(e,`runs`,b,v,t),d.eventType===`run_started`&&!w&&`eventData`in d&&d.eventData)){let n=d.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){ie(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:b,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:S,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:_,updatedAt:_};if(await X(W(e,`runs`,b,t),JSON.stringify(r,K))){let e=await de(b);await ve({eventType:`run_created`,runId:b,eventId:e,createdAt:_,specVersion:S,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),w=r}else w=await G(e,`runs`,b,v,t)}}if(n=await de(b),!w&&(d.eventType===`run_failed`||d.eventType===`attr_set`||d.eventType===`run_started`))throw new r(b);if(w){if(ge(w.specVersion))throw new s(w.specVersion,5);if(_e(w.specVersion))return jr(e,b,d,w,f)}let T=g(d),E=T&&d.eventType===`step_started`;if(w&&x(w.status)){if(d.eventType===`run_cancelled`&&w.status===`cancelled`)return{event:y(await ve({...d,runId:b,eventId:n,createdAt:_,specVersion:S}),f?.resolveData??`all`),run:w,...w?{maxEvents:j()}:{}};if(d.eventType===`run_started`)throw new o(`Workflow run "${b}" is already in terminal state "${w.status}"`);if(ne(d.eventType))throw new l(`Cannot transition run from terminal state "${w.status}"`);if(T)throw new l(`Cannot create new entities on run in terminal state "${w.status}"`);if(d.eventType===`attr_set`)throw new l(`Cannot set attributes on run in terminal state "${w.status}"`)}let D=null;if(ee(d.eventType)&&d.eventType!==`step_created`&&d.correlationId){if(D=await G(e,`steps`,`${b}-${d.correlationId}`,h,t),!D&&!E)throw new i(`Step "${d.correlationId}" not found`);if(E&&D)throw new l(`Step "${d.correlationId}" already created`);if(D){if(oe(D.status))throw new l(`Cannot modify step in terminal state "${D.status}"`);if(w&&x(w.status)&&D.status!==`running`)throw new o(`Cannot modify non-running step on run in terminal state "${w.status}"`)}}if(te(d.eventType)&&d.correlationId){if(d.eventType===`hook_received`&&f?.resumeId){let n=await J(Kn(e,b,f.resumeId),Rr);if(n&&n.hookId===d.correlationId&&(!f.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===f.resumePayloadDigest)){let r=await G(e,`events`,`${b}-${n.eventId}`,C,t),i=r&&zr(r,n)?r:await Br(e,b,n,t);if(i)return{event:i}}}if(d.eventType===`hook_received`&&await Pn(e,d.correlationId,t)||!await G(e,`hooks`,d.correlationId,k,t))throw new c(d.correlationId);if(d.eventType===`hook_received`&&f?.resumeId){let r=Kn(e,b,f.resumeId),i=async r=>{if(r.hookId!==d.correlationId)throw new l(`hook_received resumeId "${f.resumeId}" already recorded for a different hook`);if(f.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==f.resumePayloadDigest)throw new l(`hook_received resumeId "${f.resumeId}" already recorded with a different payload`);let i=await G(e,`events`,`${b}-${r.eventId}`,C,t);if(i&&zr(i,r))return{event:i};let a=await Br(e,b,r,t);return a?{event:a}:(m=r.eventId,i||(n=r.eventId,p=!0),null)},a=await J(r,Rr);if(a){let e=await i(a);if(e)return e}else if(p=!ce(n),m=n,!await X(r,JSON.stringify({runId:b,resumeId:f.resumeId,hookId:d.correlationId,eventId:n,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}))){m=null;let e=await J(r,Rr);if(e){let t=await i(e);if(t)return t}}}}let A={...d,runId:b,eventId:n,createdAt:_,specVersion:S,...d.eventType===`hook_received`&&f?.resumeId?{resumeId:f.resumeId}:{}};if(d.eventType===`run_started`&&`eventData`in A&&delete A.eventData,E&&A.eventType===`step_started`&&A.eventData){let{input:e,...t}=A.eventData;A={...A,eventData:t}}let M,N,P,F,be=!1,xe;if(ne(d.eventType)&&w){await X(Fn(e,b,t),``),await zn(e,b,t);let r=await fe(b);n=r.eventId,A={...A,eventId:n,createdAt:r.createdAt}}if(d.eventType===`run_created`&&`eventData`in d){let n=d.eventData;if(ie(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),M={runId:b,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:S,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:_,updatedAt:_},!await X(W(e,`runs`,b,t),JSON.stringify(M,K,2)))throw new l(`Workflow run "${b}" already exists`)}else if(d.eventType===`run_started`){if(w){if(w.status===`running`){if(f?.skipPreload)return{run:w,maxEvents:j()};let e=await ye(b,{limit:j()});return{run:w,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:j()}}M=await Xr(e,b,t,{runId:w.runId,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,createdAt:w.createdAt,expiredAt:w.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:w.startedAt??_,updatedAt:_,attributes:w.attributes,encryptionPublicKey:w.encryptionPublicKey})}}else if(d.eventType===`run_completed`&&`eventData`in d){let n=d.eventData;w&&(M=await Xr(e,b,t,{runId:w.runId,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,createdAt:w.createdAt,expiredAt:w.expiredAt,startedAt:w.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:_,updatedAt:_,attributes:w.attributes,encryptionPublicKey:w.encryptionPublicKey}),await Promise.all([kr(e,b),Yr(e,b)]))}else if(d.eventType===`run_failed`&&`eventData`in d){let n=d.eventData;w&&(M=await Xr(e,b,t,{runId:w.runId,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,createdAt:w.createdAt,expiredAt:w.expiredAt,startedAt:w.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:_,updatedAt:_,attributes:w.attributes,encryptionPublicKey:w.encryptionPublicKey}),await Promise.all([kr(e,b),Yr(e,b)]))}else if(d.eventType===`run_cancelled`)w&&(M=await Xr(e,b,t,{runId:w.runId,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,createdAt:w.createdAt,expiredAt:w.expiredAt,startedAt:w.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:_,updatedAt:_,attributes:w.attributes,encryptionPublicKey:w.encryptionPublicKey}),await Promise.all([kr(e,b),Yr(e,b)]));else if(d.eventType===`attr_set`&&w)M=await Nr(b,async()=>{let n=await J(W(e,`runs`,b,t),v);if(!n)throw new r(b);if(ie(d.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:d.eventData.allowReservedAttributes===!0}),d.correlationId&&d.eventData.writer.type===`workflow`&&!await X(V(e,`.locks`,`attributes`,t?`${b}-${d.correlationId}.created.${t}`:`${b}-${d.correlationId}.created`),``))throw new l(`Attribute event "${d.correlationId}" already exists`);let i={...n,attributes:re(n.attributes,d.eventData.changes),updatedAt:_};return await q(W(e,`runs`,b,t),i,{overwrite:!0}),i});else if(d.eventType===`step_created`&&`eventData`in d){if(!await X(V(e,`.locks`,`steps`,t?`${b}-${d.correlationId}.created.${t}`:`${b}-${d.correlationId}.created`),``))throw new l(`Step "${d.correlationId}" already created`);let n=d.eventData;N={runId:b,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:_,updatedAt:_,specVersion:S},await q(W(e,`steps`,`${b}-${d.correlationId}`,t),N)}else if(d.eventType===`step_started`){if(!D&&E){let n=d.eventData;if(await X(V(e,`.locks`,`steps`,t?`${b}-${d.correlationId}.created.${t}`:`${b}-${d.correlationId}.created`),``)){let r={runId:b,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:_,updatedAt:_,specVersion:S};await q(W(e,`steps`,`${b}-${d.correlationId}`,t),r);let i=await de(b);await ve({eventType:`step_created`,runId:b,eventId:i,createdAt:_,specVersion:S,correlationId:d.correlationId,eventData:{stepName:n.stepName,input:n.input}}),D=r,be=!0}else throw new l(`Step "${d.correlationId}" already created`)}if(D){if(D.retryAfter&&D.retryAfter.getTime()>Date.now())throw new a(`Cannot start step "${d.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((D.retryAfter.getTime()-Date.now())/1e3)});let n=`${b}-${d.correlationId}`,r=await G(e,`steps`,n,h,t);if(r&&oe(r.status))throw new l(`Cannot modify step in terminal state "${r.status}"`);N={...D,status:`running`,startedAt:D.startedAt??_,attempt:D.attempt+1,retryAfter:void 0,updatedAt:_},await q(W(e,`steps`,n,t),N,{overwrite:!0})}}else if(d.eventType===`step_completed`&&`eventData`in d){let n=d.eventData;if(D){let r=`${b}-${d.correlationId}`;if(!await X(V(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new l(`Cannot modify step in terminal state`);N={...D,status:`completed`,output:n.result,completedAt:_,updatedAt:_},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(d.eventType===`step_failed`&&`eventData`in d){let n=d.eventData;if(D){let r=`${b}-${d.correlationId}`;if(!await X(V(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new l(`Cannot modify step in terminal state`);N={...D,status:`failed`,error:n.error,completedAt:_,updatedAt:_},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(d.eventType===`step_retrying`&&`eventData`in d){let n=d.eventData;if(D){let r=`${b}-${d.correlationId}`;N={...D,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:_},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(d.eventType===`hook_created`&&`eventData`in d){let r=d.eventData,i=Hn(e,r.token),a=JSON.stringify({token:r.token,hookId:d.correlationId,runId:b,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil}),o=await Gn(e,r.token,async n=>{let o=await Wn(i);return o||=(n.throwIfAborted(),await Y(i),await Er(e,r.token,t),await Wn(i)),o?o.runId===b&&o.hookId===d.correlationId?{status:`owned`,claim:o}:await Vr(e,o,t)?(n.throwIfAborted(),await Y(i),o.hookId&&(await Y(W(e,`hooks`,o.hookId,t)),await Y(Jn(e,r.token,o.runId,o.hookId)),await cr(e,o.runId,o.hookId,t)),n.throwIfAborted(),Ae(await X(i,a)),{status:`claimed`}):{status:`conflict`,claim:o}:(n.throwIfAborted(),Ae(await X(i,a)),{status:`claimed`})});if(o.status===`owned`){let i=o.claim,a;if(i.eventId)a=i.eventId;else{let i=await Gr(e,b,d.correlationId);if(i!==null)throw await Kr(e,b,d.correlationId,i,t),new l(`Hook "${d.correlationId}" already created`);let o=await qr(e,r.token,b,d.correlationId,n);if(o===null)throw new l(`Hook "${d.correlationId}" already created`);a=o}n=a,p=!0;let s=le(n.replace(/^evnt_/,``))??_;A={...d,eventData:{...d.eventData,tokenRetentionUntil:i.tokenRetentionUntil},runId:b,eventId:n,createdAt:s,specVersion:S}}if(o.status===`conflict`){let e=o.claim;return{event:y(await ve({eventType:`hook_conflict`,correlationId:d.correlationId,eventData:{token:r.token,conflictingRunId:e.runId},runId:b,eventId:n,createdAt:_,specVersion:S}),f?.resolveData??`all`),run:M,step:N,hook:void 0}}let s=A.eventData;P={runId:b,hookId:d.correlationId,token:s.token,metadata:s.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:A.createdAt,specVersion:S,isWebhook:s.isWebhook??!1,isSystem:s.isSystem??!1,tokenRetentionUntil:s.tokenRetentionUntil},xe=o.status===`owned`?{overwrite:!0}:void 0,await ar(e,r.token,b,d.correlationId,n,t)}else if(d.eventType===`hook_disposed`){if(!await X(Nn(e,d.correlationId,t),``))throw new l(`Hook "${d.correlationId}" already disposed`);let n=W(e,`hooks`,d.correlationId,t),r=await G(e,`hooks`,d.correlationId,k,t);r&&(await qn(e,r.token,r.runId,r.hookId),await Y(Jn(e,r.token,r.runId,r.hookId))),await Y(n),await cr(e,b,d.correlationId,t)}else if(d.eventType===`wait_created`&&`eventData`in d){let n=`${b}-${d.correlationId}`;if(!await X(V(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new l(`Wait "${d.correlationId}" already exists`);let r=d.eventData;F={waitId:n,runId:b,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:_,updatedAt:_,specVersion:S},await q(W(e,`waits`,n,t),F)}else if(d.eventType===`wait_completed`){let n=`${b}-${d.correlationId}`,r=V(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await X(r,``))throw new l(`Wait "${d.correlationId}" already completed`);let a=await G(e,`waits`,n,se,t);if(!a)throw await I.unlink(r).catch(()=>{}),new i(`Wait "${d.correlationId}" not found`);F={...a,status:`completed`,completedAt:_,updatedAt:_},await q(W(e,`waits`,n,t),F,{overwrite:!0})}if(d.eventType===`hook_received`&&d.correlationId&&await Pn(e,d.correlationId,t))throw new c(d.correlationId);let Se=W(e,`events`,`${b}-${n}`,t),L=JSON.stringify(A,K,2),Ce=async r=>{let i=ae(n);if(p||i===null)return!1;let a=await O(b,{rescan:r>0&&r%8==0,atLeast:i+1});return a===null?!1:(n=me(a),A={...A,eventId:n},Se=W(e,`events`,`${b}-${n}`,t),L=JSON.stringify(A,K,2),!0)},we=!1;for(let r=0;;r++){if(d.eventType===`hook_received`){let i=await In(e,b,t),a=i?null:await G(e,`runs`,b,v,t);if(i||a&&x(a.status))throw new o(`Workflow run "${b}" is already in a terminal state`);let s=Rn(e,b,n,t);if(!await X(s,L)){if(await Ce(r))continue;throw new l(`Event "${n}" already exists for run "${b}"`)}try{if(await In(e,b,t))throw new o(`Workflow run "${b}" is already in a terminal state`);let n=await xt(s,Se);if(n===`missing`)throw new o(`Workflow run "${b}" is already in a terminal state`);we=n===`linked`}finally{await Y(s).catch(()=>{})}}else we=await X(Se,L);if(we){ue(b,n);break}if(!await Ce(r))break}if(!we)throw d.eventType===`hook_created`&&d.correlationId&&await Kr(e,b,d.correlationId,n,t),new l(`Event "${n}" already exists for run "${b}"`);he(A,Se,L),d.eventType===`hook_received`&&f?.resumeId&&m!==null&&m!==n&&await vt(Kn(e,b,f.resumeId),JSON.stringify({runId:b,resumeId:f.resumeId,hookId:d.correlationId,eventId:n,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}),{overwrite:!0}),P&&d.eventType===`hook_created`&&(await sr(e,P.runId,P.hookId,t),await q(W(e,`hooks`,P.hookId,t),P,xe));let Te=f?.resolveData??`all`,Ee=y(A,Te),R;if(d.eventType===`run_started`&&M&&!f?.skipPreload&&(R=await ye(b,{limit:j()})),typeof f?.sinceCursor==`string`){let e=await ye(b,{sortOrder:`asc`,cursor:f.sinceCursor});R=Te===`none`?{...e,data:e.data.map(e=>y(e,Te))}:e}let z={event:Ee,run:M,step:N,hook:P,wait:F,...be?{stepCreated:!0}:{},...M?{maxEvents:j()}:{}};return R?{...z,events:R.data,cursor:R.cursor,hasMore:R.hasMore}:z}},async get(n,r,i){B(`runId`,n),B(`eventId`,r);let a=await G(e,`events`,`${n}-${r}`,C,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);return y(a,i?.resolveData??`all`)},async list(e){let{runId:t}=e;B(`runId`,t);let n=e.resolveData??`all`,r=await ye(t,{...e.pagination,limit:e.pagination?.limit??j()});return n===`none`?{...r,data:r.data.map(e=>y(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;B(`correlationId`,n),B(`runId`,t.runId);let r=t.resolveData??`all`,i=await Q({directory:z.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Xn(`evnt`),getId:e=>e.eventId,getSortKey:Ur,getSortKeyFromFileId:e=>Wr(t.runId,e)});return r===`none`?{...i,data:i.data.map(e=>y(e,r))}:i}};async function F(e,t,n){if(!e.event)return e;let r=ae(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await P.list({runId:e.event.runId,pagination:{cursor:`${Ct}${me(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let be=(async(e,t,n)=>{if(n?.eventCount===void 0)return P.create(e,t,n);let r=n.resolveData??`all`,i=await P.create(e,t,n);return typeof n.sinceCursor==`string`?i:F(i,n.eventCount,r)});return{...P,create:be}}function Qr(e,t){return{get:(async(n,r,i)=>{B(`runId`,n),B(`stepId`,r);let a=await G(e,`steps`,`${n}-${r}`,h,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return vr(a,i?.resolveData??`all`)}),list:(async t=>{B(`runId`,t.runId);let n=t.resolveData??`all`,r=await Q({directory:z.join(e,`steps`),schema:h,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Xn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function $r(e,t){let n=Pr(e,t),r=Qr(e,t),i=Zr(e,t),a=Or(e,t);return{runs:ln(`world.runs`,n),steps:ln(`world.steps`,r),events:ln(`world.events`,i),hooks:ln(`world.hooks`,a),clearCache:()=>i.clearCache()}}const ei=ue(()=>Math.random()),ti=_({streams:w(S())});function ni(e){return e===1}function ri(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function ii(e){return ni(e[0])}function ai(e){return{eof:ii(e),chunk:Buffer.from(e.subarray(1))}}async function oi(e){try{return await I.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function si(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function ci(e,t){return B(`streamName`,t),z.join(e,t)}async function li(e,t,n){let r=ci(e,t),i=await oi(r),a=new Map;return si(a,i,`.json`),si(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&si(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}function ui(e,t){let n=t?`.${t}`:``,r=new je,i=new Set;async function a(n,r){B(`runId`,n),B(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=W(e,`streams/runs`,n,t),s=(await G(e,`streams/runs`,n,ti,t))?.streams??[];s.includes(r)||(s.push(r),await q(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${ei()}`;await a(await t,i);let l=o(s),u=ri({chunk:l,eof:!1});await vt(z.join(ci(z.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${ei()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=ri({chunk:t,eof:!1});return await vt(z.join(ci(z.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${ei()}`;await a(await t,i),await vt(z.join(ci(z.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),ri({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return B(`runId`,n),(await G(e,`streams/runs`,n,ti,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await li(z.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=z.join(c,`${e}${t}`);if(f<l){if(ni(await bt(n))){u=!0;break}f++;continue}if(d.length>=a){ni(await bt(n))?u=!0:f++;break}let r=ai(await yt(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await li(z.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ni(await bt(z.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=z.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await li(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;ni(await bt(z.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=ai(await yt(z.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await li(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=ai(await yt(z.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function di(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...Qe.value,...t};Ie(n.dataDir);let r=n.tag,i=bn(n),{clearCache:a,...o}=$r(n.dataDir,r),s=$e(n);return{specVersion:5,capabilities:{hookRetention:{active:!0},hookResumeDedup:!0,slotEventIds:!0},...i,...o,...ln(`world.streams`,{...ui(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await Bt(n.dataDir),!s)return;let e=r?e=>ut(e,r):dt;await de({...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))},i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=z.join(e,`hooks`),i=await ft(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-DlFv0aHY.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await J(z.join(t,n),a);r?.token&&(await Y(z.join(t,`tokens`,`${Mn(r.token)}.json`)),await Y(Jn(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=z.join(e,t),i=await ft(n,r);await Promise.all(i.map(e=>Y(z.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=z.join(e,`hooks`,t),i;try{i=await F.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(n,e.name),i=await ft(t,r);await Promise.all(i.map(e=>Y(z.join(t,e))))}))}await F.rm(z.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=z.join(e,`streams`,`chunks`),s;try{s=await F.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(o,e.name),n=await pt(t,r,`.bin`);await Promise.all(n.map(e=>F.unlink(z.join(t,e)).catch(()=>{})))})),ct()}else ct(),fr(),await Te(n.dataDir,{recursive:!0,force:!0}),await Bt(n.dataDir)}}}export{At as DataDirAccessError,jt as DataDirVersionError,Me as UnwritableDataDirError,di as createWorld,It as ensureDataDir,Bt as initDataDir,Mt as parseVersion};
1
+ import{i as e,t}from"../../_chunks/workflow/rolldown-runtime-8V8biNmG.js";import{E as n,O as r,_ as i,d as a,f as o,o as s,r as c}from"../../_chunks/workflow/dist-xQXN70ED.js";import"../../_chunks/workflow/dist-DpYyXbJv.js";import{i as l,n as u,r as d,t as f}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{$ as p,A as m,B as h,Cr as g,F as _,G as v,H as y,I as b,Ir as x,L as S,Tn as C,U as ee,V as te,W as ne,X as re,Z as w,a as T,c as ie,et as E,g as D,hi as O,j as ae,k as oe,l as se,m as k,n as ce,o as A,p as le,q as ue,r as de,u as fe,v as pe,x as j}from"../../_chunks/workflow/dist-CPlyFOVo.js";import{n as M}from"../../_chunks/workflow/env-config-DxamfI7T.js";import{n as me,t as he}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{t as ge}from"../../_chunks/workflow/undici-BBG5cZTy.js";import{t as _e}from"../../_chunks/workflow/signal-exit-o3IPQwwv.js";import{createHash as N}from"node:crypto";import{promisify as P}from"node:util";import{fileURLToPath as F}from"node:url";import{promises as I}from"node:fs";import L,{access as R,constants as ve,mkdir as ye,readFile as z,readdir as be,readlink as xe,rm as Se,unlink as Ce,writeFile as we}from"node:fs/promises";import B from"node:path";import{tmpdir as Te}from"node:os";import{execFile as Ee}from"node:child_process";import{setTimeout as De}from"node:timers/promises";import Oe from"node:assert";import{EventEmitter as ke}from"node:events";var Ae=class extends r{dataDir;constructor(e,t){super(`[workflow] The local (filesystem) world cannot create its data directory "${e}" (${t}). Workflow runs cannot be stored, so every run will fail before its first step. If this is a Vercel deployment, its filesystem is read-only and the local world cannot work there. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world. Otherwise point WORKFLOW_LOCAL_DATA_DIR at a writable directory.`,{code:t}),this.name=`UnwritableDataDirError`,this.dataDir=e}static is(e){return e instanceof Error&&e.name===`UnwritableDataDirError`}};const je=new Set([`EROFS`,`EACCES`,`EPERM`]);function Me(e){return e!==void 0&&je.has(e)}let Ne=!1;function Pe(e){if(Ne||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=B.resolve(e),n=Te();t===n||t.startsWith(`${n}${B.sep}`)||(Ne=!0,console.warn(`[workflow] Warning: the local (filesystem) world is running inside a Vercel deployment, writing to ${t}. That filesystem is read-only, so workflow runs will fail before their first step. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world.`))}function Fe(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function Ie(e,t){let n=[],r=e.trim().split(`
2
+ `);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=Fe(i.slice(s+1));c!==void 0&&n.push(c)}return n}const Le=P(Ee);function Re(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const ze=((e,t)=>e.join(t))([``,`proc`],`/`);async function Be(e){let t=[`${ze}/net/tcp`,`${ze}/net/tcp6`],n=[],r=new Set,i=`${ze}/${e}/fd`;try{let e=(await be(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await xe(`${i}/${e}`)).match(/^socket:\[(\d+)\]$/)?.[1]??null));for(let e of t)e.status===`fulfilled`&&e.value&&(n.push(e.value),r.add(e.value))}catch{return[]}if(n.length===0)return[];let a=new Map;for(let e of t)try{let t=(await z(e,`utf8`)).split(`
3
+ `).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=Re(c,16);l!==void 0&&a.set(o,l)}}catch{}let o=[];for(let e of n){let t=a.get(e);t!==void 0&&o.push(t)}return o}async function Ve(e){try{let{stdout:t}=await Le(`lsof`,[`-a`,`-i`,`-P`,`-n`,`-p`,e.toString()]),n=[],r=t.split(`
4
+ `);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Re(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function He(e){try{let{stdout:t}=await Le(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Ie(t,e)}catch{return[]}}async function Ue(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await Be(e);case`darwin`:return await Ve(e);case`win32`:return await He(e);default:return[]}}catch(e){return process.env.NODE_ENV===`development`&&console.debug(`[getAllPorts] Detection failed:`,e),[]}}const We=`${f}/flow?__health`;async function Ge(e,t={}){let{endpoint:n=We,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function Ke(e){let t=await Ue();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await Ge(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(process.env.NODE_ENV===`development`&&console.debug(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function qe(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const Je=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,Ye=()=>process.env.WORKFLOW_LOCAL_BASE_URL,Xe=qe(()=>({dataDir:Je(),baseUrl:Ye()}));function Ze(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return!(t===`0`||t===`false`)}function Qe(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??u(`http://localhost`)}async function $e(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return u(`http://localhost:${e.port}`);if(process.env.PORT)return u(`http://localhost:${process.env.PORT}`);let t=await Ke({endpoint:d()});if(t)return u(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const et=A(()=>Math.random());function tt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var nt=class extends r{constructor(e,t){super(`Unsafe ${e} "${tt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function V(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new nt(e,t)}function H(e,...t){let n=B.resolve(e),r=B.resolve(e,...t);if(r!==n&&!r.startsWith(n+B.sep))throw new nt(`path`,t.join(`/`));return r}const rt=process.platform===`win32`;async function U(e,t=5){if(!rt)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}const it=new Set,at=new Set;function ot(){it.clear(),at.clear()}const st=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function W(e){return e.replace(st,``)}function ct(e,t){return e.endsWith(`.${t}`)}function lt(e){return!st.test(e)}function G(e,t,n,r){return V(`fileId`,n),r!==void 0&&V(`tag`,r),H(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function K(e,t,n,r,i){if(V(`fileId`,n),i!==void 0&&V(`tag`,i),i){let a=await Y(H(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return Y(H(e,t,`${n}.json`),r)}async function ut(e,t){let n=`.${t}.json`;try{return(await I.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function dt(e,t,n){let r=`.${t}${n}`;try{return(await I.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function ft(e){let t=B.resolve(e);if(!at.has(t))try{await I.mkdir(t,{recursive:!0}),at.add(t)}catch(e){let n=e.code;if(Me(n)&&!await pt(t))throw new Ae(t,n)}}async function pt(e){try{return(await I.stat(e)).isDirectory()}catch{return!1}}async function mt(e,t){await ft(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return at.delete(B.resolve(e)),await ft(e),t()}}function q(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function ht(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function J(e,t,n){return gt(e,JSON.stringify(t,q,2),n)}async function gt(e,t,n){if(!n?.overwrite){if(it.has(e))throw new c(`File ${e} already exists and 'overwrite' is false`);try{throw await I.access(e),it.add(e),new c(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${et()}`,i=!1;try{await mt(B.dirname(e),async()=>{await I.writeFile(r,t),i=!0,await U(()=>I.rename(r,e))}),it.add(e)}catch(e){throw i&&await U(()=>I.unlink(r),3).catch(()=>{}),e}}async function Y(e,t){try{let n=await I.readFile(e,`utf-8`);return t.parse(JSON.parse(n,ht))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function _t(e){return await I.readFile(e)}async function vt(e){let t=await I.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function X(e){try{await U(()=>I.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Z(e,t){let n=`${e}.tmp.${et()}`,r=!1;try{return await mt(B.dirname(e),async()=>{await I.writeFile(n,t,{flag:`wx`}),r=!0;try{return await U(()=>I.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await U(()=>I.unlink(n),3).catch(()=>{})}}async function yt(e,t){try{return await mt(B.dirname(t),()=>U(()=>I.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Q(e){return bt(e,`.json`)}async function bt(e,t){try{return(await I.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const xt=`key:`;function St(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Ct(e,t,n){return n?`${xt}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function wt(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&V(`filePrefix`,i);let m=B.resolve(t),h=await Q(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=St(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=B.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await Y(t,n):structuredClone(e)}catch(t){if(t instanceof O)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Ct(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}let Tt=null;function Et(){return typeof import.meta.url==`string`&&import.meta.url?B.dirname(F(import.meta.url)):null}async function Dt(){if(Tt)return Tt;let e=Et();if(e)try{let t=await z(B.join(e,`../package.json`),`utf-8`);return Tt=JSON.parse(t),Tt}catch{}return Tt={name:`@workflow/world-local`,version:`5.0.0-beta.35`},Tt}const Ot=`version.txt`;var kt=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},At=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function jt(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function $(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Mt(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:jt(t.substring(n+1))}}function Nt(e,t){return`${e}@${$(t)}`}function Pt(e,t){console.log(`[world-local] Upgrading from version ${$(e)} to ${$(t)}`)}async function Ft(e){let t=B.resolve(e);try{await ye(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new kt(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await R(t,ve.R_OK)}catch(e){let n=e;throw new kt(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=B.join(t,`.workflow-write-test-${Date.now()}`);try{await we(n,``),await Ce(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new kt(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function It(e){let t=B.join(B.resolve(e),Ot);try{return Mt(await z(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Lt(e,t){await we(B.join(B.resolve(e),Ot),Nt((await Dt()).name,t))}function Rt(e,t){return t||$(e)}async function zt(e){await Ft(e);let t=await Dt(),n=jt(t.version),r=await It(e);if(r===null){await Lt(e,n);return}let{version:i}=r;if($(i)!==$(n))try{Pt(i,n),await Lt(e,n)}catch(e){let r=Rt(i,e instanceof At?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${$(i)} to ${$(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}let Bt=null;async function Vt(){return Bt||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),Bt}let Ht=null;async function Ut(){return Ht||=Vt().then(e=>e?e.trace.getTracer(`workflow`):null),Ht}async function Wt(e,...t){let[n,r]=await Promise.all([Ut(),Vt()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Gt(e){let t=await Vt();if(t)return t.SpanKind[e]}function Kt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const qt=Kt(`peer.service`),Jt=Kt(`rpc.system`),Yt=Kt(`rpc.service`),Xt=Kt(`rpc.method`),Zt=Kt(`workflow.run.id`),Qt=Kt(`step.id`),$t={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},en={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},tn=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 rn(e,t){return typeof e[t]==`string`?e[t]:void 0}function an(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function on(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 sn(e,t,n){let r=`${e}.${t}`,i={},a=en[r],o=a===void 0?tn.has(r)?an(n[0]):void 0:rn(n,a);if(o&&Object.assign(i,Zt(o)),r===`world.steps.get`){let e=rn(n,1);e&&Object.assign(i,Qt(e))}return i}function cn(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}`)}return Wt(n,{kind:await Gt(`INTERNAL`)},async r=>{r?.setAttributes({...qt($t.peerService),...Jt($t.rpcSystem),...Yt($t.rpcService),...Xt(n),...sn(e,a,t)});let o=await i(...t),s=on(o);return s&&r?.setAttributes(Zt(s)),o})}}return n}var ln=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),un=ge(),dn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,q))}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).toString();return JSON.parse(r,ht)}};const fn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,pn=2147483647,mn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function hn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function gn(){return{bodyTimeout:hn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,3e4),connections:1e3,headersTimeout:hn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,3e4),keepAliveTimeout:3e4}}const _n=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function vn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(_n))return!0;t=`cause`in t?t.cause:void 0}return!1}function yn(e){let t=new un.Agent(gn()),n=new dn,r=A(),i=new ln.Sema(mn),a=new AbortController,o=a.signal,s=new Map,c=new Map,u=async(a,u,d)=>{let f=[];if(d?.idempotencyKey){let e=s.get(d.idempotencyKey);if(e)return{messageId:e}}let p=n.serialize(u),{prefix:m}=j(a),h=D.parse(`msg_${r()}`),g=u,_=g.runId??void 0,v=g.stepId??void 0;if(d?.idempotencyKey){let e=d.idempotencyKey;s.set(e,h),f.push(()=>{s.delete(e)})}return(async()=>{d?.delaySeconds&&d.delaySeconds>0&&await De(Math.min(d.delaySeconds*1e3,pn),void 0,{signal:o}),i.tryAcquire()||(console.warn(`[world-local]: concurrency limit (${mn}) reached, waiting for queue to free up`),await i.acquire());let n=0;try{for(let r=0;r<256;r++){let i={...d?.headers,"content-type":`application/json`,"x-vqs-queue-name":a,"x-vqs-message-id":h,"x-vqs-message-attempt":String(n+1)},s=c.get(m),u,f;try{if(s)u=await s(new Request(l(Qe(e),{type:`flow`}),{method:`POST`,headers:i,body:p}));else{let n=await $e(e);u=await fetch(l(n,{type:`flow`}),{method:`POST`,duplex:`half`,dispatcher:t,headers:i,body:p})}n++,f=await u.text()}catch(e){let t=e?.name;if(o.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(vn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${r+1}), retrying`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},error:String(e)}),await De(5e3,void 0,{signal:o});continue}if(u.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){e>0&&await De(Math.min(e*1e3,pn),void 0,{signal:o});continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${n}, HTTP ${u.status})`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},handlerError:f}),await De(5e3,void 0,{signal:o})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v}})}finally{i.release()}})().catch(e=>{e?.name===`AbortError`||e?.name===`ResponseAborted`||(vn(e)?console.error(`[local world] Queue operation failed: detected "${_n}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of f)e()}),{messageId:h}},d=g({"x-vqs-queue-name":pe,"x-vqs-message-id":D,"x-vqs-message-attempt":E()});return{queue:u,createQueueHandler:(e,t)=>async n=>{let r=d.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new dn().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a}),n=null;return typeof e?.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,fn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Dt()).version}`,registerHandler(e,t){c.set(e,t)},async close(){o.aborted||(a.abort(),await t.close())}}}var bn=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!e||e.code===`ENOSYS`||(!process.getuid||process.getuid()!==0)&&(e.code===`EINVAL`||e.code===`EPERM`)}}})),xn=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=64*1024,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),Sn=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),Cn=t(((t,n)=>{var r=e(`fs`),i=bn(),a=xn(),o=Sn(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
5
+ GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=te,e.createWriteStream=ne;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;w(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function ee(){var e=this;w(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function te(t,n){return new e.ReadStream(t,n)}function ne(t,n){return new e.WriteStream(t,n)}var re=e.open;e.open=w;function w(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return re(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),wn=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1;var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),Tn=t((e=>{var t=wn();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),En=t(((e,t)=>{t.exports=Tn()})),Dn=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),On=t(((t,n)=>{let r=e(`path`),i=Cn(),a=En(),o=_e(),s=Dn(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),kn=t(((e,t)=>{let n=Cn();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),An=t(((e,t)=>{let n=On(),{toPromise:r,toSync:i,toSyncOptions:a}=kn();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function jn(e){return N(`sha256`).update(e).digest(`hex`)}function Mn(e,t,n){return H(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Nn(e,t,n){let r=[Mn(e,t)];n&&r.push(Mn(e,t,n));for(let e of r)try{return await L.access(e),!0}catch{}return!1}function Pn(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function Fn(e,t,n){let r=[Pn(e,t)];n&&r.push(Pn(e,t,n));for(let e of r)try{return await L.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function In(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Ln(e,t,n,r){return B.join(In(e,t,r),`${n}.json`)}async function Rn(e,t,n){let r=[In(e,t)];n&&r.push(In(e,t,n));for(let e of r){let t;try{t=await L.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await U(()=>L.unlink(B.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await L.rmdir(e).catch(()=>{})}}async function zn(e,t,n){let r=await Bn(e,t,n),i=Date.now();if(r.maxId)try{let e=T(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${Jn(i)}`,createdAt:new Date(i)}}async function Bn(e,t,n){let r=[];try{r=await L.readdir(B.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!lt(t)&&!(n&&ct(t,n)))continue;let r=W(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=ie(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Vn(e,t){return B.join(e,`hooks`,`tokens`,`${jn(t)}.json`)}const Hn=g({hookId:x().optional(),runId:x(),eventId:x().optional(),tokenRetentionUntil:p().optional()});async function Un(e){try{return await Y(e,Hn)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}async function Wn(e,t,n){let i=Vn(e,t);await L.mkdir(B.dirname(i),{recursive:!0});let a=new AbortController,o;try{o=await(0,An.lock)(i,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){a.abort(new r(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new r(`Could not acquire Hook token claim lock`,{cause:e})}let s;try{s=await n(a.signal),a.signal.throwIfAborted()}catch(e){throw a.signal.aborted||await o().catch(()=>{}),e}try{await o()}catch(e){throw new r(`Could not release Hook token claim lock`,{cause:e})}return s}function Gn(e,t,n){let r=N(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return B.join(e,`hooks`,`resumes`,`${r}.json`)}async function Kn(e,t,n,r){await Wn(e,t,async i=>{let a=Vn(e,t),o=await Un(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await X(a))})}function qn(e,t,n,r){let i=N(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return B.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const Jn=A(()=>Math.random()),Yn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=W(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);return i===-1?ce(r.replace(/\.json$/,``).replace(t,``)):e===`step`?null:ce(r.substring(i+1).replace(/\.json$/,``).replace(t,``))}},Xn=g({runId:x()}),Zn=g({hookId:x(),tag:x().optional()});function Qn(e,t){return H(e,`hooks`,`token-index`,jn(t))}function $n(e,t){return V(`hookId`,t),H(e,`hooks`,`id-index`,t)}function er(e){return H(e,`hooks`,`by-run`)}function tr(e){let t=W(e);return t===e?void 0:e.slice(t.length+1)}function nr(e,t){return t?lt(e)||ct(e,t):lt(e)}async function rr(e){try{return await Y(e,S)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}async function ir(e,t,n,r,i,a){V(`runId`,n),V(`eventId`,i),a!==void 0&&V(`tag`,a);let o=a?`${i}.${a}.json`:`${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Z(B.join(Qn(e,t),o),s),Z(B.join($n(e,r),o),s)])}function ar(e,t,n,r){return G(e,`hooks/by-run`,`${t}-${n}`,r)}async function or(e,t,n,r){await Z(ar(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function sr(e,t,n,r){await X(ar(e,t,n,r)),r&&await X(ar(e,t,n))}async function cr(e,t){V(`runId`,t);let n=er(e),r=`${t}-`,i=[];for(let e of await Q(n)){if(!e.startsWith(r))continue;let t=null;try{t=await Y(B.join(n,`${e}.json`),Zn)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function lr(e,t){await X(B.join(er(e),`${t}.json`))}const ur=new Map;function dr(){ur.clear()}async function fr(e){let t=B.resolve(e),n=ur.get(t);return n||(n=mr(t).catch(e=>{throw ur.delete(t),e}),ur.set(t,n)),n}async function pr(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function mr(e){let t=B.join(e,`hooks`,`.hook-index-complete`);try{await L.access(t);return}catch{}let n=B.join(e,`events`);await pr(await Q(n),32,async t=>{let r=await rr(B.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await ir(e,i,r.runId,r.correlationId,r.eventId,tr(t))}catch{}});let r=B.join(e,`hooks`);await pr(await Q(r),32,async t=>{let n=null;try{n=await Y(B.join(r,`${t}.json`),k)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}if(n)try{await or(e,n.runId,n.hookId,tr(t))}catch{}}),await Z(t,``)}async function hr(e,t,n,r){await fr(e);let i;try{i=t.kind===`token`?Qn(e,t.token):$n(e,t.hookId)}catch{return null}let a=(await Q(i)).filter(e=>nr(e,r)).sort((e,t)=>W(t).localeCompare(W(e)));for(let t of a){let r=null;try{r=await Y(B.join(i,`${t}.json`),Xn)}catch(e){if(!(e instanceof SyntaxError||e instanceof O))throw e}if(!r)continue;let a=W(t),o;try{o=G(e,`events`,`${r.runId}-${a}`,tr(t))}catch{continue}let s=await rr(o);if(s&&s.eventType===`hook_created`&&typeof s.correlationId==`string`&&n(s))return s}return null}function gr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function _r(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function vr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function yr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function br(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function xr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Sr(e,t,n){let r=await K(e,`runs`,t,_,n);return r?b(r.status):!1}async function Cr(e,t,n,r){let i=await hr(e,t,e=>xr(e,n),r);if(!i||!xr(i,n))return null;if(await Sr(e,i.runId,r)){let e=i.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return null}return await Nn(e,i.correlationId,r)?null:i}async function wr(e,t,n){let r=br(t);return await Z(Vn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil})),await or(e,r.runId,r.hookId,n),await Z(G(e,`hooks`,r.hookId,n),JSON.stringify(r,q,2)),r}async function Tr(e,t,n){let r=await Cr(e,{kind:`token`,token:t},e=>yr(e)===t,n);return r?wr(e,r,n):null}async function Er(e,t,n){let r=await Cr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?wr(e,r,n):null}function Dr(e,t){async function n(n){return await Nn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Sr(e,n.runId,t)}async function r(r){let i=await Un(Vn(e,r));if(i?.hookId){try{let a=await K(e,`hooks`,i.hookId,k,t);if(a?.token===r){if(!await n(a))throw new s(r);return{...a,isWebhook:a.isWebhook??!0}}}catch(e){if(!nt.is(e))throw e}return null}let a=B.join(e,`hooks`),o=await Q(a);for(let e of o){let t=await Y(B.join(a,`${e}.json`),k);if(t?.token===r){if(!await n(t))throw new s(r);return{...t,isWebhook:t.isWebhook??!0}}}return null}async function i(r,i){V(`hookId`,r);let a=await K(e,`hooks`,r,k,t);if(a&&!await n(a))throw new s(r);let o=a??await Er(e,r,t);if(!o)throw new s(r);let c=i?.resolveData||`all`;return vr({...o,isWebhook:o.isWebhook??!0},c)}async function a(n){let i=await r(n)??await Tr(e,n,t);if(!i)throw new s(n);return i}async function o(t){let r=B.join(e,`hooks`),i=t.resolveData||`all`,a=await wt({directory:r,schema:k,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>vr(e,i))}}return{get:i,getByToken:a,list:o}}async function Or(e,t){await fr(e);for(let n of await cr(e,t)){if(n.hookId){let r=null,i=null;try{i=G(e,`hooks`,n.hookId,n.tag),r=await Y(i,k)}catch(e){if(!nt.is(e)&&!(e instanceof SyntaxError||e instanceof O))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await Kn(e,r.token,r.runId,r.hookId),await X(qn(e,r.token,r.runId,r.hookId)),await X(i)}}await lr(e,n.fileId)}}async function kr(e,t,n,r,i,o){if(b(o.status)||await Fn(e,t))throw new a(`Workflow run "${t}" is already in a terminal state`);let s=Ln(e,t,n);await Z(s,r);try{if(await Fn(e,t)||await yt(s,i)!==`linked`)throw new a(`Workflow run "${t}" is already in a terminal state`)}finally{await L.unlink(s).catch(()=>{})}}async function Ar(e,t,n,r,i){V(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Z(Pn(e,t),``),await Rn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes};return await J(H(e,`runs`,`${t}.json`),i,{overwrite:!0}),await Or(e,t),{event:void 0,run:gr(i,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${Jn()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:5},c=H(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await kr(e,t,i,JSON.stringify(s,q,2),c,r):await J(c,s),{event:v(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const jr=new Map;function Mr(e,t){let n=jr.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{jr.get(e)===r.task&&jr.delete(e)}})();return r.task=i,jr.set(e,i),i}function Nr(e,t){let r=(async(r,i)=>{V(`runId`,r);let a=await K(e,`runs`,r,_,t);if(!a)throw new n(r);return gr(a,i?.resolveData??`all`)});return{get:r,getMany:(async(e,t)=>{let i=[...new Set(e)],a=await Promise.all(i.map(async e=>{try{return await r(e,t)}catch(e){if(e instanceof n)return null;throw e}})),o=new Map(i.map((e,t)=>[e,a[t]]));return e.map(e=>o.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await wt({directory:B.join(e,`runs`),schema:_,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status&&e.status!==t.status),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:Yn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(r,i,a)=>(V(`runId`,r),Mr(r,async()=>{let o=await K(e,`runs`,r,_,t);if(!o)throw new n(r);try{w(i,{existingKeys:Object.keys(o.attributes??{}),allowReservedAttributes:a?.allowReservedAttributes})}catch(e){throw e instanceof ue,e}let s=re(o.attributes,i),c={...o,attributes:s,updatedAt:new Date};return await J(G(e,`runs`,r,t),c,{overwrite:!0}),{attributes:s}}))}}const Pr=1440*60*1e3;function Fr(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new r(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Pr}const Ir=g({eventId:x()}),Lr=g({runId:x(),resumeId:x(),hookId:x(),eventId:x(),payloadDigest:x().optional()});function Rr(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function zr(e,t,n,r){let i=await Bn(e,t,r);for(let a of i.ids){let i=await K(e,`events`,`${t}-${a}`,S,r);if(i&&i.resumeId===n.resumeId&&Rr(i,n))return i}return null}async function Br(e,t,n){if(t.hookId&&await Nn(e,t.hookId,n))return!0;let r=await K(e,`runs`,t.runId,_,n);return r?b(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Vr(e){try{return await Y(e,Ir)}catch(e){if(e instanceof SyntaxError||e instanceof O)return null;throw e}}function Hr(e){return se(e.eventId)?e.eventId:null}function Ur(e,t){let n=W(t).slice(e.length+1);return se(n)?n:null}async function Wr(e,t,n){return(await wt({directory:B.join(e,`events`),schema:S,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Gr(e,t,n,r,i){let a=await K(e,`events`,`${t}-${r}`,S,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await K(e,`hooks`,n,k,i))return;let o=br(a);await ir(e,o.token,t,n,r,i),await or(e,t,n,i),await Z(G(e,`hooks`,n,i),JSON.stringify(o,q,2))}async function Kr(e,t,n,r,i){let a=qn(e,t,n,r);return await Z(a,JSON.stringify({eventId:i}))?i:(await Vr(a))?.eventId??null}function qr(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Jr(e,t){let n=B.join(e,`waits`),r=await Q(n);for(let e of r)e.startsWith(`${t}-`)&&await X(B.join(n,`${e}.json`))}async function Yr(e,t,n,r){return Mr(t,async()=>{let i=await Y(G(e,`runs`,t,n),_),a={...r,attributes:i?.attributes??r.attributes};return await J(G(e,`runs`,t,n),a,{overwrite:!0}),a})}function Xr(e,t){let l=Fr(),u=4*1024*1024,d=new Map,f=new Map,p=new Map,g=0;function x(e){let t=d.get(e);if(!t)return;d.delete(e),g-=f.get(e)??0,f.delete(e);let n=p.get(t.runId);n?.delete(e),n?.size===0&&p.delete(t.runId)}function C(e){for(let t of p.get(e)??[])x(t)}function T(){d.clear(),f.clear(),p.clear(),g=0,E.clear()}let E=new Map;function D(e){return t?`${e}.${t}`:e}async function O(n,r){let i=`${n}-${fe(r)}`;for(let n of t?[G(e,`events`,i,t),G(e,`events`,i)]:[G(e,`events`,i)])try{return await L.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function A(n,r){let i=D(n),a=E.get(i);if(a===void 0||r?.rescan){let r=await Bn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},E.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await O(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function le(e,t){let n=ie(t);if(n===null)return;let r=E.get(D(e));r&&(r.published=Math.max(r.published,n))}async function ue(e){let t=await A(e);return t===null?`evnt_${Jn()}`:fe(t)}async function pe(n){let r=await A(n,{rescan:!0});return r===null?zn(e,n,t):{eventId:fe(r),createdAt:new Date}}function j(e,t,n){if(n>u)return;for(;d.size>0&&(d.size>=1e3||g+n>u);){let e=d.keys().next().value;x(e)}d.set(e,t),f.set(e,n),g+=n;let r=p.get(t.runId)??new Set;r.add(e),p.set(t.runId,r)}function ge(e,t,n){if(ne(e.eventType)){C(e.runId);return}let r=Buffer.byteLength(n);if(r>u)return;let i=S.safeParse(JSON.parse(n,ht));i.success&&j(t,i.data,r)}async function _e(n){let r=n;for(let n=0;;n++){let i=G(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,q,2),o=ie(r.eventId);if(o===null)return await gt(i,a),ge(r,i,a),r;if(await Z(i,a))return le(r.runId,r.eventId),ge(r,i,a),r;let s=await A(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Oe(s!==null),r={...r,eventId:fe(s)}}}let N=(t,n)=>wt({directory:B.join(e,`events`),schema:S,cachedItems:d,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId,getSortKey:Hr,getSortKeyFromFileId:e=>Ur(t,e)}),P=new Map,F=new Map,I={clearCache:T,async create(u,d,f){if(d.eventType===`hook_created`&&d.eventData.tokenRetentionUntil!==void 0&&d.eventData.tokenRetentionUntil.getTime()>Date.now()+l)throw new r(`Hook minimum retention cannot exceed ${l/Pr} days in the Local World.`,{status:400});if(u!=null&&u!==``&&V(`runId`,u),`correlationId`in d&&typeof d.correlationId==`string`&&V(`correlationId`,d.correlationId),ee(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.${t}`:`${u}-${d.correlationId}`;return qr(P,e,p)}if(y(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.hook.${t}`:`${u}-${d.correlationId}.hook`;return qr(F,e,p)}return p();async function p(){let l=``,p=!1,g=null,y=new Date,x;if(d.eventType===`run_created`&&(!u||u===``))x=`wrun_${Jn()}`;else if(u)x=u;else throw Error(`runId is required for non-run_created events`);if(d.eventType===`run_created`&&u&&u!==``){let e=de(x,`wrun_`);if(e)throw new r(e)}let C=d.specVersion??5,T=null;if(d.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(d.eventType)&&(T=await K(e,`runs`,x,_,t),d.eventType===`run_started`&&!T&&`eventData`in d&&d.eventData)){let n=d.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){w(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:x,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:C,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:y,updatedAt:y};if(await Z(G(e,`runs`,x,t),JSON.stringify(r,q))){let e=await ue(x);await _e({eventType:`run_created`,runId:x,eventId:e,createdAt:y,specVersion:C,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),T=r}else T=await K(e,`runs`,x,_,t)}}if(l=await ue(x),!T&&(d.eventType===`run_failed`||d.eventType===`attr_set`||d.eventType===`run_started`))throw new n(x);if(T){if(me(T.specVersion))throw new o(T.specVersion,5);if(he(T.specVersion))return Ar(e,x,d,T,f)}let E=h(d),D=E&&d.eventType===`step_started`;if(T&&b(T.status)){if(d.eventType===`run_cancelled`&&T.status===`cancelled`)return{event:v(await _e({...d,runId:x,eventId:l,createdAt:y,specVersion:C}),f?.resolveData??`all`),run:T,...T?{maxEvents:M()}:{}};if(d.eventType===`run_started`)throw new a(`Workflow run "${x}" is already in terminal state "${T.status}"`);if(ne(d.eventType))throw new c(`Cannot transition run from terminal state "${T.status}"`);if(E)throw new c(`Cannot create new entities on run in terminal state "${T.status}"`);if(d.eventType===`attr_set`)throw new c(`Cannot set attributes on run in terminal state "${T.status}"`)}let O=null;if(ee(d.eventType)&&d.eventType!==`step_created`&&d.correlationId){if(O=await K(e,`steps`,`${x}-${d.correlationId}`,m,t),!O&&!D)throw new r(`Step "${d.correlationId}" not found`);if(D&&O)throw new c(`Step "${d.correlationId}" already created`);if(O){if(ae(O.status))throw new c(`Cannot modify step in terminal state "${O.status}"`);if(T&&b(T.status)&&O.status!==`running`)throw new a(`Cannot modify non-running step on run in terminal state "${T.status}"`)}}if(te(d.eventType)&&d.correlationId){if(d.eventType===`hook_received`&&f?.resumeId){let n=await Y(Gn(e,x,f.resumeId),Lr);if(n&&n.hookId===d.correlationId&&(!f.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===f.resumePayloadDigest)){let r=await K(e,`events`,`${x}-${n.eventId}`,S,t),i=r&&Rr(r,n)?r:await zr(e,x,n,t);if(i)return{event:i}}}if(d.eventType===`hook_received`&&await Nn(e,d.correlationId,t)||!await K(e,`hooks`,d.correlationId,k,t))throw new s(d.correlationId);if(d.eventType===`hook_received`&&f?.resumeId){let n=Gn(e,x,f.resumeId),r=async n=>{if(n.hookId!==d.correlationId)throw new c(`hook_received resumeId "${f.resumeId}" already recorded for a different hook`);if(f.resumePayloadDigest&&n.payloadDigest&&n.payloadDigest!==f.resumePayloadDigest)throw new c(`hook_received resumeId "${f.resumeId}" already recorded with a different payload`);let r=await K(e,`events`,`${x}-${n.eventId}`,S,t);if(r&&Rr(r,n))return{event:r};let i=await zr(e,x,n,t);return i?{event:i}:(g=n.eventId,r||(l=n.eventId,p=!0),null)},i=await Y(n,Lr);if(i){let e=await r(i);if(e)return e}else if(p=!se(l),g=l,!await Z(n,JSON.stringify({runId:x,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}))){g=null;let e=await Y(n,Lr);if(e){let t=await r(e);if(t)return t}}}}let j={...d,runId:x,eventId:l,createdAt:y,specVersion:C,...d.eventType===`hook_received`&&f?.resumeId?{resumeId:f.resumeId}:{}};if(d.eventType===`run_started`&&`eventData`in j&&delete j.eventData,D&&j.eventType===`step_started`&&j.eventData){let{input:e,...t}=j.eventData;j={...j,eventData:t}}let P,F,I,R,ve=!1,ye;if(ne(d.eventType)&&T){await Z(Pn(e,x,t),``),await Rn(e,x,t);let n=await pe(x);l=n.eventId,j={...j,eventId:l,createdAt:n.createdAt}}if(d.eventType===`run_created`&&`eventData`in d){let n=d.eventData;if(w(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),P={runId:x,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:C,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:y,updatedAt:y},!await Z(G(e,`runs`,x,t),JSON.stringify(P,q,2)))throw new c(`Workflow run "${x}" already exists`)}else if(d.eventType===`run_started`){if(T){if(T.status===`running`){if(f?.skipPreload)return{run:T,maxEvents:M()};let e=await N(x,{limit:M()});return{run:T,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:M()}}P=await Yr(e,x,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:T.startedAt??y,updatedAt:y,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey})}}else if(d.eventType===`run_completed`&&`eventData`in d){let n=d.eventData;T&&(P=await Yr(e,x,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:y,updatedAt:y,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey}),await Promise.all([Or(e,x),Jr(e,x)]))}else if(d.eventType===`run_failed`&&`eventData`in d){let n=d.eventData;T&&(P=await Yr(e,x,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:y,updatedAt:y,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey}),await Promise.all([Or(e,x),Jr(e,x)]))}else if(d.eventType===`run_cancelled`)T&&(P=await Yr(e,x,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:y,updatedAt:y,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey}),await Promise.all([Or(e,x),Jr(e,x)]));else if(d.eventType===`attr_set`&&T)P=await Mr(x,async()=>{let r=await Y(G(e,`runs`,x,t),_);if(!r)throw new n(x);if(w(d.eventData.changes,{existingKeys:Object.keys(r.attributes),allowReservedAttributes:d.eventData.allowReservedAttributes===!0}),d.correlationId&&d.eventData.writer.type===`workflow`&&!await Z(H(e,`.locks`,`attributes`,t?`${x}-${d.correlationId}.created.${t}`:`${x}-${d.correlationId}.created`),``))throw new c(`Attribute event "${d.correlationId}" already exists`);let i={...r,attributes:re(r.attributes,d.eventData.changes),updatedAt:y};return await J(G(e,`runs`,x,t),i,{overwrite:!0}),i});else if(d.eventType===`step_created`&&`eventData`in d){if(!await Z(H(e,`.locks`,`steps`,t?`${x}-${d.correlationId}.created.${t}`:`${x}-${d.correlationId}.created`),``))throw new c(`Step "${d.correlationId}" already created`);let n=d.eventData;F={runId:x,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:y,updatedAt:y,specVersion:C},await J(G(e,`steps`,`${x}-${d.correlationId}`,t),F)}else if(d.eventType===`step_started`){if(!O&&D){let n=d.eventData;if(await Z(H(e,`.locks`,`steps`,t?`${x}-${d.correlationId}.created.${t}`:`${x}-${d.correlationId}.created`),``)){let r={runId:x,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:y,updatedAt:y,specVersion:C};await J(G(e,`steps`,`${x}-${d.correlationId}`,t),r);let i=await ue(x);await _e({eventType:`step_created`,runId:x,eventId:i,createdAt:y,specVersion:C,correlationId:d.correlationId,eventData:{stepName:n.stepName,input:n.input}}),O=r,ve=!0}else throw new c(`Step "${d.correlationId}" already created`)}if(O){if(O.retryAfter&&O.retryAfter.getTime()>Date.now())throw new i(`Cannot start step "${d.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((O.retryAfter.getTime()-Date.now())/1e3)});let n=`${x}-${d.correlationId}`,r=await K(e,`steps`,n,m,t);if(r&&ae(r.status))throw new c(`Cannot modify step in terminal state "${r.status}"`);F={...O,status:`running`,startedAt:O.startedAt??y,attempt:O.attempt+1,retryAfter:void 0,updatedAt:y},await J(G(e,`steps`,n,t),F,{overwrite:!0})}}else if(d.eventType===`step_completed`&&`eventData`in d){let n=d.eventData;if(O){let r=`${x}-${d.correlationId}`;if(!await Z(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new c(`Cannot modify step in terminal state`);F={...O,status:`completed`,output:n.result,completedAt:y,updatedAt:y},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(d.eventType===`step_failed`&&`eventData`in d){let n=d.eventData;if(O){let r=`${x}-${d.correlationId}`;if(!await Z(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new c(`Cannot modify step in terminal state`);F={...O,status:`failed`,error:n.error,completedAt:y,updatedAt:y},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(d.eventType===`step_retrying`&&`eventData`in d){let n=d.eventData;if(O){let r=`${x}-${d.correlationId}`;F={...O,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:y},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(d.eventType===`hook_created`&&`eventData`in d){let n=d.eventData,r=Vn(e,n.token),i=JSON.stringify({token:n.token,hookId:d.correlationId,runId:x,eventId:l,tokenRetentionUntil:n.tokenRetentionUntil}),a=await Wn(e,n.token,async a=>{let o=await Un(r);return o||=(a.throwIfAborted(),await X(r),await Tr(e,n.token,t),await Un(r)),o?o.runId===x&&o.hookId===d.correlationId?{status:`owned`,claim:o}:await Br(e,o,t)?(a.throwIfAborted(),await X(r),o.hookId&&(await X(G(e,`hooks`,o.hookId,t)),await X(qn(e,n.token,o.runId,o.hookId)),await sr(e,o.runId,o.hookId,t)),a.throwIfAborted(),Oe(await Z(r,i)),{status:`claimed`}):{status:`conflict`,claim:o}:(a.throwIfAborted(),Oe(await Z(r,i)),{status:`claimed`})});if(a.status===`owned`){let r=a.claim,i;if(r.eventId)i=r.eventId;else{let r=await Wr(e,x,d.correlationId);if(r!==null)throw await Gr(e,x,d.correlationId,r,t),new c(`Hook "${d.correlationId}" already created`);let a=await Kr(e,n.token,x,d.correlationId,l);if(a===null)throw new c(`Hook "${d.correlationId}" already created`);i=a}l=i,p=!0;let o=ce(l.replace(/^evnt_/,``))??y;j={...d,eventData:{...d.eventData,tokenRetentionUntil:r.tokenRetentionUntil},runId:x,eventId:l,createdAt:o,specVersion:C}}if(a.status===`conflict`){let e=a.claim;return{event:v(await _e({eventType:`hook_conflict`,correlationId:d.correlationId,eventData:{token:n.token,conflictingRunId:e.runId},runId:x,eventId:l,createdAt:y,specVersion:C}),f?.resolveData??`all`),run:P,step:F,hook:void 0}}let o=j.eventData;I={runId:x,hookId:d.correlationId,token:o.token,metadata:o.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:j.createdAt,specVersion:C,isWebhook:o.isWebhook??!1,isSystem:o.isSystem??!1,tokenRetentionUntil:o.tokenRetentionUntil},ye=a.status===`owned`?{overwrite:!0}:void 0,await ir(e,n.token,x,d.correlationId,l,t)}else if(d.eventType===`hook_disposed`){if(!await Z(Mn(e,d.correlationId,t),``))throw new c(`Hook "${d.correlationId}" already disposed`);let n=G(e,`hooks`,d.correlationId,t),r=await K(e,`hooks`,d.correlationId,k,t);r&&(await Kn(e,r.token,r.runId,r.hookId),await X(qn(e,r.token,r.runId,r.hookId))),await X(n),await sr(e,x,d.correlationId,t)}else if(d.eventType===`wait_created`&&`eventData`in d){let n=`${x}-${d.correlationId}`;if(!await Z(H(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new c(`Wait "${d.correlationId}" already exists`);let r=d.eventData;R={waitId:n,runId:x,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:y,updatedAt:y,specVersion:C},await J(G(e,`waits`,n,t),R)}else if(d.eventType===`wait_completed`){let n=`${x}-${d.correlationId}`,i=H(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Z(i,``))throw new c(`Wait "${d.correlationId}" already completed`);let a=await K(e,`waits`,n,oe,t);if(!a)throw await L.unlink(i).catch(()=>{}),new r(`Wait "${d.correlationId}" not found`);R={...a,status:`completed`,completedAt:y,updatedAt:y},await J(G(e,`waits`,n,t),R,{overwrite:!0})}if(d.eventType===`hook_received`&&d.correlationId&&await Nn(e,d.correlationId,t))throw new s(d.correlationId);let z=G(e,`events`,`${x}-${l}`,t),be=JSON.stringify(j,q,2),xe=async n=>{let r=ie(l);if(p||r===null)return!1;let i=await A(x,{rescan:n>0&&n%8==0,atLeast:r+1});return i===null?!1:(l=fe(i),j={...j,eventId:l},z=G(e,`events`,`${x}-${l}`,t),be=JSON.stringify(j,q,2),!0)},Se=!1;for(let n=0;;n++){if(d.eventType===`hook_received`){let r=await Fn(e,x,t),i=r?null:await K(e,`runs`,x,_,t);if(r||i&&b(i.status))throw new a(`Workflow run "${x}" is already in a terminal state`);let o=Ln(e,x,l,t);if(!await Z(o,be)){if(await xe(n))continue;throw new c(`Event "${l}" already exists for run "${x}"`)}try{if(await Fn(e,x,t))throw new a(`Workflow run "${x}" is already in a terminal state`);let n=await yt(o,z);if(n===`missing`)throw new a(`Workflow run "${x}" is already in a terminal state`);Se=n===`linked`}finally{await X(o).catch(()=>{})}}else Se=await Z(z,be);if(Se){le(x,l);break}if(!await xe(n))break}if(!Se)throw d.eventType===`hook_created`&&d.correlationId&&await Gr(e,x,d.correlationId,l,t),new c(`Event "${l}" already exists for run "${x}"`);ge(j,z,be),d.eventType===`hook_received`&&f?.resumeId&&g!==null&&g!==l&&await gt(Gn(e,x,f.resumeId),JSON.stringify({runId:x,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}),{overwrite:!0}),I&&d.eventType===`hook_created`&&(await or(e,I.runId,I.hookId,t),await J(G(e,`hooks`,I.hookId,t),I,ye));let Ce=f?.resolveData??`all`,we=v(j,Ce),B;if(d.eventType===`run_started`&&P&&!f?.skipPreload&&(B=await N(x,{limit:M()})),typeof f?.sinceCursor==`string`){let e=await N(x,{sortOrder:`asc`,cursor:f.sinceCursor});B=Ce===`none`?{...e,data:e.data.map(e=>v(e,Ce))}:e}let Te={event:we,run:P,step:F,hook:I,wait:R,...ve?{stepCreated:!0}:{},...P?{maxEvents:M()}:{}};return B?{...Te,events:B.data,cursor:B.cursor,hasMore:B.hasMore}:Te}},async get(n,r,i){V(`runId`,n),V(`eventId`,r);let a=await K(e,`events`,`${n}-${r}`,S,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);return v(a,i?.resolveData??`all`)},async list(e){let{runId:t}=e;V(`runId`,t);let n=e.resolveData??`all`,r=await N(t,{...e.pagination,limit:e.pagination?.limit??M()});return n===`none`?{...r,data:r.data.map(e=>v(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;V(`correlationId`,n),V(`runId`,t.runId);let r=t.resolveData??`all`,i=await wt({directory:B.join(e,`events`),schema:S,cachedItems:d,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId,getSortKey:Hr,getSortKeyFromFileId:e=>Ur(t.runId,e)});return r===`none`?{...i,data:i.data.map(e=>v(e,r))}:i}};async function R(e,t,n){if(!e.event)return e;let r=ie(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await I.list({runId:e.event.runId,pagination:{cursor:`${xt}${fe(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let ve=(async(e,t,n)=>{if(n?.eventCount===void 0)return I.create(e,t,n);let r=n.resolveData??`all`,i=await I.create(e,t,n);return typeof n.sinceCursor==`string`?i:R(i,n.eventCount,r)});return{...I,create:ve}}function Zr(e,t){return{get:(async(n,r,i)=>{V(`runId`,n),V(`stepId`,r);let a=await K(e,`steps`,`${n}-${r}`,m,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return _r(a,i?.resolveData??`all`)}),list:(async t=>{V(`runId`,t.runId);let n=t.resolveData??`all`,r=await wt({directory:B.join(e,`steps`),schema:m,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Yn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function Qr(e,t){let n=Nr(e,t),r=Zr(e,t),i=Xr(e,t),a=Dr(e,t);return{runs:cn(`world.runs`,n),steps:cn(`world.steps`,r),events:cn(`world.events`,i),hooks:cn(`world.hooks`,a),clearCache:()=>i.clearCache()}}const $r=A(()=>Math.random()),ei=g({streams:C(x())});function ti(e){return e===1}function ni(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function ri(e){return ti(e[0])}function ii(e){return{eof:ri(e),chunk:Buffer.from(e.subarray(1))}}async function ai(e){try{return await L.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function oi(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function si(e,t){return V(`streamName`,t),B.join(e,t)}async function ci(e,t,n){let r=si(e,t),i=await ai(r),a=new Map;return oi(a,i,`.json`),oi(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&oi(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}function li(e,t){let n=t?`.${t}`:``,r=new ke,i=new Set;async function a(n,r){V(`runId`,n),V(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=G(e,`streams/runs`,n,t),s=(await K(e,`streams/runs`,n,ei,t))?.streams??[];s.includes(r)||(s.push(r),await J(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${$r()}`;await a(await t,i);let l=o(s),u=ni({chunk:l,eof:!1});await gt(B.join(si(B.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${$r()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=ni({chunk:t,eof:!1});return await gt(B.join(si(B.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${$r()}`;await a(await t,i),await gt(B.join(si(B.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),ni({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return V(`runId`,n),(await K(e,`streams/runs`,n,ei,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await ci(B.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=B.join(c,`${e}${t}`);if(f<l){if(ti(await vt(n))){u=!0;break}f++;continue}if(d.length>=a){ti(await vt(n))?u=!0:f++;break}let r=ii(await _t(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await ci(B.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ti(await vt(B.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=B.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await ci(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;ti(await vt(B.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=ii(await _t(B.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await ci(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=ii(await _t(B.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function ui(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...Xe.value,...t};Pe(n.dataDir);let r=n.tag,i=yn(n),{clearCache:a,...o}=Qr(n.dataDir,r),s=Ze(n);return{specVersion:5,capabilities:{hookRetention:{active:!0},hookResumeDedup:!0,slotEventIds:!0},...i,...o,...cn(`world.streams`,{...li(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await zt(n.dataDir),!s)return;let e=r?e=>ct(e,r):lt;await le({...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))},i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=B.join(e,`hooks`),i=await ut(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-CPlyFOVo.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await Y(B.join(t,n),a);r?.token&&(await X(B.join(t,`tokens`,`${jn(r.token)}.json`)),await X(qn(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=B.join(e,t),i=await ut(n,r);await Promise.all(i.map(e=>X(B.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=B.join(e,`hooks`,t),i;try{i=await I.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(n,e.name),i=await ut(t,r);await Promise.all(i.map(e=>X(B.join(t,e))))}))}await I.rm(B.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=B.join(e,`streams`,`chunks`),s;try{s=await I.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(o,e.name),n=await dt(t,r,`.bin`);await Promise.all(n.map(e=>I.unlink(B.join(t,e)).catch(()=>{})))})),ot()}else ot(),dr(),await Se(n.dataDir,{recursive:!0,force:!0}),await zt(n.dataDir)}}}export{kt as DataDirAccessError,At as DataDirVersionError,Ae as UnwritableDataDirError,ui as createWorld,Ft as ensureDataDir,zt as initDataDir,jt as parseVersion};