eve 0.67.0 → 0.67.2
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 +19 -0
- package/dist/src/channel/channel-address.d.ts +2 -2
- package/dist/src/channel/compiled-channel.d.ts +3 -2
- package/dist/src/channel/cross-channel-receive.d.ts +1 -18
- package/dist/src/channel/cross-channel-receive.js +1 -1
- package/dist/src/channel/forwarded-principal.d.ts +3 -2
- package/dist/src/channel/resolve-text.d.ts +2 -1
- package/dist/src/channel/schedule-auth.d.ts +0 -2
- package/dist/src/channel/schedule-auth.js +1 -1
- package/dist/src/channel/schedule.d.ts +2 -2
- package/dist/src/channel/session-callback.d.ts +2 -1
- package/dist/src/channel/types.d.ts +0 -7
- package/dist/src/chunks/{use-eve-agent-OCHP4s0z.js → use-eve-agent-D4HVZBjn.js} +1 -1
- package/dist/src/chunks/{use-eve-agent-DzdyI97Z.js → use-eve-agent-DXcE_8Ja.js} +1 -1
- package/dist/src/cli/acp/command.d.ts +2 -1
- package/dist/src/cli/agent-command.d.ts +2 -1
- package/dist/src/cli/agent-detection.d.ts +0 -1
- package/dist/src/cli/agent-detection.js +1 -1
- package/dist/src/cli/application-command.d.ts +2 -1
- package/dist/src/cli/application-root.d.ts +3 -8
- package/dist/src/cli/application-root.js +1 -1
- package/dist/src/cli/commands/agent-instructions.d.ts +0 -4
- package/dist/src/cli/commands/agent-instructions.js +3 -3
- package/dist/src/cli/commands/extension-init.js +1 -1
- package/dist/src/cli/commands/init-agent-workspace.js +1 -1
- package/dist/src/cli/commands/init-project.d.ts +0 -1
- package/dist/src/cli/commands/init-project.js +1 -1
- package/dist/src/cli/commands/init-target.d.ts +1 -1
- package/dist/src/cli/commands/init-telemetry.d.ts +2 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/registry-declared-setups.d.ts +2 -1
- package/dist/src/cli/commands/registry-install-transaction.d.ts +0 -13
- package/dist/src/cli/commands/registry-install-transaction.js +1 -1
- package/dist/src/cli/commands/registry-pnpm-build-policy-flow.d.ts +1 -1
- package/dist/src/cli/commands/registry-presentation.d.ts +0 -1
- package/dist/src/cli/commands/registry-presentation.js +1 -1
- package/dist/src/cli/commands/registry-project.d.ts +2 -1
- package/dist/src/cli/commands/registry.d.ts +0 -4
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/commands/setup-headless.d.ts +2 -1
- package/dist/src/cli/commands/vercel-non-interactive.d.ts +2 -1
- package/dist/src/cli/dev/diagnostic-dump.d.ts +0 -2
- package/dist/src/cli/dev/diagnostic-dump.js +1 -1
- package/dist/src/cli/dev/diagnostic-sink.d.ts +3 -2
- package/dist/src/cli/dev/environment.js +1 -1
- package/dist/src/cli/dev/tui/agent-header.d.ts +2 -1
- package/dist/src/cli/dev/tui/argument-typeahead.d.ts +2 -1
- package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +2 -1
- package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +2 -1
- package/dist/src/cli/dev/tui/errors.d.ts +2 -7
- package/dist/src/cli/dev/tui/errors.js +1 -1
- package/dist/src/cli/dev/tui/flow-drawer.d.ts +2 -1
- package/dist/src/cli/dev/tui/line-editor.d.ts +1 -1
- package/dist/src/cli/dev/tui/mcp-connection-status.d.ts +2 -1
- package/dist/src/cli/dev/tui/message-queue.d.ts +4 -3
- package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +2 -1
- package/dist/src/cli/dev/tui/provider-picker.d.ts +3 -2
- package/dist/src/cli/dev/tui/question-panel.d.ts +2 -1
- package/dist/src/cli/dev/tui/registry-result-message.d.ts +3 -4
- package/dist/src/cli/dev/tui/registry-result-message.js +1 -1
- package/dist/src/cli/dev/tui/remote-connection-probe.d.ts +3 -2
- package/dist/src/cli/dev/tui/runner.d.ts +0 -1
- package/dist/src/cli/dev/tui/runner.js +1 -1
- package/dist/src/cli/dev/tui/setup-panel.d.ts +2 -2
- package/dist/src/cli/dev/tui/setup-selection-input.d.ts +2 -2
- package/dist/src/cli/dev/tui/status-line.d.ts +2 -1
- package/dist/src/cli/dev/tui/stream-format.d.ts +3 -2
- package/dist/src/cli/dev/tui/terminal-renderer.d.ts +3 -2
- package/dist/src/cli/dev/tui/theme.d.ts +1 -1
- package/dist/src/cli/dev/tui/tool-block-groups.d.ts +3 -2
- package/dist/src/cli/dev/tui/tool-presentation.d.ts +2 -1
- package/dist/src/cli/dev/tui/traces/trace-content.d.ts +0 -9
- package/dist/src/cli/dev/tui/traces/trace-content.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-view.d.ts +3 -2
- package/dist/src/cli/dev/tui/traces/trace-viewer-session.d.ts +2 -1
- package/dist/src/cli/dev/tui/traces/trace-viewer-state.d.ts +2 -3
- package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
- package/dist/src/cli/dev/ui-options.d.ts +3 -2
- package/dist/src/cli/dev/url-target.d.ts +2 -1
- package/dist/src/cli/invoke/command.d.ts +0 -11
- package/dist/src/cli/invoke/command.js +1 -1
- package/dist/src/cli/invoke/result.d.ts +1 -1
- package/dist/src/cli/telemetry/index.d.ts +0 -6
- package/dist/src/cli/telemetry/preference.d.ts +2 -1
- package/dist/src/cli/ui/alt-screen.d.ts +3 -2
- package/dist/src/cli/ui/live-region.d.ts +3 -2
- package/dist/src/cli/ui/output.d.ts +1 -16
- package/dist/src/cli/ui/output.js +2 -5
- package/dist/src/client/eve-agent-store-helpers.d.ts +0 -1
- package/dist/src/client/eve-agent-store-helpers.js +1 -1
- package/dist/src/client/eve-agent-store.js +1 -1
- package/dist/src/client/message-action-parts.d.ts +2 -1
- package/dist/src/client/session-utils.d.ts +3 -2
- package/dist/src/compiled/.vendor-stamp.json +6 -6
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +4 -3
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +23 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/hook-wake.d.ts +69 -36
- package/dist/src/compiled/@workflow/core/runtime/lifecycle-hooks.d.ts +25 -22
- package/dist/src/compiled/@workflow/core/runtime/run-spec-version.d.ts +16 -0
- package/dist/src/compiled/@workflow/core/runtime/start.d.ts +59 -1
- package/dist/src/compiled/@workflow/core/runtime/step-latency.d.ts +3 -2
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +34 -12
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/serialization.d.ts +7 -2
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +29 -0
- package/dist/src/compiled/@workflow/core/types.d.ts +1 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/errors/index.d.ts +13 -0
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/events.d.ts +14 -4
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +2 -1
- package/dist/src/compiled/@workflow/world/shared.d.ts +24 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +23 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +16 -16
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-DzJovO_f.js → attribute-changes-D721NpZv.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/{dist-BQSf8Hax.js → dist-BUFGAKRb.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/dist-CaNNONeg.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{frames-qKc30rjg.js → frames-Dr9fHWdo.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/{global-BQnKzRXo.js → global-DKbOgrts.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/helpers-DkKxg_yn.js +1 -0
- package/dist/src/compiled/_chunks/workflow/logger-D4GJNTk4.js +14 -0
- package/dist/src/compiled/_chunks/workflow/resume-hook-uTW-jBYz.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-5DmiMN9b.js +1 -0
- package/dist/src/compiled/_chunks/workflow/serialization-CNIYl1D3.js +3 -0
- package/dist/src/compiled/_chunks/workflow/sleep-DFKgN7UG.js +1 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-3_1djUuL.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{ws-transport-BrsMYqJg.js → ws-transport--rYOVIaf.js} +1 -1
- package/dist/src/compiler/artifacts.d.ts +4 -27
- package/dist/src/compiler/artifacts.js +1 -1
- package/dist/src/compiler/compile-agent.d.ts +2 -1
- package/dist/src/compiler/compile-agent.js +1 -1
- package/dist/src/compiler/diagnostics.d.ts +0 -11
- package/dist/src/compiler/diagnostics.js +1 -1
- package/dist/src/compiler/manifest.d.ts +0 -4
- package/dist/src/compiler/module-map.d.ts +1 -5
- package/dist/src/compiler/module-map.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-connection.d.ts +2 -1
- package/dist/src/compiler/normalize-instructions.d.ts +2 -6
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest-helpers.d.ts +0 -1
- package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-skill.d.ts +2 -1
- package/dist/src/compiler/project-sources.d.ts +0 -14
- package/dist/src/compiler/project-sources.js +1 -1
- package/dist/src/compiler/resolve-workspace-subagent.js +1 -1
- package/dist/src/compiler/source-graph.d.ts +1 -2
- package/dist/src/compiler/source-graph.js +1 -1
- package/dist/src/context/build-base-tool-context.d.ts +2 -1
- package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -4
- package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
- package/dist/src/context/dynamic-tool-metadata.d.ts +0 -1
- package/dist/src/context/dynamic-tool-metadata.js +1 -1
- package/dist/src/context/memory-lifecycle.d.ts +0 -8
- package/dist/src/context/memory-lifecycle.js +1 -1
- package/dist/src/discover/connections.d.ts +0 -15
- package/dist/src/discover/connections.js +1 -1
- package/dist/src/discover/diagnostics.d.ts +0 -12
- package/dist/src/discover/diagnostics.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/discover-subagent.d.ts +0 -1
- package/dist/src/discover/discover-subagent.js +1 -1
- package/dist/src/discover/extensions.d.ts +3 -10
- package/dist/src/discover/extensions.js +1 -1
- package/dist/src/discover/filesystem.d.ts +5 -9
- package/dist/src/discover/filesystem.js +1 -1
- package/dist/src/discover/grammar.d.ts +0 -46
- package/dist/src/discover/grammar.js +1 -1
- package/dist/src/discover/manifest.d.ts +5 -4
- package/dist/src/discover/memory.d.ts +0 -1
- package/dist/src/discover/memory.js +1 -1
- package/dist/src/discover/named-source-directory.js +1 -1
- package/dist/src/discover/project-source.d.ts +2 -1
- package/dist/src/discover/project.js +1 -1
- package/dist/src/discover/sandbox.js +1 -1
- package/dist/src/discover/skills.d.ts +0 -4
- package/dist/src/discover/skills.js +1 -1
- package/dist/src/evals/cli/eval-client.d.ts +2 -1
- package/dist/src/evals/judge.d.ts +2 -1
- package/dist/src/evals/runner/execute-task.d.ts +1 -1
- package/dist/src/evals/types.d.ts +1 -1
- package/dist/src/eve-channel/support.d.ts +1 -3
- package/dist/src/eve-channel/support.js +1 -1
- package/dist/src/execution/dynamic-workflow/schema.d.ts +2 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/effective-agent-config.d.ts +2 -1
- package/dist/src/execution/eve-workflow-attributes.d.ts +3 -5
- package/dist/src/execution/eve-workflow-attributes.js +1 -1
- package/dist/src/execution/history-view.d.ts +2 -1
- package/dist/src/execution/node-step.d.ts +3 -2
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/sandbox/active-handles.d.ts +2 -4
- package/dist/src/execution/sandbox/active-handles.js +1 -1
- package/dist/src/execution/sandbox/bash.d.ts +2 -1
- package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -6
- package/dist/src/execution/sandbox/bindings/immutable-resources.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +3 -2
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -3
- package/dist/src/execution/sandbox/bindings/microsandbox-options.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.d.ts +1 -1
- package/dist/src/execution/sandbox/dockerfile.d.ts +0 -1
- package/dist/src/execution/sandbox/dockerfile.js +1 -1
- package/dist/src/execution/sandbox/ensure.d.ts +2 -1
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/execution/sandbox/prewarm.d.ts +1 -18
- package/dist/src/execution/sandbox/prewarm.js +1 -1
- package/dist/src/execution/sandbox/require-sandbox.d.ts +0 -11
- package/dist/src/execution/sandbox/require-sandbox.js +1 -1
- package/dist/src/execution/sandbox/truncate-output.d.ts +2 -5
- package/dist/src/execution/sandbox/truncate-output.js +2 -2
- package/dist/src/execution/session/admission.d.ts +3 -2
- package/dist/src/execution/session/event-sink.d.ts +2 -1
- package/dist/src/execution/session/finalization.d.ts +2 -1
- package/dist/src/execution/session/handoff.d.ts +3 -2
- package/dist/src/execution/session/route-selected-delivery.d.ts +2 -1
- package/dist/src/execution/session/timeout-control.d.ts +2 -1
- package/dist/src/execution/session-activity.d.ts +0 -3
- package/dist/src/execution/session-activity.js +1 -1
- package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
- package/dist/src/execution/session.d.ts +3 -2
- package/dist/src/execution/stable-workflow-names.d.ts +0 -6
- package/dist/src/execution/stable-workflow-names.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/ask-question-workflow.js +1 -1
- package/dist/src/execution/tools/connection-search.js +1 -1
- package/dist/src/execution/tools/sleep-workflow.js +1 -1
- package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +2 -1
- package/dist/src/execution/tools/subagent/start.js +1 -1
- package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +4 -3
- package/dist/src/execution/tools/workflow/background.d.ts +2 -6
- package/dist/src/execution/tools/workflow/background.js +1 -1
- package/dist/src/execution/tools/workflow/owner-channels.d.ts +1 -1
- package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +2 -1
- package/dist/src/execution/web-fetch/execute.d.ts +2 -2
- package/dist/src/execution/web-fetch/request.d.ts +2 -1
- package/dist/src/extensions/code/extension/lib/computer-use-driver-source.d.ts +0 -2
- package/dist/src/extensions/code/extension/lib/computer-use-driver-source.js +57 -57
- package/dist/src/extensions/code/extension/lib/computer-use.d.ts +1 -1
- package/dist/src/extensions/code/extension/lib/generated-paths.d.ts +2 -1
- package/dist/src/extensions/code/extension/lib/grep-search.d.ts +5 -5
- package/dist/src/extensions/code/extension/lib/grep-search.js +2 -2
- package/dist/src/extensions/code/extension/lib/guidelines.d.ts +2 -1
- package/dist/src/extensions/code/extension/lib/patch.d.ts +3 -2
- package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +1 -2
- package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
- package/dist/src/extensions/code/extension/lib/prwatch-registry.d.ts +2 -1
- package/dist/src/framework/host-inventory.d.ts +3 -2
- package/dist/src/harness/approval-candidates.d.ts +4 -3
- package/dist/src/harness/approval-delivery-coordinator.d.ts +2 -1
- package/dist/src/harness/authorization.d.ts +0 -9
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/compaction-prompt.d.ts +2 -1
- package/dist/src/harness/coordination.d.ts +0 -4
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/input-requests.d.ts +1 -10
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/pending-input-batches.d.ts +0 -5
- package/dist/src/harness/pending-input-batches.js +1 -1
- package/dist/src/harness/provider-safety.d.ts +9 -0
- package/dist/src/harness/provider-safety.js +1 -1
- package/dist/src/harness/provider-tools.d.ts +2 -1
- package/dist/src/harness/session-limit-continuation.d.ts +0 -4
- package/dist/src/harness/session-limit-continuation.js +1 -1
- package/dist/src/harness/session-usage-limits.d.ts +2 -1
- package/dist/src/harness/step-hooks.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/tool-model-output.d.ts +2 -1
- package/dist/src/harness/turn-cancellation.d.ts +2 -7
- package/dist/src/harness/turn-cancellation.js +1 -1
- package/dist/src/harness/turn-client-context.d.ts +2 -1
- package/dist/src/harness/workflow-stream-error.d.ts +0 -7
- package/dist/src/harness/workflow-stream-error.js +1 -1
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/instrumentation/state.d.ts +2 -2
- package/dist/src/internal/agent-name.d.ts +0 -2
- package/dist/src/internal/agent-name.js +1 -1
- package/dist/src/internal/application/build-profile.d.ts +2 -2
- package/dist/src/internal/application/cache-metadata.js +1 -1
- package/dist/src/internal/application/compiled-artifacts.js +1 -1
- package/dist/src/internal/application/dev-environment.d.ts +2 -8
- package/dist/src/internal/application/dev-environment.js +1 -1
- package/dist/src/internal/application/optional-package-import.js +1 -1
- package/dist/src/internal/application/optional-package-install.js +1 -1
- package/dist/src/internal/application/output-publication-lock.js +1 -1
- package/dist/src/internal/application/output-publication.d.ts +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/application/paths.d.ts +0 -5
- package/dist/src/internal/application/paths.js +1 -1
- package/dist/src/internal/application/tsconfig-dependencies.d.ts +0 -16
- package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
- package/dist/src/internal/authored-asset-import-plugin.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-definition/source-identity.d.ts +1 -1
- package/dist/src/internal/authored-module-evaluation-error.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-module-map-loader.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
- package/dist/src/internal/bundler/extension-scope-plugin.d.ts +2 -1
- package/dist/src/internal/bundler/extension-scope-plugin.js +1 -1
- package/dist/src/internal/bundler/nitro-rolldown.d.ts +3 -12
- package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
- package/dist/src/internal/bundler/vendored-dependency-log.d.ts +7 -0
- package/dist/src/internal/bundler/vendored-dependency-log.js +1 -0
- package/dist/src/internal/eve-project-root.d.ts +0 -3
- package/dist/src/internal/eve-project-root.js +1 -1
- package/dist/src/internal/external-resources-snapshot.d.ts +1 -1
- package/dist/src/internal/external-resources.d.ts +0 -1
- package/dist/src/internal/external-resources.js +1 -1
- package/dist/src/internal/gateway.d.ts +2 -0
- package/dist/src/internal/gateway.js +1 -1
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/instrumentation-layout.js +1 -1
- package/dist/src/internal/invocation/metadata.d.ts +1 -1
- package/dist/src/internal/materialized-authored-modules.d.ts +2 -1
- package/dist/src/internal/materialized-authored-modules.js +1 -1
- package/dist/src/internal/mcp/protected-resource.d.ts +2 -1
- package/dist/src/internal/mcp/streamable-http-server.d.ts +4 -5
- package/dist/src/internal/mcp/streamable-http-server.js +1 -1
- package/dist/src/internal/model-catalog.d.ts +2 -1
- package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +0 -4
- package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-source-snapshot-local-roots.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-source-snapshot.d.ts +0 -1
- package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
- package/dist/src/internal/nitro/development-generation.d.ts +0 -1
- package/dist/src/internal/nitro/development-generation.js +1 -1
- package/dist/src/internal/nitro/host/build-application.js +1 -1
- package/dist/src/internal/nitro/host/build-extension.js +1 -1
- package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
- package/dist/src/internal/nitro/host/channel-routes.d.ts +1 -1
- package/dist/src/internal/nitro/host/configure-nitro-routes.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +2 -1
- package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-candidate.d.ts +2 -1
- package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +1 -1
- package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
- package/dist/src/internal/nitro/host/extension-external-dependency-plugin.js +1 -1
- package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
- package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
- package/dist/src/internal/nitro/host/schedule-task-routes.d.ts +2 -26
- package/dist/src/internal/nitro/host/schedule-task-routes.js +2 -2
- package/dist/src/internal/nitro/host/start-production-server.js +1 -1
- package/dist/src/internal/nitro/host/workspace-extensions.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +2 -1
- package/dist/src/internal/nitro/routes/channel-route-context.d.ts +1 -1
- package/dist/src/internal/nitro/routes/runtime-stack.d.ts +2 -1
- package/dist/src/internal/resolve-model-endpoint-status.d.ts +2 -1
- package/dist/src/internal/vercel/assemble-eve-services.d.ts +3 -2
- package/dist/src/internal/vercel/build-agent-workspace.js +1 -1
- package/dist/src/internal/vercel/eve-service-contribution.d.ts +2 -3
- package/dist/src/internal/vercel/eve-service-contribution.js +1 -1
- package/dist/src/internal/vercel/project-link.d.ts +2 -1
- package/dist/src/internal/vercel/project-link.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/internal/workflow/development-world-codec.d.ts +2 -1
- package/dist/src/internal/workflow/development-world-server.js +1 -1
- package/dist/src/internal/workflow/world-compatibility.d.ts +2 -1
- package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -9
- package/dist/src/internal/workflow-bundle/builder-support.js +2 -3
- package/dist/src/internal/workflow-bundle/builder.js +2 -2
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
- package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
- package/dist/src/protocol/activity.d.ts +3 -3
- package/dist/src/protocol/activity.js +1 -1
- package/dist/src/protocol/baggage.d.ts +2 -2
- package/dist/src/protocol/cancel-turn.d.ts +0 -2
- package/dist/src/protocol/event-dedupe.d.ts +2 -1
- package/dist/src/protocol/event-id.d.ts +0 -6
- package/dist/src/protocol/event-id.js +1 -1
- package/dist/src/protocol/traceparent.d.ts +2 -1
- package/dist/src/public/channels/chat-sdk/audience.d.ts +2 -4
- package/dist/src/public/channels/chat-sdk/audience.js +1 -1
- package/dist/src/public/channels/discord/discordChannel.d.ts +1 -1
- package/dist/src/public/channels/github/api.d.ts +2 -22
- package/dist/src/public/channels/github/api.js +1 -1
- package/dist/src/public/channels/github/auth.d.ts +0 -9
- package/dist/src/public/channels/github/auth.js +1 -1
- package/dist/src/public/channels/github/binding.d.ts +3 -2
- package/dist/src/public/channels/github/checkout.d.ts +3 -3
- package/dist/src/public/channels/github/defaults.d.ts +3 -2
- package/dist/src/public/channels/github/githubChannel.d.ts +1 -1
- package/dist/src/public/channels/github/limits.d.ts +0 -2
- package/dist/src/public/channels/github/limits.js +2 -2
- package/dist/src/public/channels/github/pr-context.d.ts +2 -3
- package/dist/src/public/channels/github/pr-context.js +1 -1
- package/dist/src/public/channels/github/state.d.ts +2 -1
- package/dist/src/public/channels/github/verify.d.ts +2 -1
- package/dist/src/public/channels/linear/defaults.d.ts +2 -1
- package/dist/src/public/channels/linear/inbound-images.d.ts +2 -1
- package/dist/src/public/channels/slack/app-manifest.d.ts +3 -4
- package/dist/src/public/channels/slack/app-manifest.js +1 -1
- package/dist/src/public/channels/slack/hitl.d.ts +0 -4
- package/dist/src/public/channels/slack/hitl.js +2 -2
- package/dist/src/public/channels/slack/inbound.d.ts +2 -1
- package/dist/src/public/channels/slack/model-context.d.ts +0 -18
- package/dist/src/public/channels/slack/model-context.js +1 -1
- package/dist/src/public/channels/slack/mrkdwn.d.ts +0 -2
- package/dist/src/public/channels/slack/mrkdwn.js +1 -1
- package/dist/src/public/channels/slack/privacy.d.ts +2 -1
- package/dist/src/public/channels/slack/verify.d.ts +1 -1
- package/dist/src/public/channels/teams/teamsChannel.d.ts +1 -1
- package/dist/src/public/channels/telegram/audience.d.ts +2 -3
- package/dist/src/public/channels/telegram/audience.js +1 -1
- package/dist/src/public/channels/telegram/telegramChannel.d.ts +1 -1
- package/dist/src/public/channels/twilio/defaults.d.ts +0 -7
- package/dist/src/public/channels/twilio/defaults.js +1 -1
- package/dist/src/public/channels/twilio/routing.d.ts +2 -1
- package/dist/src/public/channels/twilio/twilioChannel.d.ts +1 -1
- package/dist/src/public/channels/upload-policy.d.ts +0 -11
- package/dist/src/public/channels/upload-policy.js +1 -1
- package/dist/src/public/definitions/channel.d.ts +1 -1
- package/dist/src/public/index.js +1 -1
- package/dist/src/public/memory/file/provider.js +1 -1
- package/dist/src/public/models/openai/chatgpt/model.d.ts +2 -1
- package/dist/src/public/models/openai/chatgpt/token-broker.d.ts +1 -1
- package/dist/src/public/next/server.js +1 -1
- package/dist/src/public/nuxt/dev-server.d.ts +3 -2
- package/dist/src/public/nuxt/dev-server.js +1 -1
- package/dist/src/public/skills/index.js +1 -1
- package/dist/src/public/sveltekit/dev-server.d.ts +3 -2
- package/dist/src/public/sveltekit/dev-server.js +1 -1
- package/dist/src/public/tools/index.js +1 -1
- package/dist/src/runtime/compiled-artifacts-source.d.ts +0 -4
- package/dist/src/runtime/compiled-artifacts-source.js +1 -1
- package/dist/src/runtime/connections/instance-identity.d.ts +0 -3
- package/dist/src/runtime/connections/instance-identity.js +1 -1
- package/dist/src/runtime/connections/mcp-tracing.d.ts +1 -6
- package/dist/src/runtime/connections/mcp-tracing.js +1 -1
- package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
- package/dist/src/runtime/connections/scoped-authorization.d.ts +0 -9
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/hooks/registry.d.ts +0 -7
- package/dist/src/runtime/hooks/registry.js +1 -1
- package/dist/src/runtime/loaders/artifact-paths.d.ts +2 -1
- package/dist/src/runtime/loaders/bundled-artifacts.d.ts +0 -1
- package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
- package/dist/src/runtime/resolve-agent.d.ts +2 -2
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -16
- package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
- package/dist/src/runtime/sandbox/prepared-artifacts.d.ts +1 -2
- package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
- package/dist/src/runtime/schedules/register.d.ts +0 -4
- package/dist/src/runtime/schedules/register.js +1 -1
- package/dist/src/self-modification/credentials.d.ts +1 -4
- package/dist/src/self-modification/credentials.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.js +1 -1
- package/dist/src/self-modification/filesystem.d.ts +0 -1
- package/dist/src/self-modification/filesystem.js +1 -1
- package/dist/src/self-modification/git-workspace.d.ts +0 -3
- package/dist/src/self-modification/git-workspace.js +1 -1
- package/dist/src/self-modification/github-publisher.d.ts +2 -1
- package/dist/src/self-modification/migration.d.ts +0 -1
- package/dist/src/self-modification/migration.js +1 -1
- package/dist/src/self-modification/mode.d.ts +2 -1
- package/dist/src/self-modification/proposal.d.ts +0 -2
- package/dist/src/self-modification/proposal.js +2 -2
- package/dist/src/self-modification/setup.js +1 -1
- package/dist/src/services/dev-client/agent-info-probe.d.ts +2 -1
- package/dist/src/services/dev-client/request-headers.d.ts +1 -1
- package/dist/src/services/dev-client/vercel-auth-error.d.ts +0 -8
- package/dist/src/services/dev-client/vercel-auth-error.js +2 -3
- package/dist/src/setup/ai-gateway-api-key.d.ts +2 -1
- package/dist/src/setup/append-env.d.ts +3 -2
- package/dist/src/setup/ask.d.ts +3 -3
- package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -1
- package/dist/src/setup/boxes/deploy-project.d.ts +4 -3
- package/dist/src/setup/boxes/link-project.d.ts +2 -1
- package/dist/src/setup/boxes/resolve-provisioning.d.ts +2 -1
- package/dist/src/setup/boxes/select-model.d.ts +2 -37
- package/dist/src/setup/boxes/select-model.js +1 -1
- package/dist/src/setup/cli/option-row.d.ts +1 -1
- package/dist/src/setup/cli/prompt-ui.d.ts +0 -10
- package/dist/src/setup/cli/prompt-ui.js +1 -1
- package/dist/src/setup/cli/rail-log.d.ts +0 -2
- package/dist/src/setup/cli/rail-log.js +2 -2
- package/dist/src/setup/connect-provisioning.d.ts +2 -1
- package/dist/src/setup/connection-connector.d.ts +2 -1
- package/dist/src/setup/flows/link.d.ts +2 -1
- package/dist/src/setup/flows/model-login.d.ts +1 -1
- package/dist/src/setup/flows/model-source-change.js +1 -1
- package/dist/src/setup/flows/provider.d.ts +2 -45
- package/dist/src/setup/flows/provider.js +1 -4
- package/dist/src/setup/flows/registry-session.d.ts +3 -2
- package/dist/src/setup/integrations/discord/api.d.ts +2 -1
- package/dist/src/setup/integrations/discord/connect.d.ts +3 -3
- package/dist/src/setup/integrations/discord/connect.js +1 -1
- package/dist/src/setup/integrations/discord/setup.d.ts +2 -1
- package/dist/src/setup/integrations/file-memory/vercel.d.ts +1 -1
- package/dist/src/setup/integrations/github/connect.d.ts +3 -3
- package/dist/src/setup/integrations/github/connect.js +1 -1
- package/dist/src/setup/integrations/github/setup.d.ts +1 -1
- package/dist/src/setup/integrations/linear/connect.d.ts +2 -2
- package/dist/src/setup/integrations/linear/connect.js +1 -1
- package/dist/src/setup/integrations/linear/setup.d.ts +1 -1
- package/dist/src/setup/integrations/linq/connect.d.ts +3 -4
- package/dist/src/setup/integrations/linq/connect.js +1 -1
- package/dist/src/setup/integrations/linq/management.d.ts +2 -1
- package/dist/src/setup/integrations/linq/setup.d.ts +1 -9
- package/dist/src/setup/integrations/linq/setup.js +1 -1
- package/dist/src/setup/integrations/photon/connect.d.ts +5 -7
- package/dist/src/setup/integrations/photon/connect.js +1 -1
- package/dist/src/setup/integrations/photon/management.d.ts +5 -4
- package/dist/src/setup/integrations/photon/setup-flow.d.ts +2 -1
- package/dist/src/setup/integrations/registry.d.ts +0 -2
- package/dist/src/setup/integrations/registry.js +1 -1
- package/dist/src/setup/integrations/runner.d.ts +3 -2
- package/dist/src/setup/integrations/shared/scaffold.d.ts +2 -1
- package/dist/src/setup/integrations/shared/vercel-project.d.ts +2 -1
- package/dist/src/setup/integrations/shopify/setup.d.ts +2 -1
- package/dist/src/setup/integrations/teams/connect.d.ts +3 -3
- package/dist/src/setup/integrations/teams/connect.js +1 -1
- package/dist/src/setup/integrations/teams/setup.d.ts +2 -1
- package/dist/src/setup/integrations/web/setup.d.ts +2 -1
- package/dist/src/setup/primitives/pm/pnpm.js +1 -1
- package/dist/src/setup/primitives/pm/process-result.d.ts +2 -1
- package/dist/src/setup/primitives/pm/shared.d.ts +2 -1
- package/dist/src/setup/primitives/process-output.d.ts +2 -1
- package/dist/src/setup/primitives/run-vercel.js +1 -1
- package/dist/src/setup/project-resolution.d.ts +0 -2
- package/dist/src/setup/project-resolution.js +1 -1
- package/dist/src/setup/provider-settings.js +1 -1
- package/dist/src/setup/quit-guard.d.ts +3 -2
- package/dist/src/setup/scaffold/connections/catalog.d.ts +0 -13
- package/dist/src/setup/scaffold/connections/catalog.js +1 -1
- package/dist/src/setup/scaffold/create/add-to-project.d.ts +2 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/files.d.ts +2 -1
- package/dist/src/setup/scaffold/update/channels.d.ts +0 -1
- package/dist/src/setup/scaffold/version-tokens.js +1 -1
- package/dist/src/setup/scaffold/workspace-glob.d.ts +0 -1
- package/dist/src/setup/scaffold/workspace-glob.js +1 -1
- package/dist/src/setup/scaffold/workspace-root.d.ts +2 -1
- package/dist/src/setup/scaffold/workspace-root.js +1 -1
- package/dist/src/setup/slack-connect-create.d.ts +1 -1
- package/dist/src/setup/slack-connect-lifecycle.d.ts +5 -5
- package/dist/src/setup/slack-connect.d.ts +0 -4
- package/dist/src/setup/slack-connect.js +1 -1
- package/dist/src/setup/slackbot.d.ts +3 -3
- package/dist/src/setup/slackbot.js +1 -1
- package/dist/src/setup/vercel-api-failure.d.ts +0 -2
- package/dist/src/setup/vercel-api-failure.js +1 -1
- package/dist/src/setup/vercel-project-api.d.ts +1 -1
- package/dist/src/setup/vercel-project.d.ts +4 -38
- package/dist/src/setup/vercel-project.js +0 -0
- package/dist/src/shared/action-types.d.ts +1 -58
- package/dist/src/shared/action-types.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +0 -3
- package/dist/src/shared/agent-turn-outcome.d.ts +1 -3
- package/dist/src/shared/agent-turn-outcome.js +1 -1
- package/dist/src/shared/chatgpt-model.d.ts +0 -1
- package/dist/src/shared/chatgpt-model.js +1 -1
- package/dist/src/shared/conversation-context.d.ts +2 -1
- package/dist/src/shared/conversation-identity.d.ts +2 -0
- package/dist/src/shared/conversation-identity.js +1 -0
- package/dist/src/shared/extension-package-contract.d.ts +2 -1
- package/dist/src/shared/forwarded-trace-policy.d.ts +3 -2
- package/dist/src/shared/gateway-service-tier.d.ts +2 -1
- package/dist/src/shared/memory-state.d.ts +0 -8
- package/dist/src/shared/memory-state.js +1 -1
- package/dist/src/shared/sandbox-environment.d.ts +0 -1
- package/dist/src/shared/sandbox-environment.js +1 -1
- package/dist/src/shared/skill-package.d.ts +0 -5
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/skill-paths.d.ts +0 -13
- package/dist/src/shared/skill-paths.js +2 -2
- package/dist/src/shared/token-usage.d.ts +0 -7
- package/dist/src/shared/token-usage.js +1 -1
- package/dist/src/shared/ulid.d.ts +2 -8
- package/dist/src/shared/ulid.js +1 -1
- package/dist/src/shared/vercel-project.d.ts +2 -1
- package/dist/src/shared/vercel-services.d.ts +2 -2
- package/dist/src/shared/workflow-sandbox.d.ts +0 -7
- package/dist/src/source-change/agent-config-ast.d.ts +2 -1
- package/dist/src/source-change/agent-config-string-path.d.ts +2 -2
- package/dist/src/source-change/apply-agent-model-settings.d.ts +2 -1
- package/dist/src/source-change/apply-model-selection.d.ts +2 -1
- package/dist/src/source-change/static-source-change.d.ts +4 -3
- package/dist/src/subagents/invocation.d.ts +1 -1
- package/dist/src/subagents/tool.d.ts +2 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/definition.d.ts +0 -3
- package/dist/src/tools/durable-callbacks.d.ts +1 -2
- package/dist/src/tools/durable-callbacks.js +1 -1
- package/dist/src/tools/framework/agent.js +1 -1
- package/dist/src/tools/framework/task-cancel.d.ts +1 -1
- package/dist/src/tools/native-definition.d.ts +2 -1
- package/dist/src/tracing/agent-action-instrumentation.d.ts +2 -1
- package/dist/src/tracing/agent-invocation-coordinator.js +1 -1
- package/dist/src/tracing/agent-memory-instrumentation.d.ts +2 -1
- package/dist/src/tracing/agent-otel-attributes.js +1 -1
- package/dist/src/tracing/agent-otel-provider.d.ts +2 -1
- package/dist/src/tracing/agent-span-id-generator.d.ts +0 -1
- package/dist/src/tracing/agent-span-id-generator.js +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.d.ts +2 -1
- package/dist/src/tracing/agent-tool-span-context.d.ts +3 -2
- package/dist/src/tracing/agent-trace-context-store.d.ts +0 -2
- package/dist/src/tracing/agent-trace-context-store.js +1 -1
- package/dist/src/tracing/agent-trace-state.d.ts +0 -24
- package/dist/src/tracing/agent-trace-state.js +1 -1
- package/dist/src/tracing/batch-span-processor.d.ts +2 -1
- package/dist/src/tracing/conversation-context.d.ts +0 -2
- package/dist/src/tracing/conversation-context.js +1 -1
- package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/local-trace-analysis.d.ts +4 -3
- package/dist/src/tracing/local-trace-discovery-index.d.ts +0 -2
- package/dist/src/tracing/local-trace-discovery-index.js +1 -1
- package/dist/src/tracing/local-trace-query.d.ts +2 -1
- package/dist/src/tracing/local-trace-retention.d.ts +4 -4
- package/dist/src/tracing/telemetry-budget.d.ts +0 -1
- package/dist/src/tracing/telemetry-budget.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +7 -0
- package/package.json +8 -8
- package/dist/src/cli/commands/channel-add-conflicts.d.ts +0 -21
- package/dist/src/cli/commands/channel-add-conflicts.js +0 -1
- package/dist/src/cli/commands/init-confirm.d.ts +0 -12
- package/dist/src/cli/commands/init-confirm.js +0 -1
- package/dist/src/cli/commands/registry-search-presentation.d.ts +0 -16
- package/dist/src/cli/commands/registry-search-presentation.js +0 -6
- package/dist/src/compiled/_chunks/workflow/dist-BfMqXLK3.js +0 -3
- package/dist/src/compiled/_chunks/workflow/helpers-CNMO7zB1.js +0 -1
- package/dist/src/compiled/_chunks/workflow/logger-BCEj9caG.js +0 -14
- package/dist/src/compiled/_chunks/workflow/resume-hook-QS_cMwHn.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-CA5wWV2S.js +0 -1
- package/dist/src/compiled/_chunks/workflow/serialization-CJ265vSe.js +0 -3
- package/dist/src/compiled/_chunks/workflow/sleep-CBn94Ayv.js +0 -1
- package/dist/src/compiled/_chunks/workflow/wait-until-Bo2U6ON9.js +0 -1
- package/dist/src/compiler/compile-from-memory.d.ts +0 -44
- package/dist/src/compiler/compile-from-memory.js +0 -1
- package/dist/src/execution/connection-auth-tool-result.d.ts +0 -2
- package/dist/src/execution/connection-auth-tool-result.js +0 -1
- package/dist/src/internal/process/pnpm.d.ts +0 -28
- package/dist/src/internal/process/pnpm.js +0 -1
- package/dist/src/public/channels/slack/api-encoding.d.ts +0 -5
- package/dist/src/public/channels/slack/api-encoding.js +0 -1
- package/dist/src/public/definitions/instrumentation.d.ts +0 -1
- package/dist/src/public/definitions/instrumentation.js +0 -1
- package/dist/src/public/models/openai/chatgpt/unsigned-jwt.d.ts +0 -5
- package/dist/src/public/models/openai/chatgpt/unsigned-jwt.js +0 -1
- package/dist/src/sandbox/backends/probes.d.ts +0 -7
- package/dist/src/sandbox/backends/probes.js +0 -1
- package/dist/src/setup/channel-add-conflicts.d.ts +0 -28
- package/dist/src/setup/channel-add-conflicts.js +0 -1
- package/dist/src/setup/gateway-models.d.ts +0 -10
- package/dist/src/setup/gateway-models.js +0 -1
- package/dist/src/setup/primitives/run-pnpm.d.ts +0 -1
- package/dist/src/setup/primitives/run-pnpm.js +0 -1
- package/dist/src/shared/dispatch-action.d.ts +0 -30
- package/dist/src/shared/dispatch-action.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{t as n}from"../../_chunks/workflow/debug-log-CVPstO1D.js";import{B as r,
|
|
2
|
-
`);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=
|
|
3
|
-
`).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=
|
|
4
|
-
`);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Ge(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function Ye(e){try{let{stdout:t}=await We(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Ue(t,e)}catch{return[]}}async function Xe(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await qe(e);case`darwin`:return await Je(e);case`win32`:return await Ye(e);default:return[]}}catch(e){return n(`[getAllPorts] Detection failed:`,e),[]}}const Ze=`${ye}/flow?__health`;async function Qe(e,t={}){let{endpoint:n=Ze,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function $e(e){let t=await Xe();if(t.length===0)return;if(t.length===1)return t[0];let r=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await Qe(t,e)})))).find(e=>e.isWorkflow);return r?r.port:(n(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function et(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const tt=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,nt=()=>process.env.WORKFLOW_LOCAL_BASE_URL,rt=et(()=>({dataDir:tt(),baseUrl:nt()}));function it(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return t!==`0`&&t!==`false`}function at(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??_e(`http://localhost`)}async function ot(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return _e(`http://localhost:${e.port}`);if(process.env.PORT)return _e(`http://localhost:${process.env.PORT}`);let t=await $e({endpoint:ve()});if(t)return _e(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const V=T(`@workflow/world-local//fs`,1,()=>({ulid:le(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function st(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var ct=class extends k{constructor(e,t){super(`Unsafe ${e} "${st(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function H(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new ct(e,t)}function U(e,...t){let n=B.resolve(e),r=B.resolve(e,...t);if(r!==n&&!r.startsWith(n+B.sep))throw new ct(`path`,t.join(`/`));return r}const lt=process.platform===`win32`;async function W(e,t=5){if(!lt)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}function ut(){V.createdFilesCache.clear(),V.createdDirectoriesCache.clear()}const dt=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function ft(e){return e.replace(dt,``)}function pt(e,t){return e.endsWith(`.${t}`)}function mt(e){return!dt.test(e)}function G(e,t,n,r){return H(`fileId`,n),r!==void 0&&H(`tag`,r),U(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function K(e,t,n,r,i){if(H(`fileId`,n),i!==void 0&&H(`tag`,i),i){let a=await X(U(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(U(e,t,`${n}.json`),r)}async function ht(e,t){let n=`.${t}.json`;try{return(await R.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function gt(e,t,n){let r=`.${t}${n}`;try{return(await R.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function _t(e){let t=B.resolve(e);if(!V.createdDirectoriesCache.has(t))try{await R.mkdir(t,{recursive:!0}),V.createdDirectoriesCache.add(t)}catch(e){let n=e.code;if(ze(n)&&!await vt(t))throw new Le(t,n)}}async function vt(e){try{return(await R.stat(e)).isDirectory()}catch{return!1}}async function yt(e,t){await _t(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return V.createdDirectoriesCache.delete(B.resolve(e)),await _t(e),t()}}function q(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function bt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function J(e,t,n){return Y(e,JSON.stringify(t,q,2),n)}async function Y(e,t,n){if(!n?.overwrite){if(V.createdFilesCache.has(e))throw new j(`File ${e} already exists and 'overwrite' is false`);try{throw await R.access(e),V.createdFilesCache.add(e),new j(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${V.ulid()}`,i=!1;try{await yt(B.dirname(e),async()=>{await R.writeFile(r,t),i=!0,await W(()=>R.rename(r,e))}),V.createdFilesCache.add(e)}catch(e){throw i&&await W(()=>R.unlink(r),3).catch(()=>{}),e}}async function X(e,t){try{let n=await W(()=>R.readFile(e,`utf-8`));return t.parse(JSON.parse(n,bt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function xt(e){return await R.readFile(e)}async function St(e){let t=await R.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Z(e){try{await W(()=>R.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${V.ulid()}`,r=!1;try{return await yt(B.dirname(e),async()=>{await R.writeFile(n,t,{flag:`wx`}),r=!0;try{return await W(()=>R.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await W(()=>R.unlink(n),3).catch(()=>{})}}async function Ct(e,t){try{return await yt(B.dirname(t),()=>W(()=>R.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function wt(e){return Tt(e,`.json`)}async function Tt(e,t){try{return(await R.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const Et=`key:`;function Dt(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Ot(e,t,n){return n?`${Et}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function kt(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&H(`filePrefix`,i);let m=B.resolve(t),h=await wt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Dt(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=B.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof I.ZodError)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Ot(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}const At=T(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function jt(){return typeof import.meta.url==`string`&&import.meta.url?B.dirname(Se(import.meta.url)):null}async function Mt(){if(At.cached)return At.cached;let e=jt();if(e)try{let t=await Ee(B.join(e,`../package.json`),`utf-8`);return At.cached=JSON.parse(t),At.cached}catch{}return At.cached={name:`@workflow/world-local`,version:`5.0.0-beta.47`},At.cached}const Nt=`version.txt`;var Pt=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Ft=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function It(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function Lt(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Rt(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:It(t.substring(n+1))}}function zt(e,t){return`${e}@${Lt(t)}`}function Bt(e,t){console.log(`[world-local] Upgrading from version ${Lt(e)} to ${Lt(t)}`)}async function Vt(e){let t=B.resolve(e);try{await Te(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Pt(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await Ce(t,we.R_OK)}catch(e){let n=e;throw new Pt(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=B.join(t,`.workflow-write-test-${Date.now()}`);try{await je(n,``),await Ae(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Pt(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Ht(e){let t=B.join(B.resolve(e),Nt);try{return Rt(await Ee(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Ut(e,t){let n=B.join(B.resolve(e),Nt),r=zt((await Mt()).name,t);await je(n,r)}function Wt(e,t){return t||Lt(e)}async function Gt(e){await Vt(e);let t=await Mt(),n=It(t.version),r=await Ht(e);if(r===null){await Ut(e,n);return}let{version:i}=r;if(Lt(i)!==Lt(n))try{Bt(i,n),await Ut(e,n)}catch(e){let r=Wt(i,e instanceof Ft?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${Lt(i)} to ${Lt(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}const Kt=T(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function qt(){return Kt.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),Kt.apiPromise}async function Jt(){return Kt.tracerPromise||=qt().then(e=>e?e.trace.getTracer(`workflow`):null),Kt.tracerPromise}async function Yt(e,...t){let[n,r]=await Promise.all([Jt(),qt()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Xt(e){let t=await qt();if(t)return t.SpanKind[e]}function Zt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const Qt=Zt(`peer.service`),$t=Zt(`rpc.system`),en=Zt(`rpc.service`),tn=Zt(`rpc.method`),nn=Zt(`workflow.run.id`),rn=Zt(`step.id`),an={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},on={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},sn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function cn(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function ln(e,t){return typeof e[t]==`string`?e[t]:void 0}function un(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function dn(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function fn(e,t,n){let r=`${e}.${t}`,i={},a=on[r],o=a===void 0?sn.has(r)?un(n[0]):void 0:ln(n,a);if(o&&Object.assign(i,nn(o)),r===`world.steps.get`){let e=ln(n,1);e&&Object.assign(i,rn(e))}return i}function pn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=cn(t);r&&(n=`${e}.${a} ${r}`)}return Yt(n,{kind:await Xt(`INTERNAL`)},async r=>{r?.setAttributes({...Qt(an.peerService),...$t(an.rpcSystem),...en(an.rpcService),...tn(n),...fn(e,a,t)});let o=await i(...t),s=dn(o);return s&&r?.setAttributes(nn(s)),o})}}return n}var mn=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),hn=N(),gn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,q))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,bt)}};const _n=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,vn=2147483647,yn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function bn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function xn(){return{bodyTimeout:bn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,3e4),connections:1e3,headersTimeout:bn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,3e4),keepAliveTimeout:3e4}}const Sn=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function Cn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(Sn))return!0;t=`cause`in t?t.cause:void 0}return!1}function wn(e){let t=xn(),r=S()?P({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,a=r?void 0:new hn.Agent(t),o=new gn,s=le(),c=new mn.Sema(yn),l=new AbortController,u=l.signal,d=new Map,f=new Map,p=async(l,p,m)=>{let h=[];if(m?.idempotencyKey){let e=d.get(m.idempotencyKey);if(e)return{messageId:e}}let g=o.serialize(p),{prefix:_}=i(l),v=ue.parse(`msg_${s()}`),y=p,b=y.runId??void 0,x=y.stepId??void 0;if(m?.idempotencyKey){let e=m.idempotencyKey;d.set(e,v),h.push(()=>{d.delete(e)})}return(async()=>{if(m?.delaySeconds&&m.delaySeconds>0){let e=Math.min(m.delaySeconds*1e3,vn);await Pe(e,void 0,{signal:u})}c.tryAcquire()||(n(`[world-local]: concurrency limit (${yn}) reached, waiting for queue to free up`),await c.acquire());let i=0;try{for(let n=0;n<256;n++){let o={...m?.headers,"content-type":`application/json`,"x-vqs-queue-name":l,"x-vqs-message-id":v,"x-vqs-message-attempt":String(i+1)},s=f.get(_),c,d;try{if(s)c=await s(new Request(ge(at(e),{type:`flow`}),{method:`POST`,headers:o,body:g}));else{let n=await ot(e),i=ge(n,{type:`flow`});c=r?await be(i,{method:`POST`,headers:new Headers(o),body:g,agents:r,signal:u,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(i,{method:`POST`,duplex:`half`,dispatcher:a,headers:o,body:g,signal:u})}i++,d=await c.text()}catch(e){let t=e?.name;if(u.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(Cn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${n+1}), retrying`,{queueName:l,messageId:v,...b&&{runId:b},...x&&{stepId:x},error:String(e)}),await Pe(5e3,void 0,{signal:u});continue}if(c.ok){try{let e=Number(JSON.parse(d).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,vn);await Pe(t,void 0,{signal:u})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${i}, HTTP ${c.status})`,{queueName:l,messageId:v,...b&&{runId:b},...x&&{stepId:x},handlerError:d}),await Pe(5e3,void 0,{signal:u})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:l,messageId:v,...b&&{runId:b},...x&&{stepId:x}})}finally{c.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(Cn(e)?console.error(`[local world] Queue operation failed: detected "${Sn}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:l,messageId:v,...b&&{runId:b},...x&&{stepId:x},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of h)e()}),{messageId:v}},m=I.compile(I.object({"x-vqs-queue-name":_,"x-vqs-message-id":ue,"x-vqs-message-attempt":I.coerce.number()}));return{queue:p,createQueueHandler:(e,t)=>async n=>{let r=m.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new gn().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a});if(typeof s==`object`&&s&&`invoke`in s&&s.invoke===!0)return Response.json({result:e});let n=null;return typeof e==`object`&&e&&`timeoutSeconds`in e&&typeof e.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,_n)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Mt()).version}`,registerHandler(e,t){f.set(e,t)},async close(){u.aborted||(l.abort(),r&&M(r),await a?.close())}}}var Tn=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!(e&&e.code!==`ENOSYS`&&(process.getuid&&process.getuid()===0||e.code!==`EINVAL`&&e.code!==`EPERM`))}}})),En=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=65536,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),Dn=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),On=t(((t,n)=>{var r=e(`fs`),i=Tn(),a=En(),o=Dn(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
-
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=w,e.createWriteStream=T;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;E(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function ee(){var e=this;E(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function w(t,n){return new e.ReadStream(t,n)}function T(t,n){return new e.WriteStream(t,n)}var te=e.open;e.open=E;function E(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return te(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),kn=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0){if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1}var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),An=t((e=>{var t=kn();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),jn=t(((e,t)=>{t.exports=An()})),Mn=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),Nn=t(((t,n)=>{let r=e(`path`),i=On(),a=jn(),o=F(),s=Mn(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),Pn=t(((e,t)=>{let n=On();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),Fn=t(((e,t)=>{let n=Nn(),{toPromise:r,toSync:i,toSyncOptions:a}=Pn();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function In(e){return L(`sha256`).update(e).digest(`hex`)}function Ln(e,t,n){return U(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Rn(e,t,n){let r=[Ln(e,t)];n&&r.push(Ln(e,t,n));for(let e of r){let t;try{t=await z.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function zn(e,t,n){let r=[Ln(e,t)];n&&r.push(Ln(e,t,n));for(let e of r)try{return await z.access(e),!0}catch{}return!1}function Bn(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function Vn(e,t,n){let r=[Bn(e,t)];n&&r.push(Bn(e,t,n));for(let e of r)try{return await z.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function Hn(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Un(e,t,n,r){return B.join(Hn(e,t,r),`${n}.json`)}async function Wn(e,t,n){let r=[Hn(e,t)];n&&r.push(Hn(e,t,n));for(let e of r){let t;try{t=await z.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await W(()=>z.unlink(B.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await z.rmdir(e).catch(()=>{})}}async function Gn(e,t,n){let r=await Kn(e,t,n),i=Date.now();if(r.maxId)try{let e=ee(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${tr(i)}`,createdAt:new Date(i)}}async function Kn(e,t,n){let r=[];try{r=await z.readdir(B.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!mt(t)&&!(n&&pt(t,n)))continue;let r=ft(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=v(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function qn(e,t){return B.join(e,`hooks`,`tokens`,`${In(t)}.json`)}const Jn=I.compile(I.object({hookId:I.string().optional(),runId:I.string(),eventId:I.string().optional(),tokenRetentionUntil:I.coerce.date().optional(),claimedFrom:I.object({runId:I.string(),hookId:I.string(),workflowName:I.string().optional(),deploymentId:I.string().optional(),runSpecVersion:I.number().optional()}).optional()}));async function Yn(e){try{return await X(e,Jn)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}async function Xn(e,t,n){let r=qn(e,t);await z.mkdir(B.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,Fn.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new k(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new k(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new k(`Could not release Hook token claim lock`,{cause:e})}return o}function Zn(e,t,n){let r=L(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return B.join(e,`hooks`,`resumes`,`${r}.json`)}async function Qn(e,t,n,r){await Xn(e,t,async i=>{let a=qn(e,t),o=await Yn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function $n(e,t,n,r){let i=L(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return B.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const er=T(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:le(()=>Math.random())})),tr=e=>er.next(e),nr=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=ft(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return te(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return te(a)}},rr=I.compile(I.object({runId:I.string()})),ir=I.compile(I.object({hookId:I.string(),tag:I.string().optional()}));function ar(e,t){return U(e,`hooks`,`token-index`,In(t))}function or(e,t){return H(`hookId`,t),U(e,`hooks`,`id-index`,t)}function sr(e){return U(e,`hooks`,`by-run`)}function cr(e){let t=ft(e);return t===e?void 0:e.slice(t.length+1)}function lr(e,t){return t?mt(e)||pt(e,t):mt(e)}async function ur(e){try{return await X(e,r)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}async function dr(e,t,n,r,i,a){H(`runId`,n),H(`eventId`,i),a!==void 0&&H(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(B.join(ar(e,t),o),s),Q(B.join(or(e,r),o),s)])}function fr(e,t,n,r){return G(e,`hooks/by-run`,`${t}-${n}`,r)}async function pr(e,t,n,r){await Q(fr(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function mr(e,t,n,r){await Z(fr(e,t,n,r)),r&&await Z(fr(e,t,n))}async function hr(e,t){H(`runId`,t);let n=sr(e),r=`${t}-`,i=[];for(let e of await wt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(B.join(n,`${e}.json`),ir)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function gr(e,t){await Z(B.join(sr(e),`${t}.json`))}const _r=T(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function vr(){_r.ensuredBasedirs.clear()}async function yr(e){let t=B.resolve(e),n=_r.ensuredBasedirs.get(t);return n||(n=xr(t).catch(e=>{throw _r.ensuredBasedirs.delete(t),e}),_r.ensuredBasedirs.set(t,n)),n}async function br(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function xr(e){let t=B.join(e,`hooks`,`.hook-index-complete`);try{await z.access(t);return}catch{}let n=B.join(e,`events`);await br(await wt(n),32,async t=>{let r=await ur(B.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await dr(e,i,r.runId,r.correlationId,r.eventId,cr(t))}catch{}});let r=B.join(e,`hooks`);await br(await wt(r),32,async t=>{let n=null;try{n=await X(B.join(r,`${t}.json`),x)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(n)try{await pr(e,n.runId,n.hookId,cr(t))}catch{}}),await Q(t,``)}async function Sr(e,t,n,r){await yr(e);let i;try{i=t.kind===`token`?ar(e,t.token):or(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=ft(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await wt(i)).filter(e=>lr(e,r)).sort((e,t)=>ft(t).localeCompare(ft(e)));for(let t of o){let r=null;try{r=await X(B.join(i,`${t}.json`),rr)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=G(e,`events`,`${r.runId}-${o}`,cr(t))}catch{continue}let c=await ur(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}function Cr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function wr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Tr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function Er(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Dr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a,forceClaimedFrom:o}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,...o!==void 0&&{claimedFrom:o},metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function Or(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function kr(e,t,n){let r=await K(e,`runs`,t,d,n);return r?O(r.status):!1}async function Ar(e,t,n,r){let i=async t=>{if(await kr(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await zn(e,t.correlationId,r)},a=await Sr(e,t,e=>Or(e,n)&&i(e),r);return a&&Or(a,n)?a:null}async function jr(e,t,n){let r=Dr(t);return await Q(qn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil,...r.claimedFrom&&{claimedFrom:r.claimedFrom}})),await pr(e,r.runId,r.hookId,n),await Q(G(e,`hooks`,r.hookId,n),JSON.stringify(r,q,2)),r}async function Mr(e,t,n){let r=await Ar(e,{kind:`token`,token:t},e=>Er(e)===t,n);return r?jr(e,r,n):null}async function Nr(e,t,n){let r=await Ar(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?jr(e,r,n):null}function Pr(e,t){async function n(n){return await zn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await kr(e,n.runId,t)}async function r(n){let r=await Rn(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await Yn(qn(e,i));if(a?.hookId)try{let o=await K(e,`hooks`,a.hookId,x,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new he(i)}else if(o)return null}catch(e){if(!ct.is(e))throw e;return null}let o=B.join(e,`hooks`),s=await wt(o),c=!1;for(let e of s){let t=await X(B.join(o,`${e}.json`),x);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new he(i)}}if(c)throw new he(i);return null}async function a(r,i){H(`hookId`,r);let a=await K(e,`hooks`,r,x,t);if(a&&!await n(a))throw new he(r);let o=a??await Nr(e,r,t);if(!o)throw new he(r);let s=i?.resolveData||`all`;return Tr({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await Mr(e,n,t);if(!r)throw new he(n);return r}async function s(t){let r=B.join(e,`hooks`),i=t.resolveData||`all`,a=await kt({directory:r,schema:x,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>Tr(e,i))}}return{get:a,getByToken:o,list:s}}async function Fr(e,t){await yr(e);for(let n of await hr(e,t)){if(n.hookId){let r=null,i=null;try{i=G(e,`hooks`,n.hookId,n.tag),r=await X(i,x)}catch(e){if(!ct.is(e)&&!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await Qn(e,r.token,r.runId,r.hookId),await Z($n(e,r.token,r.runId,r.hookId)),await Z(i)}}await gr(e,n.fileId)}}const Ir=T(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:le(()=>Math.random())})),Lr=e=>Ir.next(e),Rr=I.compile(I.object({streams:I.array(I.string())}));function zr(e){return e===1}function Br(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function Vr(e){return zr(e[0])}function Hr(e){return{eof:Vr(e),chunk:Buffer.from(e.subarray(1))}}async function Ur(e){try{return await z.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function Wr(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function Gr(e,t){return H(`streamName`,t),B.join(e,t)}async function Kr(e,t,n){let r=Gr(e,t),i=await Ur(r),a=new Map;return Wr(a,i,`.json`),Wr(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&Wr(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const qr=`chnk_${`0`.repeat(26)}`;async function Jr(e,t,n){let r=B.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{H(`runId`,t),a=(await K(e,`streams/runs`,t,Rr,n))?.streams??[]}catch(e){Yr(`streams of ${t}`,e);return}for(let e of a)try{let t=Gr(r,e);await Y(B.join(t,`${qr}${i}.bin`),Br({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await Ur(t))e.startsWith(qr)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await W(()=>z.unlink(B.join(t,e))).catch(t=>{t.code!==`ENOENT`&&Yr(e,t)})}catch(t){Yr(e,t)}}function Yr(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function Xr(e,t){let n=t?`.${t}`:``,r=new Ie,i=new Set;async function a(n,r){H(`runId`,n),H(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=G(e,`streams/runs`,n,t),s=(await K(e,`streams/runs`,n,Rr,t))?.streams??[];s.includes(r)||(s.push(r),await J(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${Lr()}`;await a(await t,i);let l=o(s),u=Br({chunk:l,eof:!1});await Y(B.join(Gr(B.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${Lr()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=Br({chunk:t,eof:!1});return await Y(B.join(Gr(B.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${Lr()}`;await a(await t,i),await Y(B.join(Gr(B.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),Br({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return H(`runId`,n),(await K(e,`streams/runs`,n,Rr,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await Kr(B.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=B.join(c,`${e}${t}`);if(f<l){if(zr(await St(n))){u=!0;break}f++;continue}if(d.length>=a){zr(await St(n))?u=!0:f++;break}let r=Hr(await xt(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await Kr(B.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(zr(await St(B.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=B.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await Kr(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;zr(await St(B.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=Hr(await xt(B.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await Kr(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=Hr(await xt(B.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function Zr(e){let t=ne(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${ae} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function Qr(e,t){return{...e,input:void 0,output:void 0,error:void 0,expiredAt:t}}async function $r(e,t,n){await Promise.all([ti(B.join(e,`steps`),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),ti(B.join(e,`events`),t,e=>{let t=e.eventData;if(t&&typeof t==`object`)for(let n of m(String(e.eventType)))delete t[n]}),ni(e,t),Jr(e,t,n)])}const ei=I.record(I.string(),I.any()),$=I.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of m(String(e.eventType)))n in t||(t[n]=void 0)}return e},r);async function ti(e,t,n){let r;try{r=await wt(e)}catch(t){ri(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=B.join(e,`${i}.json`);try{let e=await X(r,ei);if(!e)continue;n(e),await J(r,e,{overwrite:!0})}catch(e){ri(r,e)}}}async function ni(e,t){let n;try{await yr(e),n=await hr(e,t)}catch(e){ri(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=G(e,`hooks`,r.hookId,r.tag),i=await X(n,ei);if(!i||i.runId!==t)continue;i.metadata=void 0,await J(n,i,{overwrite:!0})}catch(e){ri(r.hookId,e)}}function ri(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const ii=new Ie;ii.setMaxListeners(0);function ai(){return b(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function oi(e){ii.emit(`run:${e}`)}function si(e,t,n){return t<=0||n?.aborted?Promise.resolve():new Promise(r=>{let i=`run:${e}`,a=!1,o=()=>{a||(a=!0,clearTimeout(s),ii.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);ii.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function ci(e,t,n,r,i,a){if(O(a.status)||await Vn(e,t))throw new fe(`Workflow run "${t}" is already in a terminal state`);let o=Un(e,t,n);await Q(o,r);try{if(await Vn(e,t)||await Ct(o,i)!==`linked`)throw new fe(`Workflow run "${t}" is already in a terminal state`)}finally{await z.unlink(o).catch(()=>{})}}async function li(e,t,n,r,i){H(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(Bn(e,t),``),await Wn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes},o=Zr(i.attributes),s=o?Qr(i,n):i;return await J(U(e,`runs`,`${t}.json`),s,{overwrite:!0}),oi(t),await Fr(e,t),o&&await $r(e,t,void 0),{event:void 0,run:Cr(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${tr()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:8},c=U(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await ci(e,t,i,JSON.stringify(s,q,2),c,r):await J(c,s),{event:D(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const ui=T(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function di(e,t){let n=ui.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{ui.byKey.get(e)===r.task&&ui.byKey.delete(e)}})();return r.task=i,ui.byKey.set(e,i),i}function fi(e,t){let n=(async(n,r)=>{H(`runId`,n);let i=await K(e,`runs`,n,d,t);if(!i)throw new pe(n);return Cr(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let r=Date.now()+(t?.timeoutMs??0);for(;;){let i=await n(e,t);if(O(i.status))return i;let a=r-Date.now();if(a<=0||t?.signal?.aborted)return i;await si(e,Math.min(a,ai()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof pe)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await kt({directory:B.join(e,`runs`),schema:d,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:nr(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(n,r,i)=>(H(`runId`,n),di(n,async()=>{let a=await K(e,`runs`,n,d,t);if(!a)throw new pe(n);try{se(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof ce,e}let o=g(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await J(G(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const pi=864e5;function mi(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new k(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*pi}const hi=I.compile(I.object({eventId:I.string()})),gi=I.compile(I.object({runId:I.string(),resumeId:I.string(),hookId:I.string(),eventId:I.string(),payloadDigest:I.string().optional()}));function _i(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function vi(e,t,n,r){let i=await Kn(e,t,r);for(let a of i.ids){let i=await K(e,`events`,`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&_i(i,n))return i}return null}async function yi(e,t,n){if(t.hookId&&await zn(e,t.hookId,n))return!0;let r=await K(e,`runs`,t.runId,d,n);return r?O(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function bi(e){try{return await X(e,hi)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}function xi(e){return C(e.eventId)?e.eventId:null}function Si(e,t){let n=ft(t).slice(e.length+1);return C(n)?n:null}async function Ci(e,t,n){return(await kt({directory:B.join(e,`events`),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:nr(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function wi(e,t,n,r,i){let a=await K(e,`events`,`${t}-${r}`,$,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await K(e,`hooks`,n,x,i))return;let o=Dr(a);await dr(e,o.token,t,n,r,i),await pr(e,t,n,i),await Q(G(e,`hooks`,n,i),JSON.stringify(o,q,2))}async function Ti(e,t,n,r,i){let a=$n(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await bi(a))?.eventId??null}function Ei(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Di(e,t){let n=B.join(e,`waits`),r=await wt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(B.join(n,`${e}.json`))}async function Oi(e,t,n,r){return di(t,async()=>{let i=(await X(G(e,`runs`,t,n),d))?.attributes??r.attributes,a={...r,attributes:i},o=O(a.status)&&Zr(i);return o&&(a=Qr(a,new Date)),await J(G(e,`runs`,t,n),a,{overwrite:!0}),O(a.status)&&oi(t),{run:a,purged:o}})}function ki(e,t){let n=mi(),r=4194304,i=new Map,m=new Map,_=new Map,b=0;function S(e){let t=i.get(e);if(!t)return;i.delete(e),b-=m.get(e)??0,m.delete(e);let n=_.get(t.runId);n?.delete(e),n?.size===0&&_.delete(t.runId)}function ee(e){for(let t of _.get(e)??[])S(t)}function w(){i.clear(),m.clear(),_.clear(),b=0,T.clear()}let T=new Map;function E(e){return t?`${e}.${t}`:e}async function ne(n,r){let i=`${n}-${y(r)}`;for(let n of t?[G(e,`events`,i,t),G(e,`events`,i)]:[G(e,`events`,i)])try{return await z.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function ae(n,r){let i=E(n),a=T.get(i);if(a===void 0||r?.rescan){let r=await Kn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},T.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await ne(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function ce(e,t){let n=v(t);if(n===null)return;let r=T.get(E(e));r&&(r.published=Math.max(r.published,n))}async function le(e){let t=await ae(e);return t===null?`evnt_${tr()}`:y(t)}async function ue(n){let r=await ae(n,{rescan:!0});return r===null?Gn(e,n,t):{eventId:y(r),createdAt:new Date}}function ge(e,t,n){if(n>r)return;for(;i.size>0&&(i.size>=1e3||b+n>r);){let e=i.keys().next().value;S(e)}i.set(e,t),m.set(e,n),b+=n;let a=_.get(t.runId)??new Set;a.add(e),_.set(t.runId,a)}function _e(e,t,n){if(s(e.eventType)){ee(e.runId);return}let i=Buffer.byteLength(n);if(i>r)return;let a=$.safeParse(JSON.parse(n,bt));a.success&&ge(t,a.data,i)}async function ve(n){let r=n;for(let n=0;;n++){let i=G(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,q,2),o=v(r.eventId);if(o===null)return await Y(i,a),_e(r,i,a),r;if(await Q(i,a))return ce(r.runId,r.eventId),_e(r,i,a),r;let s=await ae(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Fe(s!==null),r={...r,eventId:y(s)}}}async function ye(n,r){let i=await Rn(e,n,t);if(i.committed)throw i.forceClaimedBy?new A(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new he(n)}let be=(t,n)=>kt({directory:B.join(e,`events`),schema:$,cachedItems:i,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:nr(`evnt`),getId:e=>e.eventId,getSortKey:xi,getSortKeyFromFileId:e=>Si(t,e)}),M=new Map,N=new Map,P={clearCache:w,async create(r,i,m){if(i.eventType===`hook_created`&&i.eventData.tokenRetentionUntil!==void 0&&i.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new k(`Hook minimum retention cannot exceed ${n/pi} days in the Local World.`,{status:400});if(r!=null&&r!==``&&H(`runId`,r),`correlationId`in i&&typeof i.correlationId==`string`&&H(`correlationId`,i.correlationId),a(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.${t}`:`${r}-${i.correlationId}`;return Ei(M,e,_)}if(p(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.hook.${t}`:`${r}-${i.correlationId}.hook`;return Ei(N,e,_)}return _();async function _(){let n=``,p=!1,_=null,b=new Date,S;if(i.eventType===`run_created`&&(!r||r===``))S=`wrun_${tr()}`;else if(r)S=r;else throw Error(`runId is required for non-run_created events`);if(i.eventType===`run_created`&&r&&r!==``){let e=ie(S,`wrun_`);if(e)throw new k(e)}let w=i.specVersion??8,T=null;if(i.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(i.eventType)&&(T=await K(e,`runs`,S,d,t),i.eventType===`run_started`&&!T&&`eventData`in i&&i.eventData)){let n=i.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){se(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:S,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:w,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:b,updatedAt:b};if(await Q(G(e,`runs`,S,t),JSON.stringify(r,q))){let e=await le(S);await ve({eventType:`run_created`,runId:S,eventId:e,createdAt:b,specVersion:w,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),T=r}else T=await K(e,`runs`,S,d,t)}}if(n=await le(S),!T&&(i.eventType===`run_failed`||i.eventType===`attr_set`||i.eventType===`run_started`))throw new pe(S);if(T){if(oe(T.specVersion))throw new me(T.specVersion,8);if(h(T.specVersion))return li(e,S,i,T,m)}let E=o(i),ne=E&&i.eventType===`step_started`;if(T&&O(T.status)){if(i.eventType===`run_cancelled`&&T.status===`cancelled`){let e=await ve({...i,runId:S,eventId:n,createdAt:b,specVersion:w}),t=m?.resolveData??`all`;return{event:D(e,t),run:T,...T?{maxEvents:re()}:{}}}if(i.eventType===`run_started`)throw new fe(`Workflow run "${S}" is already in terminal state "${T.status}"`);if(s(i.eventType))throw new j(`Cannot transition run from terminal state "${T.status}"`);if(E)throw new j(`Cannot create new entities on run in terminal state "${T.status}"`);if(i.eventType===`attr_set`)throw new j(`Cannot set attributes on run in terminal state "${T.status}"`)}let A=null;if(a(i.eventType)&&i.eventType!==`step_created`&&i.correlationId){if(A=await K(e,`steps`,`${S}-${i.correlationId}`,l,t),!A&&!ne)throw new k(`Step "${i.correlationId}" not found`);if(ne&&A)throw new j(`Step "${i.correlationId}" already created`);if(A){if(u(A.status))throw new j(`Cannot modify step in terminal state "${A.status}"`);if(T&&O(T.status)&&(A.status!==`running`||i.eventType===`step_started`))throw new fe(`Cannot ${i.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${T.status}"`)}}if(f(i.eventType)&&i.correlationId){if(i.eventType===`hook_received`&&m?.resumeId){let n=await X(Zn(e,S,m.resumeId),gi);if(n&&n.hookId===i.correlationId&&(!m.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===m.resumePayloadDigest)){let r=await K(e,`events`,`${S}-${n.eventId}`,$,t),i=r&&_i(r,n)?r:await vi(e,S,n,t);if(i)return{event:i}}}if(i.eventType===`hook_received`&&await ye(i.correlationId,i.eventData?.token),!await K(e,`hooks`,i.correlationId,x,t))throw new he(i.correlationId);if(i.eventType===`hook_received`&&m?.resumeId){let r=Zn(e,S,m.resumeId),a=async r=>{if(r.hookId!==i.correlationId)throw new j(`hook_received resumeId "${m.resumeId}" already recorded for a different hook`);if(m.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==m.resumePayloadDigest)throw new j(`hook_received resumeId "${m.resumeId}" already recorded with a different payload`);let a=await K(e,`events`,`${S}-${r.eventId}`,$,t);if(a&&_i(a,r))return{event:a};let o=await vi(e,S,r,t);return o?{event:o}:(_=r.eventId,a||(n=r.eventId,p=!0),null)},o=await X(r,gi);if(o){let e=await a(o);if(e)return e}else if(p=!C(n),_=n,!await Q(r,JSON.stringify({runId:S,resumeId:m.resumeId,hookId:i.correlationId,eventId:n,...m.resumePayloadDigest?{payloadDigest:m.resumePayloadDigest}:{}}))){_=null;let e=await X(r,gi);if(e){let t=await a(e);if(t)return t}}}}let ge,M={...i,runId:S,eventId:n,createdAt:b,specVersion:w,...i.eventType===`hook_received`&&m?.resumeId?{resumeId:m.resumeId}:{}};if(i.eventType===`run_started`&&`eventData`in M&&delete M.eventData,ne&&M.eventType===`step_started`&&M.eventData){let{input:e,...t}=M.eventData;M={...M,eventData:t}}let N,P=!1,F,I,L,xe=!1,Se;if(s(i.eventType)&&T){await Q(Bn(e,S,t),``),await Wn(e,S,t);let r=await ue(S);n=r.eventId,M={...M,eventId:n,createdAt:r.createdAt}}if(i.eventType===`run_created`&&`eventData`in i){let n=i.eventData;if(se(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),N={runId:S,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:w,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:b,updatedAt:b},!await Q(G(e,`runs`,S,t),JSON.stringify(N,q,2)))throw new j(`Workflow run "${S}" already exists`)}else if(i.eventType===`run_started`){if(T){if(T.status===`running`){if(m?.skipPreload)return{run:T,maxEvents:re()};let e=await be(S,{limit:re()});return{run:T,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:re()}}let n=await Oi(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:T.startedAt??b,updatedAt:b,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=n.run,P=n.purged}}else if(i.eventType===`run_completed`&&`eventData`in i){let n=i.eventData;if(T){let r=await Oi(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:b,updatedAt:b,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=r.run,P=r.purged,await Promise.all([Fr(e,S),Di(e,S)])}}else if(i.eventType===`run_failed`&&`eventData`in i){let n=i.eventData;if(T){let r=await Oi(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:b,updatedAt:b,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=r.run,P=r.purged,await Promise.all([Fr(e,S),Di(e,S)])}}else if(i.eventType===`run_cancelled`){if(T){let n=await Oi(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:b,updatedAt:b,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=n.run,P=n.purged,await Promise.all([Fr(e,S),Di(e,S)])}}else if(i.eventType===`attr_set`&&T)N=await di(S,async()=>{let n=await X(G(e,`runs`,S,t),d);if(!n)throw new pe(S);if(se(i.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:i.eventData.allowReservedAttributes===!0}),i.correlationId&&i.eventData.writer.type===`workflow`&&!await Q(U(e,`.locks`,`attributes`,t?`${S}-${i.correlationId}.created.${t}`:`${S}-${i.correlationId}.created`),``))throw new j(`Attribute event "${i.correlationId}" already exists`);let r={...n,attributes:g(n.attributes,i.eventData.changes),updatedAt:b};return await J(G(e,`runs`,S,t),r,{overwrite:!0}),r});else if(i.eventType===`step_created`&&`eventData`in i){if(!await Q(U(e,`.locks`,`steps`,t?`${S}-${i.correlationId}.created.${t}`:`${S}-${i.correlationId}.created`),``))throw new j(`Step "${i.correlationId}" already created`);let n=i.eventData;F={runId:S,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:b,updatedAt:b,specVersion:w},await J(G(e,`steps`,`${S}-${i.correlationId}`,t),F)}else if(i.eventType===`step_started`){if(!A&&ne){let n=i.eventData;if(await Q(U(e,`.locks`,`steps`,t?`${S}-${i.correlationId}.created.${t}`:`${S}-${i.correlationId}.created`),``)){let r={runId:S,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:b,updatedAt:b,specVersion:w};await J(G(e,`steps`,`${S}-${i.correlationId}`,t),r);let a=await le(S);await ve({eventType:`step_created`,runId:S,eventId:a,createdAt:b,specVersion:w,correlationId:i.correlationId,eventData:{stepName:n.stepName,input:n.input}}),A=r,xe=!0}else throw new j(`Step "${i.correlationId}" already created`)}if(A){if(A.retryAfter&&A.retryAfter.getTime()>Date.now())throw new de(`Cannot start step "${i.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((A.retryAfter.getTime()-Date.now())/1e3)});let n=`${S}-${i.correlationId}`,r=await K(e,`steps`,n,l,t);if(r&&u(r.status))throw new j(`Cannot modify step in terminal state "${r.status}"`);F={...A,status:`running`,startedAt:A.startedAt??b,attempt:A.attempt+1,retryAfter:void 0,updatedAt:b},await J(G(e,`steps`,n,t),F,{overwrite:!0})}}else if(i.eventType===`step_completed`&&`eventData`in i){let n=i.eventData;if(A){let r=`${S}-${i.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new j(`Cannot modify step in terminal state`);F={...A,status:`completed`,output:n.result,completedAt:b,updatedAt:b},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(i.eventType===`step_failed`&&`eventData`in i){let n=i.eventData;if(A){let r=`${S}-${i.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new j(`Cannot modify step in terminal state`);F={...A,status:`failed`,error:n.error,completedAt:b,updatedAt:b},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(i.eventType===`step_retrying`&&`eventData`in i){let n=i.eventData;if(A){let r=`${S}-${i.correlationId}`;F={...A,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:b},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(i.eventType===`hook_created`&&`eventData`in i){let r=i.eventData,a=qn(e,r.token),o,s=()=>JSON.stringify({token:r.token,hookId:i.correlationId,runId:S,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil,...o&&{claimedFrom:o}}),c=await Xn(e,r.token,async c=>{let l=await Yn(a);if(l||=(c.throwIfAborted(),await Z(a),await Mr(e,r.token,t),await Yn(a)),!l)return c.throwIfAborted(),Fe(await Q(a,s())),{status:`claimed`};if(l.runId===S&&l.hookId===i.correlationId)return{status:`owned`,claim:l};if(!await yi(e,l,t)){if(r.force!==!0||!l.hookId)return{status:`conflict`,claim:l};c.throwIfAborted();let a=await K(e,`runs`,l.runId,d,t),s=a!==null&&!O(a.status);if(o={runId:l.runId,hookId:l.hookId,...s&&{workflowName:a.workflowName,deploymentId:a.deploymentId,runSpecVersion:a.specVersion}},s&&(a.specVersion??1)<8)return{status:`conflict`,claim:l,forceRefusedReason:`victim-spec-version`};let u=await Ci(e,S,i.correlationId);u?(n=u,ge={...M,eventId:n}):(ge=await ve({...M,eventData:{...M.eventData,forceClaimedFrom:o}}),n=ge.eventId),await pr(e,S,i.correlationId,t),await J(G(e,`hooks`,i.correlationId,t),{runId:S,hookId:i.correlationId,token:r.token,metadata:r.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:b,specVersion:w,isWebhook:r.isWebhook??!1,isSystem:r.isSystem??!1,tokenRetentionUntil:r.tokenRetentionUntil,claimedFrom:o},{overwrite:!0});let f=await Q(Ln(e,l.hookId,t),JSON.stringify({forceClaimedBy:{runId:S,hookId:i.correlationId}}));s&&f&&await ve({eventType:`hook_disposed`,correlationId:l.hookId,eventData:{token:r.token,forceClaimedBy:{runId:S,hookId:i.correlationId}},runId:l.runId,eventId:await le(l.runId),createdAt:new Date,specVersion:a.specVersion})}return c.throwIfAborted(),o?await Y(a,s(),{overwrite:!0}):await Z(a),l.hookId&&(await Z(G(e,`hooks`,l.hookId,t)),await Z($n(e,r.token,l.runId,l.hookId)),await mr(e,l.runId,l.hookId,t)),c.throwIfAborted(),o||Fe(await Q(a,s())),{status:`claimed`}});if(c.status===`owned`&&c.claim.claimedFrom&&(o=c.claim.claimedFrom),c.status===`owned`){let a=c.claim,o;if(a.eventId)o=a.eventId;else{let a=await Ci(e,S,i.correlationId);if(a!==null)throw await wi(e,S,i.correlationId,a,t),new j(`Hook "${i.correlationId}" already created`);let s=await Ti(e,r.token,S,i.correlationId,n);if(s===null)throw new j(`Hook "${i.correlationId}" already created`);o=s}n=o,p=!0;let s=te(n.replace(/^evnt_/,``))??b;M={...i,eventData:{...i.eventData,tokenRetentionUntil:a.tokenRetentionUntil},runId:S,eventId:n,createdAt:s,specVersion:w}}if(c.status===`conflict`){let e=c.claim,t=await ve({eventType:`hook_conflict`,correlationId:i.correlationId,eventData:{token:r.token,conflictingRunId:e.runId,...c.forceRefusedReason!==void 0&&{forceRefusedReason:c.forceRefusedReason}},runId:S,eventId:n,createdAt:b,specVersion:w}),a=m?.resolveData??`all`,o=typeof m?.sinceCursor==`string`?await be(S,{sortOrder:`asc`,cursor:m.sinceCursor}):void 0,s={event:D(t,a),run:N,step:F,hook:void 0};return o?{...s,events:a===`none`?o.data.map(e=>D(e,a)):o.data,cursor:o.cursor,hasMore:o.hasMore}:s}o&&(M={...M,eventData:{...M.eventData,forceClaimedFrom:o}});let l=M.eventData;I={runId:S,hookId:i.correlationId,token:l.token,metadata:l.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:M.createdAt,specVersion:w,isWebhook:l.isWebhook??!1,isSystem:l.isSystem??!1,tokenRetentionUntil:l.tokenRetentionUntil,...o&&{claimedFrom:o}},Se=c.status===`owned`||o?{overwrite:!0}:void 0,await dr(e,r.token,S,i.correlationId,n,t)}else if(i.eventType===`hook_disposed`){if(!await Q(Ln(e,i.correlationId,t),``))throw new j(`Hook "${i.correlationId}" already disposed`);let n=G(e,`hooks`,i.correlationId,t),r=await K(e,`hooks`,i.correlationId,x,t);r&&(await Qn(e,r.token,r.runId,r.hookId),await Z($n(e,r.token,r.runId,r.hookId))),await Z(n),await mr(e,S,i.correlationId,t)}else if(i.eventType===`wait_created`&&`eventData`in i){let n=`${S}-${i.correlationId}`;if(!await Q(U(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new j(`Wait "${i.correlationId}" already exists`);let r=i.eventData;L={waitId:n,runId:S,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:b,updatedAt:b,specVersion:w},await J(G(e,`waits`,n,t),L)}else if(i.eventType===`wait_completed`){let n=`${S}-${i.correlationId}`,r=U(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new j(`Wait "${i.correlationId}" already completed`);let a=await K(e,`waits`,n,c,t);if(!a)throw await z.unlink(r).catch(()=>{}),new k(`Wait "${i.correlationId}" not found`);L={...a,status:`completed`,completedAt:b,updatedAt:b},await J(G(e,`waits`,n,t),L,{overwrite:!0})}if(i.eventType===`hook_received`&&i.correlationId&&await ye(i.correlationId,i.eventData?.token),i.eventType===`hook_created`&&i.correlationId){let n=await Rn(e,i.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new j(`Hook "${i.correlationId}" was force-claimed by another run before its creation was journaled`)}let R=G(e,`events`,`${S}-${n}`,t),Ce=JSON.stringify(M,q,2),we=async r=>{let i=v(n);if(p||i===null)return!1;let a=await ae(S,{rescan:r>0&&r%8==0,atLeast:i+1});return a!==null&&(n=y(a),M={...M,eventId:n},R=G(e,`events`,`${S}-${n}`,t),Ce=JSON.stringify(M,q,2),!0)},Te=!1;ge&&(M=ge,R=G(e,`events`,`${S}-${n}`,t),Ce=JSON.stringify(M,q,2),Te=!0);for(let r=0;!Te;r++){if(i.eventType===`hook_received`){let r=await Vn(e,S,t),i=r?null:await K(e,`runs`,S,d,t);if(r||i&&O(i.status))throw new fe(`Workflow run "${S}" is already in a terminal state`);let a=Un(e,S,`${n}.${tr()}`,t);if(!await Q(a,Ce))throw new k(`Failed to stage event "${n}" for run "${S}": staging path already exists`);try{if(await Vn(e,S,t))throw new fe(`Workflow run "${S}" is already in a terminal state`);let n=await Ct(a,R);if(n===`missing`)throw new fe(`Workflow run "${S}" is already in a terminal state`);Te=n===`linked`}finally{await Z(a).catch(()=>{})}}else Te=await Q(R,Ce);if(Te){ce(S,n);break}if(i.eventType===`hook_received`&&m?.resumeId){let r=await K(e,`events`,`${S}-${n}`,$,t);if(r&&_i(r,{runId:S,resumeId:m.resumeId,hookId:i.correlationId,eventId:n}))return{event:r}}if(!await we(r))break}if(!Te)throw i.eventType===`hook_created`&&i.correlationId&&await wi(e,S,i.correlationId,n,t),new j(`Event "${n}" already exists for run "${S}"`);_e(M,R,Ce),i.eventType===`hook_received`&&m?.resumeId&&_!==null&&_!==n&&await Y(Zn(e,S,m.resumeId),JSON.stringify({runId:S,resumeId:m.resumeId,hookId:i.correlationId,eventId:n,...m.resumePayloadDigest?{payloadDigest:m.resumePayloadDigest}:{}}),{overwrite:!0}),I&&i.eventType===`hook_created`&&(await pr(e,I.runId,I.hookId,t),await J(G(e,`hooks`,I.hookId,t),I,Se)),P&&(await $r(e,S,t),ee(S));let Ee=m?.resolveData??`all`,De=D(M,Ee),Oe;if(i.eventType===`run_started`&&N&&!m?.skipPreload&&(Oe=await be(S,{limit:re()})),typeof m?.sinceCursor==`string`){let e=await be(S,{sortOrder:`asc`,cursor:m.sinceCursor});Oe=Ee===`none`?{...e,data:e.data.map(e=>D(e,Ee))}:e}let ke={event:De,run:N,step:F,hook:I,wait:L,...xe?{stepCreated:!0}:{},...N?{maxEvents:re()}:{}};return Oe?{...ke,events:Oe.data,cursor:Oe.cursor,hasMore:Oe.hasMore}:ke}},async get(n,r,i){H(`runId`,n),H(`eventId`,r);let a=await K(e,`events`,`${n}-${r}`,$,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);let o=i?.resolveData??`all`;return D(a,o)},async list(e){let{runId:t}=e;H(`runId`,t);let n=e.resolveData??`all`,r=await be(t,{...e.pagination,limit:e.pagination?.limit??re()});return n===`none`?{...r,data:r.data.map(e=>D(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;H(`correlationId`,n),H(`runId`,t.runId);let r=t.resolveData??`all`,a=await kt({directory:B.join(e,`events`),schema:$,cachedItems:i,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:nr(`evnt`),getId:e=>e.eventId,getSortKey:xi,getSortKeyFromFileId:e=>Si(t.runId,e)});return r===`none`?{...a,data:a.data.map(e=>D(e,r))}:a}};async function F(e,t,n){if(!e.event)return e;let r=v(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await P.list({runId:e.event.runId,pagination:{cursor:`${Et}${y(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let I=(async(e,t,n)=>{if(n?.eventCount===void 0)return P.create(e,t,n);let r=n.resolveData??`all`,i=await P.create(e,t,n);return typeof n.sinceCursor==`string`?i:F(i,n.eventCount,r)});return{...P,create:I}}function Ai(e,t){return{get:(async(n,r,i)=>{H(`runId`,n),H(`stepId`,r);let a=await K(e,`steps`,`${n}-${r}`,l,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return wr(a,i?.resolveData??`all`)}),list:(async t=>{H(`runId`,t.runId);let n=t.resolveData??`all`,r=await kt({directory:B.join(e,`steps`),schema:l,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:nr(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function ji(e,t){let n=fi(e,t),r=Ai(e,t),i=ki(e,t),a=Pr(e,t);return{runs:pn(`world.runs`,n),steps:pn(`world.steps`,r),events:pn(`world.events`,i),hooks:pn(`world.hooks`,a),clearCache:()=>i.clearCache()}}function Mi(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...rt.value,...t};Ve(n.dataDir);let r=n.tag,i=wn(n),{clearCache:a,...o}=ji(n.dataDir,r),s=it(n);return{specVersion:E(),capabilities:{hookRetention:{active:!0},hookResumeDedup:!0,hookForceClaim:!0},...i,...o,...pn(`world.streams`,{...Xr(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await Gt(n.dataDir),!s)return;let e=r?e=>pt(e,r):mt,t={...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))};await w(t,i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=B.join(e,`hooks`),i=await ht(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-BQSf8Hax.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await X(B.join(t,n),a);r?.token&&(await Z(B.join(t,`tokens`,`${In(r.token)}.json`)),await Z($n(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=B.join(e,t),i=await ht(n,r);await Promise.all(i.map(e=>Z(B.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=B.join(e,`hooks`,t),i;try{i=await R.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(n,e.name),i=await ht(t,r);await Promise.all(i.map(e=>Z(B.join(t,e))))}))}await R.rm(B.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=B.join(e,`streams`,`chunks`),s;try{s=await R.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(o,e.name),n=await gt(t,r,`.bin`);await Promise.all(n.map(e=>R.unlink(B.join(t,e)).catch(()=>{})))})),ut()}else ut(),vr(),await ke(n.dataDir,{recursive:!0,force:!0}),await Gt(n.dataDir)}}}export{Pt as DataDirAccessError,Ft as DataDirVersionError,Le as UnwritableDataDirError,Mi as createWorld,Vt as ensureDataDir,Gt as initDataDir,It as parseVersion};
|
|
1
|
+
import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{t as n}from"../../_chunks/workflow/debug-log-CVPstO1D.js";import{B as r,F as i,G as a,J as o,K as s,N as c,P as l,Q as u,U as d,V as f,W as p,_ as m,a as h,c as g,ct as _,d as v,dt as y,g as b,h as x,ht as S,it as C,l as ee,m as te,mt as ne,n as re,nt as w,o as T,ot as ie,pt as ae,q as oe,r as se,s as ce,st as le,ut as ue,w as de,x as fe,y as pe,z as E}from"../../_chunks/workflow/dist-BUFGAKRb.js";import{b as me,f as he,j as D,k as ge,o as O,p as _e,r as k,s as A}from"../../_chunks/workflow/dist-CaNNONeg.js";import{i as j,n as ve,r as ye,t as be}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{a as xe,i as M,n as N,r as P,t as F}from"../../_chunks/workflow/signal-exit-DZKTacNU.js";import{z as I}from"#compiled/zod/index.js";import{createHash as L}from"node:crypto";import{promisify as Se}from"node:util";import{fileURLToPath as Ce}from"node:url";import{promises as R}from"node:fs";import z,{access as we,constants as Te,mkdir as Ee,readFile as De,readdir as Oe,readlink as ke,rm as Ae,unlink as je,writeFile as Me}from"node:fs/promises";import B from"node:path";import{tmpdir as Ne}from"node:os";import{execFile as Pe}from"node:child_process";import{setTimeout as Fe}from"node:timers/promises";import Ie from"node:assert";import{EventEmitter as Le}from"node:events";var Re=class extends D{dataDir;constructor(e,t){super(`[workflow] The local (filesystem) world cannot create its data directory "${e}" (${t}). Workflow runs cannot be stored, so every run will fail before its first step. If this is a Vercel deployment, its filesystem is read-only and the local world cannot work there. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world. Otherwise point WORKFLOW_LOCAL_DATA_DIR at a writable directory.`,{code:t}),this.name=`UnwritableDataDirError`,this.dataDir=e}static is(e){return e instanceof Error&&e.name===`UnwritableDataDirError`}};const ze=new Set([`EROFS`,`EACCES`,`EPERM`]);function Be(e){return e!==void 0&&ze.has(e)}const Ve=S(`@workflow/world-local//buildTargetWarnings`,1,()=>({warnedAboutVercelDeployment:!1}));function He(e){if(Ve.warnedAboutVercelDeployment||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=B.resolve(e),n=Ne();t===n||t.startsWith(`${n}${B.sep}`)||(Ve.warnedAboutVercelDeployment=!0,console.warn(`[workflow] Warning: the local (filesystem) world is running inside a Vercel deployment, writing to ${t}. That filesystem is read-only, so workflow runs will fail before their first step. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world.`))}function Ue(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function We(e,t){let n=[],r=e.trim().split(`
|
|
2
|
+
`);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=Ue(i.slice(s+1));c!==void 0&&n.push(c)}return n}const Ge=Se(Pe);function Ke(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const qe=((e,t)=>e.join(t))([``,`proc`],`/`);async function Je(e){let t=[`${qe}/net/tcp`,`${qe}/net/tcp6`],n=[],r=new Set,i=`${qe}/${e}/fd`;try{let e=(await Oe(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await ke(`${i}/${e}`)).match(/^socket:\[(\d+)\]$/)?.[1]??null));for(let e of t)e.status===`fulfilled`&&e.value&&(n.push(e.value),r.add(e.value))}catch{return[]}if(n.length===0)return[];let a=new Map;for(let e of t)try{let t=(await De(e,`utf8`)).split(`
|
|
3
|
+
`).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=Ke(c,16);l!==void 0&&a.set(o,l)}}catch{}let o=[];for(let e of n){let t=a.get(e);t!==void 0&&o.push(t)}return o}async function Ye(e){try{let{stdout:t}=await Ge(`lsof`,[`-a`,`-i`,`-P`,`-n`,`-p`,e.toString()]),n=[],r=t.split(`
|
|
4
|
+
`);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Ke(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function Xe(e){try{let{stdout:t}=await Ge(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return We(t,e)}catch{return[]}}async function Ze(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await Je(e);case`darwin`:return await Ye(e);case`win32`:return await Xe(e);default:return[]}}catch(e){return n(`[getAllPorts] Detection failed:`,e),[]}}const Qe=`${be}/flow?__health`;async function $e(e,t={}){let{endpoint:n=Qe,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function et(e){let t=await Ze();if(t.length===0)return;if(t.length===1)return t[0];let r=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await $e(t,e)})))).find(e=>e.isWorkflow);return r?r.port:(n(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function tt(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const nt=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,rt=()=>process.env.WORKFLOW_LOCAL_BASE_URL,it=tt(()=>({dataDir:nt(),baseUrl:rt()}));function at(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return t!==`0`&&t!==`false`}function ot(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??ve(`http://localhost`)}async function st(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return ve(`http://localhost:${e.port}`);if(process.env.PORT)return ve(`http://localhost:${process.env.PORT}`);let t=await et({endpoint:ye()});if(t)return ve(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const V=S(`@workflow/world-local//fs`,1,()=>({ulid:y(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function ct(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var lt=class extends D{constructor(e,t){super(`Unsafe ${e} "${ct(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function H(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new lt(e,t)}function U(e,...t){let n=B.resolve(e),r=B.resolve(e,...t);if(r!==n&&!r.startsWith(n+B.sep))throw new lt(`path`,t.join(`/`));return r}const ut=process.platform===`win32`;async function W(e,t=5){if(!ut)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}function dt(){V.createdFilesCache.clear(),V.createdDirectoriesCache.clear()}const ft=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function pt(e){return e.replace(ft,``)}function mt(e,t){return e.endsWith(`.${t}`)}function ht(e){return!ft.test(e)}function G(e,t,n,r){return H(`fileId`,n),r!==void 0&&H(`tag`,r),U(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function K(e,t,n,r,i){if(H(`fileId`,n),i!==void 0&&H(`tag`,i),i){let a=await X(U(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(U(e,t,`${n}.json`),r)}async function gt(e,t){let n=`.${t}.json`;try{return(await R.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function _t(e,t,n){let r=`.${t}${n}`;try{return(await R.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function vt(e){let t=B.resolve(e);if(!V.createdDirectoriesCache.has(t))try{await R.mkdir(t,{recursive:!0}),V.createdDirectoriesCache.add(t)}catch(e){let n=e.code;if(Be(n)&&!await yt(t))throw new Re(t,n)}}async function yt(e){try{return(await R.stat(e)).isDirectory()}catch{return!1}}async function bt(e,t){await vt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return V.createdDirectoriesCache.delete(B.resolve(e)),await vt(e),t()}}function q(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function xt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function J(e,t,n){return Y(e,JSON.stringify(t,q,2),n)}async function Y(e,t,n){if(!n?.overwrite){if(V.createdFilesCache.has(e))throw new k(`File ${e} already exists and 'overwrite' is false`);try{throw await R.access(e),V.createdFilesCache.add(e),new k(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${V.ulid()}`,i=!1;try{await bt(B.dirname(e),async()=>{await R.writeFile(r,t),i=!0,await W(()=>R.rename(r,e))}),V.createdFilesCache.add(e)}catch(e){throw i&&await W(()=>R.unlink(r),3).catch(()=>{}),e}}async function X(e,t){try{let n=await W(()=>R.readFile(e,`utf-8`));return t.parse(JSON.parse(n,xt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function St(e){return await R.readFile(e)}async function Ct(e){let t=await R.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Z(e){try{await W(()=>R.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${V.ulid()}`,r=!1;try{return await bt(B.dirname(e),async()=>{await R.writeFile(n,t,{flag:`wx`}),r=!0;try{return await W(()=>R.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await W(()=>R.unlink(n),3).catch(()=>{})}}async function wt(e,t){try{return await bt(B.dirname(t),()=>W(()=>R.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Tt(e){return Et(e,`.json`)}async function Et(e,t){try{return(await R.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const Dt=`key:`;function Ot(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function kt(e,t,n){return n?`${Dt}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function At(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&H(`filePrefix`,i);let m=B.resolve(t),h=await Tt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Ot(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=B.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof I.ZodError)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?kt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}const jt=S(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function Mt(){return typeof import.meta.url==`string`&&import.meta.url?B.dirname(Ce(import.meta.url)):null}async function Nt(){if(jt.cached)return jt.cached;let e=Mt();if(e)try{let t=await De(B.join(e,`../package.json`),`utf-8`);return jt.cached=JSON.parse(t),jt.cached}catch{}return jt.cached={name:`@workflow/world-local`,version:`5.0.0-beta.48`},jt.cached}const Pt=`version.txt`;var Ft=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},It=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function Lt(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function Rt(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function zt(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:Lt(t.substring(n+1))}}function Bt(e,t){return`${e}@${Rt(t)}`}function Vt(e,t){console.log(`[world-local] Upgrading from version ${Rt(e)} to ${Rt(t)}`)}async function Ht(e){let t=B.resolve(e);try{await Ee(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Ft(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await we(t,Te.R_OK)}catch(e){let n=e;throw new Ft(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=B.join(t,`.workflow-write-test-${Date.now()}`);try{await Me(n,``),await je(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Ft(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Ut(e){let t=B.join(B.resolve(e),Pt);try{return zt(await De(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Wt(e,t){let n=B.join(B.resolve(e),Pt),r=Bt((await Nt()).name,t);await Me(n,r)}function Gt(e,t){return t||Rt(e)}async function Kt(e){await Ht(e);let t=await Nt(),n=Lt(t.version),r=await Ut(e);if(r===null){await Wt(e,n);return}let{version:i}=r;if(Rt(i)!==Rt(n))try{Vt(i,n),await Wt(e,n)}catch(e){let r=Gt(i,e instanceof It?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${Rt(i)} to ${Rt(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}const qt=S(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function Jt(){return qt.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),qt.apiPromise}async function Yt(){return qt.tracerPromise||=Jt().then(e=>e?e.trace.getTracer(`workflow`):null),qt.tracerPromise}async function Xt(e,...t){let[n,r]=await Promise.all([Yt(),Jt()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Zt(e){let t=await Jt();if(t)return t.SpanKind[e]}function Qt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const $t=Qt(`peer.service`),en=Qt(`rpc.system`),tn=Qt(`rpc.service`),nn=Qt(`rpc.method`),rn=Qt(`workflow.run.id`),an=Qt(`step.id`),on={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},sn={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},cn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function ln(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function un(e,t){return typeof e[t]==`string`?e[t]:void 0}function dn(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function fn(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function pn(e,t,n){let r=`${e}.${t}`,i={},a=sn[r],o=a===void 0?cn.has(r)?dn(n[0]):void 0:un(n,a);if(o&&Object.assign(i,rn(o)),r===`world.steps.get`){let e=un(n,1);e&&Object.assign(i,an(e))}return i}function mn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=ln(t);r&&(n=`${e}.${a} ${r}`)}return Xt(n,{kind:await Zt(`INTERNAL`)},async r=>{r?.setAttributes({...$t(on.peerService),...en(on.rpcSystem),...tn(on.rpcService),...nn(n),...pn(e,a,t)});let o=await i(...t),s=fn(o);return s&&r?.setAttributes(rn(s)),o})}}return n}var hn=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),gn=N(),_n=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,q))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,xt)}};const vn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,yn=2147483647,bn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function xn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function Sn(){return{bodyTimeout:xn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,0),connections:1e3,headersTimeout:xn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,0),keepAliveTimeout:3e4}}const Cn=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function wn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(Cn))return!0;t=`cause`in t?t.cause:void 0}return!1}function Tn(e){let t=Sn(),r=b()?P({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,i=r?void 0:new gn.Agent(t),a=new _n,o=y(),s=new hn.Sema(bn),c=new AbortController,l=c.signal,u=new Map,d=new Map,f=async(c,f,p)=>{let m=[];if(p?.idempotencyKey){let e=u.get(p.idempotencyKey);if(e)return{messageId:e}}let h=a.serialize(f),{prefix:g}=de(c),_=pe.parse(`msg_${o()}`),v=f,y=v.runId??void 0,b=v.stepId??void 0;if(p?.idempotencyKey){let e=p.idempotencyKey;u.set(e,_),m.push(()=>{u.delete(e)})}return(async()=>{if(p?.delaySeconds&&p.delaySeconds>0){let e=Math.min(p.delaySeconds*1e3,yn);await Fe(e,void 0,{signal:l})}s.tryAcquire()||(n(`[world-local]: concurrency limit (${bn}) reached, waiting for queue to free up`),await s.acquire());let a=0;try{for(let n=0;n<256;n++){let o={...p?.headers,"content-type":`application/json`,"x-vqs-queue-name":c,"x-vqs-message-id":_,"x-vqs-message-attempt":String(a+1)},s=d.get(g),u,f;try{if(s)u=await s(new Request(j(ot(e),{type:`flow`}),{method:`POST`,headers:o,body:h}));else{let n=await st(e),a=j(n,{type:`flow`});u=r?await xe(a,{method:`POST`,headers:new Headers(o),body:h,agents:r,signal:l,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(a,{method:`POST`,duplex:`half`,dispatcher:i,headers:o,body:h,signal:l})}a++,f=await u.text()}catch(e){let t=e?.name;if(l.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(wn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${n+1}), retrying`,{queueName:c,messageId:_,...y&&{runId:y},...b&&{stepId:b},error:String(e)}),await Fe(5e3,void 0,{signal:l});continue}if(u.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,yn);await Fe(t,void 0,{signal:l})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${a}, HTTP ${u.status})`,{queueName:c,messageId:_,...y&&{runId:y},...b&&{stepId:b},handlerError:f}),await Fe(5e3,void 0,{signal:l})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:c,messageId:_,...y&&{runId:y},...b&&{stepId:b}})}finally{s.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(wn(e)?console.error(`[local world] Queue operation failed: detected "${Cn}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:c,messageId:_,...y&&{runId:y},...b&&{stepId:b},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of m)e()}),{messageId:_}},p=I.compile(I.object({"x-vqs-queue-name":fe,"x-vqs-message-id":pe,"x-vqs-message-attempt":I.coerce.number()}));return{queue:f,createQueueHandler:(e,t)=>async n=>{let r=p.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new _n().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a});if(typeof s==`object`&&s&&`invoke`in s&&s.invoke===!0)return Response.json({result:e});let n=null;return typeof e==`object`&&e&&`timeoutSeconds`in e&&typeof e.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,vn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Nt()).version}`,registerHandler(e,t){d.set(e,t)},async close(){l.aborted||(c.abort(),r&&M(r),await i?.close())}}}var En=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!(e&&e.code!==`ENOSYS`&&(process.getuid&&process.getuid()===0||e.code!==`EINVAL`&&e.code!==`EPERM`))}}})),Dn=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=65536,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),On=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),kn=t(((t,n)=>{var r=e(`fs`),i=En(),a=Dn(),o=On(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
+
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=te,e.createWriteStream=ne;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;w(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function ee(){var e=this;w(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function te(t,n){return new e.ReadStream(t,n)}function ne(t,n){return new e.WriteStream(t,n)}var re=e.open;e.open=w;function w(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return re(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),An=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0){if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1}var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),jn=t((e=>{var t=An();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),Mn=t(((e,t)=>{t.exports=jn()})),Nn=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),Pn=t(((t,n)=>{let r=e(`path`),i=kn(),a=Mn(),o=F(),s=Nn(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),Fn=t(((e,t)=>{let n=kn();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),In=t(((e,t)=>{let n=Pn(),{toPromise:r,toSync:i,toSyncOptions:a}=Fn();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function Ln(e){return L(`sha256`).update(e).digest(`hex`)}function Rn(e,t,n){return U(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function zn(e,t,n){let r=[Rn(e,t)];n&&r.push(Rn(e,t,n));for(let e of r){let t;try{t=await z.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function Bn(e,t,n){let r=[Rn(e,t)];n&&r.push(Rn(e,t,n));for(let e of r)try{return await z.access(e),!0}catch{}return!1}function Vn(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function Hn(e,t,n){let r=[Vn(e,t)];n&&r.push(Vn(e,t,n));for(let e of r)try{return await z.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function Un(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Wn(e,t,n,r){return B.join(Un(e,t,r),`${n}.json`)}async function Gn(e,t,n){let r=[Un(e,t)];n&&r.push(Un(e,t,n));for(let e of r){let t;try{t=await z.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await W(()=>z.unlink(B.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await z.rmdir(e).catch(()=>{})}}async function Kn(e,t,n){let r=await qn(e,t,n),i=Date.now();if(r.maxId)try{let e=ue(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${nr(i)}`,createdAt:new Date(i)}}async function qn(e,t,n){let r=[];try{r=await z.readdir(B.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!ht(t)&&!(n&&mt(t,n)))continue;let r=pt(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=g(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Jn(e,t){return B.join(e,`hooks`,`tokens`,`${Ln(t)}.json`)}const Yn=I.compile(I.object({hookId:I.string().optional(),runId:I.string(),eventId:I.string().optional(),tokenRetentionUntil:I.coerce.date().optional(),claimedFrom:I.object({runId:I.string(),hookId:I.string(),workflowName:I.string().optional(),deploymentId:I.string().optional(),runSpecVersion:I.number().optional()}).optional()}));async function Xn(e){try{return await X(e,Yn)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}async function Zn(e,t,n){let r=Jn(e,t);await z.mkdir(B.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,In.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new D(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new D(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new D(`Could not release Hook token claim lock`,{cause:e})}return o}function Qn(e,t,n){let r=L(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return B.join(e,`hooks`,`resumes`,`${r}.json`)}async function $n(e,t,n,r){await Zn(e,t,async i=>{let a=Jn(e,t),o=await Xn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function er(e,t,n,r){let i=L(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return B.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const tr=S(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:y(()=>Math.random())})),nr=e=>tr.next(e),rr=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=pt(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return re(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return re(a)}},ir=I.compile(I.object({runId:I.string()})),ar=I.compile(I.object({hookId:I.string(),tag:I.string().optional()}));function or(e,t){return U(e,`hooks`,`token-index`,Ln(t))}function sr(e,t){return H(`hookId`,t),U(e,`hooks`,`id-index`,t)}function cr(e){return U(e,`hooks`,`by-run`)}function lr(e){let t=pt(e);return t===e?void 0:e.slice(t.length+1)}function ur(e,t){return t?ht(e)||mt(e,t):ht(e)}async function dr(e){try{return await X(e,f)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}async function fr(e,t,n,r,i,a){H(`runId`,n),H(`eventId`,i),a!==void 0&&H(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(B.join(or(e,t),o),s),Q(B.join(sr(e,r),o),s)])}function pr(e,t,n,r){return G(e,`hooks/by-run`,`${t}-${n}`,r)}async function mr(e,t,n,r){await Q(pr(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function hr(e,t,n,r){await Z(pr(e,t,n,r)),r&&await Z(pr(e,t,n))}async function gr(e,t){H(`runId`,t);let n=cr(e),r=`${t}-`,i=[];for(let e of await Tt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(B.join(n,`${e}.json`),ar)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function _r(e,t){await Z(B.join(cr(e),`${t}.json`))}const vr=S(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function yr(){vr.ensuredBasedirs.clear()}async function br(e){let t=B.resolve(e),n=vr.ensuredBasedirs.get(t);return n||(n=Sr(t).catch(e=>{throw vr.ensuredBasedirs.delete(t),e}),vr.ensuredBasedirs.set(t,n)),n}async function xr(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function Sr(e){let t=B.join(e,`hooks`,`.hook-index-complete`);try{await z.access(t);return}catch{}let n=B.join(e,`events`);await xr(await Tt(n),32,async t=>{let r=await dr(B.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await fr(e,i,r.runId,r.correlationId,r.eventId,lr(t))}catch{}});let r=B.join(e,`hooks`);await xr(await Tt(r),32,async t=>{let n=null;try{n=await X(B.join(r,`${t}.json`),m)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(n)try{await mr(e,n.runId,n.hookId,lr(t))}catch{}}),await Q(t,``)}async function Cr(e,t,n,r){await br(e);let i;try{i=t.kind===`token`?or(e,t.token):sr(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=pt(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await Tt(i)).filter(e=>ur(e,r)).sort((e,t)=>pt(t).localeCompare(pt(e)));for(let t of o){let r=null;try{r=await X(B.join(i,`${t}.json`),ir)}catch(e){if(!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=G(e,`events`,`${r.runId}-${o}`,lr(t))}catch{continue}let c=await dr(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}function wr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Tr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Er(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function Dr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Or(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a,forceClaimedFrom:o}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,...o!==void 0&&{claimedFrom:o},metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function kr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Ar(e,t,n){let i=await K(e,`runs`,t,E,n);return i?r(i.status):!1}async function jr(e,t,n,r){let i=async t=>{if(await Ar(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await Bn(e,t.correlationId,r)},a=await Cr(e,t,e=>kr(e,n)&&i(e),r);return a&&kr(a,n)?a:null}async function Mr(e,t,n){let r=Or(t);return await Q(Jn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil,...r.claimedFrom&&{claimedFrom:r.claimedFrom}})),await mr(e,r.runId,r.hookId,n),await Q(G(e,`hooks`,r.hookId,n),JSON.stringify(r,q,2)),r}async function Nr(e,t,n){let r=await jr(e,{kind:`token`,token:t},e=>Dr(e)===t,n);return r?Mr(e,r,n):null}async function Pr(e,t,n){let r=await jr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Mr(e,r,n):null}function Fr(e,t){async function n(n){return await Bn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Ar(e,n.runId,t)}async function r(n){let r=await zn(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await Xn(Jn(e,i));if(a?.hookId)try{let o=await K(e,`hooks`,a.hookId,m,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new A(i)}else if(o)return null}catch(e){if(!lt.is(e))throw e;return null}let o=B.join(e,`hooks`),s=await Tt(o),c=!1;for(let e of s){let t=await X(B.join(o,`${e}.json`),m);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new A(i)}}if(c)throw new A(i);return null}async function a(r,i){H(`hookId`,r);let a=await K(e,`hooks`,r,m,t);if(a&&!await n(a))throw new A(r);let o=a??await Pr(e,r,t);if(!o)throw new A(r);let s=i?.resolveData||`all`;return Er({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await Nr(e,n,t);if(!r)throw new A(n);return r}async function s(t){let r=B.join(e,`hooks`),i=t.resolveData||`all`,a=await At({directory:r,schema:m,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>Er(e,i))}}return{get:a,getByToken:o,list:s}}async function Ir(e,t){await br(e);for(let n of await gr(e,t)){if(n.hookId){let r=null,i=null;try{i=G(e,`hooks`,n.hookId,n.tag),r=await X(i,m)}catch(e){if(!lt.is(e)&&!(e instanceof SyntaxError||e instanceof I.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await $n(e,r.token,r.runId,r.hookId),await Z(er(e,r.token,r.runId,r.hookId)),await Z(i)}}await _r(e,n.fileId)}}const Lr=S(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:y(()=>Math.random())})),Rr=e=>Lr.next(e),zr=I.compile(I.object({streams:I.array(I.string())}));function Br(e){return e===1}function Vr(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function Hr(e){return Br(e[0])}function Ur(e){return{eof:Hr(e),chunk:Buffer.from(e.subarray(1))}}async function Wr(e){try{return await z.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function Gr(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function Kr(e,t){return H(`streamName`,t),B.join(e,t)}async function qr(e,t,n){let r=Kr(e,t),i=await Wr(r),a=new Map;return Gr(a,i,`.json`),Gr(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&Gr(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const Jr=`chnk_${`0`.repeat(26)}`;async function Yr(e,t,n){let r=B.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{H(`runId`,t),a=(await K(e,`streams/runs`,t,zr,n))?.streams??[]}catch(e){Xr(`streams of ${t}`,e);return}for(let e of a)try{let t=Kr(r,e);await Y(B.join(t,`${Jr}${i}.bin`),Vr({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await Wr(t))e.startsWith(Jr)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await W(()=>z.unlink(B.join(t,e))).catch(t=>{t.code!==`ENOENT`&&Xr(e,t)})}catch(t){Xr(e,t)}}function Xr(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function Zr(e,t){let n=t?`.${t}`:``,r=new Le,i=new Set;async function a(n,r){H(`runId`,n),H(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=G(e,`streams/runs`,n,t),s=(await K(e,`streams/runs`,n,zr,t))?.streams??[];s.includes(r)||(s.push(r),await J(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${Rr()}`;await a(await t,i);let l=o(s),u=Vr({chunk:l,eof:!1});await Y(B.join(Kr(B.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${Rr()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=Vr({chunk:t,eof:!1});return await Y(B.join(Kr(B.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${Rr()}`;await a(await t,i),await Y(B.join(Kr(B.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),Vr({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return H(`runId`,n),(await K(e,`streams/runs`,n,zr,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await qr(B.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=B.join(c,`${e}${t}`);if(f<l){if(Br(await Ct(n))){u=!0;break}f++;continue}if(d.length>=a){Br(await Ct(n))?u=!0:f++;break}let r=Ur(await St(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await qr(B.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(Br(await Ct(B.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=B.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await qr(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;Br(await Ct(B.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=Ur(await St(B.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await qr(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=Ur(await St(B.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function Qr(e){let t=le(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${C} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function $r(e,t){return{...e,input:void 0,output:void 0,error:void 0,expiredAt:t}}async function ei(e,t,n){await Promise.all([ni(B.join(e,`steps`),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),ni(B.join(e,`events`),t,e=>{let t=e.eventData;if(t&&typeof t==`object`)for(let n of u(String(e.eventType)))delete t[n]}),ri(e,t),Yr(e,t,n)])}const ti=I.record(I.string(),I.any()),$=I.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of u(String(e.eventType)))n in t||(t[n]=void 0)}return e},f);async function ni(e,t,n){let r;try{r=await Tt(e)}catch(t){ii(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=B.join(e,`${i}.json`);try{let e=await X(r,ti);if(!e)continue;n(e),await J(r,e,{overwrite:!0})}catch(e){ii(r,e)}}}async function ri(e,t){let n;try{await br(e),n=await gr(e,t)}catch(e){ii(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=G(e,`hooks`,r.hookId,r.tag),i=await X(n,ti);if(!i||i.runId!==t)continue;i.metadata=void 0,await J(n,i,{overwrite:!0})}catch(e){ii(r.hookId,e)}}function ii(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const ai=new Le;ai.setMaxListeners(0);function oi(){return ae(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function si(e){ai.emit(`run:${e}`)}function ci(e,t,n){return t<=0||n?.aborted?Promise.resolve():new Promise(r=>{let i=`run:${e}`,a=!1,o=()=>{a||(a=!0,clearTimeout(s),ai.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);ai.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function li(e,t,n,i,a,o){if(r(o.status)||await Hn(e,t))throw new he(`Workflow run "${t}" is already in a terminal state`);let s=Wn(e,t,n);await Q(s,i);try{if(await Hn(e,t)||await wt(s,a)!==`linked`)throw new he(`Workflow run "${t}" is already in a terminal state`)}finally{await z.unlink(s).catch(()=>{})}}async function ui(e,t,n,r,i){H(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(Vn(e,t),``),await Gn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes},o=Qr(i.attributes),s=o?$r(i,n):i;return await J(U(e,`runs`,`${t}.json`),s,{overwrite:!0}),si(t),await Ir(e,t),o&&await ei(e,t,void 0),{event:void 0,run:wr(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${nr()}`,s=new Date,c={...n,runId:t,eventId:i,createdAt:s,specVersion:8},l=U(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await li(e,t,i,JSON.stringify(c,q,2),l,r):await J(l,c),{event:o(c,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const di=S(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function fi(e,t){let n=di.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{di.byKey.get(e)===r.task&&di.byKey.delete(e)}})();return r.task=i,di.byKey.set(e,i),i}function pi(e,t){let n=(async(n,r)=>{H(`runId`,n);let i=await K(e,`runs`,n,E,t);if(!i)throw new ge(n);return wr(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let i=Date.now()+(t?.timeoutMs??0);for(;;){let a=await n(e,t);if(r(a.status))return a;let o=i-Date.now();if(o<=0||t?.signal?.aborted)return a;await ci(e,Math.min(o,oi()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof ge)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await At({directory:B.join(e,`runs`),schema:E,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:rr(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(n,r,i)=>(H(`runId`,n),fi(n,async()=>{let a=await K(e,`runs`,n,E,t);if(!a)throw new ge(n);try{_(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof w,e}let o=ie(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await J(G(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const mi=864e5;function hi(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new D(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*mi}const gi=I.compile(I.object({eventId:I.string()})),_i=I.compile(I.object({runId:I.string(),resumeId:I.string(),hookId:I.string(),eventId:I.string(),payloadDigest:I.string().optional()}));function vi(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function yi(e,t,n,r){let i=await qn(e,t,r);for(let a of i.ids){let i=await K(e,`events`,`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&vi(i,n))return i}return null}async function bi(e,t,n){if(t.hookId&&await Bn(e,t.hookId,n))return!0;let i=await K(e,`runs`,t.runId,E,n);return i?r(i.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function xi(e){try{return await X(e,gi)}catch(e){if(e instanceof SyntaxError||e instanceof I.ZodError)return null;throw e}}function Si(e){return ee(e.eventId)?e.eventId:null}function Ci(e,t){let n=pt(t).slice(e.length+1);return ee(n)?n:null}async function wi(e,t,n){return(await At({directory:B.join(e,`events`),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:rr(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Ti(e,t,n,r,i){let a=await K(e,`events`,`${t}-${r}`,$,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await K(e,`hooks`,n,m,i))return;let o=Or(a);await fr(e,o.token,t,n,r,i),await mr(e,t,n,i),await Q(G(e,`hooks`,n,i),JSON.stringify(o,q,2))}async function Ei(e,t,n,r,i){let a=er(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await xi(a))?.eventId??null}function Di(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Oi(e,t){let n=B.join(e,`waits`),r=await Tt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(B.join(n,`${e}.json`))}async function ki(e,t,n,i){return fi(t,async()=>{let a=(await X(G(e,`runs`,t,n),E))?.attributes??i.attributes,o={...i,attributes:a},s=r(o.status)&&Qr(a);return s&&(o=$r(o,new Date)),await J(G(e,`runs`,t,n),o,{overwrite:!0}),r(o.status)&&si(t),{run:o,purged:s}})}function Ai(e,t){let n=hi(),u=4194304,f=new Map,y=new Map,b=new Map,x=0;function S(e){let t=f.get(e);if(!t)return;f.delete(e),x-=y.get(e)??0,y.delete(e);let n=b.get(t.runId);n?.delete(e),n?.size===0&&b.delete(t.runId)}function C(e){for(let t of b.get(e)??[])S(t)}function w(){f.clear(),y.clear(),b.clear(),x=0,T.clear()}let T=new Map;function ae(e){return t?`${e}.${t}`:e}async function le(n,r){let i=`${n}-${v(r)}`;for(let n of t?[G(e,`events`,i,t),G(e,`events`,i)]:[G(e,`events`,i)])try{return await z.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function ue(n,r){let i=ae(n),a=T.get(i);if(a===void 0||r?.rescan){let r=await qn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},T.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await le(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function de(e,t){let n=g(t);if(n===null)return;let r=T.get(ae(e));r&&(r.published=Math.max(r.published,n))}async function fe(e){let t=await ue(e);return t===null?`evnt_${nr()}`:v(t)}async function pe(n){let r=await ue(n,{rescan:!0});return r===null?Kn(e,n,t):{eventId:v(r),createdAt:new Date}}function j(e,t,n){if(n>u)return;for(;f.size>0&&(f.size>=1e3||x+n>u);){let e=f.keys().next().value;S(e)}f.set(e,t),y.set(e,n),x+=n;let r=b.get(t.runId)??new Set;r.add(e),b.set(t.runId,r)}function ve(e,t,n){if(oe(e.eventType)){C(e.runId);return}let r=Buffer.byteLength(n);if(r>u)return;let i=$.safeParse(JSON.parse(n,xt));i.success&&j(t,i.data,r)}async function ye(n){let r=n;for(let n=0;;n++){let i=G(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,q,2),o=g(r.eventId);if(o===null)return await Y(i,a),ve(r,i,a),r;if(await Q(i,a))return de(r.runId,r.eventId),ve(r,i,a),r;let s=await ue(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Ie(s!==null),r={...r,eventId:v(s)}}}async function be(n,r){let i=await zn(e,n,t);if(i.committed)throw i.forceClaimedBy?new O(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new A(n)}let xe=(t,n)=>At({directory:B.join(e,`events`),schema:$,cachedItems:f,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:rr(`evnt`),getId:e=>e.eventId,getSortKey:Si,getSortKeyFromFileId:e=>Ci(t,e)}),M=new Map,N=new Map,P={clearCache:w,async create(u,f,y){if(f.eventType===`hook_created`&&f.eventData.tokenRetentionUntil!==void 0&&f.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new D(`Hook minimum retention cannot exceed ${n/mi} days in the Local World.`,{status:400});if(u!=null&&u!==``&&H(`runId`,u),`correlationId`in f&&typeof f.correlationId==`string`&&H(`correlationId`,f.correlationId),s(f.eventType)&&u&&f.correlationId){let e=t?`${u}-${f.correlationId}.${t}`:`${u}-${f.correlationId}`;return Di(M,e,b)}if(a(f.eventType)&&u&&f.correlationId){let e=t?`${u}-${f.correlationId}.hook.${t}`:`${u}-${f.correlationId}.hook`;return Di(N,e,b)}return b();async function b(){let n=``,a=!1,b=null,x=new Date,S;if(f.eventType===`run_created`&&(!u||u===``))S=`wrun_${nr()}`;else if(u)S=u;else throw Error(`runId is required for non-run_created events`);if(f.eventType===`run_created`&&u&&u!==``){let e=se(S,`wrun_`);if(e)throw new D(e)}let w=f.specVersion??8,T=null;if(f.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(f.eventType)&&(T=await K(e,`runs`,S,E,t),f.eventType===`run_started`&&!T&&`eventData`in f&&f.eventData)){let n=f.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){_(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:S,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:w,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:x,updatedAt:x};if(await Q(G(e,`runs`,S,t),JSON.stringify(r,q))){let e=await fe(S);await ye({eventType:`run_created`,runId:S,eventId:e,createdAt:x,specVersion:w,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),T=r}else T=await K(e,`runs`,S,E,t)}}if(n=await fe(S),!T&&(f.eventType===`run_failed`||f.eventType===`attr_set`||f.eventType===`run_started`))throw new ge(S);if(T){if(ce(T.specVersion))throw new _e(T.specVersion,8);if(h(T.specVersion))return ui(e,S,f,T,y&&{resolveData:te(y.resolveData)})}let ae=d(f),le=ae&&f.eventType===`step_started`;if(T&&r(T.status)){if(f.eventType===`run_cancelled`&&T.status===`cancelled`){let e=await ye({...f,runId:S,eventId:n,createdAt:x,specVersion:w}),t=y?.resolveData??`all`;return{event:o(e,t),run:T,...T?{maxEvents:ne()}:{}}}if(f.eventType===`run_started`)throw new he(`Workflow run "${S}" is already in terminal state "${T.status}"`);if(oe(f.eventType))throw new k(`Cannot transition run from terminal state "${T.status}"`);if(ae)throw new k(`Cannot create new entities on run in terminal state "${T.status}"`);if(f.eventType===`attr_set`)throw new k(`Cannot set attributes on run in terminal state "${T.status}"`)}let O=null;if(s(f.eventType)&&f.eventType!==`step_created`&&f.correlationId){if(O=await K(e,`steps`,`${S}-${f.correlationId}`,l,t),!O&&!le)throw new D(`Step "${f.correlationId}" not found`);if(le&&O)throw new k(`Step "${f.correlationId}" already created`);if(O){if(i(O.status))throw new k(`Cannot modify step in terminal state "${O.status}"`);if(T&&r(T.status)&&(O.status!==`running`||f.eventType===`step_started`))throw new he(`Cannot ${f.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${T.status}"`)}}if(p(f.eventType)&&f.correlationId){if(f.eventType===`hook_received`&&y?.resumeId){let n=await X(Qn(e,S,y.resumeId),_i);if(n&&n.hookId===f.correlationId&&(!y.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===y.resumePayloadDigest)){let r=await K(e,`events`,`${S}-${n.eventId}`,$,t),i=r&&vi(r,n)?r:await yi(e,S,n,t);if(i)return{event:i}}}if(f.eventType===`hook_received`&&await be(f.correlationId,f.eventData?.token),!await K(e,`hooks`,f.correlationId,m,t))throw new A(f.correlationId);if(f.eventType===`hook_received`&&y?.resumeId){let r=Qn(e,S,y.resumeId),i=async r=>{if(r.hookId!==f.correlationId)throw new k(`hook_received resumeId "${y.resumeId}" already recorded for a different hook`);if(y.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==y.resumePayloadDigest)throw new k(`hook_received resumeId "${y.resumeId}" already recorded with a different payload`);let i=await K(e,`events`,`${S}-${r.eventId}`,$,t);if(i&&vi(i,r))return{event:i};let o=await yi(e,S,r,t);return o?{event:o}:(b=r.eventId,i||(n=r.eventId,a=!0),null)},o=await X(r,_i);if(o){let e=await i(o);if(e)return e}else if(a=!ee(n),b=n,!await Q(r,JSON.stringify({runId:S,resumeId:y.resumeId,hookId:f.correlationId,eventId:n,...y.resumePayloadDigest?{payloadDigest:y.resumePayloadDigest}:{}}))){b=null;let e=await X(r,_i);if(e){let t=await i(e);if(t)return t}}}}let j,M={...f,runId:S,eventId:n,createdAt:x,specVersion:w,...f.eventType===`hook_received`&&y?.resumeId?{resumeId:y.resumeId}:{}};if(f.eventType===`run_started`&&`eventData`in M&&delete M.eventData,le&&M.eventType===`step_started`&&M.eventData){let{input:e,...t}=M.eventData;M={...M,eventData:t}}let N,P=!1,F,I,L,Se=!1,Ce;if(oe(f.eventType)&&T){await Q(Vn(e,S,t),``),await Gn(e,S,t);let r=await pe(S);n=r.eventId,M={...M,eventId:n,createdAt:r.createdAt}}if(f.eventType===`run_created`&&`eventData`in f){let n=f.eventData;if(_(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),N={runId:S,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:w,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:x,updatedAt:x},!await Q(G(e,`runs`,S,t),JSON.stringify(N,q,2)))throw new k(`Workflow run "${S}" already exists`)}else if(f.eventType===`run_started`){if(T){if(T.status===`running`){if(y?.skipPreload)return{run:T,maxEvents:ne()};let e=await xe(S,{limit:ne()});return{run:T,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:ne()}}let n=await ki(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:T.startedAt??x,updatedAt:x,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=n.run,P=n.purged}}else if(f.eventType===`run_completed`&&`eventData`in f){let n=f.eventData;if(T){let r=await ki(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:x,updatedAt:x,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=r.run,P=r.purged,await Promise.all([Ir(e,S),Oi(e,S)])}}else if(f.eventType===`run_failed`&&`eventData`in f){let n=f.eventData;if(T){let r=await ki(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:x,updatedAt:x,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=r.run,P=r.purged,await Promise.all([Ir(e,S),Oi(e,S)])}}else if(f.eventType===`run_cancelled`){if(T){let n=await ki(e,S,t,{runId:T.runId,deploymentId:T.deploymentId,workflowName:T.workflowName,specVersion:T.specVersion,executionContext:T.executionContext,input:T.input,createdAt:T.createdAt,expiredAt:T.expiredAt,startedAt:T.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:x,updatedAt:x,attributes:T.attributes,encryptionPublicKey:T.encryptionPublicKey});N=n.run,P=n.purged,await Promise.all([Ir(e,S),Oi(e,S)])}}else if(f.eventType===`attr_set`&&T)N=await fi(S,async()=>{let n=await X(G(e,`runs`,S,t),E);if(!n)throw new ge(S);if(_(f.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:f.eventData.allowReservedAttributes===!0}),f.correlationId&&f.eventData.writer.type===`workflow`&&!await Q(U(e,`.locks`,`attributes`,t?`${S}-${f.correlationId}.created.${t}`:`${S}-${f.correlationId}.created`),``))throw new k(`Attribute event "${f.correlationId}" already exists`);let r={...n,attributes:ie(n.attributes,f.eventData.changes),updatedAt:x};return await J(G(e,`runs`,S,t),r,{overwrite:!0}),r});else if(f.eventType===`step_created`&&`eventData`in f){if(!await Q(U(e,`.locks`,`steps`,t?`${S}-${f.correlationId}.created.${t}`:`${S}-${f.correlationId}.created`),``))throw new k(`Step "${f.correlationId}" already created`);let n=f.eventData;F={runId:S,stepId:f.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:x,updatedAt:x,specVersion:w},await J(G(e,`steps`,`${S}-${f.correlationId}`,t),F)}else if(f.eventType===`step_started`){if(!O&&le){let n=f.eventData;if(await Q(U(e,`.locks`,`steps`,t?`${S}-${f.correlationId}.created.${t}`:`${S}-${f.correlationId}.created`),``)){let r={runId:S,stepId:f.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:x,updatedAt:x,specVersion:w};await J(G(e,`steps`,`${S}-${f.correlationId}`,t),r);let i=await fe(S);await ye({eventType:`step_created`,runId:S,eventId:i,createdAt:x,specVersion:w,correlationId:f.correlationId,eventData:{stepName:n.stepName,input:n.input}}),O=r,Se=!0}else throw new k(`Step "${f.correlationId}" already created`)}if(O){if(O.retryAfter&&O.retryAfter.getTime()>Date.now())throw new me(`Cannot start step "${f.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((O.retryAfter.getTime()-Date.now())/1e3)});let n=`${S}-${f.correlationId}`,r=await K(e,`steps`,n,l,t);if(r&&i(r.status))throw new k(`Cannot modify step in terminal state "${r.status}"`);F={...O,status:`running`,startedAt:O.startedAt??x,attempt:O.attempt+1,retryAfter:void 0,updatedAt:x},await J(G(e,`steps`,n,t),F,{overwrite:!0})}}else if(f.eventType===`step_completed`&&`eventData`in f){let n=f.eventData;if(O){let r=`${S}-${f.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new k(`Cannot modify step in terminal state`);F={...O,status:`completed`,output:n.result,completedAt:x,updatedAt:x},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(f.eventType===`step_failed`&&`eventData`in f){let n=f.eventData;if(O){let r=`${S}-${f.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new k(`Cannot modify step in terminal state`);F={...O,status:`failed`,error:n.error,completedAt:x,updatedAt:x},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(f.eventType===`step_retrying`&&`eventData`in f){let n=f.eventData;if(O){let r=`${S}-${f.correlationId}`;F={...O,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:x},await J(G(e,`steps`,r,t),F,{overwrite:!0})}}else if(f.eventType===`hook_created`&&`eventData`in f){let i=f.eventData,s=Jn(e,i.token),c,l=()=>JSON.stringify({token:i.token,hookId:f.correlationId,runId:S,eventId:n,tokenRetentionUntil:i.tokenRetentionUntil,...c&&{claimedFrom:c}}),u=await Zn(e,i.token,async a=>{let o=await Xn(s);if(o||=(a.throwIfAborted(),await Z(s),await Nr(e,i.token,t),await Xn(s)),!o)return a.throwIfAborted(),Ie(await Q(s,l())),{status:`claimed`};if(o.runId===S&&o.hookId===f.correlationId)return{status:`owned`,claim:o};if(!await bi(e,o,t)){if(i.force!==!0||!o.hookId)return{status:`conflict`,claim:o};a.throwIfAborted();let s=await K(e,`runs`,o.runId,E,t),l=s!==null&&!r(s.status);if(c={runId:o.runId,hookId:o.hookId,...l&&{workflowName:s.workflowName,deploymentId:s.deploymentId,runSpecVersion:s.specVersion}},l&&(s.specVersion??1)<8)return{status:`conflict`,claim:o,forceRefusedReason:`victim-spec-version`};let u=await wi(e,S,f.correlationId);u?(n=u,j={...M,eventId:n}):(j=await ye({...M,eventData:{...M.eventData,forceClaimedFrom:c}}),n=j.eventId),await mr(e,S,f.correlationId,t),await J(G(e,`hooks`,f.correlationId,t),{runId:S,hookId:f.correlationId,token:i.token,metadata:i.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:x,specVersion:w,isWebhook:i.isWebhook??!1,isSystem:i.isSystem??!1,tokenRetentionUntil:i.tokenRetentionUntil,claimedFrom:c},{overwrite:!0});let d=await Q(Rn(e,o.hookId,t),JSON.stringify({forceClaimedBy:{runId:S,hookId:f.correlationId}}));l&&d&&await ye({eventType:`hook_disposed`,correlationId:o.hookId,eventData:{token:i.token,forceClaimedBy:{runId:S,hookId:f.correlationId}},runId:o.runId,eventId:await fe(o.runId),createdAt:new Date,specVersion:s.specVersion})}return a.throwIfAborted(),c?await Y(s,l(),{overwrite:!0}):await Z(s),o.hookId&&(await Z(G(e,`hooks`,o.hookId,t)),await Z(er(e,i.token,o.runId,o.hookId)),await hr(e,o.runId,o.hookId,t)),a.throwIfAborted(),c||Ie(await Q(s,l())),{status:`claimed`}});if(u.status===`owned`&&u.claim.claimedFrom&&(c=u.claim.claimedFrom),u.status===`owned`){let r=u.claim,o;if(r.eventId)o=r.eventId;else{let r=await wi(e,S,f.correlationId);if(r!==null)throw await Ti(e,S,f.correlationId,r,t),new k(`Hook "${f.correlationId}" already created`);let a=await Ei(e,i.token,S,f.correlationId,n);if(a===null)throw new k(`Hook "${f.correlationId}" already created`);o=a}n=o,a=!0;let s=re(n.replace(/^evnt_/,``))??x;M={...f,eventData:{...f.eventData,tokenRetentionUntil:r.tokenRetentionUntil},runId:S,eventId:n,createdAt:s,specVersion:w}}if(u.status===`conflict`){let e=u.claim,t=await ye({eventType:`hook_conflict`,correlationId:f.correlationId,eventData:{token:i.token,conflictingRunId:e.runId,...u.forceRefusedReason!==void 0&&{forceRefusedReason:u.forceRefusedReason}},runId:S,eventId:n,createdAt:x,specVersion:w}),r=y?.resolveData??`all`,a=typeof y?.sinceCursor==`string`?await xe(S,{sortOrder:`asc`,cursor:y.sinceCursor}):void 0,s={event:o(t,r),run:N,step:F,hook:void 0};return a?{...s,events:r===`none`?a.data.map(e=>o(e,r)):a.data,cursor:a.cursor,hasMore:a.hasMore}:s}c&&(M={...M,eventData:{...M.eventData,forceClaimedFrom:c}});let d=M.eventData;I={runId:S,hookId:f.correlationId,token:d.token,metadata:d.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:M.createdAt,specVersion:w,isWebhook:d.isWebhook??!1,isSystem:d.isSystem??!1,tokenRetentionUntil:d.tokenRetentionUntil,...c&&{claimedFrom:c}},Ce=u.status===`owned`||c?{overwrite:!0}:void 0,await fr(e,i.token,S,f.correlationId,n,t)}else if(f.eventType===`hook_disposed`){if(!await Q(Rn(e,f.correlationId,t),``))throw new k(`Hook "${f.correlationId}" already disposed`);let n=G(e,`hooks`,f.correlationId,t),r=await K(e,`hooks`,f.correlationId,m,t);r&&(await $n(e,r.token,r.runId,r.hookId),await Z(er(e,r.token,r.runId,r.hookId))),await Z(n),await hr(e,S,f.correlationId,t)}else if(f.eventType===`wait_created`&&`eventData`in f){let n=`${S}-${f.correlationId}`;if(!await Q(U(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new k(`Wait "${f.correlationId}" already exists`);let r=f.eventData;L={waitId:n,runId:S,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:x,updatedAt:x,specVersion:w},await J(G(e,`waits`,n,t),L)}else if(f.eventType===`wait_completed`){let n=`${S}-${f.correlationId}`,r=U(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new k(`Wait "${f.correlationId}" already completed`);let i=await K(e,`waits`,n,c,t);if(!i)throw await z.unlink(r).catch(()=>{}),new D(`Wait "${f.correlationId}" not found`);L={...i,status:`completed`,completedAt:x,updatedAt:x},await J(G(e,`waits`,n,t),L,{overwrite:!0})}if(f.eventType===`hook_received`&&f.correlationId&&await be(f.correlationId,f.eventData?.token),f.eventType===`hook_created`&&f.correlationId){let n=await zn(e,f.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new k(`Hook "${f.correlationId}" was force-claimed by another run before its creation was journaled`)}let R=G(e,`events`,`${S}-${n}`,t),we=JSON.stringify(M,q,2),Te=async r=>{let i=g(n);if(a||i===null)return!1;let o=await ue(S,{rescan:r>0&&r%8==0,atLeast:i+1});return o!==null&&(n=v(o),M={...M,eventId:n},R=G(e,`events`,`${S}-${n}`,t),we=JSON.stringify(M,q,2),!0)},Ee=!1;j&&(M=j,R=G(e,`events`,`${S}-${n}`,t),we=JSON.stringify(M,q,2),Ee=!0);for(let i=0;!Ee;i++){if(f.eventType===`hook_received`){let i=await Hn(e,S,t),a=i?null:await K(e,`runs`,S,E,t);if(i||a&&r(a.status))throw new he(`Workflow run "${S}" is already in a terminal state`);let o=Wn(e,S,`${n}.${nr()}`,t);if(!await Q(o,we))throw new D(`Failed to stage event "${n}" for run "${S}": staging path already exists`);try{if(await Hn(e,S,t))throw new he(`Workflow run "${S}" is already in a terminal state`);let n=await wt(o,R);if(n===`missing`)throw new he(`Workflow run "${S}" is already in a terminal state`);Ee=n===`linked`}finally{await Z(o).catch(()=>{})}}else Ee=await Q(R,we);if(Ee){de(S,n);break}if(f.eventType===`hook_received`&&y?.resumeId){let r=await K(e,`events`,`${S}-${n}`,$,t);if(r&&vi(r,{runId:S,resumeId:y.resumeId,hookId:f.correlationId,eventId:n}))return{event:r}}if(!await Te(i))break}if(!Ee)throw f.eventType===`hook_created`&&f.correlationId&&await Ti(e,S,f.correlationId,n,t),new k(`Event "${n}" already exists for run "${S}"`);ve(M,R,we),f.eventType===`hook_received`&&y?.resumeId&&b!==null&&b!==n&&await Y(Qn(e,S,y.resumeId),JSON.stringify({runId:S,resumeId:y.resumeId,hookId:f.correlationId,eventId:n,...y.resumePayloadDigest?{payloadDigest:y.resumePayloadDigest}:{}}),{overwrite:!0}),I&&f.eventType===`hook_created`&&(await mr(e,I.runId,I.hookId,t),await J(G(e,`hooks`,I.hookId,t),I,Ce)),P&&(await ei(e,S,t),C(S));let De=y?.resolveData??`all`,Oe=o(M,De),ke;if(f.eventType===`run_started`&&N&&!y?.skipPreload&&(ke=await xe(S,{limit:ne()})),typeof y?.sinceCursor==`string`){let e=await xe(S,{sortOrder:`asc`,cursor:y.sinceCursor});ke=De===`none`?{...e,data:e.data.map(e=>o(e,De))}:e}let Ae={event:Oe,run:N,step:F,hook:I,wait:L,...Se?{stepCreated:!0}:{},...N?{maxEvents:ne()}:{}};return ke?{...Ae,events:ke.data,cursor:ke.cursor,hasMore:ke.hasMore}:Ae}},async get(n,r,i){H(`runId`,n),H(`eventId`,r);let a=await K(e,`events`,`${n}-${r}`,$,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);let s=i?.resolveData??`all`;return o(a,s)},async list(e){let{runId:t}=e;H(`runId`,t);let n=e.resolveData??`all`,r=await xe(t,{...e.pagination,limit:e.pagination?.limit??ne()});return n===`none`?{...r,data:r.data.map(e=>o(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;H(`correlationId`,n),H(`runId`,t.runId);let r=t.resolveData??`all`,i=await At({directory:B.join(e,`events`),schema:$,cachedItems:f,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:rr(`evnt`),getId:e=>e.eventId,getSortKey:Si,getSortKeyFromFileId:e=>Ci(t.runId,e)});return r===`none`?{...i,data:i.data.map(e=>o(e,r))}:i}};async function F(e,t,n){if(!e.event)return e;let r=g(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await P.list({runId:e.event.runId,pagination:{cursor:`${Dt}${v(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let I=(async(e,t,n)=>{if(n?.eventCount===void 0)return P.create(e,t,n);let r=n.resolveData??`all`,i=await P.create(e,t,n);return typeof n.sinceCursor==`string`?i:F(i,n.eventCount,r)});return{...P,create:I}}function ji(e,t){return{get:(async(n,r,i)=>{H(`runId`,n),H(`stepId`,r);let a=await K(e,`steps`,`${n}-${r}`,l,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return Tr(a,i?.resolveData??`all`)}),list:(async t=>{H(`runId`,t.runId);let n=t.resolveData??`all`,r=await At({directory:B.join(e,`steps`),schema:l,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:rr(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function Mi(e,t){let n=pi(e,t),r=ji(e,t),i=Ai(e,t),a=Fr(e,t);return{runs:mn(`world.runs`,n),steps:mn(`world.steps`,r),events:mn(`world.events`,i),hooks:mn(`world.hooks`,a),clearCache:()=>i.clearCache()}}function Ni(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...it.value,...t};He(n.dataDir);let r=n.tag,i=Tn(n),{clearCache:a,...o}=Mi(n.dataDir,r),s=at(n);return{specVersion:T(),capabilities:{hookRetention:{active:!0},hookResumeDedup:!0,hookForceClaim:!0},...i,...o,...mn(`world.streams`,{...Zr(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await Kt(n.dataDir),!s)return;let e=r?e=>mt(e,r):ht,t={...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))};await x(t,i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=B.join(e,`hooks`),i=await gt(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-BUFGAKRb.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await X(B.join(t,n),a);r?.token&&(await Z(B.join(t,`tokens`,`${Ln(r.token)}.json`)),await Z(er(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=B.join(e,t),i=await gt(n,r);await Promise.all(i.map(e=>Z(B.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=B.join(e,`hooks`,t),i;try{i=await R.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(n,e.name),i=await gt(t,r);await Promise.all(i.map(e=>Z(B.join(t,e))))}))}await R.rm(B.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=B.join(e,`streams`,`chunks`),s;try{s=await R.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=B.join(o,e.name),n=await _t(t,r,`.bin`);await Promise.all(n.map(e=>R.unlink(B.join(t,e)).catch(()=>{})))})),dt()}else dt(),yr(),await Ae(n.dataDir,{recursive:!0,force:!0}),await Kt(n.dataDir)}}}export{Ft as DataDirAccessError,It as DataDirVersionError,Re as UnwritableDataDirError,Ni as createWorld,Ht as ensureDataDir,Kt as initDataDir,Lt as parseVersion};
|