eve 0.82.0 → 0.83.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 (480) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/NOTICE +1 -1
  3. package/dist/src/channel/pending-authorization.d.ts +5 -0
  4. package/dist/src/channel/pending-authorization.js +1 -1
  5. package/dist/src/channel/session.d.ts +2 -0
  6. package/dist/src/channel/session.js +1 -1
  7. package/dist/src/channel/types.d.ts +5 -0
  8. package/dist/src/chunks/{use-eve-agent-DlznYwQk.js → use-eve-agent-3-WRmJkd.js} +40 -5
  9. package/dist/src/chunks/{use-eve-agent-DTu78IAF.js → use-eve-agent-Ci5dr0aR.js} +40 -5
  10. package/dist/src/cli/dev/local-server-child.js +1 -1
  11. package/dist/src/cli/dev/local-server-cleanup.js +1 -1
  12. package/dist/src/cli/dev/tui/question-panel.d.ts +4 -1
  13. package/dist/src/cli/dev/tui/question-panel.js +1 -1
  14. package/dist/src/cli/dev/tui/terminal-renderer.js +4 -4
  15. package/dist/src/client/eve-agent-store.d.ts +1 -1
  16. package/dist/src/client/eve-agent-store.js +1 -1
  17. package/dist/src/client/index.d.ts +1 -0
  18. package/dist/src/client/session-controls.d.ts +6 -0
  19. package/dist/src/client/session-controls.js +1 -1
  20. package/dist/src/client/session.d.ts +4 -0
  21. package/dist/src/client/session.js +1 -1
  22. package/dist/src/compiled/.vendor-stamp.json +8 -8
  23. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  24. package/dist/src/compiled/@workflow/core/events-consumer.d.ts +2 -0
  25. package/dist/src/compiled/@workflow/core/index.js +2 -2
  26. package/dist/src/compiled/@workflow/core/private.d.ts +5 -3
  27. package/dist/src/compiled/@workflow/core/private.js +1 -1
  28. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +1 -37
  29. package/dist/src/compiled/@workflow/core/runtime/event-limit-warning.d.ts +32 -0
  30. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +5 -6
  31. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  32. package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +8 -0
  33. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +16 -0
  34. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +15 -18
  35. package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +20 -0
  36. package/dist/src/compiled/@workflow/core/runtime.js +4 -4
  37. package/dist/src/compiled/@workflow/core/seeded-nanoid.d.ts +2 -0
  38. package/dist/src/compiled/@workflow/core/serialization/compression.d.ts +14 -3
  39. package/dist/src/compiled/@workflow/core/serialization.d.ts +1 -1
  40. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  41. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +0 -18
  42. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  43. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  44. package/dist/src/compiled/@workflow/errors/index.d.ts +48 -0
  45. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  46. package/dist/src/compiled/@workflow/world/env-config.d.ts +24 -0
  47. package/dist/src/compiled/@workflow/world/events.d.ts +126 -7
  48. package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
  49. package/dist/src/compiled/@workflow/world/interfaces.d.ts +59 -8
  50. package/dist/src/compiled/@workflow/world/queue.d.ts +71 -9
  51. package/dist/src/compiled/@workflow/world/recovery.d.ts +6 -0
  52. package/dist/src/compiled/@workflow/world/test-support/duplicate-event-fixtures.d.ts +3 -0
  53. package/dist/src/compiled/@workflow/world/test-support/in-band-fence-conformance.d.ts +46 -0
  54. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  55. package/dist/src/compiled/@workflow/world-vercel/index.js +18 -18
  56. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BW-kbMMn.js → attribute-changes-7se_SE2q.js} +3 -3
  57. package/dist/src/compiled/_chunks/workflow/dist-CcnNPAp4.js +1 -0
  58. package/dist/src/compiled/_chunks/workflow/dist-S9cZRway.js +3 -0
  59. package/dist/src/compiled/_chunks/workflow/helpers-CxNRXH0a.js +1 -0
  60. package/dist/src/compiled/_chunks/workflow/private-DLYTSBbu.js +1 -0
  61. package/dist/src/compiled/_chunks/workflow/resume-hook-CPiIfe8r.js +1 -0
  62. package/dist/src/compiled/_chunks/workflow/{run-DzdAqdb1.js → run-BJSLCXR4.js} +6 -6
  63. package/dist/src/compiled/_chunks/workflow/serialization-B9gneT9Z.js +15 -0
  64. package/dist/src/compiled/_chunks/workflow/sleep-BL0oQs3R.js +1 -0
  65. package/dist/src/compiled/_chunks/workflow/{wait-until-xbRRDuUf.js → wait-until-BPou0RGO.js} +1 -1
  66. package/dist/src/compiled/_chunks/workflow/workflow-routes-BaljomCk.js +1 -0
  67. package/dist/src/compiled/{@ai-sdk/code-mode → run}/LICENSE +1 -1
  68. package/dist/src/compiled/run/index.d.ts +384 -0
  69. package/dist/src/compiled/run/index.js +650 -0
  70. package/dist/src/compiler/extension-compatibility.d.ts +21 -14
  71. package/dist/src/compiler/extension-compatibility.js +1 -1
  72. package/dist/src/compiler/manifest.js +1 -1
  73. package/dist/src/compiler/normalize-agent-config.js +1 -1
  74. package/dist/src/compiler/normalize-manifest.js +1 -1
  75. package/dist/src/compiler/normalize-sandbox.js +1 -1
  76. package/dist/src/compiler/workspace-resources.js +1 -1
  77. package/dist/src/context/build-callback-context.js +1 -1
  78. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  79. package/dist/src/context/providers/sandbox.js +1 -1
  80. package/dist/src/discover/extension-specifier.d.ts +1 -0
  81. package/dist/src/discover/extension-specifier.js +1 -1
  82. package/dist/src/evals/cli/eval.js +2 -2
  83. package/dist/src/evals/runner/artifacts.js +1 -1
  84. package/dist/src/evals/runner/derive-run-facts.d.ts +12 -0
  85. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  86. package/dist/src/evals/runner/execute-task.js +1 -1
  87. package/dist/src/evals/types.d.ts +3 -2
  88. package/dist/src/eve-channel/index.js +1 -1
  89. package/dist/src/eve-channel/request.d.ts +0 -1
  90. package/dist/src/eve-channel/request.js +2 -2
  91. package/dist/src/execution/agent-sessions/context.d.ts +1 -1
  92. package/dist/src/execution/agent-sessions/context.js +1 -1
  93. package/dist/src/execution/coordination-dispatch-shared.d.ts +3 -0
  94. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  95. package/dist/src/execution/dynamic-workflow/program-step.d.ts +7 -7
  96. package/dist/src/execution/dynamic-workflow/program-step.js +1 -1
  97. package/dist/src/execution/dynamic-workflow/schema.d.ts +18 -11
  98. package/dist/src/execution/dynamic-workflow/schema.js +1 -1
  99. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  100. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  101. package/dist/src/execution/eve-workflow-attributes.d.ts +3 -1
  102. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  103. package/dist/src/execution/invoke-tool.js +1 -1
  104. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  105. package/dist/src/execution/sandbox/active-connections.d.ts +28 -0
  106. package/dist/src/execution/sandbox/active-connections.js +1 -0
  107. package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +10 -2
  108. package/dist/src/execution/sandbox/bindings/docker-cli.js +2 -2
  109. package/dist/src/execution/sandbox/bindings/docker-connection.d.ts +15 -0
  110. package/dist/src/execution/sandbox/bindings/docker-connection.js +2 -0
  111. package/dist/src/execution/sandbox/bindings/docker-container.d.ts +2 -0
  112. package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
  113. package/dist/src/execution/sandbox/bindings/docker-network.d.ts +5 -0
  114. package/dist/src/execution/sandbox/bindings/docker-network.js +1 -1
  115. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  116. package/dist/src/execution/sandbox/bindings/docker.d.ts +12 -15
  117. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  118. package/dist/src/execution/sandbox/bindings/just-bash-runtime.d.ts +19 -29
  119. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  120. package/dist/src/execution/sandbox/bindings/just-bash.d.ts +2 -4
  121. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  122. package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +0 -20
  123. package/dist/src/execution/sandbox/bindings/local-provider-utils.js +1 -1
  124. package/dist/src/execution/sandbox/bindings/local.d.ts +4 -6
  125. package/dist/src/execution/sandbox/bindings/local.js +1 -1
  126. package/dist/src/execution/sandbox/bindings/vercel-base-runtime.d.ts +2 -0
  127. package/dist/src/execution/sandbox/bindings/vercel-base-runtime.js +2 -2
  128. package/dist/src/execution/sandbox/bindings/vercel-errors.js +2 -2
  129. package/dist/src/execution/sandbox/bindings/vercel-lifecycle.d.ts +7 -5
  130. package/dist/src/execution/sandbox/bindings/vercel-lifecycle.js +1 -1
  131. package/dist/src/execution/sandbox/bindings/vercel.d.ts +5 -11
  132. package/dist/src/execution/sandbox/bindings/vercel.js +1 -2
  133. package/dist/src/execution/sandbox/development-cleanup.d.ts +0 -1
  134. package/dist/src/execution/sandbox/development-cleanup.js +1 -1
  135. package/dist/src/execution/sandbox/development-lazy-prewarm.js +1 -1
  136. package/dist/src/execution/sandbox/development-run.d.ts +0 -2
  137. package/dist/src/execution/sandbox/development-run.js +1 -1
  138. package/dist/src/execution/sandbox/dockerfile.d.ts +0 -4
  139. package/dist/src/execution/sandbox/dockerfile.js +1 -1
  140. package/dist/src/execution/sandbox/ensure.d.ts +23 -11
  141. package/dist/src/execution/sandbox/ensure.js +1 -1
  142. package/dist/src/execution/sandbox/glob-tool.js +3 -3
  143. package/dist/src/execution/sandbox/grep-tool.js +1 -1
  144. package/dist/src/execution/sandbox/logging-session.js +1 -1
  145. package/dist/src/execution/sandbox/prewarm.d.ts +23 -3
  146. package/dist/src/execution/sandbox/prewarm.js +2 -1
  147. package/dist/src/execution/sandbox/read-file.js +1 -1
  148. package/dist/src/execution/sandbox/require-sandbox.d.ts +3 -2
  149. package/dist/src/execution/sandbox/require-sandbox.js +1 -1
  150. package/dist/src/execution/sandbox/ripgrep-probe.js +1 -1
  151. package/dist/src/execution/sandbox/session.d.ts +10 -20
  152. package/dist/src/execution/sandbox/session.js +2 -2
  153. package/dist/src/execution/session/admission.js +1 -1
  154. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  155. package/dist/src/execution/session/entry-input.d.ts +5 -4
  156. package/dist/src/execution/session/entry.js +1 -1
  157. package/dist/src/execution/session/handoff-state.d.ts +5 -0
  158. package/dist/src/execution/session/handoff-state.js +1 -0
  159. package/dist/src/execution/session/handoff-steps.d.ts +0 -5
  160. package/dist/src/execution/session/handoff-steps.js +1 -1
  161. package/dist/src/execution/session/handoff.d.ts +2 -1
  162. package/dist/src/execution/session/handoff.js +1 -1
  163. package/dist/src/execution/session/input-queue.d.ts +3 -0
  164. package/dist/src/execution/session/input-queue.js +1 -1
  165. package/dist/src/execution/session/next-input.d.ts +3 -0
  166. package/dist/src/execution/session/next-input.js +1 -1
  167. package/dist/src/execution/session/program.js +1 -1
  168. package/dist/src/execution/session/timeout-control.d.ts +4 -0
  169. package/dist/src/execution/session/timeout-control.js +1 -1
  170. package/dist/src/execution/session/turn-control.d.ts +5 -2
  171. package/dist/src/execution/session/turn-control.js +1 -1
  172. package/dist/src/execution/session/turn.js +1 -1
  173. package/dist/src/execution/session-inbox/inbox.d.ts +9 -1
  174. package/dist/src/execution/session-inbox/inbox.js +1 -1
  175. package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
  176. package/dist/src/execution/session-inbox/protocol.js +1 -1
  177. package/dist/src/execution/session-inbox/resume.d.ts +2 -1
  178. package/dist/src/execution/session-inbox/resume.js +1 -1
  179. package/dist/src/execution/session-prewarm.d.ts +8 -0
  180. package/dist/src/execution/session-prewarm.js +1 -0
  181. package/dist/src/execution/skills/instructions.js +1 -1
  182. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  183. package/dist/src/execution/tools/workflow/body.js +1 -1
  184. package/dist/src/execution/tools/workflow/step-context.d.ts +11 -0
  185. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  186. package/dist/src/execution/tools/workflow/step.js +1 -1
  187. package/dist/src/execution/workflow-runtime.js +1 -1
  188. package/dist/src/extensions/git/extension/lib/github-shell-schema.js +1 -1
  189. package/dist/src/framework/sources/modules/sandbox.d.ts +1 -1
  190. package/dist/src/harness/attachment-staging.d.ts +0 -7
  191. package/dist/src/harness/attachment-staging.js +1 -1
  192. package/dist/src/harness/hitl/index.d.ts +2 -1
  193. package/dist/src/harness/hitl/index.js +1 -1
  194. package/dist/src/harness/hitl/view.d.ts +1 -0
  195. package/dist/src/harness/hitl/view.js +1 -0
  196. package/dist/src/harness/model-call/run.js +1 -1
  197. package/dist/src/harness/semantic-errors/rules/sandbox.d.ts +3 -5
  198. package/dist/src/harness/semantic-errors/rules/sandbox.js +1 -1
  199. package/dist/src/harness/step/prompt.js +1 -1
  200. package/dist/src/harness/tool-history-repair.d.ts +9 -0
  201. package/dist/src/harness/tool-history-repair.js +1 -0
  202. package/dist/src/harness/tool-model-output.d.ts +19 -3
  203. package/dist/src/harness/tool-model-output.js +1 -1
  204. package/dist/src/internal/application/compiled-artifacts.js +8 -4
  205. package/dist/src/internal/application/optional-package-import.d.ts +10 -0
  206. package/dist/src/internal/application/optional-package-import.js +1 -1
  207. package/dist/src/internal/application/stamped-package-version.js +1 -1
  208. package/dist/src/internal/attachments/limited-read.d.ts +2 -2
  209. package/dist/src/internal/authored-module-build-options.d.ts +6 -0
  210. package/dist/src/internal/authored-module-build-options.js +1 -1
  211. package/dist/src/internal/authored-module-cache.d.ts +10 -0
  212. package/dist/src/internal/authored-module-cache.js +1 -0
  213. package/dist/src/internal/authored-module-graph.js +1 -1
  214. package/dist/src/internal/authored-module-loader.js +1 -1
  215. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  216. package/dist/src/internal/bundler/nitro-rolldown.d.ts +3 -1
  217. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  218. package/dist/src/internal/bundler/pseudo-packages.d.ts +11 -0
  219. package/dist/src/internal/bundler/pseudo-packages.js +1 -0
  220. package/dist/src/internal/nitro/host/build-extension.d.ts +6 -0
  221. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  222. package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.d.ts +3 -1
  223. package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.js +3 -5
  224. package/dist/src/internal/nitro/host/create-application-nitro.d.ts +2 -3
  225. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  226. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +2 -0
  227. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.js +1 -1
  228. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  229. package/dist/src/internal/nitro/host/dev-build-host.d.ts +83 -0
  230. package/dist/src/internal/nitro/host/dev-build-host.js +1 -0
  231. package/dist/src/internal/nitro/host/dev-build-operations.d.ts +6 -0
  232. package/dist/src/internal/nitro/host/dev-build-operations.js +1 -0
  233. package/dist/src/internal/nitro/host/dev-build-process.d.ts +1 -0
  234. package/dist/src/internal/nitro/host/dev-build-process.js +1 -0
  235. package/dist/src/internal/nitro/host/development-runtime-prune-plugin.d.ts +4 -1
  236. package/dist/src/internal/nitro/host/development-runtime-prune-plugin.js +3 -2
  237. package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +13 -0
  238. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  239. package/dist/src/internal/nitro/host/optional-engine-dependency-plugin.js +1 -1
  240. package/dist/src/internal/nitro/host/prepare-application-host.d.ts +3 -0
  241. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  242. package/dist/src/internal/nitro/host/sandbox-shutdown-plugin.js +1 -1
  243. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  244. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  245. package/dist/src/internal/nitro/host/workflow-sandbox-runtime-plugin.js +1 -1
  246. package/dist/src/internal/nitro/host.js +1 -1
  247. package/dist/src/internal/workflow/local-world-delivery-auth.d.ts +17 -0
  248. package/dist/src/internal/workflow/local-world-delivery-auth.js +1 -0
  249. package/dist/src/internal/workflow/queue-namespace.d.ts +2 -0
  250. package/dist/src/internal/workflow/queue-namespace.js +1 -1
  251. package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -1
  252. package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
  253. package/dist/src/internal/workflow-bundle/builder.js +2 -2
  254. package/dist/src/internal/workflow-bundle/vercel-workflow-output.d.ts +1 -1
  255. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
  256. package/dist/src/protocol/prewarm-session.d.ts +14 -0
  257. package/dist/src/protocol/prewarm-session.js +1 -0
  258. package/dist/src/protocol/routes.d.ts +2 -2
  259. package/dist/src/public/channels/discord/authorization.d.ts +45 -0
  260. package/dist/src/public/channels/discord/authorization.js +3 -0
  261. package/dist/src/public/channels/discord/defaults.d.ts +14 -3
  262. package/dist/src/public/channels/discord/defaults.js +2 -2
  263. package/dist/src/public/channels/discord/discordChannel.d.ts +15 -1
  264. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  265. package/dist/src/public/channels/discord/gateway/connection.d.ts +26 -0
  266. package/dist/src/public/channels/discord/gateway/connection.js +1 -0
  267. package/dist/src/public/channels/discord/gateway/forwarder.d.ts +14 -0
  268. package/dist/src/public/channels/discord/gateway/forwarder.js +1 -0
  269. package/dist/src/public/channels/discord/gateway/index.d.ts +59 -0
  270. package/dist/src/public/channels/discord/gateway/index.js +1 -0
  271. package/dist/src/public/channels/discord/inbound.d.ts +10 -3
  272. package/dist/src/public/channels/discord/inbound.js +2 -2
  273. package/dist/src/public/channels/discord/index.d.ts +3 -2
  274. package/dist/src/public/channels/discord/index.js +1 -1
  275. package/dist/src/public/channels/discord/messages.d.ts +116 -0
  276. package/dist/src/public/channels/discord/messages.js +2 -0
  277. package/dist/src/public/channels/github/checkout.js +1 -1
  278. package/dist/src/public/channels/linq/linqChannel.d.ts +4 -1
  279. package/dist/src/public/channels/linq/linqChannel.js +1 -1
  280. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  281. package/dist/src/public/channels/same-environment-oidc.d.ts +7 -0
  282. package/dist/src/public/channels/same-environment-oidc.js +1 -0
  283. package/dist/src/public/definitions/channel.js +1 -1
  284. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  285. package/dist/src/public/next/server.js +1 -1
  286. package/dist/src/public/sandbox/docker-sandbox.d.ts +6 -1
  287. package/dist/src/public/sandbox/docker.d.ts +1 -8
  288. package/dist/src/public/sandbox/index.d.ts +3 -3
  289. package/dist/src/public/sandbox/just-bash-sandbox.d.ts +87 -7
  290. package/dist/src/public/sandbox/just-bash.d.ts +1 -1
  291. package/dist/src/public/sandbox/provider.d.ts +5 -1
  292. package/dist/src/public/sandbox/provider.js +1 -1
  293. package/dist/src/public/sandbox/vercel-sandbox.d.ts +16 -9
  294. package/dist/src/public/sandbox/vercel.d.ts +0 -1
  295. package/dist/src/public/sandbox/vercel.js +1 -1
  296. package/dist/src/public/tools/agent.d.ts +8 -1
  297. package/dist/src/public/tools/agent.js +1 -1
  298. package/dist/src/react/use-eve-agent.d.ts +1 -1
  299. package/dist/src/runtime/agent/resolve-model.js +1 -1
  300. package/dist/src/runtime/connections/openapi-client.d.ts +2 -0
  301. package/dist/src/runtime/connections/openapi-client.js +1 -1
  302. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  303. package/dist/src/runtime/resolve-agent.js +1 -1
  304. package/dist/src/runtime/resolve-channel.js +1 -1
  305. package/dist/src/runtime/resolve-sandbox.js +1 -1
  306. package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
  307. package/dist/src/runtime/sandbox/registry.d.ts +2 -0
  308. package/dist/src/runtime/sandbox/registry.js +1 -1
  309. package/dist/src/runtime/subagents/workflow.d.ts +6 -0
  310. package/dist/src/runtime/subagents/workflow.js +1 -1
  311. package/dist/src/runtime/workspace/seed-files.d.ts +9 -12
  312. package/dist/src/runtime/workspace/seed-files.js +1 -1
  313. package/dist/src/runtime/workspace/spec.d.ts +1 -1
  314. package/dist/src/runtime/workspace/spec.js +1 -1
  315. package/dist/src/runtime/workspace/types.d.ts +2 -6
  316. package/dist/src/sandbox/provider.d.ts +185 -0
  317. package/dist/src/sandbox/provider.js +1 -0
  318. package/dist/src/sandbox/providers/default.d.ts +20 -19
  319. package/dist/src/sandbox/providers/default.js +1 -1
  320. package/dist/src/sandbox/providers/docker.d.ts +5 -2
  321. package/dist/src/sandbox/providers/docker.js +1 -1
  322. package/dist/src/sandbox/providers/just-bash.d.ts +4 -3
  323. package/dist/src/sandbox/providers/just-bash.js +1 -1
  324. package/dist/src/sandbox/providers/vercel.d.ts +4 -10
  325. package/dist/src/sandbox/providers/vercel.js +1 -1
  326. package/dist/src/sandbox/providers.d.ts +0 -1
  327. package/dist/src/sandbox/providers.js +1 -1
  328. package/dist/src/sandbox/state.d.ts +44 -0
  329. package/dist/src/sandbox/state.js +1 -1
  330. package/dist/src/self-modification/deployed-sandbox.d.ts +4 -9
  331. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  332. package/dist/src/self-modification/filesystem.d.ts +3 -3
  333. package/dist/src/self-modification/remote/config.d.ts +2 -2
  334. package/dist/src/self-modification/remote/config.js +1 -1
  335. package/dist/src/self-modification/setup.d.ts +0 -1
  336. package/dist/src/self-modification/setup.js +8 -8
  337. package/dist/src/setup/integrations/discord/api.d.ts +7 -0
  338. package/dist/src/setup/integrations/discord/api.js +1 -1
  339. package/dist/src/setup/integrations/discord/daemon.d.ts +18 -0
  340. package/dist/src/setup/integrations/discord/daemon.js +21 -0
  341. package/dist/src/setup/integrations/discord/setup.d.ts +24 -4
  342. package/dist/src/setup/integrations/discord/setup.js +5 -4
  343. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  344. package/dist/src/setup/scaffold/create/project.js +1 -1
  345. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  346. package/dist/src/setup/scaffold/version-tokens.d.ts +0 -1
  347. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  348. package/dist/src/shared/agent-definition.d.ts +2 -0
  349. package/dist/src/shared/built-server-start-failure.d.ts +12 -0
  350. package/dist/src/shared/built-server-start-failure.js +3 -0
  351. package/dist/src/shared/framework-eve-server.d.ts +2 -0
  352. package/dist/src/shared/framework-eve-server.js +2 -2
  353. package/dist/src/shared/sandbox-environment.d.ts +4 -10
  354. package/dist/src/shared/sandbox-environment.js +1 -1
  355. package/dist/src/shared/sandbox-network-policy.d.ts +45 -9
  356. package/dist/src/shared/sandbox-provider.d.ts +0 -103
  357. package/dist/src/shared/sandbox-provider.js +1 -1
  358. package/dist/src/shared/sandbox-recorded-data-error.d.ts +4 -0
  359. package/dist/src/shared/sandbox-recorded-data-error.js +1 -0
  360. package/dist/src/shared/sandbox-session-gone-error.d.ts +12 -0
  361. package/dist/src/shared/sandbox-session-gone-error.js +1 -0
  362. package/dist/src/shared/sandbox-session.d.ts +97 -83
  363. package/dist/src/shared/sandbox-template-error.d.ts +19 -4
  364. package/dist/src/shared/sandbox-template-error.js +1 -1
  365. package/dist/src/shared/sandbox-tool-session-error.d.ts +4 -0
  366. package/dist/src/shared/sandbox-tool-session-error.js +1 -0
  367. package/dist/src/shared/skill-package.js +1 -1
  368. package/dist/src/shared/skill-paths.d.ts +4 -5
  369. package/dist/src/shared/skill-paths.js +2 -2
  370. package/dist/src/shared/workflow-sandbox.d.ts +4 -41
  371. package/dist/src/shared/workflow-sandbox.js +1 -1
  372. package/dist/src/svelte/index.js +1 -1
  373. package/dist/src/svelte/use-eve-agent.d.ts +1 -1
  374. package/dist/src/svelte/use-eve-agent.js +1 -1
  375. package/dist/src/tools/model-output.d.ts +23 -5
  376. package/dist/src/tools/model-output.js +1 -1
  377. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  378. package/dist/src/tools/provided/glob.js +1 -1
  379. package/dist/src/tools/provided/grep.js +1 -1
  380. package/dist/src/tools/provided/read-file.js +1 -1
  381. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  382. package/dist/src/tools/provided/workflow.js +1 -1
  383. package/dist/src/tools/provided/write-file.js +1 -1
  384. package/dist/src/tools/workflow-definition.d.ts +19 -4
  385. package/dist/src/vue/index.js +1 -1
  386. package/dist/src/vue/use-eve-agent.d.ts +1 -1
  387. package/dist/src/vue/use-eve-agent.js +1 -1
  388. package/docs/channels/custom.mdx +3 -3
  389. package/docs/channels/discord.mdx +279 -7
  390. package/docs/channels/eve.mdx +13 -2
  391. package/docs/channels/linq.mdx +2 -2
  392. package/docs/channels/mcp.mdx +2 -2
  393. package/docs/channels/overview.mdx +1 -1
  394. package/docs/channels/photon.mdx +1 -1
  395. package/docs/concepts/built-in-tools.md +31 -8
  396. package/docs/concepts/execution-model-and-durability.mdx +6 -101
  397. package/docs/concepts/security-model.md +2 -0
  398. package/docs/concepts/sessions-runs-and-streaming.md +44 -36
  399. package/docs/connections/openapi.mdx +2 -0
  400. package/docs/evals/reporters.mdx +1 -1
  401. package/docs/evals/running.mdx +1 -1
  402. package/docs/guides/client/messages.mdx +1 -1
  403. package/docs/guides/deployment/overview.md +4 -4
  404. package/docs/guides/deployment/self-hosting.md +50 -1
  405. package/docs/guides/dev-tui.md +1 -1
  406. package/docs/guides/dynamic-capabilities.md +1 -1
  407. package/docs/guides/frontend/overview.mdx +26 -6
  408. package/docs/guides/instrumentation/agent-runs.mdx +16 -0
  409. package/docs/guides/self-modification.md +1 -1
  410. package/docs/guides/session-context.md +1 -1
  411. package/docs/instructions.mdx +1 -1
  412. package/docs/reference/agent-files.md +3 -3
  413. package/docs/reference/cli.md +7 -2
  414. package/docs/reference/typescript-api.md +9 -3
  415. package/docs/sandbox/custom-providers.mdx +254 -0
  416. package/docs/sandbox/default.mdx +71 -4
  417. package/docs/sandbox/docker.mdx +15 -3
  418. package/docs/sandbox/index.mdx +27 -103
  419. package/docs/sandbox/just-bash.mdx +54 -0
  420. package/docs/sandbox/meta.json +9 -1
  421. package/docs/sandbox/troubleshooting.mdx +215 -0
  422. package/docs/sandbox/vercel.mdx +48 -7
  423. package/docs/skills.mdx +1 -1
  424. package/docs/subagents/index.mdx +2 -2
  425. package/docs/tools/overview.mdx +19 -0
  426. package/docs/tools/workflows.mdx +73 -5
  427. package/docs/tutorial/run-analysis.mdx +2 -2
  428. package/package.json +14 -20
  429. package/dist/src/compiled/@ai-sdk/code-mode/_run.d.ts +0 -1
  430. package/dist/src/compiled/@ai-sdk/code-mode/index.d.ts +0 -325
  431. package/dist/src/compiled/@ai-sdk/code-mode/index.js +0 -660
  432. package/dist/src/compiled/_chunks/workflow/dist-CyBgVS7g.js +0 -1
  433. package/dist/src/compiled/_chunks/workflow/dist-T5NnW-0k.js +0 -3
  434. package/dist/src/compiled/_chunks/workflow/helpers-DlLD3ov_.js +0 -1
  435. package/dist/src/compiled/_chunks/workflow/private-tQUuwBoQ.js +0 -1
  436. package/dist/src/compiled/_chunks/workflow/resume-hook-DMsV_b4n.js +0 -1
  437. package/dist/src/compiled/_chunks/workflow/serialization-DPdYS_w2.js +0 -16
  438. package/dist/src/compiled/_chunks/workflow/sleep-BY6leHh8.js +0 -1
  439. package/dist/src/compiled/_chunks/workflow/workflow-routes-CwqB063q.js +0 -1
  440. package/dist/src/execution/sandbox/active-handles.d.ts +0 -32
  441. package/dist/src/execution/sandbox/active-handles.js +0 -1
  442. package/dist/src/execution/sandbox/bindings/docker-session.d.ts +0 -6
  443. package/dist/src/execution/sandbox/bindings/docker-session.js +0 -2
  444. package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -15
  445. package/dist/src/execution/sandbox/bindings/immutable-resources.js +0 -2
  446. package/dist/src/execution/sandbox/bindings/microsandbox-create.d.ts +0 -12
  447. package/dist/src/execution/sandbox/bindings/microsandbox-create.js +0 -1
  448. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -42
  449. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +0 -1
  450. package/dist/src/execution/sandbox/bindings/microsandbox-metadata.d.ts +0 -29
  451. package/dist/src/execution/sandbox/bindings/microsandbox-metadata.js +0 -1
  452. package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +0 -18
  453. package/dist/src/execution/sandbox/bindings/microsandbox-network.js +0 -1
  454. package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -37
  455. package/dist/src/execution/sandbox/bindings/microsandbox-options.js +0 -1
  456. package/dist/src/execution/sandbox/bindings/microsandbox-platform.d.ts +0 -21
  457. package/dist/src/execution/sandbox/bindings/microsandbox-platform.js +0 -21
  458. package/dist/src/execution/sandbox/bindings/microsandbox-process.d.ts +0 -3
  459. package/dist/src/execution/sandbox/bindings/microsandbox-process.js +0 -1
  460. package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.d.ts +0 -11
  461. package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.js +0 -1
  462. package/dist/src/execution/sandbox/bindings/microsandbox-runtime.d.ts +0 -82
  463. package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +0 -1
  464. package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -12
  465. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +0 -1
  466. package/dist/src/execution/sandbox/bindings/microsandbox.d.ts +0 -16
  467. package/dist/src/execution/sandbox/bindings/microsandbox.js +0 -1
  468. package/dist/src/execution/sandbox/provider-host-development.d.ts +0 -2
  469. package/dist/src/execution/sandbox/provider-host-development.js +0 -1
  470. package/dist/src/execution/sandbox/provider-host.d.ts +0 -2
  471. package/dist/src/execution/sandbox/provider-host.js +0 -1
  472. package/dist/src/execution/tool-session/sandbox.d.ts +0 -22
  473. package/dist/src/execution/tool-session/sandbox.js +0 -1
  474. package/dist/src/public/sandbox/microsandbox-sandbox.d.ts +0 -48
  475. package/dist/src/public/sandbox/microsandbox-sandbox.js +0 -1
  476. package/dist/src/public/sandbox/microsandbox.d.ts +0 -9
  477. package/dist/src/public/sandbox/microsandbox.js +0 -1
  478. package/dist/src/sandbox/providers/microsandbox.d.ts +0 -12
  479. package/dist/src/sandbox/providers/microsandbox.js +0 -1
  480. package/docs/sandbox/microsandbox.mdx +0 -31
@@ -1,5 +1,5 @@
1
- import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"../../_chunks/workflow/undici-D-ILjOKD.js";import{C as c,E as l,F as u,G as d,H as f,I as p,J as m,K as h,L as g,U as _,V as v,X as y,Y as b,_ as x,_t as S,a as C,c as ee,ct as te,d as ne,et as re,ft as ie,g as ae,gt as oe,ht as se,it as ce,l as le,lt as ue,n as de,o as fe,ot as pe,p as me,pt as w,q as T,r as he,s as ge,u as _e,ut as ve,v as ye,x as E,y as D}from"../../_chunks/workflow/dist-CyBgVS7g.js";import{b as be,f as xe,j as O,k as Se,o as k,p as Ce,r as A,s as we}from"../../_chunks/workflow/dist-T5NnW-0k.js";import{i as j,n as M,r as N,t as Te}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{z as P}from"#compiled/zod/index.js";import{createHash as Ee}from"node:crypto";import{promisify as De}from"node:util";import{fileURLToPath as Oe}from"node:url";import{promises as F}from"node:fs";import I,{access as ke,constants as Ae,mkdir as je,opendir as Me,readFile as Ne,readdir as Pe,readlink as Fe,rm as Ie,unlink as Le,writeFile as Re}from"node:fs/promises";import L from"node:path";import{tmpdir as ze}from"node:os";import{execFile as Be}from"node:child_process";import{setTimeout as Ve}from"node:timers/promises";import He from"node:assert";import{EventEmitter as Ue}from"node:events";var We=class extends O{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 Ge=new Set([`EROFS`,`EACCES`,`EPERM`]);function Ke(e){return e!==void 0&&Ge.has(e)}const qe=S(`@workflow/world-local//buildTargetWarnings`,1,()=>({warnedAboutVercelDeployment:!1}));function Je(e){if(qe.warnedAboutVercelDeployment||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=L.resolve(e),n=ze();t===n||t.startsWith(`${n}${L.sep}`)||(qe.warnedAboutVercelDeployment=!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 Ye(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function Xe(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=Ye(i.slice(s+1));c!==void 0&&n.push(c)}return n}const Ze=De(Be);function Qe(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const $e=((e,t)=>e.join(t))([``,`proc`],`/`);async function et(e){let t=[`${$e}/net/tcp`,`${$e}/net/tcp6`],n=[],r=new Set,i=`${$e}/${e}/fd`;try{let e=(await Pe(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await Fe(`${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 Ne(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=Qe(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 tt(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=Qe(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function nt(e){try{let{stdout:t}=await Ze(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Xe(t,e)}catch{return[]}}async function rt(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await et(e);case`darwin`:return await tt(e);case`win32`:return await nt(e);default:return[]}}catch(e){return a(`[getAllPorts] Detection failed:`,e),[]}}const it=`${Te}/flow?__health`;async function at(e,t={}){let{endpoint:n=it,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 ot(e){let t=await rt();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 at(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(a(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function st(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const ct=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,lt=()=>process.env.WORKFLOW_LOCAL_BASE_URL,ut=st(()=>({dataDir:ct(),baseUrl:lt()}));function dt(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 ft(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??M(`http://localhost`)}async function pt(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 M(`http://localhost:${e.port}`);if(process.env.PORT)return M(`http://localhost:${process.env.PORT}`);let t=await ot({endpoint:N()});if(t)return M(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const R=S(`@workflow/world-local//fs`,1,()=>({ulid:w(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function mt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var ht=class extends O{constructor(e,t){super(`Unsafe ${e} "${mt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function z(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new ht(e,t)}function B(e,...t){let n=L.resolve(e),r=L.resolve(e,...t);if(r!==n&&!r.startsWith(n+L.sep))throw new ht(`path`,t.join(`/`));return r}const gt=process.platform===`win32`;async function V(e,t=5){if(!gt)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`)}async function H(e){let t=await Promise.allSettled(e),n=t.find(e=>e.status===`rejected`);if(n)throw n.reason;return t.map(e=>e.value)}function _t(){R.createdFilesCache.clear(),R.createdDirectoriesCache.clear()}const vt=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function yt(e){return e.replace(vt,``)}function bt(e,t){return e.endsWith(`.${t}`)}function xt(e){return!vt.test(e)}function U(e,t,n,r){return z(`fileId`,n),r!==void 0&&z(`tag`,r),B(e,t,r?`${n}.${r}.json`:`${n}.json`)}const St=[`events`,`steps`];function W(e,t){return z(`runId`,t),L.join(e,t)}async function G(e,t,n,r,i){if(z(`fileId`,n),i!==void 0&&z(`tag`,i),i){let a=await X(B(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(B(e,t,`${n}.json`),r)}async function Ct(e,t){let n=`.${t}.json`;try{return await K(e),(await F.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function wt(e,t,n){let r=`.${t}${n}`;try{return await K(e),(await F.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function Tt(e){let t=L.resolve(e);if(R.createdDirectoriesCache.has(t)){await K(t);return}let n;try{await F.mkdir(t,{recursive:!0})}catch(e){n=e;let r=e.code;if(Ke(r)&&!await Dt(t))throw new We(t,r)}if(n!==void 0){await K(t);return}await K(t),R.createdDirectoriesCache.add(t)}var Et=class extends O{constructor(e){super(`Refusing to use symlinked run directory ${e}: replace it with a real directory.`),this.name=`SymlinkedRunDirError`}};async function K(e){let t=L.basename(L.dirname(e));if(!St.includes(t))return;let n;try{n=await F.lstat(e)}catch(e){if(e.code===`ENOENT`)return;throw e}if(n.isSymbolicLink())throw new Et(e)}async function Dt(e){try{return(await F.stat(e)).isDirectory()}catch{return!1}}async function Ot(e,t){await Tt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return R.createdDirectoriesCache.delete(L.resolve(e)),await Tt(e),t()}}function q(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function kt(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 Y(e,JSON.stringify(t,q,2),n)}async function Y(e,t,n){if(!n?.overwrite){if(R.createdFilesCache.has(e))throw new A(`File ${e} already exists and 'overwrite' is false`);try{throw await F.access(e),R.createdFilesCache.add(e),new A(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${R.ulid()}`,i=!1;try{await Ot(L.dirname(e),async()=>{await F.writeFile(r,t),i=!0,await V(()=>F.rename(r,e))}),R.createdFilesCache.add(e)}catch(e){throw i&&await V(()=>F.unlink(r),3).catch(()=>{}),e}}async function X(e,t){await K(L.dirname(e));try{let n=await V(()=>F.readFile(e,`utf-8`));return t.parse(JSON.parse(n,kt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function At(e){return await K(L.dirname(e)),await F.readFile(e)}async function jt(e){await K(L.dirname(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 Z(e){await K(L.dirname(e));try{await V(()=>F.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${R.ulid()}`,r=!1;try{return await Ot(L.dirname(e),async()=>{await F.writeFile(n,t,{flag:`wx`}),r=!0;try{return await V(()=>F.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await V(()=>F.unlink(n),3).catch(()=>{})}}async function Mt(e,t){try{return await Ot(L.dirname(t),()=>V(()=>F.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Nt(e){return Pt(e,`.json`)}async function Pt(e,t){try{return await K(e),(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}}async function Ft(e,t){let n=L.join(e,t),r;try{r=await F.readdir(n,{withFileTypes:!0})}catch(e){if(e.code===`ENOENT`)return[];throw e}return r.filter(e=>e.isDirectory()).map(e=>L.join(n,e.name))}const It=`key:`;function Lt(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 Rt(e,t,n){return n?`${It}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function zt(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&&z(`filePrefix`,i);let m=L.resolve(t),h=await Nt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Lt(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=L.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof P.ZodError)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?Rt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}var Bt=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`))}}})),Vt=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=65536,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())}}})),Ht=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}})),Ut=t(((t,n)=>{var r=e(`fs`),i=Bt(),a=Vt(),o=Ht(),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;ie(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;ie(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=ie;function ie(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))}}})),Wt=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}})),Gt=t((e=>{var t=Wt();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: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}}})),Kt=t(((e,t)=>{t.exports=Gt()})),qt=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})),Jt=t(((t,r)=>{let i=e(`path`),a=Ut(),o=Kt(),s=n(),c=qt(),l={};function u(e,t){return t.lockfilePath||`${e}.lock`}function d(e,t,n){if(!t.realpath)return n(null,i.resolve(e));t.fs.realpath(e,n)}function f(e,t,n){let r=u(e,t);t.fs.mkdir(r,i=>{if(!i)return c.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`?f(e,{...t,stale:0},n):n(r);if(!p(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));m(e,t,r=>{if(r)return n(r);f(e,{...t,stale:0},n)})})})}function p(e,t){return e.mtime.getTime()<Date.now()-t.stale}function m(e,t,n){t.fs.rmdir(u(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function h(e,t){let n=l[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?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return g(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=c.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?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,h(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function g(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),l[e]===t&&delete l[e],t.options.onCompromised(n)}function _(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:a,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),d(e,t,(e,r)=>{if(e)return n(e);let i=o.operation(t.retries);i.attempt(()=>{f(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=l[r]={lockfilePath:u(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};h(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));v(r,{...t,realpath:!1},e)})})})})}function v(e,t,n){t={fs:a,realpath:!0,...t},d(e,t,(e,r)=>{if(e)return n(e);let i=l[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 l[r],m(r,t,n)})}function y(e,t,n){t={stale:1e4,realpath:!0,fs:a,...t},t.stale=Math.max(t.stale||0,2e3),d(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(u(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!p(r,t)))})}function b(){return l}s(()=>{for(let e in l){let t=l[e].options;try{t.fs.rmdirSync(u(e,t))}catch{}}}),r.exports.lock=_,r.exports.unlock=v,r.exports.check=y,r.exports.getLocks=b})),Yt=t(((e,t)=>{let n=Ut();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}})),Xt=t(((e,t)=>{let n=Jt(),{toPromise:r,toSync:i,toSyncOptions:a}=Yt();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 Zt(e){return Ee(`sha256`).update(e).digest(`hex`)}function Qt(e,t,n){return B(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function $t(e,t,n){let r=[Qt(e,t)];n&&r.push(Qt(e,t,n));for(let e of r){let t;try{t=await I.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function en(e,t,n){let r=[Qt(e,t)];n&&r.push(Qt(e,t,n));for(let e of r)try{return await I.access(e),!0}catch{}return!1}function tn(e,t,n){return B(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function nn(e,t,n){let r=[tn(e,t)];n&&r.push(tn(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 rn(e,t,n){return B(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function an(e,t,n,r){return L.join(rn(e,t,r),`${n}.json`)}async function on(e,t,n){let r=[rn(e,t)];n&&r.push(rn(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 V(()=>I.unlink(L.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await I.rmdir(e).catch(()=>{})}}async function sn(e,t,n){let r=await cn(e,t,n),i=Date.now();if(r.maxId)try{let e=ie(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${_n(i)}`,createdAt:new Date(i)}}async function cn(e,t,n){let r=[];try{let n=L.join(e,W(`events`,t));await K(n),r=await I.readdir(n)}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(!xt(t)&&!(n&&bt(t,n)))continue;let r=yt(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=_e(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function ln(e,t){return L.join(e,`hooks`,`tokens`,`${Zt(t)}.json`)}const un=P.compile(P.object({hookId:P.string().optional(),runId:P.string(),eventId:P.string().optional(),tokenRetentionUntil:P.coerce.date().optional(),claimedFrom:P.object({runId:P.string(),hookId:P.string(),workflowName:P.string().optional(),deploymentId:P.string().optional(),runSpecVersion:P.number().optional()}).optional()}));async function dn(e){try{return await X(e,un)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function fn(e,t,n){let r=ln(e,t);await I.mkdir(L.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,Xt.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new O(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new O(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new O(`Could not release Hook token claim lock`,{cause:e})}return o}function pn(e,t,n){let r=Ee(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return L.join(e,`hooks`,`resumes`,`${r}.json`)}async function mn(e,t,n,r){await fn(e,t,async i=>{let a=ln(e,t),o=await dn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function hn(e,t,n,r){let i=Ee(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return L.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const gn=S(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),_n=e=>gn.next(e),vn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=yt(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return de(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return de(a)}},yn=P.compile(P.object({runId:P.string()})),bn=P.compile(P.object({hookId:P.string(),tag:P.string().optional()}));function xn(e,t){return B(e,`hooks`,`token-index`,Zt(t))}function Sn(e,t){return z(`hookId`,t),B(e,`hooks`,`id-index`,t)}function Cn(e){return B(e,`hooks`,`by-run`)}function wn(e){let t=yt(e);return t===e?void 0:e.slice(t.length+1)}function Tn(e,t){return t?xt(e)||bt(e,t):xt(e)}async function En(e){try{return await X(e,_)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function Dn(e,t,n,r,i,a){z(`runId`,n),z(`eventId`,i),a!==void 0&&z(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(L.join(xn(e,t),o),s),Q(L.join(Sn(e,r),o),s)])}function On(e,t,n,r){return U(e,`hooks/by-run`,`${t}-${n}`,r)}async function kn(e,t,n,r){await Q(On(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function An(e,t,n,r){await Z(On(e,t,n,r)),r&&await Z(On(e,t,n))}async function jn(e,t){z(`runId`,t);let n=Cn(e),r=`${t}-`,i=[];for(let e of await Nt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(L.join(n,`${e}.json`),bn)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function Mn(e,t){await Z(L.join(Cn(e),`${t}.json`))}const Nn=S(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function Pn(){Nn.ensuredBasedirs.clear()}async function Fn(e){let t=L.resolve(e),n=Nn.ensuredBasedirs.get(t);return n||(n=Ln(t).catch(e=>{throw Nn.ensuredBasedirs.delete(t),e}),Nn.ensuredBasedirs.set(t,n)),n}async function In(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function Ln(e){let t=L.join(e,`hooks`,`.hook-index-complete`);try{await I.access(t);return}catch{}let n=async t=>{let n=L.basename(t,`.json`),r=await En(t);if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await Dn(e,i,r.runId,r.correlationId,r.eventId,wn(n))}catch{}};await In(await Ft(e,`events`),8,async e=>In(await Nt(e),32,t=>n(L.join(e,`${t}.json`))));let r=L.join(e,`hooks`);await In(await Nt(r),32,async t=>{let n=null;try{n=await X(L.join(r,`${t}.json`),D)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(n)try{await kn(e,n.runId,n.hookId,wn(t))}catch{}}),await Q(t,``)}async function Rn(e,t,n,r){await Fn(e);let i;try{i=t.kind===`token`?xn(e,t.token):Sn(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=yt(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await Nt(i)).filter(e=>Tn(e,r)).sort((e,t)=>yt(t).localeCompare(yt(e)));for(let t of o){let r=null;try{r=await X(L.join(i,`${t}.json`),yn)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=U(e,W(`events`,r.runId),`${r.runId}-${o}`,wn(t))}catch{continue}let c=await En(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}const zn=`@workflow/world-local`,Bn=S(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function Vn(){return typeof import.meta.url==`string`&&import.meta.url?L.dirname(Oe(import.meta.url)):null}async function Hn(){if(Bn.cached)return Bn.cached;let e=Vn();if(e)try{let t=await Ne(L.join(e,`../package.json`),`utf-8`);return Bn.cached=JSON.parse(t),Bn.cached}catch{}return Bn.cached={name:zn,version:`5.1.0`},Bn.cached}const Un=`version.txt`;var Wn=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Gn=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 Kn(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 qn(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Jn(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:Kn(t.substring(n+1))}}function Yn(e,t){return`${e}@${qn(t)}`}function Xn(e,t){console.warn(`[world-local] Upgrading from version ${qn(e)} to ${qn(t)}`)}async function Zn(e){let t=L.resolve(e);try{await je(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Wn(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await ke(t,Ae.R_OK)}catch(e){let n=e;throw new Wn(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=L.join(t,`.workflow-write-test-${Date.now()}`);try{await Re(n,``),await Le(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Wn(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Qn(e){let t=L.join(L.resolve(e),Un);try{return Jn(await Ne(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function $n(e,t){let n=L.join(L.resolve(e),Un),r=Yn((await Hn()).name,t);await Re(n,r)}const er=/^wrun_[0-9A-Za-z]+-[^/\\]+\.json$/;function tr(e,t,n){if(n.isDirectory()){e.runScoped=!0;return}if(!n.name.endsWith(`.json`))return;let r=L.join(t,n.name);n.isFile()&&er.test(n.name)?e.flat.push(r):e.unrecognized.push(r)}async function nr(e){let t={flat:[],unrecognized:[],runScoped:!1};for(let n of St){let r;try{r=await Me(L.join(e,n))}catch(e){if(e.code===`ENOENT`)continue;throw e}for await(let e of r)tr(t,n,e)}return t}var rr=class extends Error{dataDir;files;constructor(e,t){let n=t.slice(0,5).join(`, `);super(`[world-local] ${L.resolve(e)} holds ${t.length} event/step file(s) this version does not read (${n}${t.length>5?`, …`:``}). If an older version of ${zn} is using this directory, stop it. Then delete the directory, or move or remove those files.`),this.dataDir=e,this.files=t,this.name=`DataDirLayoutError`}};function ir(e,t){return t||qn(e)}async function ar(e){await Zn(e);let t=await nr(e);if(t.unrecognized.length>0||t.runScoped&&t.flat.length>0)throw new rr(e,[...t.unrecognized,...t.flat]);t.flat.length>0&&(console.warn(`[world-local] Deleting local workflow data in "${L.resolve(e)}": it was written by an older version of ${zn} with an incompatible storage layout.`),_t(),Pn(),await Ie(e,{recursive:!0,force:!0,maxRetries:3}),await Zn(e));let n=await Hn(),r=Kn(n.version),i=await Qn(e);if(i===null){await $n(e,r);return}let{version:a}=i;if(qn(a)!==qn(r))try{Xn(a,r),await $n(e,r)}catch(e){let t=ir(a,e instanceof Gn?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${qn(a)} to ${qn(r)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${n.name}@${t}`),e}}const or=S(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function sr(){return or.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),or.apiPromise}async function cr(){return or.tracerPromise||=sr().then(e=>e?e.trace.getTracer(`workflow`):null),or.tracerPromise}async function lr(e,...t){let[n,r]=await Promise.all([cr(),sr()]),{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 ur(e){let t=await sr();if(t)return t.SpanKind[e]}function dr(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const fr=dr(`peer.service`),pr=dr(`rpc.system`),mr=dr(`rpc.service`),hr=dr(`rpc.method`),gr=dr(`workflow.run.id`),_r=dr(`step.id`),vr={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},yr={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},br=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function xr(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 Sr(e,t){return typeof e[t]==`string`?e[t]:void 0}function Cr(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function wr(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 Tr(e,t,n){let r=`${e}.${t}`,i={},a=yr[r],o=a===void 0?br.has(r)?Cr(n[0]):void 0:Sr(n,a);if(o&&Object.assign(i,gr(o)),r===`world.steps.get`){let e=Sr(n,1);e&&Object.assign(i,_r(e))}return i}function Er(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=xr(t);r&&(n=`${e}.${a} ${r}`)}return lr(n,{kind:await ur(`INTERNAL`)},async r=>{r?.setAttributes({...fr(vr.peerService),...pr(vr.rpcSystem),...mr(vr.rpcService),...hr(n),...Tr(e,a,t)});let o=await i(...t),s=wr(o);return s&&r?.setAttributes(gr(s)),o})}}return n}var Dr=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}))(),Or=s(),kr=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,kt)}};const Ar=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,jr=2147483647,Mr=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function Nr(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 Pr(){return{bodyTimeout:Nr(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,0),connections:1e3,headersTimeout:Nr(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,0),keepAliveTimeout:3e4}}const Fr=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function Ir(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(Fr))return!0;t=`cause`in t?t.cause:void 0}return!1}function Lr(e){let t=Pr(),n=ye()?i({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,s=n?void 0:new Or.Agent(t),u=new kr,d=w(),f=new Dr.Sema(Mr),p=new AbortController,m=p.signal,h=new Map,g=new Map,_=async(i,o,c)=>{let p=[];if(c?.idempotencyKey){let e=h.get(c.idempotencyKey);if(e)return{messageId:e}}let _=u.serialize(o),{prefix:v}=l(i),y=E.parse(`msg_${d()}`),b=o,x=b.runId??void 0,S=b.stepId??void 0;if(c?.idempotencyKey){let e=c.idempotencyKey;h.set(e,y),p.push(()=>{h.delete(e)})}return(async()=>{if(c?.delaySeconds&&c.delaySeconds>0){let e=Math.min(c.delaySeconds*1e3,jr);await Ve(e,void 0,{signal:m})}f.tryAcquire()||(a(`[world-local]: concurrency limit (${Mr}) reached, waiting for queue to free up`),await f.acquire());let o=0;try{for(let a=0;a<256;a++){let l={...c?.headers,"content-type":`application/json`,"x-vqs-queue-name":i,"x-vqs-message-id":y,"x-vqs-message-attempt":String(o+1)},u=g.get(v),d,f;try{if(u)d=await u(new Request(j(ft(e),{type:`flow`}),{method:`POST`,headers:l,body:_}));else{let i=await pt(e),a=j(i,{type:`flow`});d=n?await r(a,{method:`POST`,headers:new Headers(l),body:_,agents:n,signal:m,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(a,{method:`POST`,duplex:`half`,dispatcher:s,headers:l,body:_,signal:m})}o++,f=await d.text()}catch(e){let t=e?.name;if(m.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(Ir(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${a+1}), retrying`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},error:String(e)}),await Ve(5e3,void 0,{signal:m});continue}if(d.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,jr);await Ve(t,void 0,{signal:m})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${o}, HTTP ${d.status})`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},handlerError:f}),await Ve(5e3,void 0,{signal:m})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S}})}finally{f.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(Ir(e)?console.error(`[local world] Queue operation failed: detected "${Fr}". 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:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of p)e()}),{messageId:y}},v=P.compile(P.object({"x-vqs-queue-name":c,"x-vqs-message-id":E,"x-vqs-message-attempt":P.coerce.number()}));return{queue:_,createQueueHandler:(e,t)=>async n=>{let r=v.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 kr().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a});if(typeof s==`object`&&s&&`invoke`in s&&s.invoke===!0)return Response.json({result:e});let n=null;return typeof e==`object`&&e&&`timeoutSeconds`in e&&typeof e.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,Ar)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Hn()).version}`,registerHandler(e,t){g.set(e,t)},async close(){m.aborted||(p.abort(),n&&o(n),await s?.close())}}}function Rr(e,t){if(t===`none`){let{dynamicWorkflowCode:t,...n}=e;return{...n,input:void 0,output:void 0}}return e}function zr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Br(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function Vr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Hr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a,forceClaimedFrom:o}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,...o!==void 0&&{claimedFrom:o},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 Ur(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Wr(e,t,n){let r=await G(e,`runs`,t,v,n);return r?f(r.status):!1}async function Gr(e,t,n,r){let i=async t=>{if(await Wr(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await en(e,t.correlationId,r)},a=await Rn(e,t,e=>Ur(e,n)&&i(e),r);return a&&Ur(a,n)?a:null}async function Kr(e,t,n){let r=Hr(t);return await Q(ln(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil,...r.claimedFrom&&{claimedFrom:r.claimedFrom}})),await kn(e,r.runId,r.hookId,n),await Q(U(e,`hooks`,r.hookId,n),JSON.stringify(r,q,2)),r}async function qr(e,t,n){let r=await Gr(e,{kind:`token`,token:t},e=>Vr(e)===t,n);return r?Kr(e,r,n):null}async function Jr(e,t,n){let r=await Gr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Kr(e,r,n):null}function Yr(e,t){async function n(n){return await en(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Wr(e,n.runId,t)}async function r(n){let r=await $t(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await dn(ln(e,i));if(a?.hookId)try{let o=await G(e,`hooks`,a.hookId,D,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new we(i)}else if(o)return null}catch(e){if(!ht.is(e))throw e;return null}let o=L.join(e,`hooks`),s=await Nt(o),c=!1;for(let e of s){let t=await X(L.join(o,`${e}.json`),D);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new we(i)}}if(c)throw new we(i);return null}async function a(r,i){z(`hookId`,r);let a=await G(e,`hooks`,r,D,t);if(a&&!await n(a))throw new we(r);let o=a??await Jr(e,r,t);if(!o)throw new we(r);let s=i?.resolveData||`all`;return Br({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await qr(e,n,t);if(!r)throw new we(n);return r}async function s(t){let r=L.join(e,`hooks`),i=t.resolveData||`all`,a=await zt({directory:r,schema:D,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=>Br(e,i))}}return{get:a,getByToken:o,list:s}}async function Xr(e,t){await Fn(e);for(let n of await jn(e,t)){if(n.hookId){let r=null,i=null;try{i=U(e,`hooks`,n.hookId,n.tag),r=await X(i,D)}catch(e){if(!ht.is(e)&&!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await mn(e,r.token,r.runId,r.hookId),await Z(hn(e,r.token,r.runId,r.hookId)),await Z(i)}}await Mn(e,n.fileId)}}const Zr=S(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),Qr=e=>Zr.next(e),$r=P.compile(P.object({streams:P.array(P.string())}));function ei(e){return e===1}function ti(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function ni(e){return ei(e[0])}function ri(e){return{eof:ni(e),chunk:Buffer.from(e.subarray(1))}}async function ii(e){try{return await I.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function ai(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 oi(e,t){return z(`streamName`,t),L.join(e,t)}async function si(e,t,n){let r=oi(e,t),i=await ii(r),a=new Map;return ai(a,i,`.json`),ai(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&ai(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const ci=`chnk_${`0`.repeat(26)}`;async function li(e,t,n){let r=L.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{z(`runId`,t),a=(await G(e,`streams/runs`,t,$r,n))?.streams??[]}catch(e){ui(`streams of ${t}`,e);return}for(let e of a)try{let t=oi(r,e);await Y(L.join(t,`${ci}${i}.bin`),ti({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await ii(t))e.startsWith(ci)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await V(()=>I.unlink(L.join(t,e))).catch(t=>{t.code!==`ENOENT`&&ui(e,t)})}catch(t){ui(e,t)}}function ui(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function di(e,t){let n=t?`.${t}`:``,r=new Ue,i=new Set;async function a(n,r){z(`runId`,n),z(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=U(e,`streams/runs`,n,t),s=(await G(e,`streams/runs`,n,$r,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_${Qr()}`;await a(await t,i);let l=o(s),u=ti({chunk:l,eof:!1});await Y(L.join(oi(L.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_${Qr()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=ti({chunk:t,eof:!1});return await Y(L.join(oi(L.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_${Qr()}`;await a(await t,i),await Y(L.join(oi(L.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),ti({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return z(`runId`,n),(await G(e,`streams/runs`,n,$r,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await si(L.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=L.join(c,`${e}${t}`);if(f<l){if(ei(await jt(n))){u=!0;break}f++;continue}if(d.length>=a){ei(await jt(n))?u=!0:f++;break}let r=ri(await At(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 si(L.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ei(await jt(L.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=L.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 si(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`;ei(await jt(L.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=ri(await At(L.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 si(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=ri(await At(L.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 fi(e){let t=ue(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${pe} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function pi(e,t){return{...e,input:void 0,output:void 0,error:void 0,dynamicWorkflowCode:void 0,expiredAt:t}}async function mi(e,t,n){await Promise.all([gi(L.join(e,W(`steps`,t)),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),gi(L.join(e,W(`events`,t)),t,e=>{let t=e.eventData;if(t&&typeof t==`object`){for(let n of re(String(e.eventType)))delete t[n];(e.eventType===`run_created`||e.eventType===`run_started`)&&(delete t.dynamicWorkflowCode,delete t.dynamicWorkflowCodeRef)}}),_i(e,t),li(e,t,n)])}const hi=P.record(P.string(),P.any()),$=P.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of re(String(e.eventType)))n in t||(t[n]=void 0)}return e},_);async function gi(e,t,n){let r;try{r=await Nt(e)}catch(t){vi(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=L.join(e,`${i}.json`);try{let e=await X(r,hi);if(!e)continue;n(e),await J(r,e,{overwrite:!0})}catch(e){vi(r,e)}}}async function _i(e,t){let n;try{await Fn(e),n=await jn(e,t)}catch(e){vi(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=U(e,`hooks`,r.hookId,r.tag),i=await X(n,hi);if(!i||i.runId!==t)continue;i.metadata=void 0,await J(n,i,{overwrite:!0})}catch(e){vi(r.hookId,e)}}function vi(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const yi=new Ue;yi.setMaxListeners(0);function bi(){return se(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function xi(e){yi.emit(`run:${e}`)}function Si(e,t,n){return t<=0||n?.aborted?Promise.resolve():new Promise(r=>{let i=`run:${e}`,a=!1,o=()=>{a||(a=!0,clearTimeout(s),yi.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);yi.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function Ci(e,t,n,r,i,a){if(f(a.status)||await nn(e,t))throw new xe(`Workflow run "${t}" is already in a terminal state`);let o=an(e,t,n);await Q(o,r);try{if(await nn(e,t)||await Mt(o,i)!==`linked`)throw new xe(`Workflow run "${t}" is already in a terminal state`)}finally{await I.unlink(o).catch(()=>{})}}async function wi(e,t,n,r,i){z(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(tn(e,t),``),await on(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},o=fi(i.attributes),s=o?pi(i,n):i;return await J(B(e,`runs`,`${t}.json`),s,{overwrite:!0}),xi(t),await Xr(e,t),o&&await mi(e,t,void 0),{event:void 0,run:Rr(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${_n()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:8},c=`${t}-${i}`,l=B(e,W(`events`,t),`${c}.json`);return n.eventType===`hook_received`?await Ci(e,t,i,JSON.stringify(s,q,2),l,r):await J(l,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 Ti=S(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function Ei(e,t){let n=Ti.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{Ti.byKey.get(e)===r.task&&Ti.byKey.delete(e)}})();return r.task=i,Ti.byKey.set(e,i),i}function Di(e,t){let n=(async(n,r)=>{z(`runId`,n);let i=await G(e,`runs`,n,v,t);if(!i)throw new Se(n);return Rr(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let r=Date.now()+(t?.timeoutMs??0);for(;;){let i=await n(e,t);if(f(i.status))return i;let a=r-Date.now();if(a<=0||t?.signal?.aborted)return i;await Si(e,Math.min(a,bi()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof Se)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await zt({directory:L.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:vn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>Rr(e,`none`))}:r}),experimentalSetAttributes:async(n,r,i)=>(z(`runId`,n),Ei(n,async()=>{let a=await G(e,`runs`,n,v,t);if(!a)throw new Se(n);try{ve(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof ce,e}let o=te(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await J(U(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const Oi=864e5;function ki(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new O(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Oi}const Ai=P.compile(P.object({eventId:P.string()})),ji=P.compile(P.object({runId:P.string(),resumeId:P.string(),hookId:P.string(),eventId:P.string(),payloadDigest:P.string().optional()}));function Mi(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function Ni(e,t,n,r){let i=await cn(e,t,r);for(let a of i.ids){let i=await G(e,W(`events`,t),`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&Mi(i,n))return i}return null}async function Pi(e,t,n){if(t.hookId&&await en(e,t.hookId,n))return!0;let r=await G(e,`runs`,t.runId,v,n);return r?f(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Fi(e){try{return await X(e,Ai)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}function Ii(e){return ne(e.eventId)?e.eventId:null}function Li(e,t){let n=yt(t).slice(e.length+1);return ne(n)?n:null}async function Ri(e,t,n){return(await zt({directory:L.join(e,W(`events`,t)),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:vn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function zi(e,t,n,r,i){let a=`${t}-${r}`,o=await G(e,W(`events`,t),a,$,i);if(!o||o.eventType!==`hook_created`||o.correlationId!==n||await G(e,`hooks`,n,D,i))return;let s=Hr(o);await Dn(e,s.token,t,n,r,i),await kn(e,t,n,i),await Q(U(e,`hooks`,n,i),JSON.stringify(s,q,2))}async function Bi(e,t,n,r,i){let a=hn(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await Fi(a))?.eventId??null}function Vi(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 Hi(e,t){let n=L.join(e,`waits`),r=await Nt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(L.join(n,`${e}.json`))}async function Ui(e,t,n,r){return Ei(t,async()=>{let i=(await X(U(e,`runs`,t,n),v))?.attributes??r.attributes,a={...r,attributes:i},o=f(a.status)&&fi(i);return o&&(a=pi(a,new Date)),await J(U(e,`runs`,t,n),a,{overwrite:!0}),f(a.status)&&xi(t),{run:a,purged:o}})}function Wi(e,t){let n=ki(),r=4194304,i=new Map,a=new Map,o=new Map,s=0;function c(e){let t=i.get(e);if(!t)return;i.delete(e),s-=a.get(e)??0,a.delete(e);let n=o.get(t.runId);n?.delete(e),n?.size===0&&o.delete(t.runId)}function l(e){for(let t of o.get(e)??[])c(t)}function _(){i.clear(),a.clear(),o.clear(),s=0,x.clear()}let x=new Map;function S(e){return t?`${e}.${t}`:e}async function ee(n,r){let i=`${n}-${me(r)}`;for(let r of t?[U(e,W(`events`,n),i,t),U(e,W(`events`,n),i)]:[U(e,W(`events`,n),i)])try{return await I.stat(r),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function re(n,r){let i=S(n),a=x.get(i);if(a===void 0||r?.rescan){let r=await cn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},x.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 ee(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function ie(e,t){let n=_e(t);if(n===null)return;let r=x.get(S(e));r&&(r.published=Math.max(r.published,n))}async function se(e){let t=await re(e);return t===null?`evnt_${_n()}`:me(t)}async function ce(n){let r=await re(n,{rescan:!0});return r===null?sn(e,n,t):{eventId:me(r),createdAt:new Date}}function le(e,t,n){if(n>r)return;for(;i.size>0&&(i.size>=1e3||s+n>r);){let e=i.keys().next().value;c(e)}i.set(e,t),a.set(e,n),s+=n;let l=o.get(t.runId)??new Set;l.add(e),o.set(t.runId,l)}function ue(e,t,n){if(b(e.eventType)){l(e.runId);return}let i=Buffer.byteLength(n);if(i>r)return;let a=$.safeParse(JSON.parse(n,kt));a.success&&le(t,a.data,i)}async function fe(n){let r=n;for(let n=0;;n++){let i=U(e,W(`events`,r.runId),`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,q,2),o=_e(r.eventId);if(o===null)return await Y(i,a),ue(r,i,a),r;if(await Q(i,a))return ie(r.runId,r.eventId),ue(r,i,a),r;let s=await re(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});He(s!==null),r={...r,eventId:me(s)}}}async function pe(n,r){let i=await $t(e,n,t);if(i.committed)throw i.forceClaimedBy?new k(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new we(n)}let w=(t,n)=>zt({directory:L.join(e,W(`events`,t)),schema:$,cachedItems:i,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:vn(`evnt`),getId:e=>e.eventId,getSortKey:Ii,getSortKeyFromFileId:e=>Li(t,e)}),ye=new Map,E=new Map,j={clearCache:_,async create(r,i,a){if(i.eventType===`hook_created`&&i.eventData.tokenRetentionUntil!==void 0&&i.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new O(`Hook minimum retention cannot exceed ${n/Oi} days in the Local World.`,{status:400});if(r!=null&&r!==``&&z(`runId`,r),`correlationId`in i&&typeof i.correlationId==`string`&&z(`correlationId`,i.correlationId),m(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.${t}`:`${r}-${i.correlationId}`;return Vi(ye,e,o)}if(T(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.hook.${t}`:`${r}-${i.correlationId}.hook`;return Vi(E,e,o)}return o();async function o(){let n=``,o=!1,s=null,c=new Date,_;if(i.eventType===`run_created`&&(!r||r===``))_=`wrun_${_n()}`;else if(r)_=r;else throw Error(`runId is required for non-run_created events`);if(i.eventType===`run_created`&&r&&r!==``){let e=he(_,`wrun_`);if(e)throw new O(e)}let x=i.specVersion??8,S=null;if(i.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(i.eventType)&&(S=await G(e,`runs`,_,v,t),i.eventType===`run_started`&&!S&&`eventData`in i&&i.eventData)){let n=i.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c};if(await Q(U(e,`runs`,_,t),JSON.stringify(r,q))){let e=await se(_);await fe({eventType:`run_created`,runId:_,eventId:e,createdAt:c,specVersion:x,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),S=r}else S=await G(e,`runs`,_,v,t)}}if(n=await se(_),!S&&(i.eventType===`run_failed`||i.eventType===`attr_set`||i.eventType===`run_started`))throw new Se(_);if(S){if(ge(S.specVersion))throw new Ce(S.specVersion,8);if(C(S.specVersion))return wi(e,_,i,S,a&&{resolveData:ae(a.resolveData)})}let ee=d(i),le=ee&&i.eventType===`step_started`;if(S&&f(S.status)){if(i.eventType===`run_cancelled`&&S.status===`cancelled`){let e=await fe({...i,runId:_,eventId:n,createdAt:c,specVersion:x}),t=a?.resolveData??`all`;return{event:y(e,t),run:S,...S?{maxEvents:oe()}:{}}}if(i.eventType===`run_started`)throw new xe(`Workflow run "${_}" is already in terminal state "${S.status}"`);if(b(i.eventType))throw new A(`Cannot transition run from terminal state "${S.status}"`);if(ee)throw new A(`Cannot create new entities on run in terminal state "${S.status}"`);if(i.eventType===`attr_set`)throw new A(`Cannot set attributes on run in terminal state "${S.status}"`)}let T=null;if(m(i.eventType)&&i.eventType!==`step_created`&&i.correlationId){let n=`${_}-${i.correlationId}`;if(T=await G(e,W(`steps`,_),n,p,t),!T&&!le)throw new O(`Step "${i.correlationId}" not found`);if(le&&T)throw new A(`Step "${i.correlationId}" already created`);if(T){if(g(T.status))throw new A(`Cannot modify step in terminal state "${T.status}"`);if(S&&f(S.status)&&(T.status!==`running`||i.eventType===`step_started`))throw new xe(`Cannot ${i.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${S.status}"`)}}if(h(i.eventType)&&i.correlationId){if(i.eventType===`hook_received`&&a?.resumeId){let n=await X(pn(e,_,a.resumeId),ji);if(n&&n.hookId===i.correlationId&&(!a.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===a.resumePayloadDigest)){let r=await G(e,W(`events`,_),`${_}-${n.eventId}`,$,t),i=r&&Mi(r,n)?r:await Ni(e,_,n,t);if(i)return{event:i}}}if(i.eventType===`hook_received`&&await pe(i.correlationId,i.eventData?.token),!await G(e,`hooks`,i.correlationId,D,t))throw new we(i.correlationId);if(i.eventType===`hook_received`&&a?.resumeId){let r=pn(e,_,a.resumeId),c=async r=>{if(r.hookId!==i.correlationId)throw new A(`hook_received resumeId "${a.resumeId}" already recorded for a different hook`);if(a.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==a.resumePayloadDigest)throw new A(`hook_received resumeId "${a.resumeId}" already recorded with a different payload`);let c=await G(e,W(`events`,_),`${_}-${r.eventId}`,$,t);if(c&&Mi(c,r))return{event:c};let l=await Ni(e,_,r,t);return l?{event:l}:(s=r.eventId,c||(n=r.eventId,o=!0),null)},l=await X(r,ji);if(l){let e=await c(l);if(e)return e}else if(o=!ne(n),s=n,!await Q(r,JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}))){s=null;let e=await X(r,ji);if(e){let t=await c(e);if(t)return t}}}}let ye,E={...i,runId:_,eventId:n,createdAt:c,specVersion:x,...i.eventType===`hook_received`&&a?.resumeId?{resumeId:a.resumeId}:{}};if(i.eventType===`run_started`&&`eventData`in E&&delete E.eventData,E.eventType===`run_created`&&E.eventData){let{dynamicWorkflowCode:e,dynamicWorkflowCodeRef:t,...n}=E.eventData;E={...E,eventData:n}}if(le&&E.eventType===`step_started`&&E.eventData){let{input:e,...t}=E.eventData;E={...E,eventData:t}}let k,j=!1,M,N,Te,P=!1,Ee;if(b(i.eventType)&&S){await Q(tn(e,_,t),``),await on(e,_,t);let r=await ce(_);n=r.eventId,E={...E,eventId:n,createdAt:r.createdAt}}if(i.eventType===`run_created`&&`eventData`in i){let n=i.eventData;if(ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),k={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c},!await Q(U(e,`runs`,_,t),JSON.stringify(k,q,2)))throw new A(`Workflow run "${_}" already exists`)}else if(i.eventType===`run_started`){if(S){if(S.status===`running`){if(a?.skipPreload)return{run:S,maxEvents:oe()};let e=await w(_,{limit:oe()});return{run:S,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:oe()}}let n=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:S.startedAt??c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,j=n.purged}}else if(i.eventType===`run_completed`&&`eventData`in i){let n=i.eventData;if(S){let r=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`run_failed`&&`eventData`in i){let n=i.eventData;if(S){let r=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`run_cancelled`){if(S){let n=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,j=n.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`attr_set`&&S)k=await Ei(_,async()=>{let n=await X(U(e,`runs`,_,t),v);if(!n)throw new Se(_);if(ve(i.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:i.eventData.allowReservedAttributes===!0}),i.correlationId&&i.eventData.writer.type===`workflow`&&!await Q(B(e,`.locks`,`attributes`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Attribute event "${i.correlationId}" already exists`);let r={...n,attributes:te(n.attributes,i.eventData.changes),updatedAt:c};return await J(U(e,`runs`,_,t),r,{overwrite:!0}),r});else if(i.eventType===`step_created`&&`eventData`in i){if(!await Q(B(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Step "${i.correlationId}" already created`);let n=i.eventData;M={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x};let r=`${_}-${i.correlationId}`;await J(U(e,W(`steps`,_),r,t),M)}else if(i.eventType===`step_started`){if(!T&&le){let n=i.eventData;if(await Q(B(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``)){let r={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x};await J(U(e,W(`steps`,_),`${_}-${i.correlationId}`,t),r);let a=await se(_);await fe({eventType:`step_created`,runId:_,eventId:a,createdAt:c,specVersion:x,correlationId:i.correlationId,eventData:{stepName:n.stepName,input:n.input}}),T=r,P=!0}else throw new A(`Step "${i.correlationId}" already created`)}if(T){if(T.retryAfter&&T.retryAfter.getTime()>Date.now())throw new be(`Cannot start step "${i.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((T.retryAfter.getTime()-Date.now())/1e3)});let n=`${_}-${i.correlationId}`,r=await G(e,W(`steps`,_),n,p,t);if(r&&g(r.status))throw new A(`Cannot modify step in terminal state "${r.status}"`);M={...T,status:`running`,startedAt:T.startedAt??c,attempt:T.attempt+1,retryAfter:void 0,updatedAt:c},await J(U(e,W(`steps`,_),n,t),M,{overwrite:!0})}}else if(i.eventType===`step_completed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...T,status:`completed`,output:n.result,completedAt:c,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_failed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...T,status:`failed`,error:n.error,completedAt:c,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_retrying`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;M={...T,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`hook_created`&&`eventData`in i){let r=i.eventData,s=ln(e,r.token),l,u=()=>JSON.stringify({token:r.token,hookId:i.correlationId,runId:_,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil,...l&&{claimedFrom:l}}),d=await fn(e,r.token,async a=>{let o=await dn(s);if(o||=(a.throwIfAborted(),await Z(s),await qr(e,r.token,t),await dn(s)),!o)return a.throwIfAborted(),He(await Q(s,u())),{status:`claimed`};if(o.runId===_&&o.hookId===i.correlationId)return{status:`owned`,claim:o};if(!await Pi(e,o,t)){if(r.force!==!0||!o.hookId)return{status:`conflict`,claim:o};a.throwIfAborted();let s=await G(e,`runs`,o.runId,v,t),u=s!==null&&!f(s.status);if(l={runId:o.runId,hookId:o.hookId,...u&&{workflowName:s.workflowName,deploymentId:s.deploymentId,runSpecVersion:s.specVersion}},u&&(s.specVersion??1)<8)return{status:`conflict`,claim:o,forceRefusedReason:`victim-spec-version`};let d=await Ri(e,_,i.correlationId);d?(n=d,ye={...E,eventId:n}):(ye=await fe({...E,eventData:{...E.eventData,forceClaimedFrom:l}}),n=ye.eventId),await kn(e,_,i.correlationId,t),await J(U(e,`hooks`,i.correlationId,t),{runId:_,hookId:i.correlationId,token:r.token,metadata:r.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:c,specVersion:x,isWebhook:r.isWebhook??!1,isSystem:r.isSystem??!1,tokenRetentionUntil:r.tokenRetentionUntil,claimedFrom:l},{overwrite:!0});let p=await Q(Qt(e,o.hookId,t),JSON.stringify({forceClaimedBy:{runId:_,hookId:i.correlationId}}));u&&p&&await fe({eventType:`hook_disposed`,correlationId:o.hookId,eventData:{token:r.token,forceClaimedBy:{runId:_,hookId:i.correlationId}},runId:o.runId,eventId:await se(o.runId),createdAt:new Date,specVersion:s.specVersion})}return a.throwIfAborted(),l?await Y(s,u(),{overwrite:!0}):await Z(s),o.hookId&&(await Z(U(e,`hooks`,o.hookId,t)),await Z(hn(e,r.token,o.runId,o.hookId)),await An(e,o.runId,o.hookId,t)),a.throwIfAborted(),l||He(await Q(s,u())),{status:`claimed`}});if(d.status===`owned`&&d.claim.claimedFrom&&(l=d.claim.claimedFrom),d.status===`owned`){let a=d.claim,s;if(a.eventId)s=a.eventId;else{let a=await Ri(e,_,i.correlationId);if(a!==null)throw await zi(e,_,i.correlationId,a,t),new A(`Hook "${i.correlationId}" already created`);let o=await Bi(e,r.token,_,i.correlationId,n);if(o===null)throw new A(`Hook "${i.correlationId}" already created`);s=o}n=s,o=!0;let l=de(n.replace(/^evnt_/,``))??c;E={...i,eventData:{...i.eventData,tokenRetentionUntil:a.tokenRetentionUntil},runId:_,eventId:n,createdAt:l,specVersion:x}}if(d.status===`conflict`){let e=d.claim,t=await fe({eventType:`hook_conflict`,correlationId:i.correlationId,eventData:{token:r.token,conflictingRunId:e.runId,...d.forceRefusedReason!==void 0&&{forceRefusedReason:d.forceRefusedReason}},runId:_,eventId:n,createdAt:c,specVersion:x}),o=a?.resolveData??`all`,s=typeof a?.sinceCursor==`string`?await w(_,{sortOrder:`asc`,cursor:a.sinceCursor}):void 0,l={event:y(t,o),run:k,step:M,hook:void 0};return s?{...l,events:o===`none`?s.data.map(e=>y(e,o)):s.data,cursor:s.cursor,hasMore:s.hasMore}:l}l&&(E={...E,eventData:{...E.eventData,forceClaimedFrom:l}});let p=E.eventData;N={runId:_,hookId:i.correlationId,token:p.token,metadata:p.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:E.createdAt,specVersion:x,isWebhook:p.isWebhook??!1,isSystem:p.isSystem??!1,tokenRetentionUntil:p.tokenRetentionUntil,...l&&{claimedFrom:l}},Ee=d.status===`owned`||l?{overwrite:!0}:void 0,await Dn(e,r.token,_,i.correlationId,n,t)}else if(i.eventType===`hook_disposed`){if(!await Q(Qt(e,i.correlationId,t),``))throw new A(`Hook "${i.correlationId}" already disposed`);let n=U(e,`hooks`,i.correlationId,t),r=await G(e,`hooks`,i.correlationId,D,t);r&&(await mn(e,r.token,r.runId,r.hookId),await Z(hn(e,r.token,r.runId,r.hookId))),await Z(n),await An(e,_,i.correlationId,t)}else if(i.eventType===`wait_created`&&`eventData`in i){let n=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new A(`Wait "${i.correlationId}" already exists`);let r=i.eventData;Te={waitId:n,runId:_,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x},await J(U(e,`waits`,n,t),Te)}else if(i.eventType===`wait_completed`){let n=`${_}-${i.correlationId}`,r=B(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new A(`Wait "${i.correlationId}" already completed`);let a=await G(e,`waits`,n,u,t);if(!a)throw await I.unlink(r).catch(()=>{}),new O(`Wait "${i.correlationId}" not found`);Te={...a,status:`completed`,completedAt:c,updatedAt:c},await J(U(e,`waits`,n,t),Te,{overwrite:!0})}if(i.eventType===`hook_received`&&i.correlationId&&await pe(i.correlationId,i.eventData?.token),i.eventType===`hook_created`&&i.correlationId){let n=await $t(e,i.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new A(`Hook "${i.correlationId}" was force-claimed by another run before its creation was journaled`)}let De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),F=async r=>{let i=_e(n);if(o||i===null)return!1;let a=await re(_,{rescan:r>0&&r%8==0,atLeast:i+1});return a!==null&&(n=me(a),E={...E,eventId:n},De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),!0)},ke=!1;ye&&(E=ye,De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),ke=!0);for(let r=0;!ke;r++){if(i.eventType===`hook_received`){let r=await nn(e,_,t),i=r?null:await G(e,`runs`,_,v,t);if(r||i&&f(i.status))throw new xe(`Workflow run "${_}" is already in a terminal state`);let a=an(e,_,`${n}.${_n()}`,t);if(!await Q(a,Oe))throw new O(`Failed to stage event "${n}" for run "${_}": staging path already exists`);try{if(await nn(e,_,t))throw new xe(`Workflow run "${_}" is already in a terminal state`);let n=await Mt(a,De);if(n===`missing`)throw new xe(`Workflow run "${_}" is already in a terminal state`);ke=n===`linked`}finally{await Z(a).catch(()=>{})}}else ke=await Q(De,Oe);if(ke){ie(_,n);break}if(i.eventType===`hook_received`&&a?.resumeId){let r=await G(e,W(`events`,_),`${_}-${n}`,$,t);if(r&&Mi(r,{runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n}))return{event:r}}if(i.eventType===`hook_created`&&i.correlationId){let r=await G(e,W(`events`,_),`${_}-${n}`,$,t);if(r?.eventType===`hook_created`&&r.correlationId===i.correlationId)break}if(!await F(r))break}if(!ke)throw i.eventType===`hook_created`&&i.correlationId&&await zi(e,_,i.correlationId,n,t),new A(`Event "${n}" already exists for run "${_}"`);ue(E,De,Oe),i.eventType===`hook_received`&&a?.resumeId&&s!==null&&s!==n&&await Y(pn(e,_,a.resumeId),JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}),{overwrite:!0}),N&&i.eventType===`hook_created`&&(await kn(e,N.runId,N.hookId,t),await J(U(e,`hooks`,N.hookId,t),N,Ee)),j&&(await mi(e,_,t),l(_));let Ae=a?.resolveData??`all`,je=y(E,Ae),Me;if(i.eventType===`run_started`&&k&&!a?.skipPreload&&(Me=await w(_,{limit:oe()})),typeof a?.sinceCursor==`string`){let e=await w(_,{sortOrder:`asc`,cursor:a.sinceCursor});Me=Ae===`none`?{...e,data:e.data.map(e=>y(e,Ae))}:e}let Ne={event:je,run:k,step:M,hook:N,wait:Te,...P?{stepCreated:!0}:{},...k?{maxEvents:oe()}:{}};return Me?{...Ne,events:Me.data,cursor:Me.cursor,hasMore:Me.hasMore}:Ne}},async get(n,r,i){z(`runId`,n),z(`eventId`,r);let a=`${n}-${r}`,o=await G(e,W(`events`,n),a,$,t);if(!o)throw Error(`Event ${r} in run ${n} not found`);let s=i?.resolveData??`all`;return y(o,s)},async list(e){let{runId:t}=e;z(`runId`,t);let n=e.resolveData??`all`,r=await w(t,{...e.pagination,limit:e.pagination?.limit??oe()});return n===`none`?{...r,data:r.data.map(e=>y(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;z(`correlationId`,n),z(`runId`,t.runId);let r=t.resolveData??`all`,a=await zt({directory:L.join(e,W(`events`,t.runId)),schema:$,cachedItems:i,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:vn(`evnt`),getId:e=>e.eventId,getSortKey:Ii,getSortKeyFromFileId:e=>Li(t.runId,e)});return r===`none`?{...a,data:a.data.map(e=>y(e,r))}:a}};async function M(e,t,n){if(!e.event)return e;let r=_e(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await j.list({runId:e.event.runId,pagination:{cursor:`${It}${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 N=(async(e,t,n)=>{if(n?.eventCount===void 0)return j.create(e,t,n);let r=n.resolveData??`all`,i=await j.create(e,t,n);return typeof n.sinceCursor==`string`?i:M(i,n.eventCount,r)});return{...j,create:N}}function Gi(e){let t=L.join(e,`snapshots`);function n(e){return z(`runId`,e),B(t,`${e}.snapshot`)}return{async save(e,r,i){await Tt(t),await Y(n(e),Buffer.from(le(i,r)),{overwrite:!0})},async load(e){let t;try{t=await At(n(e))}catch(e){if(e.code===`ENOENT`)return null;throw e}return ee(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},async delete(e){await I.rm(n(e),{force:!0})}}}function Ki(e,t){return{get:(async(n,r,i)=>{z(`runId`,n),z(`stepId`,r);let a=`${n}-${r}`,o=await G(e,W(`steps`,n),a,p,t);if(!o)throw Error(`Step ${r} in run ${n} not found`);return zr(o,i?.resolveData??`all`)}),list:(async t=>{z(`runId`,t.runId);let n=t.resolveData??`all`,r=await zt({directory:L.join(e,W(`steps`,t.runId)),schema:p,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:vn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function qi(e,t){let n=Di(e,t),r=Ki(e,t),i=Wi(e,t),a=Yr(e,t),o=Gi(e);return{runs:Er(`world.runs`,n),steps:Er(`world.steps`,r),events:Er(`world.events`,i),hooks:Er(`world.hooks`,a),experimental_snapshots:Er(`world.experimental_snapshots`,o),clearCache:()=>i.clearCache()}}async function Ji(e,t){let n=L.join(e,`.locks`),r;try{r=await F.readdir(n,{withFileTypes:!0})}catch{r=[]}await H(r.filter(e=>e.isDirectory()).map(async e=>{let r=L.join(n,e.name);await H((await F.readdir(r).catch(()=>[])).filter(e=>e.endsWith(`.${t}`)).map(e=>F.rm(L.join(r,e),{recursive:!0,force:!0})))}))}function Yi(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...ut.value,...t};Je(n.dataDir);let r=n.tag,i=Lr(n),{clearCache:a,...o}=qi(n.dataDir,r),s=dt(n);return{specVersion:fe(),capabilities:{hookRetention:{active:!0},dynamicWorkflowCode:!0,hookResumeDedup:!0,hookForceClaim:!0},...i,...o,...Er(`world.streams`,{...di(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await ar(n.dataDir),!s)return;let e=r?e=>bt(e,r):xt,t={...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))};await x(t,i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=L.join(e,`hooks`),i=await Ct(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-CyBgVS7g.js`).then(e=>e.t);await H(i.map(async n=>{let r=await X(L.join(t,n),a);r?.token&&(await Z(L.join(t,`tokens`,`${Zt(r.token)}.json`)),await Z(hn(e,r.token,r.runId,r.hookId)))}));let o=(await Ct(L.join(e,`runs`),r)).flatMap(e=>{let t=e.slice(0,-`.${r}.json`.length);return[L.join(`steps`,t),L.join(`events`,t)]});await H([`runs`,...o,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=L.join(e,t);await H((await Ct(n,r)).map(e=>Z(L.join(n,e))))})),await H(o.map(t=>F.rmdir(L.join(e,t)).catch(()=>{})));for(let t of[`token-index`,`id-index`]){let n=L.join(e,`hooks`,t),i;try{i=await F.readdir(n,{withFileTypes:!0})}catch{i=[]}await H(i.filter(e=>e.isDirectory()).map(async e=>{let t=L.join(n,e.name);await H((await Ct(t,r)).map(e=>Z(L.join(t,e))))}))}await Ji(e,r);let s=L.join(e,`streams`,`chunks`),c;try{c=await F.readdir(s,{withFileTypes:!0})}catch{c=[]}await H(c.filter(e=>e.isDirectory()).map(async e=>{let t=L.join(s,e.name);await H((await wt(t,r,`.bin`)).map(e=>F.unlink(L.join(t,e)).catch(()=>{})))})),_t()}else _t(),Pn(),await Ie(n.dataDir,{recursive:!0,force:!0}),await ar(n.dataDir)}}}export{Wn as DataDirAccessError,rr as DataDirLayoutError,Gn as DataDirVersionError,We as UnwritableDataDirError,Yi as createWorld,Zn as ensureDataDir,ar as initDataDir,Kn as parseVersion};
1
+ import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"../../_chunks/workflow/undici-D-ILjOKD.js";import{$ as c,B as l,C as u,Ct as d,G as f,J as p,K as m,O as h,Q as g,R as _,St as v,W as y,X as b,Y as x,Z as S,_ as C,_t as w,a as T,at as ee,bt as te,c as ne,d as re,dt as ie,g as ae,ht as oe,k as se,l as ce,lt as le,mt as ue,n as de,o as fe,p as pe,pt as me,r as he,s as ge,u as _e,v as E,vt as ve,w as ye,x as be,xt as xe,y as Se,z as Ce}from"../../_chunks/workflow/dist-CcnNPAp4.js";import{C as we,M as Te,P as D,g as Ee,h as De,l as O,o as k,r as A,s as Oe}from"../../_chunks/workflow/dist-S9cZRway.js";import{a as ke,i as Ae,n as j,r as M,t as N}from"../../_chunks/workflow/workflow-routes-BaljomCk.js";import{z as P}from"#compiled/zod/index.js";import{createHash as je}from"node:crypto";import{promisify as Me}from"node:util";import{fileURLToPath as F}from"node:url";import{promises as I}from"node:fs";import L,{access as Ne,constants as Pe,mkdir as Fe,opendir as Ie,readFile as R,readdir as Le,readlink as Re,rm as ze,unlink as Be,writeFile as Ve}from"node:fs/promises";import z from"node:path";import{tmpdir as He}from"node:os";import{execFile as Ue}from"node:child_process";import{setTimeout as We}from"node:timers/promises";import Ge from"node:assert";import{EventEmitter as Ke}from"node:events";var qe=class extends D{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 Ye(e){return e!==void 0&&Je.has(e)}const Xe=d(`@workflow/world-local//buildTargetWarnings`,1,()=>({warnedAboutVercelDeployment:!1}));function Ze(e){if(Xe.warnedAboutVercelDeployment||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=z.resolve(e),n=He();t===n||t.startsWith(`${n}${z.sep}`)||(Xe.warnedAboutVercelDeployment=!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 Qe(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function $e(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=Qe(i.slice(s+1));c!==void 0&&n.push(c)}return n}const et=Me(Ue);function tt(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const nt=((e,t)=>e.join(t))([``,`proc`],`/`);async function rt(e){let t=[`${nt}/net/tcp`,`${nt}/net/tcp6`],n=[],r=new Set,i=`${nt}/${e}/fd`;try{let e=(await Le(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await Re(`${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 R(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=tt(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 it(e){try{let{stdout:t}=await et(`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=tt(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function at(e){try{let{stdout:t}=await et(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return $e(t,e)}catch{return[]}}async function ot(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await rt(e);case`darwin`:return await it(e);case`win32`:return await at(e);default:return[]}}catch(e){return a(`[getAllPorts] Detection failed:`,e),[]}}const st=`${N}/flow?__health`;async function ct(e,t={}){let{endpoint:n=st,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 lt(e){let t=await ot();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 ct(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(a(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function ut(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}function dt(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}const ft=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,pt=()=>process.env.WORKFLOW_LOCAL_BASE_URL,mt=ut(()=>({dataDir:ft(),baseUrl:pt()}));function ht(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 gt(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??M(`http://localhost`)}async function _t(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 M(`http://localhost:${e.port}`);if(process.env.PORT)return M(`http://localhost:${process.env.PORT}`);let t=await lt({endpoint:Ae()});if(t)return M(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const B=d(`@workflow/world-local//fs`,1,()=>({ulid:ve(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function vt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var yt=class extends D{constructor(e,t){super(`Unsafe ${e} "${vt(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 yt(e,t)}function H(e,...t){let n=z.resolve(e),r=z.resolve(e,...t);if(r!==n&&!r.startsWith(n+z.sep))throw new yt(`path`,t.join(`/`));return r}const bt=process.platform===`win32`;async function xt(e,t=5){if(!bt)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`)}async function U(e){let t=await Promise.allSettled(e),n=t.find(e=>e.status===`rejected`);if(n)throw n.reason;return t.map(e=>e.value)}function St(){B.createdFilesCache.clear(),B.createdDirectoriesCache.clear()}const Ct=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function wt(e){return e.replace(Ct,``)}function Tt(e,t){return e.endsWith(`.${t}`)}function Et(e){return!Ct.test(e)}function W(e,t,n,r){return V(`fileId`,n),r!==void 0&&V(`tag`,r),H(e,t,r?`${n}.${r}.json`:`${n}.json`)}const Dt=[`events`,`steps`];function G(e,t){return V(`runId`,t),z.join(e,t)}async function K(e,t,n,r,i){if(V(`fileId`,n),i!==void 0&&V(`tag`,i),i){let a=await X(H(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(H(e,t,`${n}.json`),r)}async function Ot(e,t){let n=`.${t}.json`;try{return await q(e),(await I.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function kt(e,t,n){let r=`.${t}${n}`;try{return await q(e),(await I.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function At(e){let t=z.resolve(e);if(B.createdDirectoriesCache.has(t)){await q(t);return}let n;try{await I.mkdir(t,{recursive:!0})}catch(e){n=e;let r=e.code;if(Ye(r)&&!await Mt(t))throw new qe(t,r)}if(n!==void 0){await q(t);return}await q(t),B.createdDirectoriesCache.add(t)}var jt=class extends D{constructor(e){super(`Refusing to use symlinked run directory ${e}: replace it with a real directory.`),this.name=`SymlinkedRunDirError`}};async function q(e){let t=z.basename(z.dirname(e));if(!Dt.includes(t))return;let n;try{n=await I.lstat(e)}catch(e){if(e.code===`ENOENT`)return;throw e}if(n.isSymbolicLink())throw new jt(e)}async function Mt(e){try{return(await I.stat(e)).isDirectory()}catch{return!1}}async function Nt(e,t){await At(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return B.createdDirectoriesCache.delete(z.resolve(e)),await At(e),t()}}function J(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function Pt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function Y(e,t,n){return Ft(e,JSON.stringify(t,J,2),n)}async function Ft(e,t,n){if(!n?.overwrite){if(B.createdFilesCache.has(e))throw new A(`File ${e} already exists and 'overwrite' is false`);try{throw await I.access(e),B.createdFilesCache.add(e),new A(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${B.ulid()}`,i=!1;try{await Nt(z.dirname(e),async()=>{await I.writeFile(r,t),i=!0,await xt(()=>I.rename(r,e))}),B.createdFilesCache.add(e)}catch(e){throw i&&await xt(()=>I.unlink(r),3).catch(()=>{}),e}}async function X(e,t){await q(z.dirname(e));try{let n=await xt(()=>I.readFile(e,`utf-8`));return t.parse(JSON.parse(n,Pt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function It(e){return await q(z.dirname(e)),await I.readFile(e)}async function Lt(e){await q(z.dirname(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 Z(e){await q(z.dirname(e));try{await xt(()=>I.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${B.ulid()}`,r=!1;try{return await Nt(z.dirname(e),async()=>{await I.writeFile(n,t,{flag:`wx`}),r=!0;try{return await xt(()=>I.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await xt(()=>I.unlink(n),3).catch(()=>{})}}async function Rt(e,t){try{return await Nt(z.dirname(t),()=>xt(()=>I.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function zt(e){return Bt(e,`.json`)}async function Bt(e,t){try{return await q(e),(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}}async function Vt(e,t){let n=z.join(e,t),r;try{r=await I.readdir(n,{withFileTypes:!0})}catch(e){if(e.code===`ENOENT`)return[];throw e}return r.filter(e=>e.isDirectory()).map(e=>z.join(n,e.name))}const Ht=`key:`;function Ut(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 Wt(e,t,n){return n?`${Ht}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function Gt(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=z.resolve(t),h=await zt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Ut(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 X(t,n):structuredClone(e)}catch(t){if(t instanceof P.ZodError)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?Wt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}var Kt=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`))}}})),qt=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=65536,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())}}})),Jt=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}})),Yt=t(((t,n)=>{var r=e(`fs`),i=Kt(),a=qt(),o=Jt(),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=T,e.createWriteStream=ee;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;ne(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;ne(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function T(t,n){return new e.ReadStream(t,n)}function ee(t,n){return new e.WriteStream(t,n)}var te=e.open;e.open=ne;function ne(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 te(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))}}})),Xt=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}})),Zt=t((e=>{var t=Xt();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: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}}})),Qt=t(((e,t)=>{t.exports=Zt()})),$t=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})),en=t(((t,r)=>{let i=e(`path`),a=Yt(),o=Qt(),s=n(),c=$t(),l={};function u(e,t){return t.lockfilePath||`${e}.lock`}function d(e,t,n){if(!t.realpath)return n(null,i.resolve(e));t.fs.realpath(e,n)}function f(e,t,n){let r=u(e,t);t.fs.mkdir(r,i=>{if(!i)return c.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`?f(e,{...t,stale:0},n):n(r);if(!p(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));m(e,t,r=>{if(r)return n(r);f(e,{...t,stale:0},n)})})})}function p(e,t){return e.mtime.getTime()<Date.now()-t.stale}function m(e,t,n){t.fs.rmdir(u(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function h(e,t){let n=l[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?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return g(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=c.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?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,h(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function g(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),l[e]===t&&delete l[e],t.options.onCompromised(n)}function _(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:a,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),d(e,t,(e,r)=>{if(e)return n(e);let i=o.operation(t.retries);i.attempt(()=>{f(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=l[r]={lockfilePath:u(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};h(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));v(r,{...t,realpath:!1},e)})})})})}function v(e,t,n){t={fs:a,realpath:!0,...t},d(e,t,(e,r)=>{if(e)return n(e);let i=l[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 l[r],m(r,t,n)})}function y(e,t,n){t={stale:1e4,realpath:!0,fs:a,...t},t.stale=Math.max(t.stale||0,2e3),d(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(u(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!p(r,t)))})}function b(){return l}s(()=>{for(let e in l){let t=l[e].options;try{t.fs.rmdirSync(u(e,t))}catch{}}}),r.exports.lock=_,r.exports.unlock=v,r.exports.check=y,r.exports.getLocks=b})),tn=t(((e,t)=>{let n=Yt();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}})),nn=t(((e,t)=>{let n=en(),{toPromise:r,toSync:i,toSyncOptions:a}=tn();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 rn(e){return je(`sha256`).update(e).digest(`hex`)}function an(e,t,n){return H(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function on(e,t,n){let r=[an(e,t)];n&&r.push(an(e,t,n));for(let e of r){let t;try{t=await L.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function sn(e,t,n){let r=[an(e,t)];n&&r.push(an(e,t,n));for(let e of r)try{return await L.access(e),!0}catch{}return!1}function cn(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function ln(e,t,n){let r=[cn(e,t)];n&&r.push(cn(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 un(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function dn(e,t,n,r){return z.join(un(e,t,r),`${n}.json`)}async function fn(e,t,n){let r=[un(e,t)];n&&r.push(un(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 xt(()=>L.unlink(z.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await L.rmdir(e).catch(()=>{})}}async function pn(e,t,n){let r=await mn(e,t,n),i=Date.now();if(r.maxId)try{let e=w(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${Cn(i)}`,createdAt:new Date(i)}}async function mn(e,t,n){let r=[];try{let n=z.join(e,G(`events`,t));await q(n),r=await L.readdir(n)}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(!Et(t)&&!(n&&Tt(t,n)))continue;let r=wt(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=_e(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`,`${rn(t)}.json`)}const gn=P.compile(P.object({hookId:P.string().optional(),runId:P.string(),eventId:P.string().optional(),tokenRetentionUntil:P.coerce.date().optional(),claimedFrom:P.object({runId:P.string(),hookId:P.string(),workflowName:P.string().optional(),deploymentId:P.string().optional(),runSpecVersion:P.number().optional()}).optional()}));async function _n(e){try{return await X(e,gn)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function vn(e,t,n){let r=hn(e,t);await L.mkdir(z.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,nn.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new D(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new D(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new D(`Could not release Hook token claim lock`,{cause:e})}return o}function yn(e,t,n){let r=je(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return z.join(e,`hooks`,`resumes`,`${r}.json`)}async function bn(e,t,n,r){await vn(e,t,async i=>{let a=hn(e,t),o=await _n(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function xn(e,t,n,r){let i=je(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return z.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const Sn=d(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:ve(()=>Math.random())})),Cn=e=>Sn.next(e),wn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=wt(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return de(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return de(a)}},Tn=P.compile(P.object({runId:P.string()})),En=P.compile(P.object({hookId:P.string(),tag:P.string().optional()}));function Dn(e,t){return H(e,`hooks`,`token-index`,rn(t))}function On(e,t){return V(`hookId`,t),H(e,`hooks`,`id-index`,t)}function kn(e){return H(e,`hooks`,`by-run`)}function An(e){let t=wt(e);return t===e?void 0:e.slice(t.length+1)}function jn(e,t){return t?Et(e)||Tt(e,t):Et(e)}async function Mn(e){try{return await X(e,m)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function Nn(e,t,n,r,i,a){V(`runId`,n),V(`eventId`,i),a!==void 0&&V(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(z.join(Dn(e,t),o),s),Q(z.join(On(e,r),o),s)])}function Pn(e,t,n,r){return W(e,`hooks/by-run`,`${t}-${n}`,r)}async function Fn(e,t,n,r){await Q(Pn(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function In(e,t,n,r){await Z(Pn(e,t,n,r)),r&&await Z(Pn(e,t,n))}async function Ln(e,t){V(`runId`,t);let n=kn(e),r=`${t}-`,i=[];for(let e of await zt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(z.join(n,`${e}.json`),En)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function Rn(e,t){await Z(z.join(kn(e),`${t}.json`))}const zn=d(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function Bn(){zn.ensuredBasedirs.clear()}async function Vn(e){let t=z.resolve(e),n=zn.ensuredBasedirs.get(t);return n||(n=Un(t).catch(e=>{throw zn.ensuredBasedirs.delete(t),e}),zn.ensuredBasedirs.set(t,n)),n}async function Hn(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function Un(e){let t=z.join(e,`hooks`,`.hook-index-complete`);try{await L.access(t);return}catch{}let n=async t=>{let n=z.basename(t,`.json`),r=await Mn(t);if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await Nn(e,i,r.runId,r.correlationId,r.eventId,An(n))}catch{}};await Hn(await Vt(e,`events`),8,async e=>Hn(await zt(e),32,t=>n(z.join(e,`${t}.json`))));let r=z.join(e,`hooks`);await Hn(await zt(r),32,async t=>{let n=null;try{n=await X(z.join(r,`${t}.json`),Se)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(n)try{await Fn(e,n.runId,n.hookId,An(t))}catch{}}),await Q(t,``)}async function Wn(e,t,n,r){await Vn(e);let i;try{i=t.kind===`token`?Dn(e,t.token):On(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=wt(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await zt(i)).filter(e=>jn(e,r)).sort((e,t)=>wt(t).localeCompare(wt(e)));for(let t of o){let r=null;try{r=await X(z.join(i,`${t}.json`),Tn)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=W(e,G(`events`,r.runId),`${r.runId}-${o}`,An(t))}catch{continue}let c=await Mn(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}const Gn=`@workflow/world-local`,Kn=d(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function qn(){return typeof import.meta.url==`string`&&import.meta.url?z.dirname(F(import.meta.url)):null}async function Jn(){if(Kn.cached)return Kn.cached;let e=qn();if(e)try{let t=await R(z.join(e,`../package.json`),`utf-8`);return Kn.cached=JSON.parse(t),Kn.cached}catch{}return Kn.cached={name:Gn,version:`5.1.2`},Kn.cached}const Yn=`version.txt`;var Xn=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Zn=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 Qn(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 $n(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function er(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:Qn(t.substring(n+1))}}function tr(e,t){return`${e}@${$n(t)}`}function nr(e,t){console.warn(`[world-local] Upgrading from version ${$n(e)} to ${$n(t)}`)}async function rr(e){let t=z.resolve(e);try{await Fe(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Xn(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await Ne(t,Pe.R_OK)}catch(e){let n=e;throw new Xn(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=z.join(t,`.workflow-write-test-${Date.now()}`);try{await Ve(n,``),await Be(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Xn(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function ir(e){let t=z.join(z.resolve(e),Yn);try{return er(await R(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function ar(e,t){let n=z.join(z.resolve(e),Yn),r=tr((await Jn()).name,t);await Ve(n,r)}const or=/^wrun_[0-9A-Za-z]+-[^/\\]+\.json$/;function sr(e,t,n){if(n.isDirectory()){e.runScoped=!0;return}if(!n.name.endsWith(`.json`))return;let r=z.join(t,n.name);n.isFile()&&or.test(n.name)?e.flat.push(r):e.unrecognized.push(r)}async function cr(e){let t={flat:[],unrecognized:[],runScoped:!1};for(let n of Dt)try{for await(let r of await Ie(z.join(e,n)))sr(t,n,r)}catch(e){if(e.code===`ENOENT`)continue;throw e}return t}var lr=class extends Error{dataDir;files;constructor(e,t){let n=t.slice(0,5).join(`, `);super(`[world-local] ${z.resolve(e)} holds ${t.length} event/step file(s) this version does not read (${n}${t.length>5?`, …`:``}). If an older version of ${Gn} is using this directory, stop it. Then delete the directory, or move or remove those files.`),this.dataDir=e,this.files=t,this.name=`DataDirLayoutError`}};function ur(e,t){return t||$n(e)}async function dr(e){await rr(e);let t=await cr(e);if(t.unrecognized.length>0||t.runScoped&&t.flat.length>0)throw new lr(e,[...t.unrecognized,...t.flat]);t.flat.length>0&&(console.warn(`[world-local] Deleting local workflow data in "${z.resolve(e)}": it was written by an older version of ${Gn} with an incompatible storage layout.`),St(),Bn(),await ze(e,{recursive:!0,force:!0,maxRetries:3}),await rr(e));let n=await Jn(),r=Qn(n.version),i=await ir(e);if(i===null){await ar(e,r);return}let{version:a}=i;if($n(a)!==$n(r))try{nr(a,r),await ar(e,r)}catch(e){let t=ur(a,e instanceof Zn?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${$n(a)} to ${$n(r)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${n.name}@${t}`),e}}const fr=d(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function pr(){return fr.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),fr.apiPromise}async function mr(){return fr.tracerPromise||=pr().then(e=>e?e.trace.getTracer(`workflow`):null),fr.tracerPromise}async function hr(e,...t){let[n,r]=await Promise.all([mr(),pr()]),{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 gr(e){let t=await pr();if(t)return t.SpanKind[e]}function _r(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const vr=_r(`peer.service`),yr=_r(`rpc.system`),br=_r(`rpc.service`),xr=_r(`rpc.method`),Sr=_r(`workflow.run.id`),Cr=_r(`step.id`),wr={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},Tr={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},Er=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function Dr(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 Or(e,t){return typeof e[t]==`string`?e[t]:void 0}function kr(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function Ar(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 jr(e,t,n){let r=`${e}.${t}`,i={},a=Tr[r],o=a===void 0?Er.has(r)?kr(n[0]):void 0:Or(n,a);if(o&&Object.assign(i,Sr(o)),r===`world.steps.get`){let e=Or(n,1);e&&Object.assign(i,Cr(e))}return i}function Mr(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=Dr(t);r&&(n=`${e}.${a} ${r}`)}return hr(n,{kind:await gr(`INTERNAL`)},async r=>{r?.setAttributes({...vr(wr.peerService),...yr(wr.rpcSystem),...br(wr.rpcService),...xr(n),...jr(e,a,t)});let o=await i(...t),s=Ar(o);return s&&r?.setAttributes(Sr(s)),o})}}return n}var Nr=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}))(),Pr=s(),Fr=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,J))}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,Pt)}};const Ir=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,Lr=2147483647,Rr=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function zr(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 Br(){return{bodyTimeout:zr(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,0),connections:1e3,headersTimeout:zr(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,0),keepAliveTimeout:3e4}}const Vr=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function Hr(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(Vr))return!0;t=`cause`in t?t.cause:void 0}return!1}function Ur(e){let t=Br(),n=E()?i({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,s=n?void 0:new Pr.Agent(t),c=new Fr,l=ve(),d=new Nr.Sema(Rr),f=new AbortController,p=f.signal,m=new Map,g=new Map,_=new Map,v=(e,t)=>{let n=_.get(t);return n?j(e,n):ke(e,{type:`flow`})},y=async(i,o,u)=>{let f=[];if(u?.idempotencyKey){let e=m.get(u.idempotencyKey);if(e)return{messageId:e}}let y=c.serialize(o),{prefix:b}=h(i),x=be.parse(`msg_${l()}`),S=new Date().toISOString(),C=o,w=C.runId??void 0,T=C.stepId??void 0;if(u?.idempotencyKey){let e=u.idempotencyKey;m.set(e,x),f.push(()=>{m.delete(e)})}return(async()=>{if(u?.delaySeconds&&u.delaySeconds>0){let e=Math.min(u.delaySeconds*1e3,Lr);await We(e,void 0,{signal:p})}d.tryAcquire()||(a(`[world-local]: concurrency limit (${Rr}) reached, waiting for queue to free up`),await d.acquire());let o=0;try{for(let a=0;a<256;a++){let c={...u?.headers,"content-type":`application/json`,"x-vqs-queue-name":i,"x-vqs-message-id":x,"x-vqs-message-attempt":String(o+1),"x-vqs-message-created-at":S},l=g.get(b),d,f;try{if(l)d=await l(new Request(v(gt(e),b),{method:`POST`,headers:c,body:y}));else{let i=await _t(e),a=v(i,b);d=n?await r(a,{method:`POST`,headers:new Headers(c),body:y,agents:n,signal:p,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(a,{method:`POST`,duplex:`half`,dispatcher:s,headers:c,body:y,signal:p})}o++,f=await d.text()}catch(e){let t=e?.name;if(p.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(Hr(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${a+1}), retrying`,{queueName:i,messageId:x,...w&&{runId:w},...T&&{stepId:T},error:String(e)}),await We(5e3,void 0,{signal:p});continue}if(d.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,Lr);await We(t,void 0,{signal:p})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${o}, HTTP ${d.status})`,{queueName:i,messageId:x,...w&&{runId:w},...T&&{stepId:T},handlerError:f,...!l&&!_.has(b)&&(d.status===400||d.status===404)&&{hint:`No route or handler is registered for queue prefix "${b}", so its messages go to the Workflow SDK's flow route (/.well-known/workflow/v1/flow). A queue consumer of its own registers one with world.registerRoute(prefix, path) or world.registerHandler(prefix, handler).`}}),await We(5e3,void 0,{signal:p})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:i,messageId:x,...w&&{runId:w},...T&&{stepId:T}})}finally{d.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(Hr(e)?console.error(`[local world] Queue operation failed: detected "${Vr}". 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:i,messageId:x,...w&&{runId:w},...T&&{stepId:T},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of f)e()}),{messageId:x}},b=P.compile(P.object({"x-vqs-queue-name":ye,"x-vqs-message-id":be,"x-vqs-message-attempt":P.coerce.number(),"x-vqs-message-delivery-count":P.coerce.number().int().positive().optional(),"x-vqs-message-created-at":P.iso.datetime().optional()}));return{queue:y,createQueueHandler:(e,t)=>async n=>{let r=b.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`],s=r.data[`x-vqs-message-delivery-count`],c=r.data[`x-vqs-message-created-at`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`,detail:`This route handles queue prefix "${e}", not "${i}".`},{status:400});let l=await new Fr().deserialize(n.body);try{let e=await t(l,{attempt:o,deliveryCount:s??o,...c?{createdAt:new Date(c)}:{},queueName:i,messageId:a});if(typeof l==`object`&&l&&`invoke`in l&&l.invoke===!0)return Response.json({result:e});let n=null;return typeof e==`object`&&e&&`timeoutSeconds`in e&&typeof e.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,Ir)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Jn()).version}`,registerHandler(e,t){g.set(e,t)},registerRoute(e,t){_.set(u.parse(e),se(t))},async close(){p.aborted||(f.abort(),n&&o(n),await s?.close())}}}function Wr(e,t){if(t===`none`){let{dynamicWorkflowCode:t,...n}=e;return{...n,input:void 0,output:void 0}}return e}function Gr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Kr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function qr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Jr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a,forceClaimedFrom:o}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,...o!==void 0&&{claimedFrom:o},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 Yr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Xr(e,t,n){let r=await K(e,`runs`,t,y,n);return r?f(r.status):!1}async function Zr(e,t,n,r){let i=async t=>{if(await Xr(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await sn(e,t.correlationId,r)},a=await Wn(e,t,e=>Yr(e,n)&&i(e),r);return a&&Yr(a,n)?a:null}async function Qr(e,t,n){let r=Jr(t);return await Q(hn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil,...r.claimedFrom&&{claimedFrom:r.claimedFrom}})),await Fn(e,r.runId,r.hookId,n),await Q(W(e,`hooks`,r.hookId,n),JSON.stringify(r,J,2)),r}async function $r(e,t,n){let r=await Zr(e,{kind:`token`,token:t},e=>qr(e)===t,n);return r?Qr(e,r,n):null}async function ei(e,t,n){let r=await Zr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Qr(e,r,n):null}function ti(e,t){async function n(n){return await sn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Xr(e,n.runId,t)}async function r(n){let r=await on(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await _n(hn(e,i));if(a?.hookId)try{let o=await K(e,`hooks`,a.hookId,Se,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new Oe(i)}else if(o)return null}catch(e){if(!yt.is(e))throw e;return null}let o=z.join(e,`hooks`),s=await zt(o),c=!1;for(let e of s){let t=await X(z.join(o,`${e}.json`),Se);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new Oe(i)}}if(c)throw new Oe(i);return null}async function a(r,i){V(`hookId`,r);let a=await K(e,`hooks`,r,Se,t);if(a&&!await n(a))throw new Oe(r);let o=a??await ei(e,r,t);if(!o)throw new Oe(r);let s=i?.resolveData||`all`;return Kr({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await $r(e,n,t);if(!r)throw new Oe(n);return r}async function s(t){let r=z.join(e,`hooks`),i=t.resolveData||`all`,a=await Gt({directory:r,schema:Se,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=>Kr(e,i))}}return{get:a,getByToken:o,list:s}}async function ni(e,t){await Vn(e);for(let n of await Ln(e,t)){if(n.hookId){let r=null,i=null;try{i=W(e,`hooks`,n.hookId,n.tag),r=await X(i,Se)}catch(e){if(!yt.is(e)&&!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await bn(e,r.token,r.runId,r.hookId),await Z(xn(e,r.token,r.runId,r.hookId)),await Z(i)}}await Rn(e,n.fileId)}}const ri=d(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:ve(()=>Math.random())})),ii=e=>ri.next(e),ai=P.compile(P.object({streams:P.array(P.string())})),oi={realpath:!1,stale:1e4,retries:{retries:150,factor:1,minTimeout:100,maxTimeout:100}};function si(e){return e===1}function ci(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function li(e){return si(e[0])}function ui(e){return{eof:li(e),chunk:Buffer.from(e.subarray(1))}}async function di(e){try{return await L.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function fi(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 pi(e,t){return V(`streamName`,t),z.join(e,t)}async function mi(e,t,n){let r=pi(e,t),i=await di(r),a=new Map;return fi(a,i,`.json`),fi(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&fi(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const hi=`chnk_${`0`.repeat(26)}`;async function gi(e,t,n){let r=z.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{V(`runId`,t),a=(await K(e,`streams/runs`,t,ai,n))?.streams??[]}catch(e){_i(`streams of ${t}`,e);return}for(let e of a)try{let t=pi(r,e);await Ft(z.join(t,`${hi}${i}.bin`),ci({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await di(t))e.startsWith(hi)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await xt(()=>L.unlink(z.join(t,e))).catch(t=>{t.code!==`ENOENT`&&_i(e,t)})}catch(t){_i(e,t)}}function _i(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function vi(e,t){let n=t?`.${t}`:``,r=new Ke,i=new Set,a=new Map,o=!1;async function s(n){return(await K(e,`streams/runs`,n,ai,t))?.streams??[]}async function c(n,r,{verify:o=!1}={}){V(`runId`,n),V(`streamName`,r);let c=`${n}:${r}`;if(i.has(c)){if(!o)return;let e=await s(n).catch(()=>null);if(e===null||e.includes(r))return;i.delete(c)}let u=W(e,`streams/runs`,n,t);await dt(a,u,async()=>{i.has(c)||await l(u,n,r)&&i.add(c)})}async function l(e,t,n){await L.mkdir(z.dirname(e),{recursive:!0});let r=!1,i;try{i=await(0,nn.lock)(e,{...oi,onCompromised:()=>{r=!0}})}catch(e){o||(o=!0,console.warn(`[world-local] Could not lock the stream index of run ${t}; updating it without the lock:`,e instanceof Error?e.message:e))}try{let r=await s(t);r.includes(n)||(r.push(n),await Y(e,{streams:r},{overwrite:!0}))}finally{i&&!r&&await i().catch(()=>{})}return!r}function u(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{clearCache(){i.clear()},streams:{async write(t,i,a){let o=`chnk_${ii()}`;await c(await t,i);let s=u(a),l=ci({chunk:s,eof:!1});await Ft(z.join(pi(z.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),l);let d=Uint8Array.from(s);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:o})},async writeMulti(t,i,a){if(a.length===0)return;let o=a.map(()=>`chnk_${ii()}`);await c(await t,i);let s=a.map(e=>u(e)).map(async(t,r)=>{let a=o[r],s=ci({chunk:t,eof:!1});return await Ft(z.join(pi(z.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),s),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of s){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let a=`chnk_${ii()}`;await c(await t,i,{verify:!0}),await Ft(z.join(pi(z.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),ci({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(e){return V(`runId`,e),s(e)},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await mi(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(si(await Lt(n))){u=!0;break}f++;continue}if(d.length>=a){si(await Lt(n))?u=!0:f++;break}let r=ui(await It(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 mi(z.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(si(await Lt(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 mi(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`;si(await Lt(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=ui(await It(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 mi(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=ui(await It(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 yi(e){let t=ue(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${ie} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function bi(e,t){return{...e,input:void 0,output:void 0,error:void 0,dynamicWorkflowCode:void 0,expiredAt:t}}async function xi(e,t,n){await Promise.all([Ci(z.join(e,G(`steps`,t)),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),Ci(z.join(e,G(`events`,t)),t,e=>{let t=e.eventData;if(t&&typeof t==`object`){for(let n of ee(String(e.eventType)))delete t[n];(e.eventType===`run_created`||e.eventType===`run_started`)&&(delete t.dynamicWorkflowCode,delete t.dynamicWorkflowCodeRef)}}),wi(e,t),gi(e,t,n)])}const Si=P.record(P.string(),P.any()),$=P.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of ee(String(e.eventType)))n in t||(t[n]=void 0)}return e},m);async function Ci(e,t,n){let r;try{r=await zt(e)}catch(t){Ti(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=z.join(e,`${i}.json`);try{let e=await X(r,Si);if(!e)continue;n(e),await Y(r,e,{overwrite:!0})}catch(e){Ti(r,e)}}}async function wi(e,t){let n;try{await Vn(e),n=await Ln(e,t)}catch(e){Ti(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=W(e,`hooks`,r.hookId,r.tag),i=await X(n,Si);if(!i||i.runId!==t)continue;i.metadata=void 0,await Y(n,i,{overwrite:!0})}catch(e){Ti(r.hookId,e)}}function Ti(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const Ei=new Ke;Ei.setMaxListeners(0);function Di(){return te(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function Oi(e){Ei.emit(`run:${e}`)}function ki(e,t,n){return t<=0||n?.aborted?Promise.resolve():new Promise(r=>{let i=`run:${e}`,a=!1,o=()=>{a||(a=!0,clearTimeout(s),Ei.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);Ei.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function Ai(e,t,n,r,i,a){if(f(a.status)||await ln(e,t))throw new De(`Workflow run "${t}" is already in a terminal state`);let o=dn(e,t,n);await Q(o,r);try{if(await ln(e,t)||await Rt(o,i)!==`linked`)throw new De(`Workflow run "${t}" is already in a terminal state`)}finally{await L.unlink(o).catch(()=>{})}}async function ji(e,t,n,r,i){V(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(cn(e,t),``),await fn(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},o=yi(i.attributes),s=o?bi(i,n):i;return await Y(H(e,`runs`,`${t}.json`),s,{overwrite:!0}),Oi(t),await ni(e,t),o&&await xi(e,t,void 0),{event:void 0,run:Wr(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${Cn()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:8},l=`${t}-${i}`,u=H(e,G(`events`,t),`${l}.json`);return n.eventType===`hook_received`?await Ai(e,t,i,JSON.stringify(s,J,2),u,r):await Y(u,s),{event:c(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const Mi=d(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function Ni(e,t){let n=Mi.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{Mi.byKey.get(e)===r.task&&Mi.byKey.delete(e)}})();return r.task=i,Mi.byKey.set(e,i),i}function Pi(e,t){let n=(async(n,r)=>{V(`runId`,n);let i=await K(e,`runs`,n,y,t);if(!i)throw new Te(n);return Wr(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let r=Date.now()+(t?.timeoutMs??0);for(;;){let i=await n(e,t);if(f(i.status))return i;let a=r-Date.now();if(a<=0||t?.signal?.aborted)return i;await ki(e,Math.min(a,Di()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof Te)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await Gt({directory:z.join(e,`runs`),schema:y,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:wn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>Wr(e,`none`))}:r}),experimentalSetAttributes:async(n,r,i)=>(V(`runId`,n),Ni(n,async()=>{let a=await K(e,`runs`,n,y,t);if(!a)throw new Te(n);try{oe(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof le,e}let o=me(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await Y(W(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const Fi=864e5;function Ii(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new D(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Fi}const Li=P.compile(P.object({eventId:P.string()})),Ri=P.compile(P.object({runId:P.string(),resumeId:P.string(),hookId:P.string(),eventId:P.string(),payloadDigest:P.string().optional()}));function zi(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function Bi(e,t,n,r){let i=await mn(e,t,r);for(let a of i.ids){let i=await K(e,G(`events`,t),`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&zi(i,n))return i}return null}async function Vi(e,t,n){if(t.hookId&&await sn(e,t.hookId,n))return!0;let r=await K(e,`runs`,t.runId,y,n);return r?f(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Hi(e){try{return await X(e,Li)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}function Ui(e){return re(e.eventId)?e.eventId:null}function Wi(e,t){let n=wt(t).slice(e.length+1);return re(n)?n:null}async function Gi(e,t,n){return(await Gt({directory:z.join(e,G(`events`,t)),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:wn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Ki(e,t,n,r,i){let a=`${t}-${r}`,o=await K(e,G(`events`,t),a,$,i);if(!o||o.eventType!==`hook_created`||o.correlationId!==n||await K(e,`hooks`,n,Se,i))return;let s=Jr(o);await Nn(e,s.token,t,n,r,i),await Fn(e,t,n,i),await Q(W(e,`hooks`,n,i),JSON.stringify(s,J,2))}async function qi(e,t,n,r,i){let a=xn(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await Hi(a))?.eventId??null}function Ji(e){if(A.is(e)||De.is(e)||we.is(e)||Oe.is(e)||k.is(e)||Te.is(e)||Ee.is(e))return!0;let t=e?.status;return typeof t==`number`&&t>=400&&t<500}async function Yi(e,t){let n=z.join(e,`waits`),r=await zt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(z.join(n,`${e}.json`))}async function Xi(e,t,n,r){return Ni(t,async()=>{let i=(await X(W(e,`runs`,t,n),y))?.attributes??r.attributes,a={...r,attributes:i},o=f(a.status)&&yi(i);return o&&(a=bi(a,new Date)),await Y(W(e,`runs`,t,n),a,{overwrite:!0}),f(a.status)&&Oi(t),{run:a,purged:o}})}function Zi(){return d(`@workflow/world-local//inBandFence`,2,()=>({locks:new Map}))}const Qi=P.object({seqInBand:P.number().int().nonnegative(),pending:P.number().int().nonnegative().optional()});function $i(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.in-band.${n}`:`${t}.in-band`)}function ea(e,t){let n=Ii(),r=4194304,i=new Map,a=new Map,o=new Map,s=0;function u(e){let t=i.get(e);if(!t)return;i.delete(e),s-=a.get(e)??0,a.delete(e);let n=o.get(t.runId);n?.delete(e),n?.size===0&&o.delete(t.runId)}function d(e){for(let t of o.get(e)??[])u(t)}function m(){i.clear(),a.clear(),o.clear(),s=0,h.clear()}let h=new Map;function C(e){return t?`${e}.${t}`:e}async function w(n,r){let i=`${n}-${pe(r)}`;for(let r of t?[W(e,G(`events`,n),i,t),W(e,G(`events`,n),i)]:[W(e,G(`events`,n),i)])try{return await L.stat(r),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function ee(n,r){let i=C(n),a=h.get(i);if(a===void 0||r?.rescan){let r=await mn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},h.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 w(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function te(e,t){let n=_e(t);if(n===null)return;let r=h.get(C(e));r&&(r.published=Math.max(r.published,n))}async function ne(e){let t=await ee(e);return t===null?`evnt_${Cn()}`:pe(t)}async function ie(n){let r=await ee(n,{rescan:!0});return r===null?pn(e,n,t):{eventId:pe(r),createdAt:new Date}}function se(e,t,n){if(n>r)return;for(;i.size>0&&(i.size>=1e3||s+n>r);){let e=i.keys().next().value;u(e)}i.set(e,t),a.set(e,n),s+=n;let c=o.get(t.runId)??new Set;c.add(e),o.set(t.runId,c)}function ce(e,t,n){if(g(e.eventType)){d(e.runId);return}let i=Buffer.byteLength(n);if(i>r)return;let a=$.safeParse(JSON.parse(n,Pt));a.success&&se(t,a.data,i)}async function le(n){let r=n;for(let n=0;;n++){let i=W(e,G(`events`,r.runId),`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,J,2),o=_e(r.eventId);if(o===null)return await Ft(i,a),ce(r,i,a),r;if(await Q(i,a))return te(r.runId,r.eventId),ce(r,i,a),r;let s=await ee(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Ge(s!==null),r={...r,eventId:pe(s)}}}async function ue(n,r){let i=await on(e,n,t);if(i.committed)throw i.forceClaimedBy?new k(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new Oe(n)}let fe=(t,n)=>Gt({directory:z.join(e,G(`events`,t)),schema:$,cachedItems:i,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:wn(`evnt`),getId:e=>e.eventId,getSortKey:Ui,getSortKeyFromFileId:e=>Wi(t,e)}),E=(e,t)=>new D(`Cannot restore missing run_created for workflow run "${e}": ${t}`);async function ve(n){let r=pe(1),i=n.eventId===r?n:{...n,eventId:r},a=W(e,G(`events`,n.runId),`${n.runId}-${r}`,t),o=JSON.stringify(i,J,2);if(await Q(a,o))return te(n.runId,r),ce(i,a,o),!0;let s=await K(e,G(`events`,n.runId),`${n.runId}-${r}`,$,t);if(s?.eventType===`run_created`&&s.runId===n.runId)return te(n.runId,r),!1;throw E(n.runId,`event slot 1 is occupied by ${s?`"${s.eventType}"`:`an unreadable event`}`)}async function ye(e){let t=(await fe(e.runId,{limit:1,sortOrder:`asc`})).data[0];if(t){if(t.eventType===`run_created`&&t.runId===e.runId)return;throw E(e.runId,`the event log is not empty (its first event is "${t.eventType}")`)}if(e.input===void 0)throw E(e.runId,`the original input is missing`);let n=pe(1);await ve({eventType:`run_created`,runId:e.runId,eventId:n,createdAt:e.createdAt,specVersion:e.specVersion,eventData:{deploymentId:e.deploymentId,workflowName:e.workflowName,input:e.input,executionContext:e.executionContext,attributes:e.attributes,encryptionPublicKey:e.encryptionPublicKey}})&&console.warn(`[world-local] restored missing run_created for ${e.runId} (creation was interrupted or is still in flight)`)}let be=new Map,ke=new Map,Ae=(e,n)=>t?`${e}-${n}.hook.${t}`:`${e}-${n}.hook`,j={clearCache:m,async create(r,i,a){if(i.eventType===`hook_created`&&i.eventData.tokenRetentionUntil!==void 0&&i.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new D(`Hook minimum retention cannot exceed ${n/Fi} days in the Local World.`,{status:400});if(r!=null&&r!==``&&V(`runId`,r),`correlationId`in i&&typeof i.correlationId==`string`&&V(`correlationId`,i.correlationId),S(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.${t}`:`${r}-${i.correlationId}`;return dt(be,e,o)}return b(i.eventType)&&r&&i.correlationId?dt(ke,Ae(r,i.correlationId),o):o();async function o(){let n=``,o=!1,s=null,u=new Date,m;if(i.eventType===`run_created`&&(!r||r===``))m=`wrun_${Cn()}`;else if(r)m=r;else throw Error(`runId is required for non-run_created events`);if(i.eventType===`run_created`&&r&&r!==``){let e=he(m,`wrun_`);if(e)throw new D(e)}let h=i.specVersion??8,b=null,C=!1;if(i.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(i.eventType)&&(b=await K(e,`runs`,m,y,t),i.eventType===`run_started`&&!b&&`eventData`in i&&i.eventData)){let n=i.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){oe(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:m,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:h,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:u,updatedAt:u};if(await Q(W(e,`runs`,m,t),JSON.stringify(r,J))){let i=await ne(m);b=await ve({eventType:`run_created`,runId:m,eventId:i,createdAt:u,specVersion:h,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}})?r:await K(e,`runs`,m,y,t),C=!0}else b=await K(e,`runs`,m,y,t)}}if(b?.status===`pending`&&!C&&!ge(b.specVersion)&&!T(b.specVersion)&&(i.eventType===`run_started`||i.eventType===`attr_set`||i.eventType===`run_cancelled`||i.eventType===`run_failed`)){if(i.eventType===`run_cancelled`||i.eventType===`run_failed`)try{await ye(b)}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(`[world-local] could not restore missing run_created for ${b.runId}: ${t}`)}else await ye(b)}if(n=await ne(m),!b&&(i.eventType===`run_failed`||i.eventType===`attr_set`||i.eventType===`run_started`))throw new Te(m);if(b){if(ge(b.specVersion))throw new Ee(b.specVersion,8);if(T(b.specVersion))return ji(e,m,i,b,a&&{resolveData:ae(a.resolveData)})}let w=p(i),se=w&&i.eventType===`step_started`;if(b&&f(b.status)){if(i.eventType===`run_cancelled`&&b.status===`cancelled`){let e=await le({...i,runId:m,eventId:n,createdAt:u,specVersion:h}),t=a?.resolveData??`all`;return{event:c(e,t),run:b,...b?{maxEvents:xe(b)}:{}}}if(i.eventType===`run_started`)throw new De(`Workflow run "${m}" is already in terminal state "${b.status}"`);if(g(i.eventType))throw new A(`Cannot transition run from terminal state "${b.status}"`);if(w)throw new A(`Cannot create new entities on run in terminal state "${b.status}"`);if(i.eventType===`attr_set`)throw new A(`Cannot set attributes on run in terminal state "${b.status}"`)}let E=null;if(S(i.eventType)&&i.eventType!==`step_created`&&i.correlationId){let n=`${m}-${i.correlationId}`;if(E=await K(e,G(`steps`,m),n,Ce,t),!E&&!se)throw new D(`Step "${i.correlationId}" not found`);if(se&&E)throw new A(`Step "${i.correlationId}" already created`);if(E){if(l(E.status))throw new A(`Cannot modify step in terminal state "${E.status}"`);if(b&&f(b.status)&&(E.status!==`running`||i.eventType===`step_started`))throw new De(`Cannot ${i.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${b.status}"`)}}if(x(i.eventType)&&i.correlationId){if(i.eventType===`hook_received`&&a?.resumeId){let n=await X(yn(e,m,a.resumeId),Ri);if(n&&n.hookId===i.correlationId&&(!a.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===a.resumePayloadDigest)){let r=await K(e,G(`events`,m),`${m}-${n.eventId}`,$,t),i=r&&zi(r,n)?r:await Bi(e,m,n,t);if(i)return{event:i}}}if(i.eventType===`hook_received`&&await ue(i.correlationId,i.eventData?.token),!await K(e,`hooks`,i.correlationId,Se,t))throw new Oe(i.correlationId);if(i.eventType===`hook_received`&&a?.resumeId){let r=yn(e,m,a.resumeId),c=async r=>{if(r.hookId!==i.correlationId)throw new A(`hook_received resumeId "${a.resumeId}" already recorded for a different hook`);if(a.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==a.resumePayloadDigest)throw new A(`hook_received resumeId "${a.resumeId}" already recorded with a different payload`);let c=await K(e,G(`events`,m),`${m}-${r.eventId}`,$,t);if(c&&zi(c,r))return{event:c};let l=await Bi(e,m,r,t);return l?{event:l}:(s=r.eventId,c||(n=r.eventId,o=!0),null)},l=await X(r,Ri);if(l){let e=await c(l);if(e)return e}else if(o=!re(n),s=n,!await Q(r,JSON.stringify({runId:m,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}))){s=null;let e=await X(r,Ri);if(e){let t=await c(e);if(t)return t}}}}let be,O={...i,runId:m,eventId:n,createdAt:u,specVersion:h,...i.eventType===`hook_received`&&a?.resumeId?{resumeId:a.resumeId}:{}};if(i.eventType===`run_started`&&`eventData`in O&&delete O.eventData,O.eventType===`run_created`&&O.eventData){let{dynamicWorkflowCode:e,dynamicWorkflowCodeRef:t,...n}=O.eventData;O={...O,eventData:n}}if(se&&O.eventType===`step_started`&&O.eventData){let{input:e,...t}=O.eventData;O={...O,eventData:t}}let k,j=!1,M,N,P,je=!1,Me;if(g(i.eventType)&&b){await Q(cn(e,m,t),``),await fn(e,m,t);let r=await ie(m);n=r.eventId,O={...O,eventId:n,createdAt:r.createdAt}}if(i.eventType===`run_created`&&`eventData`in i){let n=i.eventData;if(oe(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),k={runId:m,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:h,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:u,updatedAt:u},!await Q(W(e,`runs`,m,t),JSON.stringify(k,J,2)))throw new A(`Workflow run "${m}" already exists`)}else if(i.eventType===`run_started`){if(b){if(b.status===`running`){if(a?.skipPreload)return{run:b,maxEvents:xe(b)};let e=await fe(m,{limit:v()});return{run:b,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:xe(b)}}let n=await Xi(e,m,t,{runId:b.runId,deploymentId:b.deploymentId,workflowName:b.workflowName,specVersion:b.specVersion,executionContext:b.executionContext,input:b.input,createdAt:b.createdAt,expiredAt:b.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:b.startedAt??u,updatedAt:u,attributes:b.attributes,encryptionPublicKey:b.encryptionPublicKey,dynamicWorkflowCode:b.dynamicWorkflowCode});k=n.run,j=n.purged}}else if(i.eventType===`run_completed`&&`eventData`in i){let n=i.eventData;if(b){let r=await Xi(e,m,t,{runId:b.runId,deploymentId:b.deploymentId,workflowName:b.workflowName,specVersion:b.specVersion,executionContext:b.executionContext,input:b.input,createdAt:b.createdAt,expiredAt:b.expiredAt,startedAt:b.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:u,updatedAt:u,attributes:b.attributes,encryptionPublicKey:b.encryptionPublicKey,dynamicWorkflowCode:b.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([ni(e,m),Yi(e,m)])}}else if(i.eventType===`run_failed`&&`eventData`in i){let n=i.eventData;if(b){let r=await Xi(e,m,t,{runId:b.runId,deploymentId:b.deploymentId,workflowName:b.workflowName,specVersion:b.specVersion,executionContext:b.executionContext,input:b.input,createdAt:b.createdAt,expiredAt:b.expiredAt,startedAt:b.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:u,updatedAt:u,attributes:b.attributes,encryptionPublicKey:b.encryptionPublicKey,dynamicWorkflowCode:b.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([ni(e,m),Yi(e,m)])}}else if(i.eventType===`run_cancelled`){if(b){let n=await Xi(e,m,t,{runId:b.runId,deploymentId:b.deploymentId,workflowName:b.workflowName,specVersion:b.specVersion,executionContext:b.executionContext,input:b.input,createdAt:b.createdAt,expiredAt:b.expiredAt,startedAt:b.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:u,updatedAt:u,attributes:b.attributes,encryptionPublicKey:b.encryptionPublicKey,dynamicWorkflowCode:b.dynamicWorkflowCode});k=n.run,j=n.purged,await Promise.all([ni(e,m),Yi(e,m)])}}else if(i.eventType===`attr_set`&&b)k=await Ni(m,async()=>{let n=await X(W(e,`runs`,m,t),y);if(!n)throw new Te(m);if(oe(i.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:i.eventData.allowReservedAttributes===!0}),i.correlationId&&i.eventData.writer.type===`workflow`&&!await Q(H(e,`.locks`,`attributes`,t?`${m}-${i.correlationId}.created.${t}`:`${m}-${i.correlationId}.created`),``))throw new A(`Attribute event "${i.correlationId}" already exists`);let r={...n,attributes:me(n.attributes,i.eventData.changes),updatedAt:u};return await Y(W(e,`runs`,m,t),r,{overwrite:!0}),r});else if(i.eventType===`step_created`&&`eventData`in i){if(!await Q(H(e,`.locks`,`steps`,t?`${m}-${i.correlationId}.created.${t}`:`${m}-${i.correlationId}.created`),``))throw new A(`Step "${i.correlationId}" already created`);let n=i.eventData;M={runId:m,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:u,updatedAt:u,specVersion:h};let r=`${m}-${i.correlationId}`;await Y(W(e,G(`steps`,m),r,t),M)}else if(i.eventType===`step_started`){if(!E&&se){let n=i.eventData;if(await Q(H(e,`.locks`,`steps`,t?`${m}-${i.correlationId}.created.${t}`:`${m}-${i.correlationId}.created`),``)){let r={runId:m,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:u,updatedAt:u,specVersion:h};await Y(W(e,G(`steps`,m),`${m}-${i.correlationId}`,t),r);let a=await ne(m);await le({eventType:`step_created`,runId:m,eventId:a,createdAt:u,specVersion:h,correlationId:i.correlationId,eventData:{stepName:n.stepName,input:n.input}}),E=r,je=!0}else throw new A(`Step "${i.correlationId}" already created`)}if(E){if(E.retryAfter&&E.retryAfter.getTime()>Date.now())throw new we(`Cannot start step "${i.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((E.retryAfter.getTime()-Date.now())/1e3)});let n=`${m}-${i.correlationId}`,r=await K(e,G(`steps`,m),n,Ce,t);if(r&&l(r.status))throw new A(`Cannot modify step in terminal state "${r.status}"`);M={...E,status:`running`,startedAt:E.startedAt??u,attempt:E.attempt+1,retryAfter:void 0,updatedAt:u},await Y(W(e,G(`steps`,m),n,t),M,{overwrite:!0})}}else if(i.eventType===`step_completed`&&`eventData`in i){let n=i.eventData;if(E){let r=`${m}-${i.correlationId}`;if(!await Q(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...E,status:`completed`,output:n.result,completedAt:u,updatedAt:u},await Y(W(e,G(`steps`,m),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_failed`&&`eventData`in i){let n=i.eventData;if(E){let r=`${m}-${i.correlationId}`;if(!await Q(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...E,status:`failed`,error:n.error,completedAt:u,updatedAt:u},await Y(W(e,G(`steps`,m),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_retrying`&&`eventData`in i){let n=i.eventData;if(E){let r=`${m}-${i.correlationId}`;M={...E,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:u},await Y(W(e,G(`steps`,m),r,t),M,{overwrite:!0})}}else if(i.eventType===`hook_created`&&`eventData`in i){let r=i.eventData,s=hn(e,r.token),l,d=()=>JSON.stringify({token:r.token,hookId:i.correlationId,runId:m,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil,...l&&{claimedFrom:l}}),p=a=>vn(e,r.token,async o=>{let c=await _n(s);if(c||=(o.throwIfAborted(),await Z(s),await $r(e,r.token,t),await _n(s)),!c)return o.throwIfAborted(),Ge(await Q(s,d())),{status:`claimed`};if(c.runId===m&&c.hookId===i.correlationId)return{status:`owned`,claim:c};if(!await Vi(e,c,t)){if(r.force!==!0||!c.hookId)return{status:`conflict`,claim:c};if(c.runId!==a?.runId||c.hookId!==a?.hookId)return{status:`victim-changed`};o.throwIfAborted();let s=await K(e,`runs`,c.runId,y,t),d=s!==null&&!f(s.status);if(l={runId:c.runId,hookId:c.hookId,...d&&{workflowName:s.workflowName,deploymentId:s.deploymentId,runSpecVersion:s.specVersion}},d&&(s.specVersion??1)<8)return{status:`conflict`,claim:c,forceRefusedReason:`victim-spec-version`};let p=await Gi(e,m,i.correlationId);p?(n=p,be={...O,eventId:n}):(be=await le({...O,eventData:{...O.eventData,forceClaimedFrom:l}}),n=be.eventId),await Fn(e,m,i.correlationId,t),await Y(W(e,`hooks`,i.correlationId,t),{runId:m,hookId:i.correlationId,token:r.token,metadata:r.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:u,specVersion:h,isWebhook:r.isWebhook??!1,isSystem:r.isSystem??!1,tokenRetentionUntil:r.tokenRetentionUntil,claimedFrom:l},{overwrite:!0});let g=await Q(an(e,c.hookId,t),JSON.stringify({forceClaimedBy:{runId:m,hookId:i.correlationId}}));d&&g&&await le({eventType:`hook_disposed`,correlationId:c.hookId,eventData:{token:r.token,forceClaimedBy:{runId:m,hookId:i.correlationId}},runId:c.runId,eventId:await ne(c.runId),createdAt:new Date,specVersion:s.specVersion})}return o.throwIfAborted(),l?await Ft(s,d(),{overwrite:!0}):await Z(s),c.hookId&&(await Z(W(e,`hooks`,c.hookId,t)),await Z(xn(e,r.token,c.runId,c.hookId)),await In(e,c.runId,c.hookId,t)),o.throwIfAborted(),l||Ge(await Q(s,d())),{status:`claimed`}}),g;for(let e=0;;e++){if(e===100)throw new D(`Hook token holder kept changing during a forced claim of "${i.correlationId}"`);let t=r.force===!0?await _n(s):null,n=t?.hookId&&(t.runId!==m||t.hookId!==i.correlationId)?{runId:t.runId,hookId:t.hookId}:void 0;if(g=n?await dt(ke,Ae(n.runId,n.hookId),()=>p(n)):await p(),g.status!==`victim-changed`)break}if(g.status===`owned`&&g.claim.claimedFrom&&(l=g.claim.claimedFrom),g.status===`owned`){let a=g.claim,s;if(a.eventId)s=a.eventId;else{let a=await Gi(e,m,i.correlationId);if(a!==null)throw await Ki(e,m,i.correlationId,a,t),new A(`Hook "${i.correlationId}" already created`);let o=await qi(e,r.token,m,i.correlationId,n);if(o===null)throw new A(`Hook "${i.correlationId}" already created`);s=o}n=s,o=!0;let c=de(n.replace(/^evnt_/,``))??u;O={...i,eventData:{...i.eventData,tokenRetentionUntil:a.tokenRetentionUntil},runId:m,eventId:n,createdAt:c,specVersion:h}}if(g.status===`conflict`){let e=g.claim,t=await le({eventType:`hook_conflict`,correlationId:i.correlationId,eventData:{token:r.token,conflictingRunId:e.runId,...g.forceRefusedReason!==void 0&&{forceRefusedReason:g.forceRefusedReason}},runId:m,eventId:n,createdAt:u,specVersion:h}),o=a?.resolveData??`all`,s=typeof a?.sinceCursor==`string`?await fe(m,{sortOrder:`asc`,cursor:a.sinceCursor}):void 0,l={event:c(t,o),run:k,step:M,hook:void 0};return s?{...l,events:o===`none`?s.data.map(e=>c(e,o)):s.data,cursor:s.cursor,hasMore:s.hasMore}:l}l&&(O={...O,eventData:{...O.eventData,forceClaimedFrom:l}});let _=O.eventData;N={runId:m,hookId:i.correlationId,token:_.token,metadata:_.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:O.createdAt,specVersion:h,isWebhook:_.isWebhook??!1,isSystem:_.isSystem??!1,tokenRetentionUntil:_.tokenRetentionUntil,...l&&{claimedFrom:l}},Me=g.status===`owned`||l?{overwrite:!0}:void 0,await Nn(e,r.token,m,i.correlationId,n,t)}else if(i.eventType===`hook_disposed`){if(!await Q(an(e,i.correlationId,t),``))throw new A(`Hook "${i.correlationId}" already disposed`);let n=W(e,`hooks`,i.correlationId,t),r=await K(e,`hooks`,i.correlationId,Se,t);r&&(await bn(e,r.token,r.runId,r.hookId),await Z(xn(e,r.token,r.runId,r.hookId))),await Z(n),await In(e,m,i.correlationId,t)}else if(i.eventType===`wait_created`&&`eventData`in i){let n=`${m}-${i.correlationId}`;if(!await Q(H(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new A(`Wait "${i.correlationId}" already exists`);let r=i.eventData;P={waitId:n,runId:m,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:u,updatedAt:u,specVersion:h},await Y(W(e,`waits`,n,t),P)}else if(i.eventType===`wait_completed`){let n=`${m}-${i.correlationId}`,r=H(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new A(`Wait "${i.correlationId}" already completed`);let a=await K(e,`waits`,n,_,t);if(!a)throw await L.unlink(r).catch(()=>{}),new D(`Wait "${i.correlationId}" not found`);P={...a,status:`completed`,completedAt:u,updatedAt:u},await Y(W(e,`waits`,n,t),P,{overwrite:!0})}if(i.eventType===`hook_received`&&i.correlationId&&await ue(i.correlationId,i.eventData?.token),i.eventType===`hook_created`&&i.correlationId){let n=await on(e,i.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new A(`Hook "${i.correlationId}" was force-claimed by another run before its creation was journaled`)}let F=W(e,G(`events`,m),`${m}-${n}`,t),I=JSON.stringify(O,J,2),Ne=async r=>{let i=_e(n);if(o||i===null)return!1;let a=await ee(m,{rescan:r>0&&r%8==0,atLeast:i+1});return a!==null&&(n=pe(a),O={...O,eventId:n},F=W(e,G(`events`,m),`${m}-${n}`,t),I=JSON.stringify(O,J,2),!0)},Pe=!1;be&&(O=be,F=W(e,G(`events`,m),`${m}-${n}`,t),I=JSON.stringify(O,J,2),Pe=!0);for(let r=0;!Pe;r++){if(i.eventType===`hook_received`){let r=await ln(e,m,t),i=r?null:await K(e,`runs`,m,y,t);if(r||i&&f(i.status))throw new De(`Workflow run "${m}" is already in a terminal state`);let a=dn(e,m,`${n}.${Cn()}`,t);if(!await Q(a,I))throw new D(`Failed to stage event "${n}" for run "${m}": staging path already exists`);try{if(await ln(e,m,t))throw new De(`Workflow run "${m}" is already in a terminal state`);let n=await Rt(a,F);if(n===`missing`)throw new De(`Workflow run "${m}" is already in a terminal state`);Pe=n===`linked`}finally{await Z(a).catch(()=>{})}}else Pe=await Q(F,I);if(Pe){te(m,n);break}if(i.eventType===`run_created`){let r=_e(n),i=await K(e,G(`events`,m),`${m}-${n}`,$,t);if(r===1&&i?.eventType===`run_created`&&i.runId===m)break;throw new D(`Cannot publish run_created for workflow run "${m}": event slot ${r??n} is occupied by ${i?`"${i.eventType}"`:`an unreadable event`}`)}if(i.eventType===`hook_received`&&a?.resumeId){let r=await K(e,G(`events`,m),`${m}-${n}`,$,t);if(r&&zi(r,{runId:m,resumeId:a.resumeId,hookId:i.correlationId,eventId:n}))return{event:r}}if(i.eventType===`hook_created`&&i.correlationId){let r=await K(e,G(`events`,m),`${m}-${n}`,$,t);if(r?.eventType===`hook_created`&&r.correlationId===i.correlationId)break}if(!await Ne(r))break}if(!Pe)throw i.eventType===`hook_created`&&i.correlationId&&await Ki(e,m,i.correlationId,n,t),new A(`Event "${n}" already exists for run "${m}"`);ce(O,F,I),i.eventType===`hook_received`&&a?.resumeId&&s!==null&&s!==n&&await Ft(yn(e,m,a.resumeId),JSON.stringify({runId:m,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}),{overwrite:!0}),N&&i.eventType===`hook_created`&&(await Fn(e,N.runId,N.hookId,t),await Y(W(e,`hooks`,N.hookId,t),N,Me)),j&&(await xi(e,m,t),d(m));let Fe=a?.resolveData??`all`,Ie=c(O,Fe),R;if(i.eventType===`run_started`&&k&&!a?.skipPreload&&(R=await fe(m,{limit:v()})),typeof a?.sinceCursor==`string`){let e=await fe(m,{sortOrder:`asc`,cursor:a.sinceCursor});R=Fe===`none`?{...e,data:e.data.map(e=>c(e,Fe))}:e}let Le={event:Ie,run:k,step:M,hook:N,wait:P,...je?{stepCreated:!0}:{},...k?{maxEvents:xe(k)}:{}};return R?{...Le,events:R.data,cursor:R.cursor,hasMore:R.hasMore}:Le}},async get(n,r,i){V(`runId`,n),V(`eventId`,r);let a=`${n}-${r}`,o=await K(e,G(`events`,n),a,$,t);if(!o)throw Error(`Event ${r} in run ${n} not found`);let s=i?.resolveData??`all`;return c(o,s)},async list(e){let{runId:t}=e;V(`runId`,t);let n=e.resolveData??`all`,r=await fe(t,{...e.pagination,limit:e.pagination?.limit??v()});return n===`none`?{...r,data:r.data.map(e=>c(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;V(`correlationId`,n),V(`runId`,t.runId);let r=t.resolveData??`all`,a=await Gt({directory:z.join(e,G(`events`,t.runId)),schema:$,cachedItems:i,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:wn(`evnt`),getId:e=>e.eventId,getSortKey:Ui,getSortKeyFromFileId:e=>Wi(t.runId,e)});return r===`none`?{...a,data:a.data.map(e=>c(e,r))}:a}};async function M(e,t,n){if(!e.event)return e;let r=_e(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await j.list({runId:e.event.runId,pagination:{cursor:`${Ht}${pe(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 N=(async(e,t,n)=>{if(n?.eventCount===void 0)return j.create(e,t,n);let r=n.resolveData??`all`,i=await j.create(e,t,n);return typeof n.sinceCursor==`string`?i:M(i,n.eventCount,r)}),P=Zi(),je=t=>`${z.resolve(e)}\0${C(t)}`,Me=async n=>await X($i(e,n,t),Qi)??{seqInBand:1},F=(n,r)=>Y($i(e,n,t),r,{overwrite:!0});async function I(n){let r=h.get(C(n));if(r===null)return;let i=await mn(e,n,t);if(!(r===void 0&&i.count>0&&!i.usesSlots))return Math.max(r?.published??0,i.maxSlot)}async function Ne(e){let t=await Me(e);if(t.pending===void 0)return t.seqInBand;let n=Math.max(t.seqInBand,t.pending+1);return await F(e,{seqInBand:n}),n}async function Pe(e,t,n){let r=await I(e).catch(()=>void 0);return new O(`In-band write on run ${e} expected seqInBand ${t}, but the run is at ${n}. Another orchestrator wrote in-band events this one has not seen; stop writing and redeliver.`,{seqInBand:n,...r===void 0?{}:{seq:r}})}function Fe(n,r){return dt(P.locks,je(n),async()=>{let i=$i(e,n,t);await L.mkdir(z.dirname(i),{recursive:!0});let a,o;try{o=await(0,nn.lock)(i,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){a=e}})}catch(e){throw new D(`Could not acquire the in-band fence lock of run ${n}`,{cause:e})}let s;try{s=await r()}finally{a||await o().catch(()=>{})}if(a)throw new D(`The in-band fence lock of run ${n} was lost while a write held it`,{cause:a});return s})}let Ie=(async(e,t,n)=>{let r=t;if(!n?.inBand||!e||t.eventType===`run_created`)return N(e,r,n);let i=n.expectedSeqInBand;if(i===void 0||!Number.isSafeInteger(i)||i<0)throw new D(`An in-band write to run ${e} must carry a nonnegative integer expectedSeqInBand`,{status:400});return V(`runId`,e),Fe(e,async()=>{let t=await Ne(e);if(t!==i)throw await Pe(e,i,t);await F(e,{seqInBand:t,pending:t});let a;try{a=await N(e,r,n)}catch(n){throw await F(e,{seqInBand:Ji(n)?t:t+1}),n}let o=+!!a.event;return await F(e,{seqInBand:t+o}),{...a,allocated:o}})});async function R(n){let{seqInBand:r}=await Me(n),i=h.get(C(n));if(i===null)return;if(i!==void 0)return{seq:i.published,seqInBand:r};let a=await mn(e,n,t);if(!(a.count>0&&!a.usesSlots))return{seq:a.maxSlot,seqInBand:r}}let Le=(async e=>{V(`runId`,e.runId);let t=await R(e.runId),n=await j.list(e);return t?{...n,snapshot:t}:n});return{...j,create:Ie,list:Le}}function ta(e){let t=z.join(e,`snapshots`);function n(e){return V(`runId`,e),H(t,`${e}.snapshot`)}return{async save(e,r,i){await At(t),await Ft(n(e),Buffer.from(ce(i,r)),{overwrite:!0})},async load(e){let t;try{t=await It(n(e))}catch(e){if(e.code===`ENOENT`)return null;throw e}return ne(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},async delete(e){await L.rm(n(e),{force:!0})}}}function na(e,t){return{get:(async(n,r,i)=>{V(`runId`,n),V(`stepId`,r);let a=`${n}-${r}`,o=await K(e,G(`steps`,n),a,Ce,t);if(!o)throw Error(`Step ${r} in run ${n} not found`);return Gr(o,i?.resolveData??`all`)}),list:(async t=>{V(`runId`,t.runId);let n=t.resolveData??`all`,r=await Gt({directory:z.join(e,G(`steps`,t.runId)),schema:Ce,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:wn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function ra(e,t){let n=Pi(e,t),r=na(e,t),i=ea(e,t),a=ti(e,t),o=ta(e);return{runs:Mr(`world.runs`,n),steps:Mr(`world.steps`,r),events:Mr(`world.events`,i),hooks:Mr(`world.hooks`,a),experimental_snapshots:Mr(`world.experimental_snapshots`,o),clearCache:()=>i.clearCache()}}async function ia(e,t){let n=z.join(e,`.locks`),r;try{r=await I.readdir(n,{withFileTypes:!0})}catch{r=[]}await U(r.filter(e=>e.isDirectory()).map(async e=>{let r=z.join(n,e.name);await U((await I.readdir(r).catch(()=>[])).filter(e=>e.endsWith(`.${t}`)).map(e=>I.rm(z.join(r,e),{recursive:!0,force:!0})))}))}function aa(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...mt.value,...t};Ze(n.dataDir);let r=n.tag,i=Ur(n),{clearCache:a,...o}=ra(n.dataDir,r),{clearCache:s,...c}=vi(n.dataDir,r),l=ht(n);return{specVersion:fe(),capabilities:{hookRetention:{active:!0},dynamicWorkflowCode:!0,hookResumeDedup:!0,hookForceClaim:!0,inBandFence:!0},...i,...o,...Mr(`world.streams`,{...c,...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await dr(n.dataDir),!l)return;let e=r?e=>Tt(e,r):Et,t={...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))};await C(t,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 Ot(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-CcnNPAp4.js`).then(e=>e.t);await U(i.map(async n=>{let r=await X(z.join(t,n),a);r?.token&&(await Z(z.join(t,`tokens`,`${rn(r.token)}.json`)),await Z(xn(e,r.token,r.runId,r.hookId)))}));let o=(await Ot(z.join(e,`runs`),r)).flatMap(e=>{let t=e.slice(0,-`.${r}.json`.length);return[z.join(`steps`,t),z.join(`events`,t)]});await U([`runs`,...o,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=z.join(e,t);await U((await Ot(n,r)).map(e=>Z(z.join(n,e))))})),await U(o.map(t=>I.rmdir(z.join(e,t)).catch(()=>{})));for(let t of[`token-index`,`id-index`]){let n=z.join(e,`hooks`,t),i;try{i=await I.readdir(n,{withFileTypes:!0})}catch{i=[]}await U(i.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(n,e.name);await U((await Ot(t,r)).map(e=>Z(z.join(t,e))))}))}await ia(e,r);let s=z.join(e,`streams`,`chunks`),c;try{c=await I.readdir(s,{withFileTypes:!0})}catch{c=[]}await U(c.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(s,e.name);await U((await kt(t,r,`.bin`)).map(e=>I.unlink(z.join(t,e)).catch(()=>{})))})),St()}else St(),Bn(),await ze(n.dataDir,{recursive:!0,force:!0}),await dr(n.dataDir);s()}}}export{Xn as DataDirAccessError,lr as DataDirLayoutError,Zn as DataDirVersionError,qe as UnwritableDataDirError,aa as createWorld,rr as ensureDataDir,dr as initDataDir,Qn as parseVersion};