eve 0.33.3 → 0.35.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.
- package/CHANGELOG.md +40 -0
- package/README.md +3 -3
- package/dist/src/channel/channel-address.d.ts +3 -6
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +2 -3
- package/dist/src/channel/delivery-metadata.d.ts +9 -0
- package/dist/src/channel/delivery-metadata.js +1 -0
- package/dist/src/channel/routes.d.ts +1 -0
- package/dist/src/channel/session.d.ts +3 -4
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/types.d.ts +20 -3
- package/dist/src/chunks/{use-eve-agent-B-Hky2f4.js → use-eve-agent-COmP-H8R.js} +39 -3
- package/dist/src/chunks/{use-eve-agent-3oBnxzhV.js → use-eve-agent-CnppTEFk.js} +39 -3
- package/dist/src/cli/commands/info.js +1 -1
- package/dist/src/cli/commands/trace-detail.d.ts +3 -2
- package/dist/src/cli/commands/trace-detail.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +4 -6
- package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -2
- package/dist/src/client/agent-info-schema.d.ts +12 -4
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/index.d.ts +1 -1
- package/dist/src/client/message-reducer.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +4 -4
- package/dist/src/compiled/@chat-adapter/slack/index.js +1 -1
- package/dist/src/compiled/@opentelemetry/api/index.d.ts +32 -3
- package/dist/src/compiled/@vercel/otel/index.d.ts +45 -2
- package/dist/src/compiled/@workflow/core/index.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/env-config.d.ts +1 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +92 -35
- package/dist/src/compiled/@workflow/world/index.d.ts +3 -2
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +25 -23
- package/dist/src/compiled/@workflow/world/queue.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/runs.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/slot-identity.d.ts +53 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +36 -1
- package/dist/src/compiled/@workflow/world/steps.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/ulid.d.ts +6 -0
- package/dist/src/compiled/@workflow/world-local/index.js +4 -4
- package/dist/src/compiled/@workflow/world-vercel/index.js +13 -17
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-6OqdYdi4.js → attribute-changes-BoH7JsWp.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/dist-DlFv0aHY.js +40 -0
- package/dist/src/compiled/_chunks/workflow/env-config-DxamfI7T.js +1 -0
- package/dist/src/compiled/_chunks/workflow/frames-CTpeJYEQ.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{functions-CXb61C6h.js → functions-CeeNvKsq.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-BPQHjeY5.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-DQ5dOyjm.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-id-BdE0MZz9.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +1 -0
- package/dist/src/compiled/_chunks/workflow/spec-version-DBUVfF_R.js +1 -0
- package/dist/src/compiled/_chunks/workflow/undici-CUIybhQ2.js +95 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-DK2lnH6U.js +15 -0
- package/dist/src/compiled/_chunks/workflow/{wrapper-CDq65xJV.js → wrapper-CMGju7QA.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/ws-transport-Csi6Cydc.js +1 -0
- package/dist/src/compiler/extension-compatibility.d.ts +14 -14
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +8 -8
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-extension.d.ts +3 -3
- package/dist/src/compiler/normalize-extension.js +1 -1
- package/dist/src/compiler/normalize-instructions.d.ts +1 -1
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -3
- package/dist/src/context/build-dynamic-tools.d.ts +7 -0
- package/dist/src/context/build-dynamic-tools.js +1 -1
- package/dist/src/context/dynamic-instruction-lifecycle.d.ts +5 -1
- package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
- package/dist/src/context/dynamic-tool-lifecycle.d.ts +7 -0
- package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
- package/dist/src/context/keys.d.ts +18 -2
- package/dist/src/context/keys.js +1 -1
- package/dist/src/discover/filesystem.d.ts +1 -1
- package/dist/src/discover/filesystem.js +1 -1
- package/dist/src/discover/manifest.d.ts +1 -1
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/evals/cli/eval.js +2 -2
- package/dist/src/evals/index.d.ts +2 -2
- package/dist/src/evals/reporters/index.d.ts +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/execute-eval.d.ts +5 -0
- package/dist/src/evals/runner/execute-eval.js +1 -1
- package/dist/src/evals/runner/execute-task.d.ts +3 -0
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +1 -1
- package/dist/src/evals/runner/reporters/types.d.ts +28 -2
- package/dist/src/evals/runner/run-evals.js +1 -1
- package/dist/src/evals/session.d.ts +11 -2
- package/dist/src/evals/session.js +1 -1
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +10 -1
- package/dist/src/execution/dispatch-runtime-actions-step.d.ts +1 -5
- package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
- package/dist/src/execution/dispatch-turn-step.d.ts +5 -0
- package/dist/src/execution/dispatch-turn-step.js +1 -0
- package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +1 -0
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/parked-delivery-wait.d.ts +1 -1
- package/dist/src/execution/parked-delivery-wait.js +1 -1
- package/dist/src/execution/remote-agent-dispatch.d.ts +2 -1
- package/dist/src/execution/remote-agent-dispatch.js +1 -1
- package/dist/src/execution/route-child-delivery.d.ts +3 -4
- package/dist/src/execution/route-child-delivery.js +1 -1
- package/dist/src/execution/route-proxied-deliver-step.d.ts +34 -0
- package/dist/src/execution/route-proxied-deliver-step.js +1 -0
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/session-command-inbox.d.ts +2 -2
- package/dist/src/execution/session-command-wire.js +1 -1
- package/dist/src/execution/session.js +1 -1
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/subagent-adapter.js +1 -1
- package/dist/src/execution/subagent-event-proxy-step.js +1 -1
- package/dist/src/execution/tool-auth.d.ts +9 -0
- package/dist/src/execution/tool-auth.js +1 -1
- package/dist/src/execution/turn-control-receiver.js +1 -1
- package/dist/src/execution/turn-dispatch.js +1 -1
- package/dist/src/execution/turn-workflow.js +1 -1
- package/dist/src/execution/workflow-entry.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/execution/workflow-steps.d.ts +1 -27
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/execution/workflow-trace-context.d.ts +11 -0
- package/dist/src/execution/workflow-trace-context.js +1 -0
- package/dist/src/harness/ai-sdk-hook-bridge.d.ts +1 -1
- package/dist/src/harness/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/harness/ai-sdk-telemetry.d.ts +19 -0
- package/dist/src/harness/ai-sdk-telemetry.js +1 -0
- package/dist/src/harness/approval-candidates.d.ts +109 -0
- package/dist/src/harness/approval-candidates.js +1 -0
- package/dist/src/harness/approval-delivery-coordinator.d.ts +39 -0
- package/dist/src/harness/approval-delivery-coordinator.js +1 -0
- package/dist/src/harness/authorization.d.ts +1 -0
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/channel-delivery-instrumentation.d.ts +25 -0
- package/dist/src/harness/channel-delivery-instrumentation.js +1 -0
- package/dist/src/harness/emission.d.ts +2 -2
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +1 -0
- package/dist/src/harness/hitl/approval-input-requests.js +1 -1
- package/dist/src/harness/hitl/pending-input-resolution.d.ts +3 -0
- package/dist/src/harness/hitl/pending-input-resolution.js +1 -1
- package/dist/src/harness/hitl/question-input-requests.js +1 -1
- package/dist/src/harness/hitl/session-limit-input-requests.js +1 -1
- package/dist/src/harness/input-extraction.js +1 -1
- package/dist/src/harness/input-request-resolution.d.ts +22 -0
- package/dist/src/harness/input-request-resolution.js +1 -0
- package/dist/src/harness/input-requests.d.ts +1 -0
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/{instrumentation-config.d.ts → instrumentation/config.d.ts} +9 -4
- package/dist/src/harness/instrumentation/config.js +1 -0
- package/dist/src/harness/instrumentation/content.d.ts +5 -0
- package/dist/src/harness/instrumentation/content.js +1 -0
- package/dist/src/harness/instrumentation/dispatch.d.ts +2 -0
- package/dist/src/harness/instrumentation/dispatch.js +1 -0
- package/dist/src/harness/instrumentation/lifecycle.d.ts +491 -0
- package/dist/src/harness/instrumentation/lifecycle.js +1 -0
- package/dist/src/harness/{instrumentation-native-events.d.ts → instrumentation/native-events.d.ts} +10 -1
- package/dist/src/harness/instrumentation/native-events.js +1 -0
- package/dist/src/harness/instrumentation/providers.d.ts +50 -0
- package/dist/src/harness/instrumentation/providers.js +1 -0
- package/dist/src/harness/{instrumentation-runtime.d.ts → instrumentation/runtime.d.ts} +7 -2
- package/dist/src/harness/{instrumentation-runtime.js → instrumentation/runtime.js} +1 -1
- package/dist/src/harness/instrumentation/setup-context.d.ts +12 -0
- package/dist/src/harness/instrumentation/setup-context.js +1 -0
- package/dist/src/harness/instrumentation/state.d.ts +59 -0
- package/dist/src/harness/instrumentation/state.js +1 -0
- package/dist/src/harness/messages.d.ts +2 -1
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/parent-lineage.d.ts +1 -1
- package/dist/src/harness/pending-input-batches.d.ts +2 -0
- package/dist/src/harness/pending-input-batches.js +1 -1
- package/dist/src/harness/prepare-trace-context.d.ts +16 -0
- package/dist/src/harness/prepare-trace-context.js +1 -0
- package/dist/src/harness/runtime-action-settlement-state.d.ts +3 -0
- package/dist/src/harness/runtime-action-settlement-state.js +1 -0
- package/dist/src/harness/runtime-actions.js +1 -1
- package/dist/src/harness/stale-input-responses.js +1 -1
- package/dist/src/harness/tool-call-action.d.ts +9 -0
- package/dist/src/harness/tool-call-action.js +1 -0
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/types.d.ts +16 -2
- package/dist/src/internal/application/compiled-artifacts.d.ts +13 -4
- package/dist/src/internal/application/compiled-artifacts.js +5 -4
- package/dist/src/internal/application/dev-environment.d.ts +12 -0
- package/dist/src/internal/application/dev-environment.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/approval.d.ts +3 -0
- package/dist/src/internal/authored-definition/approval.js +1 -0
- package/dist/src/internal/authored-definition/connection.js +1 -1
- package/dist/src/internal/authored-definition/core.d.ts +3 -3
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/instrumentation-layout.d.ts +28 -0
- package/dist/src/internal/instrumentation-layout.js +1 -0
- package/dist/src/internal/instrumentation.d.ts +1 -1
- package/dist/src/internal/materialized-authored-modules.d.ts +13 -2
- package/dist/src/internal/materialized-authored-modules.js +1 -1
- package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.d.ts +5 -1
- package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +4 -3
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +2 -3
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
- package/dist/src/internal/vercel/project-link.d.ts +1 -1
- package/dist/src/internal/vercel/project-link.js +1 -1
- package/dist/src/internal/vercel-agent-summary.d.ts +10 -9
- package/dist/src/internal/vercel-agent-summary.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/packages/eve-catalog/src/index.js +1 -1
- package/dist/src/protocol/message.d.ts +51 -2
- package/dist/src/protocol/message.js +2 -2
- package/dist/src/protocol/traceparent.d.ts +10 -0
- package/dist/src/protocol/traceparent.js +1 -0
- package/dist/src/public/channels/eve.js +1 -1
- package/dist/src/public/channels/github/auth.d.ts +30 -0
- package/dist/src/public/channels/github/auth.js +2 -2
- package/dist/src/public/channels/github/defaults.d.ts +4 -3
- package/dist/src/public/channels/github/defaults.js +5 -2
- package/dist/src/public/channels/github/dispatch.d.ts +3 -2
- package/dist/src/public/channels/github/dispatch.js +1 -1
- package/dist/src/public/channels/github/githubChannel.d.ts +10 -5
- package/dist/src/public/channels/github/githubChannel.js +1 -1
- package/dist/src/public/channels/github/index.d.ts +1 -1
- package/dist/src/public/channels/slack/defaults.js +3 -3
- package/dist/src/public/channels/slack/interactions.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +11 -3
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/definitions/approval.d.ts +57 -16
- package/dist/src/public/definitions/approval.js +1 -1
- package/dist/src/public/definitions/channel.d.ts +2 -2
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/hook.d.ts +4 -2
- package/dist/src/public/definitions/instructions.d.ts +14 -4
- package/dist/src/public/definitions/instructions.js +1 -1
- package/dist/src/public/definitions/tool.d.ts +5 -8
- package/dist/src/public/instructions/index.d.ts +1 -2
- package/dist/src/public/instructions/index.js +1 -1
- package/dist/src/public/instrumentation/index.d.ts +36 -20
- package/dist/src/public/instrumentation/index.js +1 -1
- package/dist/src/public/instrumentation/otel.d.ts +32 -0
- package/dist/src/public/instrumentation/otel.js +1 -0
- package/dist/src/public/instrumentation/provider.d.ts +117 -0
- package/dist/src/public/instrumentation/provider.js +1 -0
- package/dist/src/public/tools/approval/approval-helpers.d.ts +4 -4
- package/dist/src/public/tools/index.d.ts +1 -1
- package/dist/src/runtime/actions/results.d.ts +3 -3
- package/dist/src/runtime/agent/bootstrap.d.ts +2 -0
- package/dist/src/runtime/agent/bootstrap.js +1 -1
- package/dist/src/runtime/attributes/emit.js +1 -1
- package/dist/src/runtime/connections/principal.d.ts +3 -0
- package/dist/src/runtime/connections/principal.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.d.ts +3 -5
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/connections/types.d.ts +5 -0
- package/dist/src/runtime/prompt/compose.d.ts +1 -1
- package/dist/src/runtime/prompt/compose.js +3 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/resolve-tool.js +1 -1
- package/dist/src/runtime/types.d.ts +4 -3
- package/dist/src/setup/index.d.ts +1 -0
- package/dist/src/setup/index.js +1 -1
- package/dist/src/setup/project-resolution.d.ts +3 -3
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/version-tokens.js +1 -1
- package/dist/src/setup/slack-connect-lifecycle.d.ts +0 -9
- package/dist/src/setup/slack-connect-lifecycle.js +1 -1
- package/dist/src/setup/slackbot.d.ts +2 -1
- package/dist/src/setup/slackbot.js +1 -1
- package/dist/src/setup/verified-remote-agent.d.ts +30 -0
- package/dist/src/setup/verified-remote-agent.js +1 -0
- package/dist/src/shared/agent-definition.d.ts +9 -0
- package/dist/src/shared/channel-definition.d.ts +3 -1
- package/dist/src/shared/dynamic-tool-definition.d.ts +3 -4
- package/dist/src/shared/instructions-definition.d.ts +15 -11
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tracing/agent-action-instrumentation.d.ts +31 -0
- package/dist/src/tracing/agent-action-instrumentation.js +1 -0
- package/dist/src/tracing/agent-approval-instrumentation.d.ts +13 -0
- package/dist/src/tracing/agent-approval-instrumentation.js +1 -0
- package/dist/src/tracing/agent-channel-delivery-instrumentation.d.ts +13 -0
- package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -0
- package/dist/src/tracing/agent-otel-content.d.ts +6 -0
- package/dist/src/tracing/agent-otel-content.js +2 -2
- package/dist/src/tracing/agent-otel-provider.d.ts +10 -8
- package/dist/src/tracing/agent-otel-provider.js +2 -2
- package/dist/src/tracing/agent-otel-session-context.d.ts +17 -0
- package/dist/src/tracing/agent-otel-session-context.js +1 -0
- package/dist/src/tracing/agent-otel-usage.d.ts +4 -0
- package/dist/src/tracing/agent-otel-usage.js +1 -0
- package/dist/src/tracing/agent-span-id-generator.d.ts +2 -0
- package/dist/src/tracing/agent-span-id-generator.js +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.d.ts +28 -0
- package/dist/src/tracing/agent-tool-instrumentation.js +1 -0
- package/dist/src/tracing/agent-trace-context-store.d.ts +8 -1
- package/dist/src/tracing/agent-trace-context-store.js +1 -1
- package/dist/src/tracing/agent-trace-span-processor.d.ts +0 -1
- package/dist/src/tracing/agent-trace-span-processor.js +1 -1
- package/dist/src/tracing/agent-trace-state.d.ts +33 -3
- package/dist/src/tracing/agent-trace-state.js +1 -1
- package/dist/src/tracing/batch-span-processor.d.ts +20 -0
- package/dist/src/tracing/batch-span-processor.js +1 -0
- package/dist/src/tracing/content-attributes.d.ts +28 -0
- package/dist/src/tracing/content-attributes.js +1 -0
- package/dist/src/tracing/content-span-processor.d.ts +19 -0
- package/dist/src/tracing/content-span-processor.js +1 -0
- package/dist/src/tracing/install-instrumentation-runtime.d.ts +19 -0
- package/dist/src/tracing/install-instrumentation-runtime.js +1 -0
- package/dist/src/tracing/local-instrumentation-runtime.d.ts +1 -1
- package/dist/src/tracing/local-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/local-traces.d.ts +56 -0
- package/dist/src/tracing/local-traces.js +1 -0
- package/dist/src/tracing/otel-declaration.d.ts +150 -0
- package/dist/src/tracing/otel-declaration.js +1 -0
- package/dist/src/tracing/otel-registration.d.ts +21 -0
- package/dist/src/tracing/otel-registration.js +1 -0
- package/dist/src/tracing/vercel-runtime-span-exporter.d.ts +5 -0
- package/dist/src/tracing/vercel-runtime-span-exporter.js +1 -0
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/README.md +18 -20
- package/docs/agent-config.md +5 -5
- package/docs/channels/eve.mdx +10 -56
- package/docs/channels/github.mdx +1 -1
- package/docs/channels/meta.json +1 -0
- package/docs/concepts/context-control.md +32 -56
- package/docs/concepts/default-harness.md +2 -2
- package/docs/concepts/execution-model-and-durability.mdx +4 -4
- package/docs/concepts/meta.json +3 -1
- package/docs/concepts/sessions-runs-and-streaming.md +22 -10
- package/docs/{guides → concepts}/state.md +3 -3
- package/docs/connections/mcp.mdx +6 -89
- package/docs/connections/meta.json +1 -0
- package/docs/connections/openapi.mdx +5 -69
- package/docs/connections/overview.mdx +29 -3
- package/docs/evals/meta.json +1 -0
- package/docs/evals/reporters.mdx +14 -4
- package/docs/extensions.md +1 -1
- package/docs/getting-started.mdx +175 -13
- package/docs/guides/auth-and-route-protection.md +3 -18
- package/docs/guides/client/meta.json +2 -1
- package/docs/guides/client/output-schema.mdx +2 -2
- package/docs/guides/client/overview.mdx +1 -1
- package/docs/guides/deployment/meta.json +1 -0
- package/docs/guides/deployment/overview.md +1 -1
- package/docs/guides/deployment/self-hosting.md +3 -3
- package/docs/guides/deployment/vercel.mdx +1 -1
- package/docs/guides/dev-tui.md +3 -13
- package/docs/guides/dynamic-capabilities.md +26 -4
- package/docs/guides/frontend/meta.json +2 -1
- package/docs/guides/frontend/nextjs.mdx +1 -10
- package/docs/guides/frontend/nuxt.mdx +1 -10
- package/docs/guides/frontend/overview.mdx +12 -3
- package/docs/guides/frontend/sveltekit.mdx +1 -10
- package/docs/guides/frontend/use-eve-agent-svelte.mdx +39 -126
- package/docs/guides/frontend/use-eve-agent-vue.mdx +40 -139
- package/docs/guides/instrumentation.md +37 -15
- package/docs/guides/meta.json +1 -5
- package/docs/guides/remote-agents.md +9 -9
- package/docs/guides/session-context.md +34 -103
- package/docs/install-integrations.mdx +1 -1
- package/docs/instructions.mdx +45 -12
- package/docs/meta.json +24 -13
- package/docs/patterns/dynamic-scheduling.md +1 -1
- package/docs/patterns/meta.json +1 -0
- package/docs/patterns/multi-tenant-approvals.md +1 -1
- package/docs/patterns/multi-tenant-auth.md +1 -1
- package/docs/patterns/multi-tenant-memory.md +4 -3
- package/docs/{guides → protocols}/acp.md +1 -1
- package/docs/protocols/meta.json +5 -0
- package/docs/reference/cli.md +34 -34
- package/docs/reference/meta.json +1 -1
- package/docs/reference/typescript-api.md +4 -2
- package/docs/{subagents.mdx → subagents/index.mdx} +2 -2
- package/docs/subagents/meta.json +5 -0
- package/docs/{guides/dynamic-workflows.md → subagents/workflow-tool.md} +6 -6
- package/docs/tools/human-in-the-loop.md +1 -1
- package/docs/tools/meta.json +1 -0
- package/docs/tools/overview.mdx +1 -1
- package/docs/tutorial/connect-a-warehouse.mdx +1 -1
- package/docs/tutorial/meta.json +1 -0
- package/docs/tutorial/remember-definitions.mdx +2 -2
- package/docs/tutorial/ship-it.mdx +2 -2
- package/package.json +10 -4
- package/dist/src/compiled/_chunks/workflow/dist-C8PhDW9B.js +0 -1
- package/dist/src/compiled/_chunks/workflow/functions-xMPAeWFr.js +0 -1
- package/dist/src/compiled/_chunks/workflow/node-Smb57EnG.js +0 -40
- package/dist/src/compiled/_chunks/workflow/resume-hook-BrduAuFX.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-CX7_sJnW.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-tsb2HjWK.js +0 -1
- package/dist/src/compiled/_chunks/workflow/undici-BNc_0O4m.js +0 -95
- package/dist/src/compiled/_chunks/workflow/wait-until-BYKVqrwc.js +0 -15
- package/dist/src/harness/instrumentation-config.js +0 -1
- package/dist/src/harness/instrumentation-lifecycle.d.ts +0 -171
- package/dist/src/harness/instrumentation-lifecycle.js +0 -1
- package/dist/src/harness/instrumentation-native-events.js +0 -1
- package/dist/src/harness/otel-integration.d.ts +0 -12
- package/dist/src/harness/otel-integration.js +0 -1
- package/docs/installation.mdx +0 -66
- package/docs/project-structure.mdx +0 -53
- package/docs/reference/project-layout.md +0 -123
- /package/dist/src/harness/{instrumentation-runtime-context.d.ts → instrumentation/runtime-context.d.ts} +0 -0
- /package/dist/src/harness/{instrumentation-runtime-context.js → instrumentation/runtime-context.js} +0 -0
- /package/docs/{guides → protocols}/ucp.mdx +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{i as e,o as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DaDcL9Zw.js";import{$ as r,$t as i,A as a,An as o,At as s,B as c,Bn as l,Bt as u,C as d,Cn as f,Ct as p,D as m,Dn as h,Dt as g,E as _,En as v,Er as y,Et as b,Fn as x,Ft as S,G as C,Gn as w,Gt as T,H as E,Ht as D,It as O,J as k,Jt as A,K as j,Kt as M,L as N,Ln as P,Lt as F,M as ee,Mt as I,Nt as L,O as R,On as z,Ot as B,Pt as te,Q as V,Qt as ne,R as re,Rn as ie,Rt as ae,S as oe,Sn as se,St as ce,Tn as le,Tr as ue,Tt as de,U as fe,Ut as pe,Vt as me,W as he,Wt as ge,X as _e,Xn as ve,Xt as ye,Y as be,Yn as xe,Yt as H,Z as U,Zt as Se,_ as Ce,_n as we,a as Te,an as Ee,ar as De,at as Oe,bn as ke,bt as Ae,c as je,cn as Me,ct as W,d as Ne,dn as Pe,dr as Fe,en as Ie,et as Le,f as Re,fn as ze,fr as Be,ft as Ve,g as He,gn as Ue,gr as We,h as Ge,hn as Ke,hr as qe,ht as Je,i as Ye,in as Xe,ir as Ze,it as Qe,jt as $e,k as et,kn as G,kt as tt,l as nt,ln as rt,lr as it,lt as at,m as ot,mn as st,mt as ct,nn as lt,nr as ut,nt as dt,o as ft,on as pt,or as mt,p as ht,pn as gt,pr as K,pt as _t,q as vt,qt as yt,r as bt,rn as xt,rr as St,rt as Ct,s as wt,sn as Tt,sr as Et,t as Dt,tn as Ot,tt as kt,u as At,un as jt,ur as Mt,ut as Nt,v as Pt,vn as Ft,vr as It,wn as Lt,wr as Rt,wt as zt,x as Bt,xn as Vt,y as Ht,yn as Ut,yt as Wt,z as Gt,zt as Kt}from"../../_chunks/workflow/wait-until-BYKVqrwc.js";import{A as qt,D as q,O as Jt,S as Yt,_ as Xt,a as Zt,b as Qt,c as $t,d as J,g as en,i as Y,k as X,l as Z,m as tn,n as nn,o as rn,r as Q,s as an,t as on,u as sn}from"../../_chunks/workflow/dist-CRTn4Sg8.js";import{a as cn,c as ln,i as un,l as dn,n as fn,s as pn,t as mn}from"../../_chunks/workflow/private-tvMBynnC.js";import{n as hn,t as gn}from"../../_chunks/workflow/dist-tJoQXAF6.js";import{a as _n,n as vn}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{d as yn,l as bn,n as xn,s as Sn,u as Cn}from"../../_chunks/workflow/attribute-changes-6OqdYdi4.js";import{n as wn,r as Tn,t as En}from"../../_chunks/workflow/node-Smb57EnG.js";import{n as Dn,r as On,t as kn}from"../../_chunks/workflow/resume-hook-BrduAuFX.js";import{a as An,c as jn,d as Mn,i as Nn,l as Pn,n as Fn,o as In,r as Ln,s as Rn,t as zn,u as Bn}from"../../_chunks/workflow/run-CX7_sJnW.js";import{createRequire as Vn}from"node:module";import{createHash as Hn}from"node:crypto";import{types as Un}from"node:util";import Wn from"node:assert/strict";import{pathToFileURL as Gn}from"node:url";import{Script as Kn,createContext as qn,runInContext as Jn}from"node:vm";function Yn(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function Xn(e){return e===`vercel`||e===`@workflow/world-vercel`}var Zn=t(hn(),1);function Qn(e){return e instanceof Cn||e instanceof bn||e instanceof yn||e instanceof xn}const $n=`The workflow event log contains orphaned or mismatched events and cannot be replayed. This is an internal workflow SDK error; please report it with the runId.`;function er(e,t){let n=t??Bt(e);return tn.is(e)?{attribution:`user`,errorCode:n,hint:`A value passed across a workflow/step boundary could not be serialized. See the error message for the offending path and the Learn More link for details.`}:Qn(e)?{attribution:`user`,errorCode:n,hint:`A workflow-only or step-only API was called from the wrong context. The error message includes the exact API and how to move the call.`}:on.is(e)?{attribution:`sdk`,errorCode:n,hint:$n}:n===X.DEPLOYMENT_MISMATCH?{attribution:`sdk`,errorCode:n,hint:`The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.`}:e instanceof q?{attribution:`sdk`,errorCode:n,hint:`This is an internal workflow SDK error, not a bug in your code. If it keeps happening, please report it with the stack trace and the runId.`}:n===X.REPLAY_TIMEOUT?{attribution:`sdk`,errorCode:n,hint:'The workflow replay between step boundaries took too long. This bounds workflow-VM and event-log replay time only — step bodies (`"use step"` functions) are excluded. This usually means the event log is unusually large or the workflow function is doing heavy synchronous work in workflow code outside of step bodies. Override the default budget via the WORKFLOW_REPLAY_TIMEOUT_MS env var if needed.'}:n===X.MAX_DELIVERIES_EXCEEDED?{attribution:`sdk`,errorCode:n,hint:`The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.`}:n===X.MAX_EVENTS_EXCEEDED?{attribution:`user`,errorCode:n,hint:`The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.`}:n===X.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:$n}:n===X.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}const tr=4096;function nr(e){if(e===null)return!0;let t=typeof e;return t===`object`||t===`function`?!1:t===`string`?e.length<=tr:t!==`bigint`||e.toString().length<=tr}var rr=class{encryptionKey;preparer;preparedPayloads=new Map;primitiveStepResults=new Map;nextUnscannedEventIndex=0;constructor(e,t=E){this.encryptionKey=e,this.preparer=t}async prewarm(e,t){let n=[],r=(e,t)=>{t instanceof Uint8Array&&(this.preparedPayloads.has(e)||n.push(this.ensurePreparation(e,t)))};r(this.workflowInputKey(e.runId),e.input);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let n=t[e];switch(n.eventType){case`step_completed`:r(this.eventPayloadKey(n.eventId,`result`),n.eventData?.result);break;case`step_failed`:r(this.eventPayloadKey(n.eventId,`error`),n.eventData?.error);break;case`hook_received`:r(this.eventPayloadKey(n.eventId,`payload`),n.eventData?.payload);break}}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return nr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,this.encryptionKey)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const ir=`cinst_${Tn()}`;function ar(){return K(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const or=24e4,sr=3e4,cr=78e4,lr=new Set;function ur(e,t,n){lr.has(e)||(lr.add(e),U.warn(t,n))}function dr(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return or;let t=Number(e);return!Number.isFinite(t)||t<=0?(ur(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:or}),or):t<3e4?(ur(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:sr,minMs:sr}),sr):t>78e4?(ur(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:cr,maxMs:cr}),cr):t}function fr(){return K(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}const pr=new Set;function mr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(pr.has(e)||(pr.add(e),U.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(pr.has(e)||(pr.add(e),U.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}const hr=new Set;function gr(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){hr.has(e)||(hr.add(e),U.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function _r(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function vr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function yr(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function br(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function xr(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Sr(){return K(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function Cr(){return K(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function wr(){return K(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function Tr(){return K(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function Er(){return K(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function Dr(){return K(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const Or=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function kr(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=Or(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}const Ar={outcome:`continue`};function jr(e,t,n){return{outcome:e,spanAttributes:{...Vt(t),...Ot(n),...Ie(e===`rerouted`)}}}async function Mr({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return Ar;let s=await e.getDeploymentId();if(t.deploymentId===s)return Ar;await o?.();let c=Dr(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new Qt(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:X.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!Q.is(e)&&!J.is(e))throw e}return jr(`failed`,t.deploymentId,r)};if(i&&r<c){let e=r+1,n=Math.min(2**r,8);try{return await i({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),U.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),jr(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return U.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...l,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),u(0,t)}}return U.error(r>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,l),u(r)}function Nr(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function Pr(){try{return Vn(Gn(process.cwd()+`/package.json`).href)}catch{return Vn(import.meta.url)}}const Fr=Symbol.for(`@workflow/world//cache`),Ir=Symbol.for(`@workflow/world//stubbedCache`),Lr=Symbol.for(`@workflow/world//cachePromise`),Rr=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function zr(e){if(typeof e.createWorld==`function`)return e.createWorld();if(typeof e.default==`function`)return e.default();if(e.default&&typeof e.default==`object`)return e.default;throw Error(`Invalid target world module: must export createWorld(), a default factory, or a default World instance.`)}function Br(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return Gn(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return Gn(process.cwd()+`/`+e).href;try{return Gn(Pr().resolve(e)).href}catch{return e}}const Vr=async()=>{let e=Yn();if(Xn(e)){let e=[`WORKFLOW_VERCEL_PROJECT`,`WORKFLOW_VERCEL_TEAM`,`WORKFLOW_VERCEL_AUTH_TOKEN`,`WORKFLOW_VERCEL_ENV`].filter(e=>process.env[e]);return e.length>0&&process.env.VERCEL===`1`&&console.warn(`[workflow] Warning: ${e.join(`, `)} env var(s) are set but have no effect at runtime. These are only used by the Workflow CLI. Remove them from your Vercel project environment variables.`),Nr()}if(e===`local`)return Nr({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=Pr()(e)}catch{t=await import(Br(e))}if(typeof t==`function`)return t();try{return await zr(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},Hr=async()=>{if($[Ir])return w($[Ir]),$[Ir];$[Rr]||($[Rr]=Vr().catch(e=>{throw $[Rr]=void 0,e}));let e=await $[Rr];return w(e),$[Ir]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},Ur=async()=>$[Fr]?(w($[Fr]),$[Fr]):($[Lr]||($[Lr]=Vr().catch(e=>{throw $[Lr]=void 0,e})),$[Fr]=await $[Lr],w($[Fr]),$[Fr]),Wr=e=>{$[Fr]=e,$[Ir]=e,$[Lr]=void 0,$[Rr]=void 0},Gr=Symbol.for(`@workflow/world//getWorldFn`);globalThis[Gr]??=Ur;var Kr=class{limitMs;elapsedMs=0;intervalStart;constructor(e=dr()){this.limitMs=e,this.intervalStart=Date.now()}get configuredLimitMs(){return this.limitMs}elapsed(){let e=this.intervalStart===null?0:Date.now()-this.intervalStart;return this.elapsedMs+e}pause(){this.intervalStart!==null&&(this.elapsedMs+=Date.now()-this.intervalStart,this.intervalStart=null)}resume(){this.intervalStart=Date.now()}isExhausted(){return this.elapsed()>=this.limitMs}},qr=class extends Error{name=`ReplayTimeoutRetryError`};async function Jr(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a}=e,o=U.forRun(t,n),s=fr();if(i<=s)throw o.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:s}),new qr(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let c=await Ur(),l=er(void 0,X.REPLAY_TIMEOUT);o.error(`Workflow replay exceeded timeout and max retries exceeded. Failing the run`,{timeoutMs:a,attempt:i,maxRetries:s,errorCode:l.errorCode,errorAttribution:l.attribution});let u=Re(c,t),d=new Y(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await c.events.create(t,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(d,t,await u()),errorCode:X.REPLAY_TIMEOUT}},{requestId:r})}var Yr=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new Xr}activate(){this.active=!0}async withEventCreate(e,t){if(!this.active||this.reported)return t(e);this.reported=!0;try{return await t({...e,replayDivergenceCount:this.divergenceCount})}catch(e){throw this.reported=!1,e}}},Xr=class extends Yr{constructor(){super(0)}activate(){}};const Zr=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,Qr=(()=>{let e=new Int8Array(128).fill(-1);for(let t=0;t<32;t++)e[Zr.charCodeAt(t)]=t;for(let t=0;t<32;t++){let n=Zr[t].toLowerCase();n!==Zr[t]&&(e[n.charCodeAt(0)]=t)}return e})();function $r(e){if(typeof e!=`string`)throw TypeError(`Expected ULID string, got ${typeof e}`);if(e.length!==26)throw Error(`Invalid ULID length: expected 26, got ${e.length}`);let t=new Uint8Array(26);for(let n=0;n<26;n++){let r=e.charCodeAt(n),i=r<128?Qr[r]:-1;if(i<0)throw Error(`Invalid Crockford-Base32 character at index ${n}: ${JSON.stringify(e[n])}`);t[n]=i}if(t[0]&24)throw Error(`Invalid ULID: top 2 bits must be zero (first char > '7'): ${JSON.stringify(e[0])}`);let n=new Uint8Array(16),r=t[0]&7,i=3,a=0;for(let e=1;e<26;e++)for(r=r<<5|t[e],i+=5;i>=8;)i-=8,n[a++]=r>>i&255;if(a!==16||i!==0)throw Error(`Internal error: ULID bit packing did not consume cleanly`);return n}function ei(e){if(e.length!==16)throw Error(`Invalid byte length: expected 16, got ${e.length}`);let t=0,n=0;t=0,n=2;let r=``;for(let i=0;i<16;i++)for(t=t<<8|e[i],n+=8;n>=5;)n-=5,r+=Zr[t>>n&31];if(r.length!==26||n!==0)throw Error(`Internal error: ULID bit packing did not flush cleanly`);return r}const ti=new Map(Object.entries({unknown:0,iad1:1,sfo1:2,pdx1:3,cle1:4,yul1:5,gru1:6,dub1:7,lhr1:8,cdg1:9,fra1:10,bru1:11,arn1:12,hel1:13,zrh1:14,cpt1:15,dxb1:16,bom1:17,sin1:18,hkg1:19,hnd1:20,icn1:21,kix1:22,syd1:23}).filter(e=>e[0]!==`unknown`).map(([e,t])=>[t,e]));function ni(e){return ti.get(e)??null}function ri(e){let t=$r(e),n=(t[0]&128)!=0;t[0]&=-129;let r=ei(t);if(!n)return{tagged:!1,ulid:r,version:null,regionId:null,region:null};let i=(t[6]&252)>>2;return{tagged:!0,ulid:r,version:(t[6]&3)<<3|(t[7]&224)>>5,regionId:i,region:ni(i)}}function ii(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return En(ri(t).ulid)}catch{return}}function ai(e){return Un.isNativeError(e)?e.name:`Error`}function oi(e){return Un.isNativeError(e)?e.stack??``:``}function si(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function ci(e){if(!si(e)||Y.is(e))return e;let t=new Y(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function li(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function ui(e){if(Un.isNativeError(e))return{name:e.name,message:e.message,stack:e.stack??``};if(typeof e==`string`)return{name:`Error`,message:e,stack:``};try{return{name:`Error`,message:JSON.stringify(e),stack:``}}catch{return{name:`Error`,message:String(e),stack:``}}}async function di(e){if(li(e))try{let t=await di(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await di(e);return{...t,message:`Promise rejection: ${t.message}`}}return ui(e)}let fi,pi,mi;async function hi(){if(pi!==void 0)return pi;if(mi)return mi;if(!fi)try{let e=[`@workflow/utils`,`get-port`].join(`/`);fi=Vn(Gn(process.cwd()+`/package.json`).href)(e).getPort}catch{fi=async()=>void 0}return mi=(fi??(async()=>void 0))().then(e=>(typeof e==`number`&&(pi=e),e)).finally(()=>{mi=void 0}),mi}const gi=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function _i(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(gi.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(!(!n&&i===void 0))return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs,replayMs:e.replayMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},turbo:e.turbo}}function vi(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}function yi(e,t){if(t&&!(!e.events||e.cursor===void 0))return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function bi(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:o,stepName:c}=e,l=!!process.env.VERCEL_URL,d=(e.runSpecVersion??0)>=5,f=e.replayRecoveryReporter??Yr.inert(),p=(e,r)=>f.withEventCreate(r,r=>t.events.create(n,e,r));return W(`step.execute ${ue(c)}`,{},async f=>{f?.setAttributes({...me(c),...Me(r),...ke(n),...ae(o)});let m=Re(t,n),h=fn(c);if(!h||typeof h!=`function`){let t=`Step "${c}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(U.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:c,stepId:o}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},{computeInstanceId:ir})}catch(e){if(Q.is(e))return{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(new Y(t),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return{type:`skipped`};throw e}return f?.setAttributes({...H(`failed`),...O(!0)}),{type:`failed`}}let g=h.maxRetries??3;if(f?.setAttributes({...u(g)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>g+1){let t=g,r=`Step "${c}" exceeded max retries (${t} ${qt(`retry`,`retries`,t)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,stepId:o,attempt:e.authoritativeAttempt,maxRetries:g});try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(new Y(r),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return U.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}return f?.setAttributes({...H(`failed`),...pe(!0)}),{type:`failed`}}let v=e=>{if(en.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return U.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(J.is(e))return U.info(`Workflow run "${n}" has already completed, skipping step "${o}": ${e.message}`),{type:`gone`};if(Q.is(e))return U.debug(`Step in terminal state, skipping`,{stepName:c,stepId:o,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),f?.setAttributes({...A(!0),...yt(`completed`)}),{type:`skipped`};if(Xt.is(e)){let t=Math.max(1,e.retryAfter??1);return U.debug(`Step retryAfter timestamp not yet reached`,{stepName:c,stepId:o,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},y=e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(_r()||e.forceOptimisticStart===!0&&!vr()),b,x={computeInstanceId:ir,...e.preconditionSnapshot},C,w,E=async()=>{if(!w)return;let e=await w;if(e.ok)return;let t=v(e.err);if(!t)throw e.err;return t};if(y){w=(e.runReadyBarrier??Promise.resolve()).then(()=>(C=Date.now(),p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},x))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;b={runId:n,stepId:o,stepName:c,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};C=Date.now(),b=(await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:e.lazyStepInput===void 0?{stepName:c,...t}:{stepName:c,workflowName:r,input:e.lazyStepInput,...t}},x)).step}catch(e){let t=v(e);if(t)return t;throw e}U.debug(`Step execution details`,{stepName:c,stepId:b.stepId,status:b.status,attempt:b.attempt}),f?.setAttributes({...H(b.status)});let k;if(b.attempt>g+1&&b.error){let e=b.attempt-1,t=`Step "${c}" exceeded max retries (${e} ${qt(`retry`,`retries`,e)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,retryCount:e});let r=new Y(t);if(b.error!=null)try{r.cause=await re(b.error,n,await m())}catch{}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(r,n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return U.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...H(`failed`),...pe(!0)}),{type:`failed`}}let j=[],P=[],ee=!0,R,z=()=>{if(!R||R.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t===void 0||C===void 0||(R.rsfs=Math.max(0,C-t),f&&f.setAttributes({...M(R.rsfs)}))};try{let t=b.attempt;if(!b.startedAt)throw new q(`Step "${o}" has no "startedAt" timestamp`);let u=b.startedAt,p=e.encryptionKey??await m(),g=await W(`step.hydrate`,{},async t=>{let r=Date.now(),i=await N(b.input,n,p,P,globalThis,{},e.workflowDeploymentId),a=Date.now()-r;return t?.setAttributes({...I(i.args.length),...tt(a)}),i}),v=g.args,x=g.thisVal??null,S=vn(l?`https://${process.env.VERCEL_URL}`:`http://localhost:${await hi()??3e3}`),w,T=!1,O=Date.now();R=vi({tracking:e.latencyTracking,stepCodeStartedAtMs:O,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:y,stepStartPostSentAtMs:C}),R&&f?.setAttributes({...R.ttfs===void 0?{}:Se(R.ttfs),...R.stso===void 0?{}:ye(R.stso),...R.rsfs===void 0?{}:M(R.rsfs),...R.finalSchedulingReplay===void 0?{}:F(R.finalSchedulingReplay),...Kt(R.optimizations??[])});try{k=await W(`step.execute`,{},async()=>await _e.run({stepMetadata:{stepName:c,stepId:o,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:S,features:{encryption:!!p}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:P,preCompletionOps:j,closureVars:g.closureVars,encryptionKey:p,runReadyBarrier:y?e.runReadyBarrier:void 0},()=>h.apply(x,v)))}catch(e){w=e,T=!0}let A=Date.now()-O;if(_(...v,x,g.closureVars),T)throw w;if(f?.setAttributes({...s(A)}),k=await W(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await a(k,n,p,P,globalThis,!1,!1,d,y?e.runReadyBarrier:void 0),o=Date.now()-r;return t?.setAttributes({...$e(o),...D(typeof i)}),i}),P.length>0){let e=Promise.all(P);Dt(e,e=>{U.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:o,error:e instanceof Error?e.message:String(e)})}),ee=await Promise.race([e.then(()=>!0,e=>{if(e?.name===`AbortError`||e?.name===`ResponseAborted`)return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))])}if(y){let e=await E();if(e)return e;z()}j.length>0&&await Promise.all(j).catch(()=>{})}catch(e){if(y){let e=await E();if(e)return e;z()}j.length>0&&await Promise.all(j).catch(()=>{});let t=ci(e),r=await di(t),i=r.stack||oi(t)||``;t instanceof Error&&f?.recordException?.(t);let a=Y.is(t);if(f?.setAttributes({...S(ai(t)),...te(r.message),...ct(ai(t)),...Ve(a?`fatal`:sn.is(t)?`retryable`:`transient`),..._t(!a)}),J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};if(a){V.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:c,errorStack:i}),Un.isNativeError(t)&&i&&(t.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(t,n,await m(),[],globalThis,d),...R}})}catch(e){if(Q.is(e))return U.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...H(`failed`),...O(!0)}),{type:`failed`}}let s=b.attempt;if(f?.setAttributes({...L(s),...u(g)}),s>=g+1){let t=b.attempt-1;V.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:c,attempt:b.attempt,retryCount:t,errorStack:i});let a=new Y(`Step "${c}" failed after ${g} ${qt(`retry`,`retries`,g)}: ${r.message}`);a.cause=e,i&&(a.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(a,n,await m(),[],globalThis,d),...R}})}catch(e){if(Q.is(e))return U.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...H(`failed`),...pe(!0)}),{type:`failed`}}sn.is(e)?V.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,message:e.message}):V.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,errorStack:i}),Un.isNativeError(e)&&i&&(e.stack=i);try{await p({eventType:`step_retrying`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await et(e,n,await m(),[],globalThis,d),...sn.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(Q.is(e))return U.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}let l=Math.max(1,sn.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return f?.setAttributes({...ge(l),...T(!0)}),{type:`retry`,timeoutSeconds:l}}let B;try{B=await p({eventType:`step_completed`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,result:k,...R}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(Q.is(e))return U.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};if(J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};throw e}let ne=yi(B,e.inlineDeltaSinceCursor!==void 0);return f?.setAttributes({...H(`completed`),...D(typeof k)}),P.length>0&&V.debug(`Step has pending ops`,{workflowRunId:n,stepName:c,opsCount:P.length}),{type:`completed`,hasPendingOps:!ee,inlineDelta:ne}})}function xi(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function Si(e,t){if(e.lastStartedAt===void 0)return 0;let n=Sr(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function Ci(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function wi(e,t,n){let r=new Map,i=new Set;for(let t of e)if(t.correlationId!==void 0)if(t.eventType===`step_started`){let e=`eventData`in t&&t.eventData&&`ownerMessageId`in t.eventData&&typeof t.eventData.ownerMessageId==`string`?t.eventData.ownerMessageId:void 0;r.set(t.correlationId,e)}else t.eventType===`step_retrying`&&i.add(t.correlationId);for(let e of t)if(e!==void 0&&!i.has(e)&&r.get(e)===n)return!0;return!1}const Ti=new Map;async function Ei(e,t,n){let r=`${e}:${t}`,i=Ti.get(r);if(i){U.warn(`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await i}catch{}return{type:`skipped`}}let a=n();Ti.set(r,a);try{return await a}finally{Ti.delete(r)}}async function Di({runId:e,hookEvent:t,queueItem:n,requestId:r,createEvent:i}){try{return(await i(t,{requestId:r})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(Q.is(t))return U.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(J.is(t))return U.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(ki(t)){let e=new Y(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Oi({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s}){let c=n.runId,l=async()=>{if(o)try{await o}catch{}},u=async e=>{let t=(await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(t.length!==0)throw t.find(e=>$t.is(e))??t[0]},d=s??Yr.inert(),f=(e,n)=>d.withEventCreate(n,n=>t.events.create(c,e,n)),p=0,m=async(e,t)=>{if(!a)return f(e,t);let n=a,r=await f(e,{...t,...He(n.events,n.cursor)});if(r.events?.length&&r.hasMore!==!0){let t=ht(n.events,r.events);p+=t,t>0&&U.debug(`Suspension write skipped occupied slots`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,reported:t})}else r.events?.length&&U.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,offered:r.events.length});return r},h=e.steps.filter(e=>e.type===`step`),g=e.steps.filter(e=>e.type===`hook`),_=e.steps.filter(e=>e.type===`wait`),v=e.steps.filter(e=>e.type===`attribute`),y=g.filter(e=>!e.hasCreatedEvent),b=new Map;for(let e of g){if(e.hasCreatedEvent&&!e.disposed)continue;let t=b.get(e.token);t?t.push(e):b.set(e.token,[e])}let x=await t.getEncryptionKeyForRun?.(n),S=x?await Et(x):void 0,C=(n.specVersion??0)>=5;async function w(e){let t={eventType:`hook_disposed`,specVersion:5,correlationId:e.correlationId,eventData:{token:e.token}};try{await m(t,{requestId:i})}catch(t){if(Q.is(t))U.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(J.is(t))U.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(rn.is(t))U.info(`Hook not found for disposal, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}}let T=!1,E=!1,D=0;if(b.size>0){let t=Date.now();await l(),await u([...b.values()].map(async t=>{for(let n of t){let t=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await R(n.metadata,c,S,e.globalThis,!1,C),a={eventType:`hook_created`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0}}},o=await Di({runId:c,hookEvent:a,queueItem:n,requestId:i,createEvent:m});T||=o.hasHookConflict,E||=o.hasAwaitedHookCreation,t=o.hasHookConflict}n.disposed&&!t&&await w(n)}})),D=Date.now()-t}let O=g.filter(e=>e.abortRequested&&!e.disposed);O.length>0&&(await l(),await u(O.map(async n=>{try{let r=await R({aborted:!0,reason:n.abortReason},c,S,e.globalThis,!1,C);await m({eventType:`hook_received`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,payload:r}});try{let e=k(n.token);await t.streams.write(c,e,r),await t.streams.close(c,e)}catch{U.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:c,correlationId:n.correlationId})}}catch(e){if(Q.is(e)||J.is(e))U.info(`Workflow run already completed, skipping abort`,{workflowRunId:c,correlationId:n.correlationId,message:e.message});else throw e}})));let A=new Set(h.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),j=new Set,M={executions:[]},N=new Set(E===!1?h.filter(e=>A.has(e.correlationId)).slice(0,mr()).map(e=>e.correlationId):[]),P=new Map,F=[];for(let t of h)A.has(t.correlationId)&&F.push((async()=>{let r={executions:[]},a=await R({args:t.args,closureVars:t.closureVars,thisVal:t.thisVal},c,S,e.globalThis,!1,C,r);if(M.executions.push(...r.executions),N.has(t.correlationId)){P.set(t.correlationId,{correlationId:t.correlationId,stepName:t.stepName,dehydratedInput:a});return}let o={eventType:`step_created`,specVersion:5,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}};try{await l(),await m(o,{requestId:i}),j.add(t.correlationId)}catch(e){if(Q.is(e))U.info(`Step already exists, continuing`,{workflowRunId:c,correlationId:t.correlationId,message:e.message});else throw e}})());for(let e of _)e.hasCreatedEvent||F.push((async()=>{let t={eventType:`wait_created`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};try{await l(),await m(t,{requestId:i})}catch(t){if(Q.is(t))U.info(`Wait already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}})());for(let e of v)F.push((async()=>{try{await l(),await m({eventType:`attr_set`,specVersion:5,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(Q.is(t))U.info(`Workflow attribute event already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(ki(t)){let e=new Y(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await u(F);let ee=M.executions.length===0;ee||U.debug(`Serializing step inputs executed workflow code; falling back to replay instead of retaining the VM`,{workflowRunId:c,executions:M.executions.slice(0,5).map(e=>e.detail?`${e.kind}(${e.detail})`:e.kind)});let I=[];for(let e of N){let t=P.get(e);t&&I.push(t)}let L=Date.now(),B;for(let e of _){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-L),r=Math.ceil(n/1e3);(!B||r<B.seconds)&&(B={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...se(`workflow_suspended`),...Lt(h.length),...Tt(y.length),...z(_.length)}),{pendingSteps:h,createdStepCorrelationIds:j,lazyInlineSteps:I,waitTimeout:T?void 0:B,hasHookConflict:T,hasAwaitedHookCreation:E,hasAttributeEvents:v.length>0,hasHookEvents:y.length>0,hookCreationMs:D,retainedStepInputsSafe:ee,reportedEventCount:p}}function ki(e){return e instanceof We||e instanceof Error&&e.name===`AttributeValidationError`||Jt.is(e)&&e.status===400}const Ai=()=>K(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),ji=()=>K(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function Mi(e,t,n=Date.now()){let r=Ai();if(e<=Math.min(ji(),r))return{delaySeconds:e,idempotencyKey:`${t}:${Math.floor(n/1e3)}`};let i=Math.ceil(e/r);return{delaySeconds:Math.min(e,r),idempotencyKey:i===1?t:`${t}:hop-${i}`}}var Ni=44,Pi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Fi=new Uint8Array(64),Ii=new Uint8Array(128);for(let e=0;e<Pi.length;e++){let t=Pi.charCodeAt(e);Fi[e]=t,Ii[t]=e}function Li(e,t){let n=0,r=0,i=0;do i=Ii[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function Ri(e,t){return e.pos>=t?!1:e.peek()!==Ni}var zi=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Bi(e){let{length:t}=e,n=new zi(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=Li(n,i),i<u&&(l=!1),u=i,Ri(n,e)?(a=Li(n,a),o=Li(n,o),s=Li(n,s),Ri(n,e)?(c=Li(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Vi(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Vi(e){e.sort(Hi)}function Hi(e,t){return e[0]-t[0]}const Ui=/^[\w+.-]+:\/\//,Wi=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,Gi=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function Ki(e){return Ui.test(e)}function qi(e){return e.startsWith(`//`)}function Ji(e){return e.startsWith(`/`)}function Yi(e){return e.startsWith(`file:`)}function Xi(e){return/^[.?#]/.test(e)}function Zi(e){let t=Wi.exec(e);return $i(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function Qi(e){let t=Gi.exec(e),n=t[2];return $i(`file:`,``,t[1]||``,``,Ji(n)?n:`/`+n,t[3]||``,t[4]||``)}function $i(e,t,n,r,i,a,o){return{scheme:e,user:t,host:n,port:r,path:i,query:a,hash:o,type:7}}function ea(e){if(qi(e)){let t=Zi(`http:`+e);return t.scheme=``,t.type=6,t}if(Ji(e)){let t=Zi(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(Yi(e))return Qi(e);if(Ki(e))return Zi(e);let t=Zi(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function ta(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function na(e,t){ra(t,t.type),e.path===`/`?e.path=t.path:e.path=ta(t.path)+e.path}function ra(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function ia(e,t){if(!e&&!t)return``;let n=ea(e),r=n.type;if(t&&r!==7){let e=ea(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:na(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}ra(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?Xi(t||e)&&!Xi(r)?`./`+r+i:r+i:i||`.`}case 5:return n.path+i;default:return n.scheme+`//`+n.user+n.host+n.port+n.path+i}}function aa(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function oa(e,t){let n=aa(e),r=t?t+`/`:``;return e=>ia(r+(e||``),n)}var sa=0,ca=1,la=2,ua=3,da=4;function fa(e,t){let n=pa(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=pa(e,r+1))e[r]=ha(e[r],t);return e}function pa(e,t){for(let n=t;n<e.length;n++)if(!ma(e[n]))return n;return e.length}function ma(e){for(let t=1;t<e.length;t++)if(e[t][sa]<e[t-1][sa])return!1;return!0}function ha(e,t){return t||(e=e.slice()),e.sort(ga)}function ga(e,t){return e[sa]-t[sa]}var _a=!1;function va(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][sa]-t;if(a===0)return _a=!0,i;a<0?n=i+1:r=i-1}return _a=!1,n-1}function ya(e,t,n){for(let r=n+1;r<e.length&&e[r][sa]===t;n=r++);return n}function ba(e,t,n){for(let r=n-1;r>=0&&e[r][sa]===t;n=r--);return n}function xa(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function Sa(e,t,n,r){let{lastKey:i,lastNeedle:a,lastIndex:o}=n,s=0,c=e.length-1;if(r===i){if(t===a)return _a=o!==-1&&e[o][sa]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=va(e,t,s,c)}function Ca(e){return typeof e==`string`?JSON.parse(e):e}var wa="`line` must be greater than 0 (lines start at line 1)",Ta="`column` must be greater than or equal to 0 (columns start at column 0)",Ea=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=Ca(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=r;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=r.ignoreList||r.x_google_ignoreList||void 0;let u=oa(t,s);this.resolvedSources=c.map(u);let{mappings:d}=r;if(typeof d==`string`)this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=fa(d,n);else if(r.sections)throw Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);else throw Error(`invalid source map: ${JSON.stringify(r)}`);this._decodedMemo=xa(),this._bySources=void 0,this._bySourceMemos=void 0}};function Da(e){return e}function Oa(e){var t;return(t=Da(e))._decoded||(t._decoded=Bi(Da(e)._encoded))}function ka(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(wa);if(r<0)throw Error(Ta);let a=Oa(e);if(n>=a.length)return Aa(null,null,null,null);let o=a[n],s=ja(o,Da(e)._decodedMemo,n,r,i||1);if(s===-1)return Aa(null,null,null,null);let c=o[s];if(c.length===1)return Aa(null,null,null,null);let{names:l,resolvedSources:u}=e;return Aa(u[c[ca]],c[la]+1,c[ua],c.length===5?l[c[da]]:null)}function Aa(e,t,n,r){return{source:e,line:t,column:n,name:r}}function ja(e,t,n,r,i){let a=Sa(e,r,t,n);return _a?a=(i===-1?ya:ba)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function Ma(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Na(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&Ma(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Pa=new Map;function Fa(e){let t=Pa.get(e);if(t!==void 0)return Pa.delete(e),Pa.set(e,t),t;let n=null,r=Na(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new Ea(JSON.parse(e))}catch{n=null}for(Pa.set(e,n);Pa.size>8;){let e=Pa.keys().next().value;if(e===void 0)break;Pa.delete(e)}return n}function Ia(e,t,n){if(!e.includes(t))return e;let r=Fa(n);if(!r)return e;try{return e.split(`
|
|
2
|
-
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=
|
|
3
|
-
`)}catch{return e}}function La(e,t,n){let r=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*r*t/e.length);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(o+=e[t[s]&r]||``,o.length>=a)return o}}}function Ra(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:s}=dn(),c=`step_${e.generateUlid()}`,l={type:`step`,correlationId:c,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(l.thisVal=this);let u=n?.();return u&&(l.closureVars=u),e.invocationsQueue.set(c,l),V.debug(`Step consumer setup`,{correlationId:c,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n){let t=e.suspensionGeneration;return pn(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),C.NotConsumed}if(V.debug(`Step consumer event processing`,{correlationId:c,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:c===n.correlationId,eventType:n.eventType}),n.correlationId!==c)return C.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: step event ${n.eventType} for ${c} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),C.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(c);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{s(new Z(`Replay divergence: step ${c} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),C.Finished):(r.hasCreatedEvent=!0,C.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),C.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),C.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=cn(e,t,`step`),i,a=mn(e,t,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(n.eventId,`error`,n.eventData.error);i=await re(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){V.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new Y(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),s(i)})}),C.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,o=cn(e,i,`step`),c,l=mn(e,i,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{c={ok:!0,value:await e.replayPayloadCache.getStepResult(t,async()=>{let n=await e.replayPayloadCache.prepareEventPayload(t,`result`,r);return await Gt(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{o.markDelivered(),c.ok?a(c.value):s(c.error)})}),C.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for step ${c} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),C.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(l(n),Object.defineProperty(r,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(r,"bind",{value:function(e,...r){let i=Function.prototype.bind.call(this,e,...r);return Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperty(i,"__boundThis",{value:e,writable:!1,enumerable:!1,configurable:!1}),r.length>0&&Object.defineProperty(i,"__boundArgs",{value:r,writable:!1,enumerable:!1,configurable:!1}),i},writable:!1,enumerable:!1,configurable:!1}),r}}var za=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=o();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,o=n.next;return o.int32=function(){return n.next()*4294967296|0},o.double=function(){return o()+(o()*2097152|0)*11102230246251565e-32},o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}function o(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.alea=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ba=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor128=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Va=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorwow=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ha=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.x,n=t.i,r=e[n],i;return r^=r>>>7,i=r^r<<24,r=e[n+1&7],i^=r^r>>>10,r=e[n+3&7],i^=r^r>>>3,r=e[n+4&7],i^=r^r<<7,r=e[n+7&7],r^=r<<13,i^=r^r<<9,e[n]=i,t.i=n+1&7,i};function n(e,t){var n,r=[];if(t===(t|0))r[0]=t;else for(t=``+t,n=0;n<t.length;++n)r[n&7]=r[n&7]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&r[n]===0;++n);for(n==8?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.x&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorshift7=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ua=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.w,n=t.X,r=t.i,i,a;return t.w=e=e+1640531527|0,a=n[r+34&127],i=n[r=r+1&127],a^=a<<13,i^=i<<17,a^=a>>>15,i^=i>>>12,a=n[r]=a^i,t.i=r,a+(e^e>>>16)|0};function n(e,t){var n,r,i,a,o,s=[],c=128;for(t===(t|0)?(r=t,t=null):(t+=`\0`,r=0,c=Math.max(c,t.length)),i=0,a=-32;a<c;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),a===0&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(o=o+1640531527|0,n=s[a&127]^=r+o,i=n==0?i+1:0);for(i>=128&&(s[(t&&t.length||0)&127]=-1),i=127,a=512;a>0;--a)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;e.w=o,e.X=s,e.i=i}n(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.X&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor4096=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Wa=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,r=t.d,i=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var r=0;r<n.length+20;r++)t.b^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.tychei=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ga=n(((t,n)=>{(function(t,r,i){var a=256,o=6,s=52,c=`random`,l=i.pow(a,o),u=i.pow(2,s),d=u*2,f=a-1,p;function m(e,t,n){var s=[];t=t==1?{entropy:!0}:t||{};var f=v(_(t.entropy?[e,b(r)]:e??y(),3),s),p=new h(s),m=function(){for(var e=p.g(o),t=l,n=0;e<u;)e=(e+n)*a,t*=a,n=p.g(1);for(;e>=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return m.int32=function(){return p.g(4)|0},m.quick=function(){return p.g(4)/4294967296},m.double=m,v(b(p.S),r),(t.pass||n||function(e,t,n,r){return r&&(r.S&&g(r,p),e.state=function(){return g(p,{})}),n?(i[c]=e,t):e})(m,f,`global`in t?t.global:this==i,t.state)}function h(e){var t,n=e.length,r=this,i=0,o=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);i<a;)s[i]=i++;for(i=0;i<a;i++)s[i]=s[o=f&o+e[i%n]+(t=s[i])],s[o]=t;(r.g=function(e){for(var t,n=0,i=r.i,o=r.j,s=r.S;e--;)t=s[i=f&i+1],n=n*a+s[f&(s[i]=s[o=f&o+t])+(s[o]=t)];return r.i=i,r.j=o,n})(a)}function g(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){var n=[],r=typeof e,i;if(t&&r==`object`)for(i in e)try{n.push(_(e[i],t-1))}catch{}return n.length?n:r==`string`?e:e+`\0`}function v(e,t){for(var n=e+``,r,i=0;i<n.length;)t[f&i]=f&(r^=t[f&i]*19)+n.charCodeAt(i++);return b(t)}function y(){try{var e;return p&&(e=p.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),b(e)}catch{var n=t.navigator,i=n&&n.plugins;return[+new Date,t,i,t.screen,b(r)]}}function b(e){return String.fromCharCode.apply(0,e)}if(v(i.random(),r),typeof n==`object`&&n.exports){n.exports=m;try{p=e(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:t,[],Math)})),Ka=t(n(((e,t)=>{var n=za(),r=Ba(),i=Va(),a=Ha(),o=Ua(),s=Wa(),c=Ga();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const qa=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Ja=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)Ja[qa.charCodeAt(e)]=e;function Ya(e){return e===9||e===10||e===12||e===13||e===32}function Xa(e,t){for(;t<e.length&&Ya(e.charCodeAt(t));)t++;return t}function Za(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=Ja[r.charCodeAt(0)],a=Ja[r.charCodeAt(1)],o=Ja[r.charCodeAt(2)],s=Ja[r.charCodeAt(3)],c=i<<2|a>>4,l=(a&15)<<4|o>>2,u=(o&3)<<6|s;if(n===2){if(t&&l!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c]}if(n===3){if(t&&u!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c,l]}return[c,l,u]}function Qa(e,t,n,r){if(r===void 0&&(r=2**53-1),r===0)return{read:0,bytes:[],error:null};let i=0,a=[],o=``,s=0,c=0,l=e.length;for(;;){if(c=Xa(e,c),c===l){if(s>0){if(n===`stop-before-partial`)return{read:i,bytes:a,error:null};if(n===`loose`){if(s===1)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: lone character in final chunk`)};a.push(...Za(o,!1))}else return{read:i,bytes:a,error:SyntaxError(`Invalid base64: incomplete chunk in strict mode`)}}return{read:l,bytes:a,error:null}}let u=e[c];if(c++,u===`=`){if(s<2)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: padding in unexpected place`)};if(c=Xa(e,c),s===2){if(c===l)return n===`stop-before-partial`?{read:i,bytes:a,error:null}:{read:i,bytes:a,error:SyntaxError(`Invalid base64: missing second padding character`)};u=e[c],u===`=`&&(c=Xa(e,c+1))}if(c<l)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected characters after padding`)};let t=n===`strict`;try{a.push(...Za(o,t))}catch(e){return{read:i,bytes:a,error:e}}return{read:l,bytes:a,error:null}}if(t===`base64url`){if(u===`+`||u===`/`)return{read:i,bytes:a,error:SyntaxError(`Invalid base64url: unexpected character '${u}'`)};u===`-`?u=`+`:u===`_`&&(u=`/`)}let d=u.charCodeAt(0);if(d>=128||Ja[d]===255)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected character '${e[c-1]}'`)};let f=r-a.length;if(f===1&&s===2||f===2&&s===3||(o+=u,s=o.length,s===4&&(a.push(...Za(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function $a(e,t){t===void 0&&(t=2**53-1);let n=e.length,r=[],i=0;if(n%2!=0)return{read:0,bytes:[],error:SyntaxError(`Invalid hex: string length must be even`)};for(;i<n&&r.length<t;){let t=e.substring(i,i+2);if(!/^[0-9a-fA-F]{2}$/.test(t))return{read:i,bytes:r,error:SyntaxError(`Invalid hex: unexpected character at position ${i}`)};i+=2,r.push(Number.parseInt(t,16))}return{read:i,bytes:r,error:null}}function eo(e,t){let n=t?.alphabet??`base64`;if(n!==`base64`&&n!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${n}"`);let r=!!t?.omitPadding,i=``,a=e.length;for(let t=0;t<a;t+=3){let n=e[t],o=t+1<a?e[t+1]:0,s=t+2<a?e[t+2]:0;i+=qa[n>>2&63],i+=qa[(n&3)<<4|o>>4&15],t+1<a?i+=qa[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=qa[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function to(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function no(e){let t=e.prototype,n=e;t.toBase64||Object.defineProperty(t,"toBase64",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return eo(this,t)},writable:!0,enumerable:!1,configurable:!0}),t.toHex||Object.defineProperty(t,"toHex",{value:function(){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return to(this)},writable:!0,enumerable:!1,configurable:!0}),t.setFromBase64||Object.defineProperty(t,"setFromBase64",{value:function(t,n){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Qa(t,r,i,this.length),o=a.bytes,s=o.length;for(let e=0;e<s;e++)this[e]=o[e];if(a.error)throw a.error;return{read:a.read,written:s}},writable:!0,enumerable:!1,configurable:!0}),t.setFromHex||Object.defineProperty(t,"setFromHex",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let n=$a(t,this.length),r=n.bytes,i=r.length;for(let e=0;e<i;e++)this[e]=r[e];if(n.error)throw n.error;return{read:n.read,written:i}},writable:!0,enumerable:!1,configurable:!0}),n.fromBase64||Object.defineProperty(e,"fromBase64",{value:function(t,n){if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Qa(t,r,i);if(a.error)throw a.error;return new e(a.bytes)},writable:!0,enumerable:!1,configurable:!0}),n.fromHex||Object.defineProperty(e,"fromHex",{value:function(t){if(typeof t!=`string`)throw TypeError(`expected a string`);let n=$a(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function ro(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)r===8||r===13||r===18||r===23?n+=`-`:r===14?n+=`4`:r===19?n+=t[Math.floor(e()*4)+8]:n+=t[Math.floor(e()*16)];return n}}const io={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function ao(e){if(Un.isTypedArray(e)||Un.isDataView(e)){if(Un.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Un.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function oo(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,Ka.default)(n),i=qn(),a=Jn(`globalThis`,i);a.Math.random=r;let o=a.Date;a.Date=function(...e){return new.target===void 0?new o(t).toString():Reflect.construct(o,e.length===0?[t]:e,new.target)},a.Date.prototype=o.prototype,Object.setPrototypeOf(a.Date,o),a.Date.now=()=>t;let s=globalThis.crypto,c=s.subtle;function l(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(r()*256);return e}let u=ro(r),d=a;delete d.Atomics.waitAsync,delete d.WebAssembly.compile,delete d.WebAssembly.instantiate,delete d.WebAssembly.compileStreaming,delete d.WebAssembly.instantiateStreaming,delete d.WeakRef,delete d.FinalizationRegistry;let f=async(e,t)=>{let n=typeof e==`string`?e:e.name,r=io[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=Hn(r).update(ao(t)).digest(),a=new ArrayBuffer(i.byteLength);return new Uint8Array(a).set(i),a};return a.crypto=new Proxy(s,{get(e,t){return t===`getRandomValues`?l:t===`randomUUID`?u:t===`subtle`?new Proxy(c,{get(e,t){if(t===`digest`)return f;let n=e[t];return typeof n==`function`?()=>{throw new q(`\`crypto.subtle.${String(t)}()\` is not available inside a workflow function. Move it to a step function where full Node.js crypto is available.`)}:n}}):e[t]}}),a.process={env:Object.freeze({...process.env})},a.DOMException=globalThis.DOMException,a.Headers=globalThis.Headers,a.TextEncoder=globalThis.TextEncoder,a.TextDecoder=globalThis.TextDecoder,a.console=globalThis.console,a.URL=globalThis.URL,a.URLSearchParams=globalThis.URLSearchParams,a.structuredClone=globalThis.structuredClone,a.atob=globalThis.atob,a.btoa=globalThis.btoa,no(a.Uint8Array),a.Symbol.dispose??=Symbol.for(`Symbol.dispose`),a.Symbol.asyncDispose??=Symbol.for(`Symbol.asyncDispose`),a.exports={},a.module={exports:a.exports},{context:i,globalThis:a,updateTimestamp:e=>{t=e}}}const so=new Map;function co(e){let t=so.get(e);if(t!==void 0)return so.delete(e),so.set(e,t),t}function lo(e,t){let n=co(e);if(n===void 0)for(n=new Map,so.set(e,n);so.size>8;){let e=so.keys().next().value;if(e===void 0)break;so.delete(e)}let r=n.get(t);return r===void 0&&(r=new Kn(e,{filename:t}),n.set(t,r)),r}function uo(e,t,n){return lo(e,t).runInContext(n)}function fo(e){return async function(t,n={}){let{promise:r,resolve:i}=dn(),a=`attr_${e.generateUlid()}`,s={type:`attribute`,correlationId:a,changes:t,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}};return e.invocationsQueue.set(a,s),e.eventsConsumer.subscribe(r=>r?r.correlationId===a?r.eventType!==`attr_set`||r.eventData.writer.type!==`workflow`||JSON.stringify(r.eventData.changes)!==JSON.stringify(t)||r.eventData.allowReservedAttributes===!0!=(n.allowReservedAttributes===!0)?(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),C.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),C.Finished):C.NotConsumed:(pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),C.NotConsumed)),r}}function po(e,t){if(typeof t!=`string`)return null;let n=P(x,e.globalThis),r=n?.[ie];return typeof r==`function`?r.call(n,{runId:t}):null}function mo(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a randomly generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new Y("The configured World does not support `experimental_minRetention` for Hooks.");let n=`hook_${e.generateUlid()}`,i=t.token??e.generateNanoid(),a=t.experimental_minRetention===void 0?void 0:gn(t.experimental_minRetention),s=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:i,tokenRetentionUntil:a,metadata:t.metadata,isWebhook:s});let c=[],l=[],u=[],d=!1,f=!1,p=!1,m=!1,h=null,g=null,_=new Set;r.debug(`Hook consumer setup`,{correlationId:n,token:i}),e.eventsConsumer.subscribe(t=>{if(!t)return d=!0,(l.length>0&&c.length===0||u.length>0&&!f&&!m)&&pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),C.NotConsumed;if(t.correlationId!==n)return C.NotConsumed;let r=`eventData`in t&&t.eventData&&`token`in t.eventData?t.eventData.token:void 0;if(typeof r==`string`&&r!==i)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${r}", but the current hook consumer expects "${i}"`,{eventId:t.eventId}))}),C.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),f=!0;let i=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),C.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new Zt(r.eventData.token,r.eventData.conflictingRunId);m=!0,h=i,g=po(e,r.eventData.conflictingRunId);let a=l.slice();l.length=0;let o=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)g?e.resolve(g):e.reject(i)}),C.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(_.has(n))return C.Consumed;_.add(n)}let r=e.eventsConsumer.eventIndex,i=l.length>0,a=cn(e,r,`hook`,{armed:i});if(i){let n=mn(e,r,`hook`),i=l.shift();if(i){e.pendingDeliveries++;let r;e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);r={ok:!0,value:await Gt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){r={ok:!1,error:e}}finally{e.pendingDeliveries--}n.then(()=>{a.markDelivered(),r.ok?i.resolve(r.value):i.reject(r.error)})})}}else{let n,i=dn();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let r=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);n={ok:!0,value:await Gt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},r)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--,i.resolve()}}),c.push({claim:()=>(a.arm(),i.promise.then(()=>mn(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return C.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),p=!0,C.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for hook ${n} (token: ${i}) "${t.eventType}"`,{eventId:t.eventId}))}),C.Finished)});let v=!1;function y(){let t=dn();if(m&&h)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(h)}),t.promise;if(c.length>0){let e=c.shift();if(e)return e.claim()}return d&&pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),l.push(t),t.promise}function b(){let t=dn();if(f)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(m)return e.promiseQueue=e.promiseQueue.then(()=>{g?t.resolve(g):t.reject(h)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),d&&pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),u.push(t),t.promise}function x(){if(v||(v=!0,p))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),l.length>0&&(l.length=0,pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))})),r.debug(`Hook disposed`,{correlationId:n,token:i})}let S={token:i,getConflict(){return b()},then(e,t){return y().then(e,t)},async*[Symbol.asyncIterator](){for(;!v;)yield await this},dispose:x,[Symbol.dispose]:x},w=e.globalThis.Symbol.dispose;return w&&w!==Symbol.dispose&&(S[w]=x),S}}function ho(e){return async function(t){let{promise:n,resolve:r}=dn(),i=`wait_${e.generateUlid()}`,a=gn(t),s={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,s),e.eventsConsumer.subscribe(t=>{if(!t)return pn(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),C.NotConsumed;if(t.correlationId!==i)return C.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),C.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),C.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=cn(e,o,`wait`),c=mn(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),C.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),C.Finished}),n}}async function go(e,t,n,r,i,a){if(t.size!==0){for(let e of t.values())e.type===`hook`&&e.isSystem&&!e.disposed&&!e.abortRequested&&(e.disposed=!0);try{let e=await Ur();await Oi({suspension:new o(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){U.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function _o(e){return yo(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await xo(e);return t?.setAttributes({...ne(n.argumentCount)}),bo(await r,t)})}function vo(e,t){return yo(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...ne(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:bo(r,n)})}function yo(e,t,n,r){return W(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...Me(t.workflowName),...ke(t.runId),...se(t.status),...Ee(n.length),...pt(e)}),r(i)))}function bo(e,t){return e.type===`completed`?t?.setAttributes({...st(e.resultType)}):t&&(Le(e.suspension,t),e.parked&&t.setAttributes({...gt(e.parked.count),...Pe(e.parked.eventId),...ze(e.parked.eventType)})),e}async function xo({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,runReadyBarrier:a,worldCapabilities:s}){let l=t.startedAt;if(!l)throw new q(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let u=ii(t.runId)??+t.createdAt,d=vn(process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:${await hi()??3e3}`),{context:f,globalThis:p,updateTimestamp:m}=oo({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:u}),h=dn(),g={type:`running`,interruption:h},_=e=>{switch(g.type){case`running`:{let{interruption:t}=g;g=o.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},E.suspensionGeneration++,t.reject(e);return}case`suspended`:g={type:`replay`};return;case`replay`:case`completed`:return}},v=wn(()=>p.Math.random()),y=()=>v(u),b=La(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*p.Math.random())),x={current:Promise.resolve()},S={current:()=>!0},w=u,T=new j(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>w&&(w=t,m(t))},onUnconsumedEvent:e=>{_(new Z(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}.`,{eventId:e.eventId}))},getPromiseQueue:()=>x.current,isDeliveryIdle:()=>S.current()}),E={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:p,onWorkflowError:_,eventsConsumer:T,generateUlid:y,generateNanoid:b,invocationsQueue:new Map,get promiseQueue(){return x.current},set promiseQueue(e){x.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};S.current=()=>un(E),E.eventsConsumer.subscribe(e=>e&&(e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`&&e.eventData.writer.type===`step`)?C.Consumed:C.NotConsumed);let D=Ra(E),O=mo(E),k=ho(E),A=fo(E);p[mt]=D,p[Ze]=A,p[ut]=O,p[De]=k,p[St]=e=>be(t.runId,e),p[Sn]={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new p.Date(+l),url:d,features:{encryption:!!r}},p[ve]=y,p.fetch=()=>{throw new p.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${nn.FETCH_IN_WORKFLOW_FUNCTION}`)};let M=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;p.setTimeout=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setInterval=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearTimeout=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearInterval=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setImmediate=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearImmediate=()=>{throw new q(M,{slug:nn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.AbortController=he(E);let N=fe();p.AbortSignal={abort:N.abort,any:N.any,timeout:N.timeout};class P{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof p.URL){let t=String(e);try{new p.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new p.Headers(t.headers):(typeof e==`string`||e instanceof p.URL)&&(this.headers=new p.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);n==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[xe]:{value:n,writable:!1}})}clone(){G()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}p.Request=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class F{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new p.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);e==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[xe]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new p.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new F(n,{...t,headers:r})}static error(){G()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new p.Headers;n.set(`Location`,String(e));let r=Object.create(F.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}p.Response=F,Object.defineProperties(F.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class I{constructor(){G()}get locked(){return!1}cancel(){G()}getReader(){G()}pipeThrough(){G()}pipeTo(){G()}tee(){G()}values(){G()}static from(){G()}[Symbol.asyncIterator](){G()}}p.ReadableStream=I;class L{constructor(){G()}get locked(){return!1}abort(){G()}close(){G()}getWriter(){G()}}p.WritableStream=L;class R{readable;writable;constructor(){G()}}p.TransformStream=R,p.console=globalThis.console;let z=Symbol.for(`@vercel/request-context`);p[z]=globalThis[z];let B=Rt(t.workflowName)?.moduleSpecifier||t.workflowName;uo(e,B,f);let te=uo(`globalThis.__private_workflows?.get(${JSON.stringify(t.workflowName)})`,B,f);if(typeof te!=`function`)throw new Yt(t.workflowName);let V=[];E.promiseQueue=E.promiseQueue.then(async()=>{let e=await i.prepareWorkflowInput(t);V=await c(t.input,t.runId,r,p,{},e)}),await E.promiseQueue;let ne=(async()=>await te(...V))(),re=async e=>{throw o.is(e)||Z.is(e)?(g.type===`running`&&(g={type:`replay`}),e):(g={type:`completed`},await go(t.runId,E.invocationsQueue,p,t,`failed`,a),e)},ie=async e=>{let n;try{n=await Promise.race([ne,e.promise])}catch(e){return g.type===`suspended`&&e===g.suspension?{type:`suspended`,suspension:g.suspension,session:ae,parked:T.parkedSummary}:re(e)}g={type:`completed`};let i=T.strandedEvent;if(i)return re(new Z(`Replay finished without consuming event: eventType=${i.eventType}, correlationId=${i.correlationId}, eventId=${i.eventId}.`,{eventId:i.eventId}));try{let e=await ee(n,t.runId,r,p,!1,(t.specVersion??0)>=5);return await go(t.runId,E.invocationsQueue,p,t,`completed`,a),{type:`completed`,output:e,resultType:typeof n}}catch(e){return re(e)}},ae={workflowRun:t,argumentCount:V.length,async resume(e){switch(g.type){case`suspended`:{let t=T.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return g={type:`replay`},{type:`replay`};let n=dn();return g={type:`running`,interruption:n},E.suspensionGeneration++,T.append(e.slice(t.length)),ie(n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new q(`Cannot resume ${g.type} workflow "${t.runId}"`)}}};return{session:ae,execution:ie(h)}}function So(e){let t=gr();return t===void 0?e:e===void 0?t:Math.min(e,t)}function Co({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.environment;if(!i)return!1;let a=e.getEnvironment?.();return!a||a===i?!1:(r.error(`Refusing to run this workflow: it was created in the "${i}" environment but this deployment runs in "${a}". Executing it here would create a second copy of the same run id in both environments — one pending forever, one running — so the queue message is being discarded without executing and without retrying. The client that called start() wrote the run to its own environment but addressed the queue message to a deployment in another one. Check that the environment that client authenticates as (WORKFLOW_VERCEL_ENV for CLI and CI clients, or the OIDC token's environment inside a deployment) matches the environment of the deployment it targets. The run it created is still pending in "${i}" and will not run.`,{workflowRunId:n,creatorEnvironment:i,currentEnvironment:a,pinnedDeploymentId:t?.deploymentId}),!0)}async function wo({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}!a||a===i||r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function To(e){return q.is(e)?X.RUNTIME_ERROR:d(e)?X.WORLD_CONTRACT_ERROR:null}async function Eo({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){U.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=Re(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(Q.is(e)||J.is(e))return;if(d(e)){U.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}}function Do(e,t){let n=e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));return n?(U.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function Oo(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function ko(e,t){return e?.[It]??t}function Ao(e){let t=new Set,n=new Set;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.add(r.correlationId);break;case`wait_completed`:n.delete(r.correlationId);break}return{openHook:t.size>0,openWait:n.size>0}}function jo(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}function Mo(e,t){bt(e.events,t.events),e.cursor=t.cursor??e.cursor}function No(e,t,n){if(!br()||!t||e.steps.length===0||!e.steps.every(e=>e.type===`step`))return!1;let{openHook:r,openWait:i}=n.value;return!r&&!i}async function Po(e,t){let n=process.env.WORKFLOW_V2_TIMEOUT_MS;if(n!==void 0&&n!==``){let e=Number(n);if(Number.isFinite(e)&&e>0)return e}let r=await e.getRuntimeDeadline?.();if(r!==void 0){let e=r.getTime();if(!Number.isNaN(e)){let n=Math.floor(e-t);if(n>=(0,Zn.default)(`25m`))return(0,Zn.default)(`10m`);if(n>=(0,Zn.default)(`10m`))return(0,Zn.default)(`5m`)}}return(0,Zn.default)(`2m`)}function Fo(e,t){_n(t?.basePath);let n=Be(t?.namespace),r=Fe(`workflow`,n),a=t=>t.createQueueHandler(r,async(a,s)=>{let c=ot(a);if(c){await ft(c,t.specVersion);return}let{runId:l,traceCarrier:u,requestedAt:p,stepId:_,stepName:x,replayDivergence:S,preconditionReinvocations:C,deploymentMismatchRetryCount:w,runInput:T,hookInput:E}=Mt.parse(a),D=Oe(u)?u:void 0,{requestId:O}=s,k=s.queueName.slice(r.length),A=U.forRun(l,k),j=ar();if(s.attempt>j){let e=er(void 0,X.MAX_DELIVERIES_EXCEEDED);A.error(`Workflow handler exceeded max deliveries (${s.attempt}/${j})`,{attempt:s.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await Ur(),t=Re(e,l),n=new Y(`Workflow exceeded maximum queue deliveries (${s.attempt}/${j})`);await e.events.create(l,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(n,l,await t()),errorCode:X.MAX_DELIVERIES_EXCEEDED}},{requestId:O})}catch(e){if(Q.is(e)||J.is(e))return;A.error(`Failed to mark run as failed after ${s.attempt} delivery attempts. A persistent error is preventing the run from being terminated. The run will remain in its current state until manually resolved. This is most likely due to a persistent outage of the workflow backend or a bug in the workflow runtime and should be reported to the Workflow team.`,{attempt:s.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0})}return}let M=Qe(),N=()=>dt(M,D),P=await kt(M,D),F=new Kr,ee=M===`continuous`?D:void 0,I=await Ct(`CONSUMER`);return await at(ee,async()=>await Nt({workflowRunId:l,workflowName:k},async()=>{let t=await W(`workflow.route.get_world`,async()=>Ur());if(!Co({world:t,runInput:T,runId:l,runLogger:A}))return await wo({world:t,runInput:T,runId:l,runLogger:A}),W(`workflow.execute ${y(k)}`,{kind:I,links:P},async r=>{r?.setAttributes({...Me(k),...rt(`execute_v2`),...B(`vercel-queue`),...de(s.queueName),...b(s.messageId),...g(`process`),...Ye({requestedAt:p}),...ke(l),...v(!!D),...le(M)});let a=Date.now(),c=await Po(t,a),u=0,y=S?new Yr(S.count):Yr.inert(),j=async(e,n)=>{let r=P(e,n),i=await y.withEventCreate(r===void 0?n:{...n,sinceCursor:r},n=>t.events.create(l,e,n));return r!==void 0&&ee(r,i),i},P=(e,t)=>{if(!(ie||I.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||qe(e.eventType)))return I.cursor??void 0},ee=(e,t)=>{I.type!==`ready`||I.cursor!==e||t.events===void 0||t.hasMore===!0||Mo(I,{events:t.events,cursor:t.cursor})},I={type:`loadAll`},L,R,z=-1,te,V,ne=0,re,ie=yr()&&T!==void 0&&s.attempt===1&&_===void 0&&!S;r?.setAttributes(h(ie));let ae,ce=async()=>{if(ae)try{await ae}catch{}},ue=new Set,fe=e=>{ue.size>0&&U.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:l,ackPath:e,stepIds:[...ue]})},pe=async()=>({runId:l,traceCarrier:await N(),requestedAt:new Date}),me=async(e,r)=>{if(fe(`reinvoke`),!ie)return{timeoutSeconds:e};await Ce(t,Te(k,n),{...await pe(),...r},e>0?{delaySeconds:e}:void 0)},he=0,ge=null,_e=e=>{let t=ge;if(!t)return;ge=null;let n=new Set(e.map(e=>e.eventId)),r=Oo(n,t.ids),i=Oo(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;U.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:l,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:u})},ve=(e,t,{allowDelta:n=!0}={})=>{if(he>=wr())return!1;he++,we=null;let i=n&&he===1?Ge(t,l):null,a=i!==null&&I.type!==`loadAll`;return ge=I.type===`loadAll`?null:{ids:new Set(I.events.map(e=>e.eventId)),restart:he,reason:e,source:a?`inline-delta`:`full-reload`},i&&I.type!==`loadAll`?(Mo(I,i),I={...I,type:`ready`}):(I={type:`loadAll`},Se.resetScan()),U.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:l,reason:e,loopIteration:u,preconditionRestarts:he,source:a?`inline-delta`:`full-reload`}),r?.setAttributes({"workflow.precondition_restarts":he}),!0},ye=async(e,t)=>{let n=(C??0)+1,i=Tr();return n>i?{reinvoked:!1,error:new q(`Event creation was rejected as stale after ${i} re-invocations of ${wr()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(U.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:l,reason:e,loopIteration:u,preconditionReinvocations:n,maxReinvocations:i}),r?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await me(Er(),{preconditionReinvocations:n})})},be=async(e,i,a)=>{let{outcome:o,spanAttributes:s}=await Mr({world:t,run:e,requestId:O,retryCount:w,beforeStop:a,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:r,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await Ce(t,Te(k,n),{...await i(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:r,delaySeconds:o})}});return s&&r?.setAttributes(s),o};if(_&&x)try{let e=await t.runs.get(l,{resolveData:`none`});if(e.status!==`running`){U.debug(`Run already finished, skipping background step`,{workflowRunId:l,status:e.status});return}if(await be(e,async()=>({...await pe(),stepId:_,stepName:x}))!==`continue`)return;let r=e.startedAt?+e.startedAt:Date.now(),i=s.attempt,a=fn(x)?.maxRetries??3;s.attempt>a+1&&(i=kr((await Ne(l)).events,_,{type:`totalAttempts`})+1),F.pause();let o;try{o=await Ei(l,_,()=>bi({world:t,workflowRunId:l,workflowDeploymentId:e.deploymentId,workflowName:k,workflowStartedAt:r,rootRunId:ko(e.attributes,l),stepId:_,stepName:x,runSpecVersion:e.specVersion,authoritativeAttempt:i}))}finally{F.resume()}if(o.type===`retry`||o.type===`throttled`)return{timeoutSeconds:o.timeoutSeconds};if(o.type===`completed`&&o.hasPendingOps){await Ce(t,Te(k,n),{runId:l,traceCarrier:await N(),requestedAt:new Date});return}if(o.type===`completed`||o.type===`failed`||o.type===`skipped`){let n=await Ne(l);I=jo(n);let i=new Set,a=new Set;for(let e of n.events)e.eventType===`step_created`?i.add(e.correlationId):(e.eventType===`step_completed`||e.eventType===`step_failed`)&&a.add(e.correlationId);let o=new Set;for(let e of i)a.has(e)||o.add(e);if(o.size>0)if(xr()&&wi(n.events,o,s.messageId))U.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:l});else{U.debug(`Background step done but other steps pending, returning`,{workflowRunId:l});return}U.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:l});let c=n.events.find(e=>e.eventType===`run_created`),u;if(c)u=c.eventData.input;else{if(!it(e.specVersion))throw new q(`Workflow run "${l}" has no "run_created" event`);let n=await t.runs.get(l,{resolveData:`all`});if(n.status!==`running`)return;u=n.input}L={...e,input:u,status:`running`,output:void 0,error:void 0,completedAt:void 0},z=r}else return}catch(e){let n=To(e);if(!n)throw e;await Eo({world:t,workflowRun:L,runId:l,requestId:O,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!L&&E?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=E.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await be(await t.runs.get(l,{resolveData:`none`}),async()=>({...await pe(),hookInput:E}),ce)!==`continue`)return}let xe=!1;if(!L&&E&&E.resumeId!==void 0&&E.payloadDigest!==void 0){let e=E,t;try{t=new Date(En(e.resumeId))}catch{t=void 0}try{r?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await j({eventType:`hook_received`,specVersion:5,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:O,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0});if(xe=!0,n.run!==void 0&&n.run.startedAt!==void 0&&n.event!==void 0&&n.events!==void 0&&n.events.length>0&&n.cursor!=null&&n.hasMore===!1&&typeof n.maxEvents==`number`&&n.events.some(e=>e.eventType===`run_created`)&&n.events.some(e=>e.eventType===`run_started`)&&n.events.some(t=>t.eventType===`hook_received`&&t.resumeId===e.resumeId)&&n.run?.startedAt&&n.events){let e=n.events.find(e=>e.runId===l&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){r?.setAttributes({...se(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ae(`hook_received_stream`)}),U.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,eventType:e.eventType});return}L=n.run,R=So(n.maxEvents),V=Date.now(),I={type:`ready`,events:n.events,cursor:n.cursor},z=+n.run.startedAt,r?.setAttributes({...se(n.run.status),...f(z),...Ae(`hook_received_stream`)})}else r?.setAttributes(Ae(`hook_received_fallback`))}catch(e){if(rn.is(e)||J.is(e)){U.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,message:e.message});return}throw e}}if(!L){let e={eventType:`run_started`,specVersion:T?.specVersion??5,...T?{eventData:{input:T.input,deploymentId:T.deploymentId,workflowName:T.workflowName,executionContext:T.executionContext,attributes:T.attributes,allowReservedAttributes:T.allowReservedAttributes}}:{}};if(ie&&T){r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=j(e,{requestId:O,skipPreload:!0});ae=t,t.then(e=>{let t=So(e.maxEvents);t!==void 0&&(R=t)}).catch(()=>{}),I={type:`ready`,events:[],cursor:null};let n=new Date;L={runId:l,status:`running`,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,attributes:T.attributes??{},startedAt:n,createdAt:n,updatedAt:n},z=+n,V=+n,r?.setAttributes({...se(`running`),...f(z)})}else try{r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=await j(e,{requestId:O});if(L=t.run,R=So(t.maxEvents),V=Date.now(),t.events?.length){let e={events:[...t.events],cursor:t.cursor??null};I=t.hasMore?jo(e):{...e,type:`ready`}}if(z=+t.run.startedAt,r?.setAttributes({...se(t.run.status),...f(z)}),t.run.status!==`running`){U.info(`Workflow already completed or failed, skipping`,{workflowRunId:l,status:t.run.status});return}}catch(e){if(Q.is(e)||J.is(e)){U.info(`Run already finished during setup, skipping`,{workflowRunId:l,message:e.message});return}else{let n=To(e);if(!n)throw e;await Eo({world:t,workflowRun:L,runId:l,requestId:O,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`});return}}}if(Wn(L,`Workflow run must be loaded before replay`),await be(L,async()=>({...await pe(),...E?{hookInput:E}:{}}),ce)!==`continue`)return;if(E&&!xe&&!(E.resumeId!==void 0&&I.type!==`loadAll`&&I.events.some(e=>e.eventType===`hook_received`&&e.resumeId===E.resumeId))){let e;try{e=E.resumeId===void 0?void 0:new Date(En(E.resumeId))}catch{e=void 0}let n;try{let i=await t.events.create(l,{eventType:`hook_received`,specVersion:5,correlationId:E.hookId,eventData:{token:E.token,payload:E.payload}},{requestId:O,occurredAt:e,resumeId:E.resumeId,resumePayloadDigest:E.payloadDigest});r?.setAttributes(Wt(!0));let a=i.event;n=a?{...a,eventData:{token:E.token,payload:E.payload}}:void 0}catch(e){if(rn.is(e)||J.is(e))return;throw e}I.type!==`loadAll`&&n?je(I.events,n):I={type:`loadAll`}}let H=await Re(t,L)(),Se=new rr(H),we=null;for(;;){if(u++,F.isExhausted()){await Jr({runId:l,workflowName:k,requestId:O,attempt:s.attempt,limitMs:F.configuredLimitMs});return}if(Date.now()-a>=c){U.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:l,loopIteration:u,elapsedMs:Date.now()-a}),await Ce(t,Te(k,n),{runId:l,traceCarrier:await N(),requestedAt:new Date});return}let f=0;try{if(Mn(L)){U.debug(`Using QuickJS VM engine`,{workflowRunId:l,loopIteration:u}),await ce(),I.type===`loadAfter`&&(Mo(I,await Ne(l,I.cursor)),I={...I,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),i=await t({workflowCode:e,workflowName:k,workflowRun:L,preloadedEvents:I.type===`ready`?I.events:void 0,preloadedEventsComplete:I.type===`ready`,runInput:T,parentSpan:r,maxEventsLimit:R,namespace:n,nextTraceCarrier:N,deliveryAttempt:s.attempt,ownerMessageId:s.messageId});return i?.timeoutSeconds===void 0?void 0:await me(i.timeoutSeconds)}if(I.type!==`ready`){let e=await Ne(l,I.type===`loadAfter`?I.cursor:void 0);I.type===`loadAfter`?(Mo(I,e),I={...I,type:`ready`}):I={...e,type:`ready`}}if(Wn(I.type===`ready`),_e(I.events),Do(I.events,l))return;let i=Date.now(),a=new Set(I.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),o=I.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!a.has(e.correlationId)&&i>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of o)try{let t=await j(e,{requestId:O,...He(I.events,I.cursor)});t.events?.length&&t.hasMore!==!0&&ht(I.events,t.events)}catch(t){if(Q.is(t)){U.info(`Wait already completed, skipping`,{workflowRunId:l,correlationId:e.correlationId});continue}throw t}Wn(I.type===`ready`);let c=new Set(I.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),d=o.filter(e=>!c.has(e.correlationId));if(d.length>0)if(I.cursor){let e=await Ne(l,I.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));d.every(e=>t.has(e.correlationId))?Mo(I,e):I={...await Ne(l),type:`ready`}}else I={...await Ne(l),type:`ready`};if(At()){let e=await Pt(l,{events:I.events,cursor:I.cursor});if(I={...e.log,type:`ready`},e.gap!==void 0)throw new on(`Event log for run ${l} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(Do(I.events,l))return;if(R!==void 0&&I.events.length>=R)throw new an(I.events.length,R);te??=I.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`),U.debug(`Starting workflow execution`,{workflowRunId:l,loopIteration:u,eventCount:I.events.length,executionMode:we?`retained`:`replay`}),f=Date.now();let p=Se.prewarm(L,I.events),m=we?await vo(we,I.events):{type:`replay`};if(m.type===`replay`&&(we=null,m=await _o({workflowCode:e,workflowRun:L,events:I.events,encryptionKey:H,replayPayloadCache:Se,runReadyBarrier:ae,worldCapabilities:t.capabilities})),await p,m.type===`suspended`)throw we=m.session,m.suspension;let h=m.output;U.debug(`Workflow execution completed`,{workflowRunId:l,loopIteration:u,replayMs:Date.now()-f,executionMode:we?`retained`:`replay`}),y.activate();try{await ce(),await j({eventType:`run_completed`,specVersion:5,eventData:{output:h}},{requestId:O,...He(I.events,I.cursor)})}catch(e){if(Q.is(e)||J.is(e)){U.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...se(`completed`)});return}catch(a){if(o.is(a)){y.activate();let e=Date.now()-f;U.debug(`Workflow suspended`,{workflowRunId:l,loopIteration:u,replayMs:e,steps:a.stepCount,hooks:a.hookCount,waits:a.waitCount});let o=vt(a.stepCount,a.hookCount,a.waitCount);o&&U.debug(o);let c=Date.now();Wn(I.type===`ready`,`Workflow suspended before its event log was loaded`);let d;try{d=await Oi({suspension:a,world:t,run:L,span:r,requestId:O,eventLog:I,runReadyBarrier:ae,replayRecoveryReporter:y})}catch(e){if($t.is(e)){if(ve(`suspension-create`,e))continue;let t=await ye(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!Y.is(e))throw e;let t=Bt(e);U.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:l,errorCode:t,errorName:e.name,errorMessage:e.message});try{await ce(),await j({eventType:`run_failed`,specVersion:5,eventData:{error:await m(e,l,H,globalThis,(L?.specVersion??0)>=5),errorCode:t}},{requestId:O})}catch(e){if(Q.is(e)||J.is(e)){U.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...se(`failed`),...lt(t),...Xe(e.name),...xt(e.message),...ct(e.name)});return}d.reportedEventCount>0&&Se.resetScan();let p=ln(()=>(Wn(I.type===`ready`),Ao(I.events)));if(we&&!No(a,d.retainedStepInputsSafe,p)&&(we=null),ne+=d.hookCreationMs,d.hasAttributeEvents&&re===void 0&&(re=ne),U.debug(`Suspension handled`,{workflowRunId:l,suspensionMs:Date.now()-c,pendingSteps:d.pendingSteps.length,timeoutSeconds:d.waitTimeout?.seconds,hasHookConflict:d.hasHookConflict,hasAwaitedHookCreation:d.hasAwaitedHookCreation,hasAttributeEvents:d.hasAttributeEvents}),d.hasHookConflict)return await me(0);if(d.hasAttributeEvents){I=jo(I);continue}let h=d.pendingSteps,g=d.lazyInlineSteps,_=new Set(g.map(e=>e.correlationId)),v=await N(),b=[],x=xr(),S=Date.now(),C=[],w=0;for(let e of h){if(_.has(e.correlationId))continue;let r=x&&xi(e);if(r&&e.ownerMessageId===s.messageId){C.push(e);continue}let i=r?Si(e,S):0;if(i>0){w++,U.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:l,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),b.push(Ce(t,Te(k,n),{runId:l,traceCarrier:v,requestedAt:new Date},{delaySeconds:i,idempotencyKey:Ci(e)}));continue}b.push(Ce(t,Te(k,n),{runId:l,stepId:e.correlationId,stepName:e.stepName,traceCarrier:v,requestedAt:new Date},{idempotencyKey:e.correlationId}))}d.waitTimeout&&b.push(Ce(t,Te(k,n),{runId:l,traceCarrier:v,requestedAt:new Date},Mi(d.waitTimeout.seconds,d.waitTimeout.correlationId))),await Promise.all(b);let T=[...g.map(e=>({correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput})),...C.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((w>0||C.length>0)&&r?.setAttributes({...C.length>0?jt(C.length):{},...w>0?i(w):{}}),C.length>0&&U.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:l,stepIds:C.map(e=>e.correlationId)}),T.length===0)return d.hasAwaitedHookCreation?await me(0):void 0;let E=p.value,D=nt()&&t.capabilities?.preconditionGuard===!0,A=typeof I.cursor==`string`&&a.stepCount===1&&a.waitCount===0&&h.length===1&&g.length===1&&C.length===0&&!d.waitTimeout&&!E.openWait&&(D||a.hookCount===0&&!E.openHook),M=D&&(E.openHook||a.hookCount>0||d.hasHookEvents),P=ie&&!d.hasAttributeEvents&&!d.waitTimeout&&!d.hasHookEvents&&!d.hasAwaitedHookCreation&&!E.openHook&&!E.openWait,ee=_i({events:I.events,invocationStartedClean:te===!0,runCreatedAtMs:ii(l)??(ie?void 0:+L.createdAt),runStartedReceivedAtMs:V,replayMs:e,preStepBlockingMs:ne,preStepBlockingBeforeAttrMs:re,suspensionHasWaits:a.waitCount>0||d.waitTimeout!==void 0,suspensionCreatedHooks:a.hookCount>0||d.hasHookEvents,turbo:ie}),R=He(I.events,I.cursor);F.pause();let B,oe=T.map((e,n)=>{let r=()=>(Wn(I.type===`ready`),bi({world:t,workflowRunId:l,workflowDeploymentId:L.deploymentId,workflowName:k,workflowStartedAt:z,rootRunId:ko(L.attributes,l),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:L.specVersion,authoritativeAttempt:e.lazyStepInput===void 0?kr(I.events,e.correlationId,{type:`ownedBy`,messageId:s.messageId})+1:1,lazyStepInput:e.lazyStepInput,ownerMessageId:s.messageId,forceOptimisticStart:P,suppressOptimisticStart:M,runReadyBarrier:ae,preconditionSnapshot:R,...n===0&&e.lazyStepInput!==void 0&&ee?{latencyTracking:ee}:{},...A&&I.cursor?{inlineDeltaSinceCursor:I.cursor}:{},replayRecoveryReporter:y}));return ue.add(e.correlationId),(e.lazyStepInput===void 0?Ei(l,e.correlationId,r):r()).finally(()=>ue.delete(e.correlationId))});try{B=await Promise.all(oe)}catch(e){if($t.is(e)){if(ve(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(oe)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await ye(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{F.resume()}let le=[],de=!1,fe;for(let e=0;e<T.length;e++){let t=B[e],n=T[e];t.type===`retry`?le.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?fe=Math.max(fe??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(de=!0)}if(fe!==void 0)return await me(fe);if(le.length>0){let e=await N();await Promise.all(le.map(({step:r,delaySeconds:i})=>Ce(t,Te(k,n),{runId:l,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date},{delaySeconds:i,idempotencyKey:r.correlationId})))}if(de){U.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:l,loopIteration:u}),await Ce(t,Te(k,n),{runId:l,traceCarrier:await N(),requestedAt:new Date});return}if(le.length>0)return;if(T.length===1){let e=B[0];if(e.type===`completed`&&e.inlineDelta){Mo(I,e.inlineDelta),I=e.inlineDelta.hasMore?jo(I):{...I,type:`ready`};continue}}I=jo(I)}else{let i=a;if($t.is(a)){if(ve(`replay-write`,a))continue;let e=await ye(`replay-write`,a);if(e.reinvoked)return e.result;i=e.error}if(oe(a))throw A.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:a instanceof Error?a.name:`UnknownError`,errorMessage:a instanceof Error?a.message:String(a),deliveryAttempt:s.attempt}),a;let o;if(Z.is(a)){let e=(S?.count??0)+1,r=Cr();if(e<=r){A.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{errorCode:X.REPLAY_DIVERGENCE,divergenceEventId:a.eventId,priorDivergenceEventId:S?.eventId,divergenceCount:e,deliveryAttempt:s.attempt,maxRecoveryReplays:r,errorMessage:a.message}),await Ce(t,Te(k,n),{runId:l,traceCarrier:await N(),requestedAt:new Date,replayDivergence:{eventId:a.eventId,count:e}});return}o=e,i=new on(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${a.eventId}. Last divergence: ${a.message}`,{cause:a})}else f>0&&y.activate();i instanceof Error&&r?.recordException?.(i);let c=await di(i),u=c.name||ai(i),p=c.message,h=c.stack||oi(i);if(h){let t=Rt(k)?.moduleSpecifier||k;h=Ia(h,t,e)}let g=Bt(i);U.error(`Error while running workflow`,{workflowRunId:l,errorCode:g,errorName:u,errorStack:h}),Un.isNativeError(i)&&h&&(i.stack=h);try{await ce(),await j({eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,l,H,globalThis,(L?.specVersion??0)>=5),errorCode:g}},{requestId:O,...o===void 0?{}:{replayDivergenceCount:o}})}catch(e){if(Q.is(e)||J.is(e)){U.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}if(d(e)){U.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:l,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}r?.setAttributes({...se(`failed`),...lt(g),...Xe(u),...xt(p),...ct(u)});return}}}})}))}),s,c=0,l=Date.now(),u=typeof t?.routeModuleBodyStartedAt==`number`?l-t.routeModuleBodyStartedAt:void 0;return Ht(async e=>{c+=1;let t=s!==void 0;return W(`workflow.route.flow`,{kind:await Ct(`SERVER`),attributes:{...Ut(`flow`),...Je(ir),...Ue(t),...we(c),...Ke(Date.now()-l),...u===void 0?{}:Ft(u),...ce(e.method),...zt(`/.well-known/workflow/v1/flow`)}},async t=>{s||=await W(`workflow.route.init`,async()=>{let e=await W(`workflow.route.get_world_handlers`,async()=>Hr());return a(e)});let n=await s(e);return n instanceof Response&&t?.setAttributes(p(n.status)),n})})}export{zn as Run,o as WorkflowSuspension,Ln as cancelRun,Nn as cancelRuns,Vr as createWorld,zr as createWorldFromModule,kn as getHookByToken,Fn as getRun,Ur as getWorld,Hr as getWorldHandlers,wt as healthCheck,An as listStreams,In as readStream,Rn as recreateRunFromExisting,jn as reenqueueRun,Dn as resumeHook,On as resumeWebhook,Wr as setWorld,Bn as start,Pn as wakeUpRun,Fo as workflowEntrypoint};
|
|
1
|
+
import{i as e,o as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DaDcL9Zw.js";import{$ as r,$t as i,A as a,An as o,At as s,B as c,Bn as l,Bt as u,C as d,Cn as f,Ct as p,D as m,Dn as h,Dt as g,E as _,En as v,Et as y,Fn as b,Ft as x,G as S,Gn as C,Gt as w,H as T,Ht as E,It as D,J as O,Jt as k,K as A,Kt as j,L as M,Ln as N,Lt as P,M as F,Mt as I,Nt as L,O as R,On as z,Ot as ee,Pt as B,Q as V,Qt as H,R as te,Rn as ne,Rt as U,S as re,Sn as ie,St as ae,Tn as oe,Tt as se,U as ce,Ut as le,Vt as ue,W as de,Wt as fe,X as pe,Xn as me,Xt as he,Y as ge,Yn as _e,Yt as W,Z as G,Zt as ve,_ as ye,_n as be,a as xe,an as Se,ar as Ce,at as we,bn as Te,bt as Ee,c as De,cn as Oe,ct as ke,d as Ae,dn as je,en as Me,et as Ne,f as Pe,fn as Fe,fr as Ie,ft as Le,g as Re,gn as ze,h as Be,hn as Ve,ht as He,i as Ue,in as We,ir as Ge,it as Ke,jt as qe,k as Je,kn as K,kt as Ye,l as Xe,ln as Ze,lt as Qe,m as $e,mn as et,mr as tt,mt as nt,nn as rt,nr as it,nt as at,o as ot,on as st,or as ct,p as lt,pn as ut,pr as dt,pt as ft,q as pt,qt as mt,r as ht,rn as gt,rr as _t,rt as vt,s as yt,sn as bt,sr as xt,t as St,tn as Ct,tt as wt,u as Tt,un as Et,ut as Dt,v as Ot,vn as kt,wn as At,wt as jt,x as Mt,xn as Nt,y as Pt,yn as Ft,yt as It,z as Lt,zt as Rt}from"../../_chunks/workflow/wait-until-DK2lnH6U.js";import{A as zt,D as q,O as Bt,S as Vt,_ as Ht,a as Ut,b as Wt,c as Gt,d as J,g as Kt,i as Y,k as X,l as Z,m as qt,n as Jt,o as Yt,r as Q,s as Xt,t as Zt,u as Qt}from"../../_chunks/workflow/dist-CRTn4Sg8.js";import{a as $t,c as en,i as tn,l as nn,n as rn,s as an,t as on}from"../../_chunks/workflow/private-tvMBynnC.js";import{n as sn,t as cn}from"../../_chunks/workflow/dist-tJoQXAF6.js";import{a as ln,n as un}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{d as dn,l as fn,n as pn,s as mn,u as hn}from"../../_chunks/workflow/attribute-changes-BoH7JsWp.js";import{S as gn,W as _n,Y as vn,a as yn,b as bn,o as xn,q as Sn,s as Cn,y as wn}from"../../_chunks/workflow/dist-DlFv0aHY.js";import{t as Tn}from"../../_chunks/workflow/env-config-DxamfI7T.js";import{t as En}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{n as Dn,r as On,t as kn}from"../../_chunks/workflow/resume-hook-BPQHjeY5.js";import{a as An,c as jn,d as Mn,i as Nn,l as Pn,n as Fn,o as In,r as Ln,s as Rn,t as zn,u as Bn}from"../../_chunks/workflow/run-DQ5dOyjm.js";import{t as Vn}from"../../_chunks/workflow/run-id-BdE0MZz9.js";import{createRequire as Hn}from"node:module";import{createHash as Un}from"node:crypto";import{types as Wn}from"node:util";import Gn from"node:assert/strict";import{pathToFileURL as Kn}from"node:url";import{Script as qn,createContext as Jn,runInContext as Yn}from"node:vm";function Xn(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function Zn(e){return e===`vercel`||e===`@workflow/world-vercel`}var Qn=t(sn(),1);function $n(e){return e instanceof hn||e instanceof fn||e instanceof dn||e instanceof pn}const er=`The workflow event log contains orphaned or mismatched events and cannot be replayed. This is an internal workflow SDK error; please report it with the runId.`;function tr(e,t){let n=t??Mt(e);return qt.is(e)?{attribution:`user`,errorCode:n,hint:`A value passed across a workflow/step boundary could not be serialized. See the error message for the offending path and the Learn More link for details.`}:$n(e)?{attribution:`user`,errorCode:n,hint:`A workflow-only or step-only API was called from the wrong context. The error message includes the exact API and how to move the call.`}:Zt.is(e)?{attribution:`sdk`,errorCode:n,hint:er}:n===X.DEPLOYMENT_MISMATCH?{attribution:`sdk`,errorCode:n,hint:`The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.`}:e instanceof q?{attribution:`sdk`,errorCode:n,hint:`This is an internal workflow SDK error, not a bug in your code. If it keeps happening, please report it with the stack trace and the runId.`}:n===X.REPLAY_TIMEOUT?{attribution:`sdk`,errorCode:n,hint:'The workflow replay between step boundaries took too long. This bounds workflow-VM and event-log replay time only — step bodies (`"use step"` functions) are excluded. This usually means the event log is unusually large or the workflow function is doing heavy synchronous work in workflow code outside of step bodies. Override the default budget via the WORKFLOW_REPLAY_TIMEOUT_MS env var if needed.'}:n===X.MAX_DELIVERIES_EXCEEDED?{attribution:`sdk`,errorCode:n,hint:`The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.`}:n===X.MAX_EVENTS_EXCEEDED?{attribution:`user`,errorCode:n,hint:`The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.`}:n===X.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:er}:n===X.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}const nr=4096;function rr(e){if(e===null)return!0;let t=typeof e;return t===`object`||t===`function`?!1:t===`string`?e.length<=nr:t!==`bigint`||e.toString().length<=nr}var ir=class{encryptionKey;preparer;preparedPayloads=new Map;primitiveStepResults=new Map;nextUnscannedEventIndex=0;constructor(e,t=T){this.encryptionKey=e,this.preparer=t}async prewarm(e,t){let n=[],r=(e,t)=>{t instanceof Uint8Array&&(this.preparedPayloads.has(e)||n.push(this.ensurePreparation(e,t)))};r(this.workflowInputKey(e.runId),e.input);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let n=t[e];switch(n.eventType){case`step_completed`:r(this.eventPayloadKey(n.eventId,`result`),n.eventData?.result);break;case`step_failed`:r(this.eventPayloadKey(n.eventId,`error`),n.eventData?.error);break;case`hook_received`:r(this.eventPayloadKey(n.eventId,`payload`),n.eventData?.payload);break}}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return rr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,this.encryptionKey)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const ar=`cinst_${Cn()}`;function or(){return Tn(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const sr=24e4,cr=3e4,lr=78e4,ur=new Set;function dr(e,t,n){ur.has(e)||(ur.add(e),G.warn(t,n))}function fr(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return sr;let t=Number(e);return!Number.isFinite(t)||t<=0?(dr(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:sr}),sr):t<3e4?(dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:cr,minMs:cr}),cr):t>78e4?(dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:lr,maxMs:lr}),lr):t}function pr(){return Tn(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}const mr=new Set;function hr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(mr.has(e)||(mr.add(e),G.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(mr.has(e)||(mr.add(e),G.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}const gr=new Set;function _r(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){gr.has(e)||(gr.add(e),G.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function vr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function yr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function br(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function xr(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Sr(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Cr(){return Tn(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function wr(){return Tn(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function Tr(){return Tn(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function Er(){return Tn(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function Dr(){return Tn(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function Or(){return Tn(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const kr=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function Ar(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=kr(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}const jr={outcome:`continue`};function Mr(e,t,n){return{outcome:e,spanAttributes:{...Nt(t),...Ct(n),...Me(e===`rerouted`)}}}async function Nr({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return jr;let s=await e.getDeploymentId();if(t.deploymentId===s)return jr;await o?.();let c=Or(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new Wt(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:X.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!Q.is(e)&&!J.is(e))throw e}return Mr(`failed`,t.deploymentId,r)};if(i&&r<c){let e=r+1,n=Math.min(2**r,8);try{return await i({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),G.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),Mr(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return G.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...l,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),u(0,t)}}return G.error(r>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,l),u(r)}function Pr(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function Fr(){try{return Hn(Kn(process.cwd()+`/package.json`).href)}catch{return Hn(import.meta.url)}}const Ir=Symbol.for(`@workflow/world//cache`),Lr=Symbol.for(`@workflow/world//stubbedCache`),Rr=Symbol.for(`@workflow/world//cachePromise`),zr=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function Br(e){if(typeof e.createWorld==`function`)return e.createWorld();if(typeof e.default==`function`)return e.default();if(e.default&&typeof e.default==`object`)return e.default;throw Error(`Invalid target world module: must export createWorld(), a default factory, or a default World instance.`)}function Vr(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return Kn(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return Kn(process.cwd()+`/`+e).href;try{return Kn(Fr().resolve(e)).href}catch{return e}}const Hr=async()=>{let e=Xn();if(Zn(e)){let e=[`WORKFLOW_VERCEL_PROJECT`,`WORKFLOW_VERCEL_TEAM`,`WORKFLOW_VERCEL_AUTH_TOKEN`,`WORKFLOW_VERCEL_ENV`].filter(e=>process.env[e]);return e.length>0&&process.env.VERCEL===`1`&&console.warn(`[workflow] Warning: ${e.join(`, `)} env var(s) are set but have no effect at runtime. These are only used by the Workflow CLI. Remove them from your Vercel project environment variables.`),Pr()}if(e===`local`)return Pr({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=Fr()(e)}catch{t=await import(Vr(e))}if(typeof t==`function`)return t();try{return await Br(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},Ur=async()=>{if($[Lr])return C($[Lr]),$[Lr];$[zr]||($[zr]=Hr().catch(e=>{throw $[zr]=void 0,e}));let e=await $[zr];return C(e),$[Lr]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},Wr=async()=>$[Ir]?(C($[Ir]),$[Ir]):($[Rr]||($[Rr]=Hr().catch(e=>{throw $[Rr]=void 0,e})),$[Ir]=await $[Rr],C($[Ir]),$[Ir]),Gr=e=>{$[Ir]=e,$[Lr]=e,$[Rr]=void 0,$[zr]=void 0},Kr=Symbol.for(`@workflow/world//getWorldFn`);globalThis[Kr]??=Wr;var qr=class{limitMs;elapsedMs=0;intervalStart;constructor(e=fr()){this.limitMs=e,this.intervalStart=Date.now()}get configuredLimitMs(){return this.limitMs}elapsed(){let e=this.intervalStart===null?0:Date.now()-this.intervalStart;return this.elapsedMs+e}pause(){this.intervalStart!==null&&(this.elapsedMs+=Date.now()-this.intervalStart,this.intervalStart=null)}resume(){this.intervalStart=Date.now()}isExhausted(){return this.elapsed()>=this.limitMs}},Jr=class extends Error{name=`ReplayTimeoutRetryError`};async function Yr(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a}=e,o=G.forRun(t,n),s=pr();if(i<=s)throw o.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:s}),new Jr(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let c=await Wr(),l=tr(void 0,X.REPLAY_TIMEOUT);o.error(`Workflow replay exceeded timeout and max retries exceeded. Failing the run`,{timeoutMs:a,attempt:i,maxRetries:s,errorCode:l.errorCode,errorAttribution:l.attribution});let u=Pe(c,t),d=new Y(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await c.events.create(t,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(d,t,await u()),errorCode:X.REPLAY_TIMEOUT}},{requestId:r})}var Xr=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new Zr}activate(){this.active=!0}async withEventCreate(e,t){if(!this.active||this.reported)return t(e);this.reported=!0;try{return await t({...e,replayDivergenceCount:this.divergenceCount})}catch(e){throw this.reported=!1,e}}},Zr=class extends Xr{constructor(){super(0)}activate(){}};function Qr(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return yn(Vn(t).ulid)}catch{return}}function $r(e){return Wn.isNativeError(e)?e.name:`Error`}function ei(e){return Wn.isNativeError(e)?e.stack??``:``}function ti(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function ni(e){if(!ti(e)||Y.is(e))return e;let t=new Y(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function ri(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function ii(e){if(Wn.isNativeError(e))return{name:e.name,message:e.message,stack:e.stack??``};if(typeof e==`string`)return{name:`Error`,message:e,stack:``};try{return{name:`Error`,message:JSON.stringify(e),stack:``}}catch{return{name:`Error`,message:String(e),stack:``}}}async function ai(e){if(ri(e))try{let t=await ai(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await ai(e);return{...t,message:`Promise rejection: ${t.message}`}}return ii(e)}let oi,si,ci;async function li(){if(si!==void 0)return si;if(ci)return ci;if(!oi)try{let e=[`@workflow/utils`,`get-port`].join(`/`);oi=Hn(Kn(process.cwd()+`/package.json`).href)(e).getPort}catch{oi=async()=>void 0}return ci=(oi??(async()=>void 0))().then(e=>(typeof e==`number`&&(si=e),e)).finally(()=>{ci=void 0}),ci}const ui=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function di(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(ui.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(!(!n&&i===void 0))return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs,replayMs:e.replayMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},turbo:e.turbo}}function fi(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}function pi(e,t){if(t&&!(!e.events||e.cursor===void 0))return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function mi(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:o,stepName:c}=e,l=!!process.env.VERCEL_URL,d=(e.runSpecVersion??0)>=5,f=e.replayRecoveryReporter??Xr.inert(),p=(e,r)=>f.withEventCreate(r,r=>t.events.create(n,e,r));return ke(`step.execute ${dt(c)}`,{},async f=>{f?.setAttributes({...ue(c),...Oe(r),...Te(n),...U(o)});let m=Pe(t,n),h=rn(c);if(!h||typeof h!=`function`){let t=`Step "${c}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(G.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:c,stepId:o}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},{computeInstanceId:ar})}catch(e){if(Q.is(e))return{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(new Y(t),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...D(!0)}),{type:`failed`}}let g=h.maxRetries??3;if(f?.setAttributes({...u(g)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>g+1){let t=g,r=`Step "${c}" exceeded max retries (${t} ${zt(`retry`,`retries`,t)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,stepId:o,attempt:e.authoritativeAttempt,maxRetries:g});try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(new Y(r),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return G.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}let v=e=>{if(Kt.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return G.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(J.is(e))return G.info(`Workflow run "${n}" has already completed, skipping step "${o}": ${e.message}`),{type:`gone`};if(Q.is(e))return G.debug(`Step in terminal state, skipping`,{stepName:c,stepId:o,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),f?.setAttributes({...k(!0),...mt(`completed`)}),{type:`skipped`};if(Ht.is(e)){let t=Math.max(1,e.retryAfter??1);return G.debug(`Step retryAfter timestamp not yet reached`,{stepName:c,stepId:o,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},y=e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(vr()||e.forceOptimisticStart===!0&&!yr()),b,S={computeInstanceId:ar,...e.preconditionSnapshot},C,T,O=async()=>{if(!T)return;let e=await T;if(e.ok)return;let t=v(e.err);if(!t)throw e.err;return t};if(y){T=(e.runReadyBarrier??Promise.resolve()).then(()=>(C=Date.now(),p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},S))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;b={runId:n,stepId:o,stepName:c,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};C=Date.now(),b=(await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:e.lazyStepInput===void 0?{stepName:c,...t}:{stepName:c,workflowName:r,input:e.lazyStepInput,...t}},S)).step}catch(e){let t=v(e);if(t)return t;throw e}G.debug(`Step execution details`,{stepName:c,stepId:b.stepId,status:b.status,attempt:b.attempt}),f?.setAttributes({...W(b.status)});let A;if(b.attempt>g+1&&b.error){let e=b.attempt-1,t=`Step "${c}" exceeded max retries (${e} ${zt(`retry`,`retries`,e)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,retryCount:e});let r=new Y(t);if(b.error!=null)try{r.cause=await te(b.error,n,await m())}catch{}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(r,n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}let N=[],F=[],R=!0,z,ee=()=>{if(!z||z.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t===void 0||C===void 0||(z.rsfs=Math.max(0,C-t),f&&f.setAttributes({...j(z.rsfs)}))};try{let t=b.attempt;if(!b.startedAt)throw new q(`Step "${o}" has no "startedAt" timestamp`);let u=b.startedAt,p=e.encryptionKey??await m(),g=await ke(`step.hydrate`,{},async t=>{let r=Date.now(),i=await M(b.input,n,p,F,globalThis,{},e.workflowDeploymentId),a=Date.now()-r;return t?.setAttributes({...I(i.args.length),...Ye(a)}),i}),v=g.args,x=g.thisVal??null,S=un(l?`https://${process.env.VERCEL_URL}`:`http://localhost:${await li()??3e3}`),w,T=!1,D=Date.now();z=fi({tracking:e.latencyTracking,stepCodeStartedAtMs:D,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:y,stepStartPostSentAtMs:C}),z&&f?.setAttributes({...z.ttfs===void 0?{}:ve(z.ttfs),...z.stso===void 0?{}:he(z.stso),...z.rsfs===void 0?{}:j(z.rsfs),...z.finalSchedulingReplay===void 0?{}:P(z.finalSchedulingReplay),...Rt(z.optimizations??[])});try{A=await ke(`step.execute`,{},async()=>await pe.run({stepMetadata:{stepName:c,stepId:o,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:S,features:{encryption:!!p}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:F,preCompletionOps:N,closureVars:g.closureVars,encryptionKey:p,runReadyBarrier:y?e.runReadyBarrier:void 0},()=>h.apply(x,v)))}catch(e){w=e,T=!0}let k=Date.now()-D;if(_(...v,x,g.closureVars),T)throw w;if(f?.setAttributes({...s(k)}),A=await ke(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await a(A,n,p,F,globalThis,!1,!1,d,y?e.runReadyBarrier:void 0),o=Date.now()-r;return t?.setAttributes({...qe(o),...E(typeof i)}),i}),F.length>0){let e=Promise.all(F);St(e,e=>{G.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:o,error:e instanceof Error?e.message:String(e)})}),R=await Promise.race([e.then(()=>!0,e=>{if(e?.name===`AbortError`||e?.name===`ResponseAborted`)return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))])}if(y){let e=await O();if(e)return e;ee()}N.length>0&&await Promise.all(N).catch(()=>{})}catch(e){if(y){let e=await O();if(e)return e;ee()}N.length>0&&await Promise.all(N).catch(()=>{});let t=ni(e),r=await ai(t),i=r.stack||ei(t)||``;t instanceof Error&&f?.recordException?.(t);let a=Y.is(t);if(f?.setAttributes({...x($r(t)),...B(r.message),...nt($r(t)),...Le(a?`fatal`:Qt.is(t)?`retryable`:`transient`),...ft(!a)}),J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};if(a){V.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:c,errorStack:i}),Wn.isNativeError(t)&&i&&(t.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(t,n,await m(),[],globalThis,d),...z}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...D(!0)}),{type:`failed`}}let s=b.attempt;if(f?.setAttributes({...L(s),...u(g)}),s>=g+1){let t=b.attempt-1;V.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:c,attempt:b.attempt,retryCount:t,errorStack:i});let a=new Y(`Step "${c}" failed after ${g} ${zt(`retry`,`retries`,g)}: ${r.message}`);a.cause=e,i&&(a.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(a,n,await m(),[],globalThis,d),...z}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}Qt.is(e)?V.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,message:e.message}):V.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,errorStack:i}),Wn.isNativeError(e)&&i&&(e.stack=i);try{await p({eventType:`step_retrying`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(e,n,await m(),[],globalThis,d),...Qt.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(Q.is(e))return G.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}let l=Math.max(1,Qt.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return f?.setAttributes({...fe(l),...w(!0)}),{type:`retry`,timeoutSeconds:l}}let H;try{H=await p({eventType:`step_completed`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,result:A,...z}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(Q.is(e))return G.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};if(J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};throw e}let ne=pi(H,e.inlineDeltaSinceCursor!==void 0);return f?.setAttributes({...W(`completed`),...E(typeof A)}),F.length>0&&V.debug(`Step has pending ops`,{workflowRunId:n,stepName:c,opsCount:F.length}),{type:`completed`,hasPendingOps:!R,inlineDelta:ne}})}function hi(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function gi(e,t){if(e.lastStartedAt===void 0)return 0;let n=Cr(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function _i(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function vi(e,t,n){let r=new Map,i=new Set;for(let t of e)if(t.correlationId!==void 0)if(t.eventType===`step_started`){let e=`eventData`in t&&t.eventData&&`ownerMessageId`in t.eventData&&typeof t.eventData.ownerMessageId==`string`?t.eventData.ownerMessageId:void 0;r.set(t.correlationId,e)}else t.eventType===`step_retrying`&&i.add(t.correlationId);for(let e of t)if(e!==void 0&&!i.has(e)&&r.get(e)===n)return!0;return!1}const yi=new Map;async function bi(e,t,n){let r=`${e}:${t}`,i=yi.get(r);if(i){G.warn(`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await i}catch{}return{type:`skipped`}}let a=n();yi.set(r,a);try{return await a}finally{yi.delete(r)}}async function xi({runId:e,hookEvent:t,queueItem:n,requestId:r,createEvent:i}){try{return(await i(t,{requestId:r})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(Q.is(t))return G.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(J.is(t))return G.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(Ci(t)){let e=new Y(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Si({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s}){let c=n.runId,l=async()=>{if(o)try{await o}catch{}},u=async e=>{let t=(await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(t.length!==0)throw t.find(e=>Gt.is(e))??t[0]},d=s??Xr.inert(),f=(e,n)=>d.withEventCreate(n,n=>t.events.create(c,e,n)),p=0,m=async(e,t)=>{if(!a)return f(e,t);let n=a,r=await f(e,{...t,...Re(n.events,n.cursor)});if(r.events?.length&&r.hasMore!==!0){let t=lt(n.events,r.events);p+=t,t>0&&G.debug(`Suspension write skipped occupied slots`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,reported:t})}else r.events?.length&&G.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,offered:r.events.length});return r},h=e.steps.filter(e=>e.type===`step`),g=e.steps.filter(e=>e.type===`hook`),_=e.steps.filter(e=>e.type===`wait`),v=e.steps.filter(e=>e.type===`attribute`),y=g.filter(e=>!e.hasCreatedEvent),b=new Map;for(let e of g){if(e.hasCreatedEvent&&!e.disposed)continue;let t=b.get(e.token);t?t.push(e):b.set(e.token,[e])}let x=await t.getEncryptionKeyForRun?.(n),S=x?await xt(x):void 0,C=(n.specVersion??0)>=5;async function w(e){let t={eventType:`hook_disposed`,specVersion:5,correlationId:e.correlationId,eventData:{token:e.token}};try{await m(t,{requestId:i})}catch(t){if(Q.is(t))G.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(J.is(t))G.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(Yt.is(t))G.info(`Hook not found for disposal, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}}let T=!1,E=!1,D=0;if(b.size>0){let t=Date.now();await l(),await u([...b.values()].map(async t=>{for(let n of t){let t=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await R(n.metadata,c,S,e.globalThis,!1,C),a={eventType:`hook_created`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0}}},o=await xi({runId:c,hookEvent:a,queueItem:n,requestId:i,createEvent:m});T||=o.hasHookConflict,E||=o.hasAwaitedHookCreation,t=o.hasHookConflict}n.disposed&&!t&&await w(n)}})),D=Date.now()-t}let k=g.filter(e=>e.abortRequested&&!e.disposed);k.length>0&&(await l(),await u(k.map(async n=>{try{let r=await R({aborted:!0,reason:n.abortReason},c,S,e.globalThis,!1,C);await m({eventType:`hook_received`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,payload:r}});try{let e=O(n.token);await t.streams.write(c,e,r),await t.streams.close(c,e)}catch{G.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:c,correlationId:n.correlationId})}}catch(e){if(Q.is(e)||J.is(e))G.info(`Workflow run already completed, skipping abort`,{workflowRunId:c,correlationId:n.correlationId,message:e.message});else throw e}})));let A=new Set(h.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),j=new Set,M={executions:[]},N=new Set(E===!1?h.filter(e=>A.has(e.correlationId)).slice(0,hr()).map(e=>e.correlationId):[]),P=new Map,F=[];for(let t of h)A.has(t.correlationId)&&F.push((async()=>{let r={executions:[]},a=await R({args:t.args,closureVars:t.closureVars,thisVal:t.thisVal},c,S,e.globalThis,!1,C,r);if(M.executions.push(...r.executions),N.has(t.correlationId)){P.set(t.correlationId,{correlationId:t.correlationId,stepName:t.stepName,dehydratedInput:a});return}let o={eventType:`step_created`,specVersion:5,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}};try{await l(),await m(o,{requestId:i}),j.add(t.correlationId)}catch(e){if(Q.is(e))G.info(`Step already exists, continuing`,{workflowRunId:c,correlationId:t.correlationId,message:e.message});else throw e}})());for(let e of _)e.hasCreatedEvent||F.push((async()=>{let t={eventType:`wait_created`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};try{await l(),await m(t,{requestId:i})}catch(t){if(Q.is(t))G.info(`Wait already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}})());for(let e of v)F.push((async()=>{try{await l(),await m({eventType:`attr_set`,specVersion:5,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(Q.is(t))G.info(`Workflow attribute event already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(Ci(t)){let e=new Y(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await u(F);let I=M.executions.length===0;I||G.debug(`Serializing step inputs executed workflow code; falling back to replay instead of retaining the VM`,{workflowRunId:c,executions:M.executions.slice(0,5).map(e=>e.detail?`${e.kind}(${e.detail})`:e.kind)});let L=[];for(let e of N){let t=P.get(e);t&&L.push(t)}let ee=Date.now(),B;for(let e of _){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-ee),r=Math.ceil(n/1e3);(!B||r<B.seconds)&&(B={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...ie(`workflow_suspended`),...At(h.length),...bt(y.length),...z(_.length)}),{pendingSteps:h,createdStepCorrelationIds:j,lazyInlineSteps:L,waitTimeout:T?void 0:B,hasHookConflict:T,hasAwaitedHookCreation:E,hasAttributeEvents:v.length>0,hasHookEvents:y.length>0,hookCreationMs:D,retainedStepInputsSafe:I,reportedEventCount:p}}function Ci(e){return e instanceof Sn||e instanceof Error&&e.name===`AttributeValidationError`||Bt.is(e)&&e.status===400}const wi=()=>Tn(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),Ti=()=>Tn(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function Ei(e,t,n=Date.now()){let r=wi();if(e<=Math.min(Ti(),r))return{delaySeconds:e,idempotencyKey:`${t}:${Math.floor(n/1e3)}`};let i=Math.ceil(e/r);return{delaySeconds:Math.min(e,r),idempotencyKey:i===1?t:`${t}:hop-${i}`}}var Di=44,Oi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ki=new Uint8Array(64),Ai=new Uint8Array(128);for(let e=0;e<Oi.length;e++){let t=Oi.charCodeAt(e);ki[e]=t,Ai[t]=e}function ji(e,t){let n=0,r=0,i=0;do i=Ai[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function Mi(e,t){return e.pos>=t?!1:e.peek()!==Di}var Ni=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Pi(e){let{length:t}=e,n=new Ni(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=ji(n,i),i<u&&(l=!1),u=i,Mi(n,e)?(a=ji(n,a),o=ji(n,o),s=ji(n,s),Mi(n,e)?(c=ji(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Fi(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Fi(e){e.sort(Ii)}function Ii(e,t){return e[0]-t[0]}const Li=/^[\w+.-]+:\/\//,Ri=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,zi=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function Bi(e){return Li.test(e)}function Vi(e){return e.startsWith(`//`)}function Hi(e){return e.startsWith(`/`)}function Ui(e){return e.startsWith(`file:`)}function Wi(e){return/^[.?#]/.test(e)}function Gi(e){let t=Ri.exec(e);return qi(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function Ki(e){let t=zi.exec(e),n=t[2];return qi(`file:`,``,t[1]||``,``,Hi(n)?n:`/`+n,t[3]||``,t[4]||``)}function qi(e,t,n,r,i,a,o){return{scheme:e,user:t,host:n,port:r,path:i,query:a,hash:o,type:7}}function Ji(e){if(Vi(e)){let t=Gi(`http:`+e);return t.scheme=``,t.type=6,t}if(Hi(e)){let t=Gi(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(Ui(e))return Ki(e);if(Bi(e))return Gi(e);let t=Gi(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function Yi(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function Xi(e,t){Zi(t,t.type),e.path===`/`?e.path=t.path:e.path=Yi(t.path)+e.path}function Zi(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function Qi(e,t){if(!e&&!t)return``;let n=Ji(e),r=n.type;if(t&&r!==7){let e=Ji(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:Xi(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}Zi(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?Wi(t||e)&&!Wi(r)?`./`+r+i:r+i:i||`.`}case 5:return n.path+i;default:return n.scheme+`//`+n.user+n.host+n.port+n.path+i}}function $i(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function ea(e,t){let n=$i(e),r=t?t+`/`:``;return e=>Qi(r+(e||``),n)}var ta=0,na=1,ra=2,ia=3,aa=4;function oa(e,t){let n=sa(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=sa(e,r+1))e[r]=la(e[r],t);return e}function sa(e,t){for(let n=t;n<e.length;n++)if(!ca(e[n]))return n;return e.length}function ca(e){for(let t=1;t<e.length;t++)if(e[t][ta]<e[t-1][ta])return!1;return!0}function la(e,t){return t||(e=e.slice()),e.sort(ua)}function ua(e,t){return e[ta]-t[ta]}var da=!1;function fa(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][ta]-t;if(a===0)return da=!0,i;a<0?n=i+1:r=i-1}return da=!1,n-1}function pa(e,t,n){for(let r=n+1;r<e.length&&e[r][ta]===t;n=r++);return n}function ma(e,t,n){for(let r=n-1;r>=0&&e[r][ta]===t;n=r--);return n}function ha(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function ga(e,t,n,r){let{lastKey:i,lastNeedle:a,lastIndex:o}=n,s=0,c=e.length-1;if(r===i){if(t===a)return da=o!==-1&&e[o][ta]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=fa(e,t,s,c)}function _a(e){return typeof e==`string`?JSON.parse(e):e}var va="`line` must be greater than 0 (lines start at line 1)",ya="`column` must be greater than or equal to 0 (columns start at column 0)",ba=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=_a(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=r;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=r.ignoreList||r.x_google_ignoreList||void 0;let u=ea(t,s);this.resolvedSources=c.map(u);let{mappings:d}=r;if(typeof d==`string`)this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=oa(d,n);else if(r.sections)throw Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);else throw Error(`invalid source map: ${JSON.stringify(r)}`);this._decodedMemo=ha(),this._bySources=void 0,this._bySourceMemos=void 0}};function xa(e){return e}function Sa(e){var t;return(t=xa(e))._decoded||(t._decoded=Pi(xa(e)._encoded))}function Ca(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(va);if(r<0)throw Error(ya);let a=Sa(e);if(n>=a.length)return wa(null,null,null,null);let o=a[n],s=Ta(o,xa(e)._decodedMemo,n,r,i||1);if(s===-1)return wa(null,null,null,null);let c=o[s];if(c.length===1)return wa(null,null,null,null);let{names:l,resolvedSources:u}=e;return wa(u[c[na]],c[ra]+1,c[ia],c.length===5?l[c[aa]]:null)}function wa(e,t,n,r){return{source:e,line:t,column:n,name:r}}function Ta(e,t,n,r,i){let a=ga(e,r,t,n);return da?a=(i===-1?pa:ma)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function Ea(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Da(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&Ea(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Oa=new Map;function ka(e){let t=Oa.get(e);if(t!==void 0)return Oa.delete(e),Oa.set(e,t),t;let n=null,r=Da(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new ba(JSON.parse(e))}catch{n=null}for(Oa.set(e,n);Oa.size>8;){let e=Oa.keys().next().value;if(e===void 0)break;Oa.delete(e)}return n}function Aa(e,t,n){if(!e.includes(t))return e;let r=ka(n);if(!r)return e;try{return e.split(`
|
|
2
|
+
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=Ca(r,{line:c,column:l});if(u.source&&u.line!==null){let e=i||u.name||`anonymous`,t=u.column===null?l:u.column;return` at ${e} (${u.source}:${u.line}:${t})`}return e}).join(`
|
|
3
|
+
`)}catch{return e}}function ja(e,t,n){let r=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*r*t/e.length);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(o+=e[t[s]&r]||``,o.length>=a)return o}}}function Ma(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:s}=nn(),c=`step_${e.generateUlid()}`,l={type:`step`,correlationId:c,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(l.thisVal=this);let u=n?.();return u&&(l.closureVars=u),e.invocationsQueue.set(c,l),V.debug(`Step consumer setup`,{correlationId:c,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n){let t=e.suspensionGeneration;return an(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed}if(V.debug(`Step consumer event processing`,{correlationId:c,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:c===n.correlationId,eventType:n.eventType}),n.correlationId!==c)return S.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: step event ${n.eventType} for ${c} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),S.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(c);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{s(new Z(`Replay divergence: step ${c} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),S.Finished):(r.hasCreatedEvent=!0,S.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),S.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),S.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=$t(e,t,`step`),i,a=on(e,t,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(n.eventId,`error`,n.eventData.error);i=await te(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){V.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new Y(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),s(i)})}),S.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,o=$t(e,i,`step`),c,l=on(e,i,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{c={ok:!0,value:await e.replayPayloadCache.getStepResult(t,async()=>{let n=await e.replayPayloadCache.prepareEventPayload(t,`result`,r);return await Lt(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{o.markDelivered(),c.ok?a(c.value):s(c.error)})}),S.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for step ${c} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),S.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(l(n),Object.defineProperty(r,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(r,"bind",{value:function(e,...r){let i=Function.prototype.bind.call(this,e,...r);return Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperty(i,"__boundThis",{value:e,writable:!1,enumerable:!1,configurable:!1}),r.length>0&&Object.defineProperty(i,"__boundArgs",{value:r,writable:!1,enumerable:!1,configurable:!1}),i},writable:!1,enumerable:!1,configurable:!1}),r}}var Na=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=o();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,o=n.next;return o.int32=function(){return n.next()*4294967296|0},o.double=function(){return o()+(o()*2097152|0)*11102230246251565e-32},o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}function o(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.alea=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Pa=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor128=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Fa=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorwow=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ia=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.x,n=t.i,r=e[n],i;return r^=r>>>7,i=r^r<<24,r=e[n+1&7],i^=r^r>>>10,r=e[n+3&7],i^=r^r>>>3,r=e[n+4&7],i^=r^r<<7,r=e[n+7&7],r^=r<<13,i^=r^r<<9,e[n]=i,t.i=n+1&7,i};function n(e,t){var n,r=[];if(t===(t|0))r[0]=t;else for(t=``+t,n=0;n<t.length;++n)r[n&7]=r[n&7]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&r[n]===0;++n);for(n==8?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.x&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorshift7=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),La=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.w,n=t.X,r=t.i,i,a;return t.w=e=e+1640531527|0,a=n[r+34&127],i=n[r=r+1&127],a^=a<<13,i^=i<<17,a^=a>>>15,i^=i>>>12,a=n[r]=a^i,t.i=r,a+(e^e>>>16)|0};function n(e,t){var n,r,i,a,o,s=[],c=128;for(t===(t|0)?(r=t,t=null):(t+=`\0`,r=0,c=Math.max(c,t.length)),i=0,a=-32;a<c;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),a===0&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(o=o+1640531527|0,n=s[a&127]^=r+o,i=n==0?i+1:0);for(i>=128&&(s[(t&&t.length||0)&127]=-1),i=127,a=512;a>0;--a)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;e.w=o,e.X=s,e.i=i}n(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.X&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor4096=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ra=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,r=t.d,i=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var r=0;r<n.length+20;r++)t.b^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.tychei=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),za=n(((t,n)=>{(function(t,r,i){var a=256,o=6,s=52,c=`random`,l=i.pow(a,o),u=i.pow(2,s),d=u*2,f=a-1,p;function m(e,t,n){var s=[];t=t==1?{entropy:!0}:t||{};var f=v(_(t.entropy?[e,b(r)]:e??y(),3),s),p=new h(s),m=function(){for(var e=p.g(o),t=l,n=0;e<u;)e=(e+n)*a,t*=a,n=p.g(1);for(;e>=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return m.int32=function(){return p.g(4)|0},m.quick=function(){return p.g(4)/4294967296},m.double=m,v(b(p.S),r),(t.pass||n||function(e,t,n,r){return r&&(r.S&&g(r,p),e.state=function(){return g(p,{})}),n?(i[c]=e,t):e})(m,f,`global`in t?t.global:this==i,t.state)}function h(e){var t,n=e.length,r=this,i=0,o=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);i<a;)s[i]=i++;for(i=0;i<a;i++)s[i]=s[o=f&o+e[i%n]+(t=s[i])],s[o]=t;(r.g=function(e){for(var t,n=0,i=r.i,o=r.j,s=r.S;e--;)t=s[i=f&i+1],n=n*a+s[f&(s[i]=s[o=f&o+t])+(s[o]=t)];return r.i=i,r.j=o,n})(a)}function g(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){var n=[],r=typeof e,i;if(t&&r==`object`)for(i in e)try{n.push(_(e[i],t-1))}catch{}return n.length?n:r==`string`?e:e+`\0`}function v(e,t){for(var n=e+``,r,i=0;i<n.length;)t[f&i]=f&(r^=t[f&i]*19)+n.charCodeAt(i++);return b(t)}function y(){try{var e;return p&&(e=p.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),b(e)}catch{var n=t.navigator,i=n&&n.plugins;return[+new Date,t,i,t.screen,b(r)]}}function b(e){return String.fromCharCode.apply(0,e)}if(v(i.random(),r),typeof n==`object`&&n.exports){n.exports=m;try{p=e(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:t,[],Math)})),Ba=t(n(((e,t)=>{var n=Na(),r=Pa(),i=Fa(),a=Ia(),o=La(),s=Ra(),c=za();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const Va=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Ha=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)Ha[Va.charCodeAt(e)]=e;function Ua(e){return e===9||e===10||e===12||e===13||e===32}function Wa(e,t){for(;t<e.length&&Ua(e.charCodeAt(t));)t++;return t}function Ga(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=Ha[r.charCodeAt(0)],a=Ha[r.charCodeAt(1)],o=Ha[r.charCodeAt(2)],s=Ha[r.charCodeAt(3)],c=i<<2|a>>4,l=(a&15)<<4|o>>2,u=(o&3)<<6|s;if(n===2){if(t&&l!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c]}if(n===3){if(t&&u!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c,l]}return[c,l,u]}function Ka(e,t,n,r){if(r===void 0&&(r=2**53-1),r===0)return{read:0,bytes:[],error:null};let i=0,a=[],o=``,s=0,c=0,l=e.length;for(;;){if(c=Wa(e,c),c===l){if(s>0){if(n===`stop-before-partial`)return{read:i,bytes:a,error:null};if(n===`loose`){if(s===1)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: lone character in final chunk`)};a.push(...Ga(o,!1))}else return{read:i,bytes:a,error:SyntaxError(`Invalid base64: incomplete chunk in strict mode`)}}return{read:l,bytes:a,error:null}}let u=e[c];if(c++,u===`=`){if(s<2)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: padding in unexpected place`)};if(c=Wa(e,c),s===2){if(c===l)return n===`stop-before-partial`?{read:i,bytes:a,error:null}:{read:i,bytes:a,error:SyntaxError(`Invalid base64: missing second padding character`)};u=e[c],u===`=`&&(c=Wa(e,c+1))}if(c<l)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected characters after padding`)};let t=n===`strict`;try{a.push(...Ga(o,t))}catch(e){return{read:i,bytes:a,error:e}}return{read:l,bytes:a,error:null}}if(t===`base64url`){if(u===`+`||u===`/`)return{read:i,bytes:a,error:SyntaxError(`Invalid base64url: unexpected character '${u}'`)};u===`-`?u=`+`:u===`_`&&(u=`/`)}let d=u.charCodeAt(0);if(d>=128||Ha[d]===255)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected character '${e[c-1]}'`)};let f=r-a.length;if(f===1&&s===2||f===2&&s===3||(o+=u,s=o.length,s===4&&(a.push(...Ga(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function qa(e,t){t===void 0&&(t=2**53-1);let n=e.length,r=[],i=0;if(n%2!=0)return{read:0,bytes:[],error:SyntaxError(`Invalid hex: string length must be even`)};for(;i<n&&r.length<t;){let t=e.substring(i,i+2);if(!/^[0-9a-fA-F]{2}$/.test(t))return{read:i,bytes:r,error:SyntaxError(`Invalid hex: unexpected character at position ${i}`)};i+=2,r.push(Number.parseInt(t,16))}return{read:i,bytes:r,error:null}}function Ja(e,t){let n=t?.alphabet??`base64`;if(n!==`base64`&&n!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${n}"`);let r=!!t?.omitPadding,i=``,a=e.length;for(let t=0;t<a;t+=3){let n=e[t],o=t+1<a?e[t+1]:0,s=t+2<a?e[t+2]:0;i+=Va[n>>2&63],i+=Va[(n&3)<<4|o>>4&15],t+1<a?i+=Va[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=Va[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function Ya(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function Xa(e){let t=e.prototype,n=e;t.toBase64||Object.defineProperty(t,"toBase64",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return Ja(this,t)},writable:!0,enumerable:!1,configurable:!0}),t.toHex||Object.defineProperty(t,"toHex",{value:function(){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return Ya(this)},writable:!0,enumerable:!1,configurable:!0}),t.setFromBase64||Object.defineProperty(t,"setFromBase64",{value:function(t,n){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Ka(t,r,i,this.length),o=a.bytes,s=o.length;for(let e=0;e<s;e++)this[e]=o[e];if(a.error)throw a.error;return{read:a.read,written:s}},writable:!0,enumerable:!1,configurable:!0}),t.setFromHex||Object.defineProperty(t,"setFromHex",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let n=qa(t,this.length),r=n.bytes,i=r.length;for(let e=0;e<i;e++)this[e]=r[e];if(n.error)throw n.error;return{read:n.read,written:i}},writable:!0,enumerable:!1,configurable:!0}),n.fromBase64||Object.defineProperty(e,"fromBase64",{value:function(t,n){if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Ka(t,r,i);if(a.error)throw a.error;return new e(a.bytes)},writable:!0,enumerable:!1,configurable:!0}),n.fromHex||Object.defineProperty(e,"fromHex",{value:function(t){if(typeof t!=`string`)throw TypeError(`expected a string`);let n=qa(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function Za(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)r===8||r===13||r===18||r===23?n+=`-`:r===14?n+=`4`:r===19?n+=t[Math.floor(e()*4)+8]:n+=t[Math.floor(e()*16)];return n}}const Qa={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function $a(e){if(Wn.isTypedArray(e)||Wn.isDataView(e)){if(Wn.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Wn.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function eo(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,Ba.default)(n),i=Jn(),a=Yn(`globalThis`,i);a.Math.random=r;let o=a.Date;a.Date=function(...e){return new.target===void 0?new o(t).toString():Reflect.construct(o,e.length===0?[t]:e,new.target)},a.Date.prototype=o.prototype,Object.setPrototypeOf(a.Date,o),a.Date.now=()=>t;let s=globalThis.crypto,c=s.subtle;function l(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(r()*256);return e}let u=Za(r),d=a;delete d.Atomics.waitAsync,delete d.WebAssembly.compile,delete d.WebAssembly.instantiate,delete d.WebAssembly.compileStreaming,delete d.WebAssembly.instantiateStreaming,delete d.WeakRef,delete d.FinalizationRegistry;let f=async(e,t)=>{let n=typeof e==`string`?e:e.name,r=Qa[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=Un(r).update($a(t)).digest(),a=new ArrayBuffer(i.byteLength);return new Uint8Array(a).set(i),a};return a.crypto=new Proxy(s,{get(e,t){return t===`getRandomValues`?l:t===`randomUUID`?u:t===`subtle`?new Proxy(c,{get(e,t){if(t===`digest`)return f;let n=e[t];return typeof n==`function`?()=>{throw new q(`\`crypto.subtle.${String(t)}()\` is not available inside a workflow function. Move it to a step function where full Node.js crypto is available.`)}:n}}):e[t]}}),a.process={env:Object.freeze({...process.env})},a.DOMException=globalThis.DOMException,a.Headers=globalThis.Headers,a.TextEncoder=globalThis.TextEncoder,a.TextDecoder=globalThis.TextDecoder,a.console=globalThis.console,a.URL=globalThis.URL,a.URLSearchParams=globalThis.URLSearchParams,a.structuredClone=globalThis.structuredClone,a.atob=globalThis.atob,a.btoa=globalThis.btoa,Xa(a.Uint8Array),a.Symbol.dispose??=Symbol.for(`Symbol.dispose`),a.Symbol.asyncDispose??=Symbol.for(`Symbol.asyncDispose`),a.exports={},a.module={exports:a.exports},{context:i,globalThis:a,updateTimestamp:e=>{t=e}}}const to=new Map;function no(e){let t=to.get(e);if(t!==void 0)return to.delete(e),to.set(e,t),t}function ro(e,t){let n=no(e);if(n===void 0)for(n=new Map,to.set(e,n);to.size>8;){let e=to.keys().next().value;if(e===void 0)break;to.delete(e)}let r=n.get(t);return r===void 0&&(r=new qn(e,{filename:t}),n.set(t,r)),r}function io(e,t,n){return ro(e,t).runInContext(n)}function ao(e){return async function(t,n={}){let{promise:r,resolve:i}=nn(),a=`attr_${e.generateUlid()}`,s={type:`attribute`,correlationId:a,changes:t,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}};return e.invocationsQueue.set(a,s),e.eventsConsumer.subscribe(r=>r?r.correlationId===a?r.eventType!==`attr_set`||r.eventData.writer.type!==`workflow`||JSON.stringify(r.eventData.changes)!==JSON.stringify(t)||r.eventData.allowReservedAttributes===!0!=(n.allowReservedAttributes===!0)?(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),S.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),S.Finished):S.NotConsumed:(an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed)),r}}function oo(e,t){if(typeof t!=`string`)return null;let n=N(b,e.globalThis),r=n?.[ne];return typeof r==`function`?r.call(n,{runId:t}):null}function so(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a randomly generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new Y("The configured World does not support `experimental_minRetention` for Hooks.");let n=`hook_${e.generateUlid()}`,i=t.token??e.generateNanoid(),a=t.experimental_minRetention===void 0?void 0:cn(t.experimental_minRetention),s=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:i,tokenRetentionUntil:a,metadata:t.metadata,isWebhook:s});let c=[],l=[],u=[],d=!1,f=!1,p=!1,m=!1,h=null,g=null,_=new Set;r.debug(`Hook consumer setup`,{correlationId:n,token:i}),e.eventsConsumer.subscribe(t=>{if(!t)return d=!0,(l.length>0&&c.length===0||u.length>0&&!f&&!m)&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed;if(t.correlationId!==n)return S.NotConsumed;let r=`eventData`in t&&t.eventData&&`token`in t.eventData?t.eventData.token:void 0;if(typeof r==`string`&&r!==i)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${r}", but the current hook consumer expects "${i}"`,{eventId:t.eventId}))}),S.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),f=!0;let i=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),S.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new Ut(r.eventData.token,r.eventData.conflictingRunId);m=!0,h=i,g=oo(e,r.eventData.conflictingRunId);let a=l.slice();l.length=0;let o=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)g?e.resolve(g):e.reject(i)}),S.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(_.has(n))return S.Consumed;_.add(n)}let r=e.eventsConsumer.eventIndex,i=l.length>0,a=$t(e,r,`hook`,{armed:i});if(i){let n=on(e,r,`hook`),i=l.shift();if(i){e.pendingDeliveries++;let r;e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);r={ok:!0,value:await Lt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){r={ok:!1,error:e}}finally{e.pendingDeliveries--}n.then(()=>{a.markDelivered(),r.ok?i.resolve(r.value):i.reject(r.error)})})}}else{let n,i=nn();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let r=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);n={ok:!0,value:await Lt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},r)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--,i.resolve()}}),c.push({claim:()=>(a.arm(),i.promise.then(()=>on(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return S.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),p=!0,S.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for hook ${n} (token: ${i}) "${t.eventType}"`,{eventId:t.eventId}))}),S.Finished)});let v=!1;function y(){let t=nn();if(m&&h)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(h)}),t.promise;if(c.length>0){let e=c.shift();if(e)return e.claim()}return d&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),l.push(t),t.promise}function b(){let t=nn();if(f)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(m)return e.promiseQueue=e.promiseQueue.then(()=>{g?t.resolve(g):t.reject(h)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),d&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),u.push(t),t.promise}function x(){if(v||(v=!0,p))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),l.length>0&&(l.length=0,an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))})),r.debug(`Hook disposed`,{correlationId:n,token:i})}let C={token:i,getConflict(){return b()},then(e,t){return y().then(e,t)},async*[Symbol.asyncIterator](){for(;!v;)yield await this},dispose:x,[Symbol.dispose]:x},w=e.globalThis.Symbol.dispose;return w&&w!==Symbol.dispose&&(C[w]=x),C}}function co(e){return async function(t){let{promise:n,resolve:r}=nn(),i=`wait_${e.generateUlid()}`,a=cn(t),s={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,s),e.eventsConsumer.subscribe(t=>{if(!t)return an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed;if(t.correlationId!==i)return S.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),S.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),S.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=$t(e,o,`wait`),c=on(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),S.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),S.Finished}),n}}async function lo(e,t,n,r,i,a){if(t.size!==0){for(let e of t.values())e.type===`hook`&&e.isSystem&&!e.disposed&&!e.abortRequested&&(e.disposed=!0);try{let e=await Wr();await Si({suspension:new o(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){G.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function uo(e){return po(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await ho(e);return t?.setAttributes({...H(n.argumentCount)}),mo(await r,t)})}function fo(e,t){return po(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...H(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:mo(r,n)})}function po(e,t,n,r){return ke(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...Oe(t.workflowName),...Te(t.runId),...ie(t.status),...Se(n.length),...st(e)}),r(i)))}function mo(e,t){return e.type===`completed`?t?.setAttributes({...et(e.resultType)}):t&&(Ne(e.suspension,t),e.parked&&t.setAttributes({...ut(e.parked.count),...je(e.parked.eventId),...Fe(e.parked.eventType)})),e}async function ho({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,runReadyBarrier:a,worldCapabilities:s}){let l=t.startedAt;if(!l)throw new q(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let u=Qr(t.runId)??+t.createdAt,d=un(process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:${await li()??3e3}`),{context:f,globalThis:p,updateTimestamp:m}=eo({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:u}),h=nn(),g={type:`running`,interruption:h},_=e=>{switch(g.type){case`running`:{let{interruption:t}=g;g=o.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},E.suspensionGeneration++,t.reject(e);return}case`suspended`:g={type:`replay`};return;case`replay`:case`completed`:return}},v=xn(()=>p.Math.random()),y=()=>v(u),b=ja(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*p.Math.random())),x={current:Promise.resolve()},C={current:()=>!0},w=u,T=new A(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>w&&(w=t,m(t))},onUnconsumedEvent:e=>{_(new Z(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}.`,{eventId:e.eventId}))},getPromiseQueue:()=>x.current,isDeliveryIdle:()=>C.current()}),E={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:p,onWorkflowError:_,eventsConsumer:T,generateUlid:y,generateNanoid:b,invocationsQueue:new Map,get promiseQueue(){return x.current},set promiseQueue(e){x.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};C.current=()=>tn(E),E.eventsConsumer.subscribe(e=>e&&(e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`&&e.eventData.writer.type===`step`)?S.Consumed:S.NotConsumed);let D=Ma(E),O=so(E),k=co(E),j=ao(E);p[ct]=D,p[Ge]=j,p[it]=O,p[Ce]=k,p[_t]=e=>ge(t.runId,e),p[mn]={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new p.Date(+l),url:d,features:{encryption:!!r}},p[me]=y,p.fetch=()=>{throw new p.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Jt.FETCH_IN_WORKFLOW_FUNCTION}`)};let M=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;p.setTimeout=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setInterval=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearTimeout=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearInterval=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setImmediate=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearImmediate=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.AbortController=de(E);let N=ce();p.AbortSignal={abort:N.abort,any:N.any,timeout:N.timeout};class P{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof p.URL){let t=String(e);try{new p.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new p.Headers(t.headers):(typeof e==`string`||e instanceof p.URL)&&(this.headers=new p.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);n==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[_e]:{value:n,writable:!1}})}clone(){K()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}p.Request=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class I{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new p.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);e==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[_e]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new p.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new I(n,{...t,headers:r})}static error(){K()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new p.Headers;n.set(`Location`,String(e));let r=Object.create(I.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}p.Response=I,Object.defineProperties(I.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class L{constructor(){K()}get locked(){return!1}cancel(){K()}getReader(){K()}pipeThrough(){K()}pipeTo(){K()}tee(){K()}values(){K()}static from(){K()}[Symbol.asyncIterator](){K()}}p.ReadableStream=L;class R{constructor(){K()}get locked(){return!1}abort(){K()}close(){K()}getWriter(){K()}}p.WritableStream=R;class z{readable;writable;constructor(){K()}}p.TransformStream=z,p.console=globalThis.console;let ee=Symbol.for(`@vercel/request-context`);p[ee]=globalThis[ee];let B=Ie(t.workflowName)?.moduleSpecifier||t.workflowName;io(e,B,f);let V=io(`globalThis.__private_workflows?.get(${JSON.stringify(t.workflowName)})`,B,f);if(typeof V!=`function`)throw new Vt(t.workflowName);let H=[];E.promiseQueue=E.promiseQueue.then(async()=>{let e=await i.prepareWorkflowInput(t);H=await c(t.input,t.runId,r,p,{},e)}),await E.promiseQueue;let te=(async()=>await V(...H))(),ne=async e=>{throw o.is(e)||Z.is(e)?(g.type===`running`&&(g={type:`replay`}),e):(g={type:`completed`},await lo(t.runId,E.invocationsQueue,p,t,`failed`,a),e)},U=async e=>{let n;try{n=await Promise.race([te,e.promise])}catch(e){return g.type===`suspended`&&e===g.suspension?{type:`suspended`,suspension:g.suspension,session:re,parked:T.parkedSummary}:ne(e)}g={type:`completed`};let i=T.strandedEvent;if(i)return ne(new Z(`Replay finished without consuming event: eventType=${i.eventType}, correlationId=${i.correlationId}, eventId=${i.eventId}.`,{eventId:i.eventId}));try{let e=await F(n,t.runId,r,p,!1,(t.specVersion??0)>=5);return await lo(t.runId,E.invocationsQueue,p,t,`completed`,a),{type:`completed`,output:e,resultType:typeof n}}catch(e){return ne(e)}},re={workflowRun:t,argumentCount:H.length,async resume(e){switch(g.type){case`suspended`:{let t=T.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return g={type:`replay`},{type:`replay`};let n=nn();return g={type:`running`,interruption:n},E.suspensionGeneration++,T.append(e.slice(t.length)),U(n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new q(`Cannot resume ${g.type} workflow "${t.runId}"`)}}};return{session:re,execution:U(h)}}function go(e){let t=_r();return t===void 0?e:e===void 0?t:Math.min(e,t)}function _o({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.environment;if(!i)return!1;let a=e.getEnvironment?.();return!a||a===i?!1:(r.error(`Refusing to run this workflow: it was created in the "${i}" environment but this deployment runs in "${a}". Executing it here would create a second copy of the same run id in both environments — one pending forever, one running — so the queue message is being discarded without executing and without retrying. The client that called start() wrote the run to its own environment but addressed the queue message to a deployment in another one. Check that the environment that client authenticates as (WORKFLOW_VERCEL_ENV for CLI and CI clients, or the OIDC token's environment inside a deployment) matches the environment of the deployment it targets. The run it created is still pending in "${i}" and will not run.`,{workflowRunId:n,creatorEnvironment:i,currentEnvironment:a,pinnedDeploymentId:t?.deploymentId}),!0)}async function vo({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}!a||a===i||r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function yo(e){return q.is(e)?X.RUNTIME_ERROR:d(e)?X.WORLD_CONTRACT_ERROR:null}async function bo({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){G.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=Pe(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(Q.is(e)||J.is(e))return;if(d(e)){G.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}}function xo(e,t){let n=e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));return n?(G.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function So(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function Co(e,t){return e?.[vn]??t}function wo(e){let t=new Set,n=new Set;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.add(r.correlationId);break;case`wait_completed`:n.delete(r.correlationId);break}return{openHook:t.size>0,openWait:n.size>0}}function To(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}function Eo(e,t){ht(e.events,t.events),e.cursor=t.cursor??e.cursor}function Do(e,t,n){if(!xr()||!t||e.steps.length===0||!e.steps.every(e=>e.type===`step`))return!1;let{openHook:r,openWait:i}=n.value;return!r&&!i}async function Oo(e,t){let n=process.env.WORKFLOW_V2_TIMEOUT_MS;if(n!==void 0&&n!==``){let e=Number(n);if(Number.isFinite(e)&&e>0)return e}let r=await e.getRuntimeDeadline?.();if(r!==void 0){let e=r.getTime();if(!Number.isNaN(e)){let n=Math.floor(e-t);if(n>=(0,Qn.default)(`25m`))return(0,Qn.default)(`10m`);if(n>=(0,Qn.default)(`10m`))return(0,Qn.default)(`5m`)}}return(0,Qn.default)(`2m`)}function ko(e,t){ln(t?.basePath);let n=gn(t?.namespace),r=bn(`workflow`,n),a=t=>t.createQueueHandler(r,async(a,s)=>{let c=$e(a);if(c){await ot(c,t.specVersion);return}let{runId:l,traceCarrier:u,requestedAt:p,stepId:_,stepName:b,replayDivergence:x,preconditionReinvocations:S,deploymentMismatchRetryCount:C,runInput:w,hookInput:T}=wn.parse(a),E=we(u)?u:void 0,{requestId:D}=s,O=s.queueName.slice(r.length),k=G.forRun(l,O),A=or();if(s.attempt>A){let e=tr(void 0,X.MAX_DELIVERIES_EXCEEDED);k.error(`Workflow handler exceeded max deliveries (${s.attempt}/${A})`,{attempt:s.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await Wr(),t=Pe(e,l),n=new Y(`Workflow exceeded maximum queue deliveries (${s.attempt}/${A})`);await e.events.create(l,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(n,l,await t()),errorCode:X.MAX_DELIVERIES_EXCEEDED}},{requestId:D})}catch(e){if(Q.is(e)||J.is(e))return;k.error(`Failed to mark run as failed after ${s.attempt} delivery attempts. A persistent error is preventing the run from being terminated. The run will remain in its current state until manually resolved. This is most likely due to a persistent outage of the workflow backend or a bug in the workflow runtime and should be reported to the Workflow team.`,{attempt:s.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0})}return}let j=Ke(),M=()=>at(j,E),N=await wt(j,E),P=new qr,F=j===`continuous`?E:void 0,I=await vt(`CONSUMER`);return await Qe(F,async()=>await Dt({workflowRunId:l,workflowName:O},async()=>{let t=await ke(`workflow.route.get_world`,async()=>Wr());if(!_o({world:t,runInput:w,runId:l,runLogger:k}))return await vo({world:t,runInput:w,runId:l,runLogger:k}),ke(`workflow.execute ${tt(O)}`,{kind:I,links:N},async r=>{r?.setAttributes({...Oe(O),...Ze(`execute_v2`),...ee(`vercel-queue`),...se(s.queueName),...y(s.messageId),...g(`process`),...Ue({requestedAt:p}),...Te(l),...v(!!E),...oe(j)});let a=Date.now(),c=await Oo(t,a),u=0,A=x?new Xr(x.count):Xr.inert(),N=async(e,n)=>{let r=F(e,n),i=await A.withEventCreate(r===void 0?n:{...n,sinceCursor:r},n=>t.events.create(l,e,n));return r!==void 0&&I(r,i),i},F=(e,t)=>{if(!(U||L.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||_n(e.eventType)))return L.cursor??void 0},I=(e,t)=>{L.type!==`ready`||L.cursor!==e||t.events===void 0||t.hasMore===!0||Eo(L,{events:t.events,cursor:t.cursor})},L={type:`loadAll`},R,z,B=-1,V,H,te=0,ne,U=br()&&w!==void 0&&s.attempt===1&&_===void 0&&!x;r?.setAttributes(h(U));let ae,ce=async()=>{if(ae)try{await ae}catch{}},le=new Set,ue=e=>{le.size>0&&G.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:l,ackPath:e,stepIds:[...le]})},de=async()=>({runId:l,traceCarrier:await M(),requestedAt:new Date}),fe=async(e,r)=>{if(ue(`reinvoke`),!U)return{timeoutSeconds:e};await ye(t,xe(O,n),{...await de(),...r},e>0?{delaySeconds:e}:void 0)},pe=0,me=null,he=e=>{let t=me;if(!t)return;me=null;let n=new Set(e.map(e=>e.eventId)),r=So(n,t.ids),i=So(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;G.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:l,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:u})},ge=(e,t,{allowDelta:n=!0}={})=>{if(pe>=Tr())return!1;pe++,Ce=null;let i=n&&pe===1?Be(t,l):null,a=i!==null&&L.type!==`loadAll`;return me=L.type===`loadAll`?null:{ids:new Set(L.events.map(e=>e.eventId)),restart:pe,reason:e,source:a?`inline-delta`:`full-reload`},i&&L.type!==`loadAll`?(Eo(L,i),L={...L,type:`ready`}):(L={type:`loadAll`},Se.resetScan()),G.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:l,reason:e,loopIteration:u,preconditionRestarts:pe,source:a?`inline-delta`:`full-reload`}),r?.setAttributes({"workflow.precondition_restarts":pe}),!0},_e=async(e,t)=>{let n=(S??0)+1,i=Er();return n>i?{reinvoked:!1,error:new q(`Event creation was rejected as stale after ${i} re-invocations of ${Tr()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(G.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:l,reason:e,loopIteration:u,preconditionReinvocations:n,maxReinvocations:i}),r?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await fe(Dr(),{preconditionReinvocations:n})})},W=async(e,i,a)=>{let{outcome:o,spanAttributes:s}=await Nr({world:t,run:e,requestId:D,retryCount:C,beforeStop:a,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:r,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await ye(t,xe(O,n),{...await i(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:r,delaySeconds:o})}});return s&&r?.setAttributes(s),o};if(_&&b)try{let e=await t.runs.get(l,{resolveData:`none`});if(e.status!==`running`){G.debug(`Run already finished, skipping background step`,{workflowRunId:l,status:e.status});return}if(await W(e,async()=>({...await de(),stepId:_,stepName:b}))!==`continue`)return;let r=e.startedAt?+e.startedAt:Date.now(),i=s.attempt,a=rn(b)?.maxRetries??3;s.attempt>a+1&&(i=Ar((await Ae(l)).events,_,{type:`totalAttempts`})+1),P.pause();let o;try{o=await bi(l,_,()=>mi({world:t,workflowRunId:l,workflowDeploymentId:e.deploymentId,workflowName:O,workflowStartedAt:r,rootRunId:Co(e.attributes,l),stepId:_,stepName:b,runSpecVersion:e.specVersion,authoritativeAttempt:i}))}finally{P.resume()}if(o.type===`retry`||o.type===`throttled`)return{timeoutSeconds:o.timeoutSeconds};if(o.type===`completed`&&o.hasPendingOps){await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}if(o.type===`completed`||o.type===`failed`||o.type===`skipped`){let n=await Ae(l);L=To(n);let i=new Set,a=new Set;for(let e of n.events)e.eventType===`step_created`?i.add(e.correlationId):(e.eventType===`step_completed`||e.eventType===`step_failed`)&&a.add(e.correlationId);let o=new Set;for(let e of i)a.has(e)||o.add(e);if(o.size>0)if(Sr()&&vi(n.events,o,s.messageId))G.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:l});else{G.debug(`Background step done but other steps pending, returning`,{workflowRunId:l});return}G.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:l});let c=n.events.find(e=>e.eventType===`run_created`),u;if(c)u=c.eventData.input;else{if(!En(e.specVersion))throw new q(`Workflow run "${l}" has no "run_created" event`);let n=await t.runs.get(l,{resolveData:`all`});if(n.status!==`running`)return;u=n.input}R={...e,input:u,status:`running`,output:void 0,error:void 0,completedAt:void 0},B=r}else return}catch(e){let n=yo(e);if(!n)throw e;await bo({world:t,workflowRun:R,runId:l,requestId:D,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!R&&T?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=T.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await W(await t.runs.get(l,{resolveData:`none`}),async()=>({...await de(),hookInput:T}),ce)!==`continue`)return}let ve=!1;if(!R&&T&&T.resumeId!==void 0&&T.payloadDigest!==void 0){let e=T,t;try{t=new Date(yn(e.resumeId))}catch{t=void 0}try{r?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await N({eventType:`hook_received`,specVersion:5,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:D,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0});if(ve=!0,n.run!==void 0&&n.run.startedAt!==void 0&&n.event!==void 0&&n.events!==void 0&&n.events.length>0&&n.cursor!=null&&n.hasMore===!1&&typeof n.maxEvents==`number`&&n.events.some(e=>e.eventType===`run_created`)&&n.events.some(e=>e.eventType===`run_started`)&&n.events.some(t=>t.eventType===`hook_received`&&t.resumeId===e.resumeId)&&n.run?.startedAt&&n.events){let e=n.events.find(e=>e.runId===l&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){r?.setAttributes({...ie(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ee(`hook_received_stream`)}),G.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,eventType:e.eventType});return}R=n.run,z=go(n.maxEvents),H=Date.now(),L={type:`ready`,events:n.events,cursor:n.cursor},B=+n.run.startedAt,r?.setAttributes({...ie(n.run.status),...f(B),...Ee(`hook_received_stream`)})}else r?.setAttributes(Ee(`hook_received_fallback`))}catch(e){if(Yt.is(e)||J.is(e)){G.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,message:e.message});return}throw e}}if(!R){let e={eventType:`run_started`,specVersion:w?.specVersion??5,...w?{eventData:{input:w.input,deploymentId:w.deploymentId,workflowName:w.workflowName,executionContext:w.executionContext,attributes:w.attributes,allowReservedAttributes:w.allowReservedAttributes}}:{}};if(U&&w){r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=N(e,{requestId:D,skipPreload:!0});ae=t,t.then(e=>{let t=go(e.maxEvents);t!==void 0&&(z=t)}).catch(()=>{}),L={type:`ready`,events:[],cursor:null};let n=new Date;R={runId:l,status:`running`,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,attributes:w.attributes??{},startedAt:n,createdAt:n,updatedAt:n},B=+n,H=+n,r?.setAttributes({...ie(`running`),...f(B)})}else try{r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=await N(e,{requestId:D});if(R=t.run,z=go(t.maxEvents),H=Date.now(),t.events?.length){let e={events:[...t.events],cursor:t.cursor??null};L=t.hasMore?To(e):{...e,type:`ready`}}if(B=+t.run.startedAt,r?.setAttributes({...ie(t.run.status),...f(B)}),t.run.status!==`running`){G.info(`Workflow already completed or failed, skipping`,{workflowRunId:l,status:t.run.status});return}}catch(e){if(Q.is(e)||J.is(e)){G.info(`Run already finished during setup, skipping`,{workflowRunId:l,message:e.message});return}else{let n=yo(e);if(!n)throw e;await bo({world:t,workflowRun:R,runId:l,requestId:D,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`});return}}}if(Gn(R,`Workflow run must be loaded before replay`),await W(R,async()=>({...await de(),...T?{hookInput:T}:{}}),ce)!==`continue`)return;if(T&&!ve&&!(T.resumeId!==void 0&&L.type!==`loadAll`&&L.events.some(e=>e.eventType===`hook_received`&&e.resumeId===T.resumeId))){let e;try{e=T.resumeId===void 0?void 0:new Date(yn(T.resumeId))}catch{e=void 0}let n;try{let i=await t.events.create(l,{eventType:`hook_received`,specVersion:5,correlationId:T.hookId,eventData:{token:T.token,payload:T.payload}},{requestId:D,occurredAt:e,resumeId:T.resumeId,resumePayloadDigest:T.payloadDigest});r?.setAttributes(It(!0));let a=i.event;n=a?{...a,eventData:{token:T.token,payload:T.payload}}:void 0}catch(e){if(Yt.is(e)||J.is(e))return;throw e}L.type!==`loadAll`&&n?De(L.events,n):L={type:`loadAll`}}let be=await Pe(t,R)(),Se=new ir(be),Ce=null;for(;;){if(u++,P.isExhausted()){await Yr({runId:l,workflowName:O,requestId:D,attempt:s.attempt,limitMs:P.configuredLimitMs});return}if(Date.now()-a>=c){G.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:l,loopIteration:u,elapsedMs:Date.now()-a}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}let f=0;try{if(Mn(R)){G.debug(`Using QuickJS VM engine`,{workflowRunId:l,loopIteration:u}),await ce(),L.type===`loadAfter`&&(Eo(L,await Ae(l,L.cursor)),L={...L,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),i=await t({workflowCode:e,workflowName:O,workflowRun:R,preloadedEvents:L.type===`ready`?L.events:void 0,preloadedEventsComplete:L.type===`ready`,runInput:w,parentSpan:r,maxEventsLimit:z,namespace:n,nextTraceCarrier:M,deliveryAttempt:s.attempt,ownerMessageId:s.messageId});return i?.timeoutSeconds===void 0?void 0:await fe(i.timeoutSeconds)}if(L.type!==`ready`){let e=await Ae(l,L.type===`loadAfter`?L.cursor:void 0);L.type===`loadAfter`?(Eo(L,e),L={...L,type:`ready`}):L={...e,type:`ready`}}if(Gn(L.type===`ready`),he(L.events),xo(L.events,l))return;let i=Date.now(),a=new Set(L.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),o=L.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!a.has(e.correlationId)&&i>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of o)try{let t=await N(e,{requestId:D,...Re(L.events,L.cursor)});t.events?.length&&t.hasMore!==!0&<(L.events,t.events)}catch(t){if(Q.is(t)){G.info(`Wait already completed, skipping`,{workflowRunId:l,correlationId:e.correlationId});continue}throw t}Gn(L.type===`ready`);let c=new Set(L.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),d=o.filter(e=>!c.has(e.correlationId));if(d.length>0)if(L.cursor){let e=await Ae(l,L.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));d.every(e=>t.has(e.correlationId))?Eo(L,e):L={...await Ae(l),type:`ready`}}else L={...await Ae(l),type:`ready`};if(Tt()){let e=await Ot(l,{events:L.events,cursor:L.cursor});if(L={...e.log,type:`ready`},e.gap!==void 0)throw new Zt(`Event log for run ${l} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(xo(L.events,l))return;if(z!==void 0&&L.events.length>=z)throw new Xt(L.events.length,z);V??=L.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`),G.debug(`Starting workflow execution`,{workflowRunId:l,loopIteration:u,eventCount:L.events.length,executionMode:Ce?`retained`:`replay`}),f=Date.now();let p=Se.prewarm(R,L.events),m=Ce?await fo(Ce,L.events):{type:`replay`};if(m.type===`replay`&&(Ce=null,m=await uo({workflowCode:e,workflowRun:R,events:L.events,encryptionKey:be,replayPayloadCache:Se,runReadyBarrier:ae,worldCapabilities:t.capabilities})),await p,m.type===`suspended`)throw Ce=m.session,m.suspension;let h=m.output;G.debug(`Workflow execution completed`,{workflowRunId:l,loopIteration:u,replayMs:Date.now()-f,executionMode:Ce?`retained`:`replay`}),A.activate();try{await ce(),await N({eventType:`run_completed`,specVersion:5,eventData:{output:h}},{requestId:D,...Re(L.events,L.cursor)})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...ie(`completed`)});return}catch(a){if(o.is(a)){A.activate();let e=Date.now()-f;G.debug(`Workflow suspended`,{workflowRunId:l,loopIteration:u,replayMs:e,steps:a.stepCount,hooks:a.hookCount,waits:a.waitCount});let o=pt(a.stepCount,a.hookCount,a.waitCount);o&&G.debug(o);let c=Date.now();Gn(L.type===`ready`,`Workflow suspended before its event log was loaded`);let d;try{d=await Si({suspension:a,world:t,run:R,span:r,requestId:D,eventLog:L,runReadyBarrier:ae,replayRecoveryReporter:A})}catch(e){if(Gt.is(e)){if(ge(`suspension-create`,e))continue;let t=await _e(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!Y.is(e))throw e;let t=Mt(e);G.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:l,errorCode:t,errorName:e.name,errorMessage:e.message});try{await ce(),await N({eventType:`run_failed`,specVersion:5,eventData:{error:await m(e,l,be,globalThis,(R?.specVersion??0)>=5),errorCode:t}},{requestId:D})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...ie(`failed`),...rt(t),...We(e.name),...gt(e.message),...nt(e.name)});return}d.reportedEventCount>0&&Se.resetScan();let p=en(()=>(Gn(L.type===`ready`),wo(L.events)));if(Ce&&!Do(a,d.retainedStepInputsSafe,p)&&(Ce=null),te+=d.hookCreationMs,d.hasAttributeEvents&&ne===void 0&&(ne=te),G.debug(`Suspension handled`,{workflowRunId:l,suspensionMs:Date.now()-c,pendingSteps:d.pendingSteps.length,timeoutSeconds:d.waitTimeout?.seconds,hasHookConflict:d.hasHookConflict,hasAwaitedHookCreation:d.hasAwaitedHookCreation,hasAttributeEvents:d.hasAttributeEvents}),d.hasHookConflict)return await fe(0);if(d.hasAttributeEvents){L=To(L);continue}let h=d.pendingSteps,g=d.lazyInlineSteps,_=new Set(g.map(e=>e.correlationId)),v=await M(),y=[],b=Sr(),x=Date.now(),S=[],C=0;for(let e of h){if(_.has(e.correlationId))continue;let r=b&&hi(e);if(r&&e.ownerMessageId===s.messageId){S.push(e);continue}let i=r?gi(e,x):0;if(i>0){C++,G.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:l,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),y.push(ye(t,xe(O,n),{runId:l,traceCarrier:v,requestedAt:new Date},{delaySeconds:i,idempotencyKey:_i(e)}));continue}y.push(ye(t,xe(O,n),{runId:l,stepId:e.correlationId,stepName:e.stepName,traceCarrier:v,requestedAt:new Date},{idempotencyKey:e.correlationId}))}d.waitTimeout&&y.push(ye(t,xe(O,n),{runId:l,traceCarrier:v,requestedAt:new Date},Ei(d.waitTimeout.seconds,d.waitTimeout.correlationId))),await Promise.all(y);let w=[...g.map(e=>({correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput})),...S.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((C>0||S.length>0)&&r?.setAttributes({...S.length>0?Et(S.length):{},...C>0?i(C):{}}),S.length>0&&G.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:l,stepIds:S.map(e=>e.correlationId)}),w.length===0)return d.hasAwaitedHookCreation?await fe(0):void 0;let T=p.value,E=Xe()&&t.capabilities?.preconditionGuard===!0,k=typeof L.cursor==`string`&&a.stepCount===1&&a.waitCount===0&&h.length===1&&g.length===1&&S.length===0&&!d.waitTimeout&&!T.openWait&&(E||a.hookCount===0&&!T.openHook),j=E&&(T.openHook||a.hookCount>0||d.hasHookEvents),F=U&&!d.hasAttributeEvents&&!d.waitTimeout&&!d.hasHookEvents&&!d.hasAwaitedHookCreation&&!T.openHook&&!T.openWait,I=di({events:L.events,invocationStartedClean:V===!0,runCreatedAtMs:Qr(l)??(U?void 0:+R.createdAt),runStartedReceivedAtMs:H,replayMs:e,preStepBlockingMs:te,preStepBlockingBeforeAttrMs:ne,suspensionHasWaits:a.waitCount>0||d.waitTimeout!==void 0,suspensionCreatedHooks:a.hookCount>0||d.hasHookEvents,turbo:U}),z=Re(L.events,L.cursor);P.pause();let ee,re=w.map((e,n)=>{let r=()=>(Gn(L.type===`ready`),mi({world:t,workflowRunId:l,workflowDeploymentId:R.deploymentId,workflowName:O,workflowStartedAt:B,rootRunId:Co(R.attributes,l),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:R.specVersion,authoritativeAttempt:e.lazyStepInput===void 0?Ar(L.events,e.correlationId,{type:`ownedBy`,messageId:s.messageId})+1:1,lazyStepInput:e.lazyStepInput,ownerMessageId:s.messageId,forceOptimisticStart:F,suppressOptimisticStart:j,runReadyBarrier:ae,preconditionSnapshot:z,...n===0&&e.lazyStepInput!==void 0&&I?{latencyTracking:I}:{},...k&&L.cursor?{inlineDeltaSinceCursor:L.cursor}:{},replayRecoveryReporter:A}));return le.add(e.correlationId),(e.lazyStepInput===void 0?bi(l,e.correlationId,r):r()).finally(()=>le.delete(e.correlationId))});try{ee=await Promise.all(re)}catch(e){if(Gt.is(e)){if(ge(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(re)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await _e(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{P.resume()}let oe=[],se=!1,ue;for(let e=0;e<w.length;e++){let t=ee[e],n=w[e];t.type===`retry`?oe.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?ue=Math.max(ue??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(se=!0)}if(ue!==void 0)return await fe(ue);if(oe.length>0){let e=await M();await Promise.all(oe.map(({step:r,delaySeconds:i})=>ye(t,xe(O,n),{runId:l,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date},{delaySeconds:i,idempotencyKey:r.correlationId})))}if(se){G.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:l,loopIteration:u}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}if(oe.length>0)return;if(w.length===1){let e=ee[0];if(e.type===`completed`&&e.inlineDelta){Eo(L,e.inlineDelta),L=e.inlineDelta.hasMore?To(L):{...L,type:`ready`};continue}}L=To(L)}else{let i=a;if(Gt.is(a)){if(ge(`replay-write`,a))continue;let e=await _e(`replay-write`,a);if(e.reinvoked)return e.result;i=e.error}if(re(a))throw k.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:a instanceof Error?a.name:`UnknownError`,errorMessage:a instanceof Error?a.message:String(a),deliveryAttempt:s.attempt}),a;let o;if(Z.is(a)){let e=(x?.count??0)+1,r=wr();if(e<=r){k.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{errorCode:X.REPLAY_DIVERGENCE,divergenceEventId:a.eventId,priorDivergenceEventId:x?.eventId,divergenceCount:e,deliveryAttempt:s.attempt,maxRecoveryReplays:r,errorMessage:a.message}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date,replayDivergence:{eventId:a.eventId,count:e}});return}o=e,i=new Zt(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${a.eventId}. Last divergence: ${a.message}`,{cause:a})}else f>0&&A.activate();i instanceof Error&&r?.recordException?.(i);let c=await ai(i),u=c.name||$r(i),p=c.message,h=c.stack||ei(i);if(h){let t=Ie(O)?.moduleSpecifier||O;h=Aa(h,t,e)}let g=Mt(i);G.error(`Error while running workflow`,{workflowRunId:l,errorCode:g,errorName:u,errorStack:h}),Wn.isNativeError(i)&&h&&(i.stack=h);try{await ce(),await N({eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,l,be,globalThis,(R?.specVersion??0)>=5),errorCode:g}},{requestId:D,...o===void 0?{}:{replayDivergenceCount:o}})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}if(d(e)){G.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:l,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}r?.setAttributes({...ie(`failed`),...rt(g),...We(u),...gt(p),...nt(u)});return}}}})}))}),s,c=0,l=Date.now(),u=typeof t?.routeModuleBodyStartedAt==`number`?l-t.routeModuleBodyStartedAt:void 0;return Pt(async e=>{c+=1;let t=s!==void 0;return ke(`workflow.route.flow`,{kind:await vt(`SERVER`),attributes:{...Ft(`flow`),...He(ar),...ze(t),...be(c),...Ve(Date.now()-l),...u===void 0?{}:kt(u),...ae(e.method),...jt(`/.well-known/workflow/v1/flow`)}},async t=>{s||=await ke(`workflow.route.init`,async()=>{let e=await ke(`workflow.route.get_world_handlers`,async()=>Ur());return a(e)});let n=await s(e);return n instanceof Response&&t?.setAttributes(p(n.status)),n})})}export{zn as Run,o as WorkflowSuspension,Ln as cancelRun,Nn as cancelRuns,Hr as createWorld,Br as createWorldFromModule,kn as getHookByToken,Fn as getRun,Wr as getWorld,Ur as getWorldHandlers,yt as healthCheck,An as listStreams,In as readStream,Rn as recreateRunFromExisting,jn as reenqueueRun,Dn as resumeHook,On as resumeWebhook,Gr as setWorld,Bn as start,Pn as wakeUpRun,ko as workflowEntrypoint};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fn as e,In as t,Zn as n,ir as r,nr as i,rr as a}from"../../_chunks/workflow/wait-until-
|
|
1
|
+
import{Fn as e,In as t,Zn as n,ir as r,nr as i,rr as a}from"../../_chunks/workflow/wait-until-DK2lnH6U.js";import{i as o,u as s}from"../../_chunks/workflow/dist-CRTn4Sg8.js";import"../../_chunks/workflow/dist-tJoQXAF6.js";import{i as c}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{c as l,i as u,o as d,r as f,t as p}from"../../_chunks/workflow/attribute-changes-BoH7JsWp.js";import{t as m}from"../../_chunks/workflow/sleep-CzdoBiqy.js";import{t as h}from"../../_chunks/workflow/run-DQ5dOyjm.js";t(e,h);function g(e){let t=globalThis[i];return t||u(`createHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-hook`,g),t(e)}function _(e){let{respondWith:t,token:n,...r}=e??{};if(n!==void 0)throw Error("`createWebhook()` does not accept a `token` option. Webhook tokens are always randomly generated. Use `createHook()` with `resumeHook()` for deterministic token patterns.");let i;t!==void 0&&(i={respondWith:t});let a=g({...r,metadata:i,isWebhook:!0}),{url:o}=l();return a.url=c(o,{type:`webhook`,token:a.token}),a}function v(){function e(t,n){d(`defineHook().resume()`,`https://workflow-sdk.dev/docs/api-reference/workflow-api/resume-hook`,e)}return{create(e){return g(e)},resume:e}}async function y(e,t={}){let n=p(e,t);if(n.length===0)return;let i=t.allowReservedAttributes===!0,a=globalThis[r];if(!a)throw new o("setAttributes() called outside a workflow runtime context. It must be called from within a workflow body (`use workflow`).");await a(n,i?{allowReservedAttributes:!0}:{})}function b(e={}){let{namespace:t}=e,r=globalThis[a](t);return Object.create(globalThis.WritableStream.prototype,{[n]:{value:r,writable:!1}})}function x(){f(`getStepMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-step-metadata`,x)}function S(){d(`resumeHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow-api/resume-hook`,S)}export{o as FatalError,s as RetryableError,g as createHook,_ as createWebhook,v as defineHook,x as getStepMetadata,l as getWorkflowMetadata,b as getWritable,S as resumeHook,y as setAttributes,m as sleep};
|
|
@@ -29,6 +29,7 @@ export interface EnvNumberOptions {
|
|
|
29
29
|
* `[min, max]` when provided.
|
|
30
30
|
*/
|
|
31
31
|
export declare function envNumber(name: string, fallback: number, options?: EnvNumberOptions): number;
|
|
32
|
+
export declare function getMaxEventsPerRun(): number;
|
|
32
33
|
/**
|
|
33
34
|
* Reset the warn-once cache. Test-only — exported so unit tests can exercise
|
|
34
35
|
* the warning path repeatedly without sharing state across cases.
|