eve 0.75.0 → 0.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/dist/src/_virtual/_rolldown/runtime.js +1 -1
- package/dist/src/acp/adapter.js +1 -1
- package/dist/src/channel/task-card.js +1 -1
- package/dist/src/channel/tool-eligibility.d.ts +1 -2
- package/dist/src/chunks/{use-eve-agent-B2Kne9z6.js → use-eve-agent-D2V9UhLt.js} +68 -10
- package/dist/src/chunks/{use-eve-agent-DK_T88EP.js → use-eve-agent-QmriPA-w.js} +68 -10
- package/dist/src/cli/commands/deploy.js +1 -1
- package/dist/src/cli/commands/link.d.ts +2 -1
- package/dist/src/cli/commands/link.js +1 -1
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/commands/vercel-non-interactive.d.ts +6 -4
- package/dist/src/cli/commands/vercel-non-interactive.js +1 -1
- package/dist/src/cli/dev/environment.d.ts +0 -6
- package/dist/src/cli/dev/environment.js +1 -1
- package/dist/src/cli/dev/tui/conversation-view.js +1 -1
- package/dist/src/cli/dev/tui/runner.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/dev/tui/transcript.js +1 -1
- package/dist/src/client/message-action-parts.d.ts +3 -0
- package/dist/src/client/message-action-parts.js +1 -1
- package/dist/src/client/message-reducer-types.d.ts +6 -1
- package/dist/src/client/message-reducer.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +9 -8
- package/dist/src/compiled/@eve/catalog/index.js +1 -1
- package/dist/src/compiled/@vercel/queue/index.d.ts +1066 -0
- package/dist/src/compiled/@vercel/queue/index.js +47 -0
- package/dist/src/compiled/@workflow/core/global.d.ts +10 -0
- package/dist/src/compiled/@workflow/core/index.js +1 -1
- package/dist/src/compiled/@workflow/core/private.d.ts +11 -0
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +36 -8
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/lifecycle-hooks.d.ts +10 -6
- package/dist/src/compiled/@workflow/core/runtime/out-of-band-observation.d.ts +159 -0
- package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +28 -4
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- 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/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +4 -4
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-CSqvJx6j.js → attribute-changes-BW-kbMMn.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/dist-CyBgVS7g.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{helpers-BXCuoPUb.js → helpers-DlLD3ov_.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/private-tQUuwBoQ.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{resume-hook-CvENCrxc.js → resume-hook-DMsV_b4n.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{run-8pLWuR2U.js → run-DzdAqdb1.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{serialization-vDozzDhh.js → serialization-DPdYS_w2.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/sleep-BY6leHh8.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{token-BKeK6DmC.js → token-D5ugC3PI.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{token-util-CddTZ_ef.js → token-util-Bla5Z0G9.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/undici-D-ILjOKD.js +95 -0
- package/dist/src/compiled/_chunks/workflow/{wait-until-A344L2AG.js → wait-until-xbRRDuUf.js} +1 -1
- package/dist/src/compiler/connection-ownership.d.ts +6 -0
- package/dist/src/compiler/connection-ownership.js +1 -0
- package/dist/src/compiler/default-tool-policy.d.ts +0 -3
- package/dist/src/compiler/default-tool-policy.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +21 -20
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +9 -6
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-connection.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-skill.d.ts +5 -0
- package/dist/src/compiler/normalize-skill.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +2 -1
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/compiler/normalize-tool.js +1 -1
- package/dist/src/compiler/remote-agent-node.d.ts +2 -1
- package/dist/src/compiler/remote-agent-node.js +1 -1
- package/dist/src/connections/ownership.d.ts +18 -0
- package/dist/src/connections/ownership.js +1 -0
- package/dist/src/context/build-dynamic-tools.d.ts +3 -9
- package/dist/src/context/build-dynamic-tools.js +1 -1
- package/dist/src/context/dynamic-connection-lifecycle.js +1 -1
- package/dist/src/context/dynamic-skill-lifecycle.d.ts +2 -11
- package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
- package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
- package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
- package/dist/src/context/dynamic-tool-metadata.d.ts +1 -0
- package/dist/src/context/keys.d.ts +5 -4
- package/dist/src/context/memory-tools.js +1 -1
- package/dist/src/context/schedule-collection-tools.js +1 -1
- package/dist/src/discover/grammar.d.ts +11 -0
- package/dist/src/discover/grammar.js +1 -1
- package/dist/src/discover/manifest.d.ts +1 -0
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/discover/skills.d.ts +1 -0
- package/dist/src/discover/skills.js +1 -1
- package/dist/src/dynamic/definition.d.ts +7 -5
- package/dist/src/evals/assertions/collector.d.ts +4 -0
- package/dist/src/evals/assertions/collector.js +1 -1
- package/dist/src/evals/assertions/run.d.ts +2 -3
- package/dist/src/evals/assertions/run.js +2 -2
- package/dist/src/evals/assertions/scoped.js +1 -1
- package/dist/src/evals/index.d.ts +1 -1
- package/dist/src/evals/match.d.ts +9 -6
- package/dist/src/evals/reported-tool-name.d.ts +9 -0
- package/dist/src/evals/reported-tool-name.js +1 -0
- package/dist/src/evals/runner/derive-run-facts.d.ts +3 -3
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +1 -1
- package/dist/src/evals/runner/reporters/datadog-runtime-trace-links.d.ts +11 -0
- package/dist/src/evals/runner/reporters/datadog-runtime-trace-links.js +1 -0
- package/dist/src/evals/runner/reporters/datadog.js +2 -2
- package/dist/src/evals/session.js +2 -2
- package/dist/src/evals/target.d.ts +7 -0
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +17 -1
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/execution/agent-sessions/remote.js +1 -1
- package/dist/src/execution/catalog/connection-auth.d.ts +41 -0
- package/dist/src/execution/catalog/connection-auth.js +1 -0
- package/dist/src/execution/catalog/connection-entry.d.ts +16 -0
- package/dist/src/execution/catalog/connection-entry.js +1 -0
- package/dist/src/execution/catalog/listing.d.ts +9 -0
- package/dist/src/execution/catalog/listing.js +3 -0
- package/dist/src/execution/catalog/rank.d.ts +44 -0
- package/dist/src/execution/catalog/rank.js +1 -0
- package/dist/src/execution/catalog/search.d.ts +28 -0
- package/dist/src/execution/catalog/search.js +1 -0
- package/dist/src/execution/catalog/signatures.d.ts +11 -0
- package/dist/src/execution/catalog/signatures.js +1 -0
- package/dist/src/execution/catalog/skills.d.ts +24 -0
- package/dist/src/execution/catalog/skills.js +1 -0
- package/dist/src/execution/catalog/step-catalog.d.ts +51 -0
- package/dist/src/execution/catalog/step-catalog.js +1 -0
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/dynamic-connections.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/invoke-tool.js +1 -1
- package/dist/src/execution/ndjson-stream.d.ts +6 -6
- package/dist/src/execution/ndjson-stream.js +3 -3
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/session/active-turn.d.ts +1 -1
- package/dist/src/execution/session/pending-turn-state.js +1 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +5 -5
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session.js +1 -1
- package/dist/src/execution/skills/instructions.d.ts +20 -10
- package/dist/src/execution/skills/instructions.js +2 -2
- package/dist/src/execution/tasks/calls.d.ts +6 -5
- package/dist/src/execution/tasks/calls.js +1 -1
- package/dist/src/execution/tasks/model-step.d.ts +10 -10
- package/dist/src/execution/tasks/model-step.js +1 -1
- package/dist/src/execution/tasks/render.d.ts +3 -3
- package/dist/src/execution/tasks/render.js +3 -3
- package/dist/src/execution/tasks/session.d.ts +2 -1
- package/dist/src/execution/tasks/table.d.ts +1 -1
- package/dist/src/execution/tasks/tool-entry-point.d.ts +1 -1
- package/dist/src/execution/tool-auth.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
- package/dist/src/extensions/code/extension/extension.d.ts +4 -18
- package/dist/src/extensions/code/extension/instructions/github.d.ts +3 -0
- package/dist/src/extensions/code/extension/instructions/github.js +1 -0
- package/dist/src/extensions/code/extension/instructions.md +1 -13
- package/dist/src/extensions/code/extension/lib/diagnostics.d.ts +4 -2
- package/dist/src/extensions/code/extension/lib/diagnostics.js +3 -3
- package/dist/src/extensions/code/extension/lib/github-compat.d.ts +28 -0
- package/dist/src/extensions/code/extension/lib/github-compat.js +1 -0
- package/dist/src/extensions/code/extension/lib/grep-search.d.ts +3 -13
- package/dist/src/extensions/code/extension/lib/grep-search.js +2 -2
- package/dist/src/extensions/code/extension/lib/patch.d.ts +8 -2
- package/dist/src/extensions/code/extension/lib/patch.js +4 -4
- package/dist/src/extensions/code/extension/lib/repository-root.d.ts +3 -4
- package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
- package/dist/src/extensions/code/extension/lib/sandbox.d.ts +2 -1
- package/dist/src/extensions/code/extension/lib/sandbox.js +1 -1
- package/dist/src/extensions/code/extension/lib/tooling.d.ts +4 -4
- package/dist/src/extensions/code/extension/lib/tooling.js +7 -7
- package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +31 -0
- package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -0
- package/dist/src/extensions/code/extension/skills/pr.d.ts +6 -0
- package/dist/src/extensions/code/extension/skills/pr.js +1 -0
- package/dist/src/extensions/code/extension/tools/apply_patch.d.ts +2 -2
- package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
- package/dist/src/extensions/code/extension/tools/gh.d.ts +4 -3
- package/dist/src/extensions/code/extension/tools/gh.js +1 -1
- package/dist/src/extensions/code/extension/tools/grep.js +1 -1
- package/dist/src/extensions/code/tools.d.ts +2 -1
- package/dist/src/extensions/code/tools.js +1 -1
- package/dist/src/extensions/git/extension/extension.d.ts +12 -0
- package/dist/src/extensions/git/extension/extension.js +1 -0
- package/dist/src/extensions/git/extension/instructions/github.d.ts +2 -0
- package/dist/src/extensions/git/extension/instructions/github.js +1 -0
- package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +29 -0
- package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -0
- package/dist/src/extensions/git/extension/lib/github-guidance.d.ts +3 -0
- package/dist/src/extensions/git/extension/lib/github-guidance.js +49 -0
- package/dist/src/extensions/{code → git}/extension/lib/github-shell.d.ts +1 -1
- package/dist/src/extensions/git/extension/lib/github-shell.js +1 -0
- package/dist/src/extensions/git/extension/lib/repository-root.d.ts +5 -0
- package/dist/src/extensions/git/extension/lib/repository-root.js +1 -0
- package/dist/src/extensions/git/extension/lib/sandbox.d.ts +6 -0
- package/dist/src/extensions/git/extension/lib/sandbox.js +1 -0
- package/dist/src/extensions/git/extension/lib/shell.d.ts +1 -0
- package/dist/src/extensions/git/extension/lib/shell.js +1 -0
- package/dist/src/extensions/git/extension/lib/tooling.d.ts +4 -0
- package/dist/src/extensions/git/extension/lib/tooling.js +1 -0
- package/dist/src/extensions/git/extension/skills/pr.d.ts +5 -0
- package/dist/src/extensions/git/extension/skills/pr.js +1 -0
- package/dist/src/extensions/git/extension/tools/gh.d.ts +28 -0
- package/dist/src/extensions/git/extension/tools/gh.js +1 -0
- package/dist/src/extensions/git/tools.d.ts +27 -0
- package/dist/src/extensions/git/tools.js +1 -0
- package/dist/src/framework/sources/registry.js +1 -1
- package/dist/src/harness/action-presentation.d.ts +2 -2
- package/dist/src/harness/action-result-helpers.d.ts +10 -2
- package/dist/src/harness/action-result-helpers.js +1 -1
- package/dist/src/harness/announcements.d.ts +2 -8
- package/dist/src/harness/announcements.js +1 -1
- package/dist/src/harness/compaction/engine.d.ts +8 -19
- package/dist/src/harness/compaction/engine.js +1 -1
- package/dist/src/harness/compaction/step.d.ts +7 -1
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/coordination.d.ts +11 -11
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/current-messages.d.ts +1 -5
- package/dist/src/harness/current-messages.js +1 -1
- package/dist/src/harness/emission.d.ts +2 -2
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/execute-call.d.ts +48 -0
- package/dist/src/harness/execute-call.js +1 -0
- package/dist/src/harness/execute-tool.d.ts +3 -1
- package/dist/src/harness/final-output.d.ts +2 -6
- package/dist/src/harness/final-output.js +1 -1
- package/dist/src/harness/hitl/approvals.d.ts +5 -0
- package/dist/src/harness/hitl/approvals.js +1 -1
- package/dist/src/harness/hitl/approved-calls.d.ts +3 -2
- package/dist/src/harness/hitl/approved-calls.js +1 -1
- package/dist/src/harness/hitl/candidates.d.ts +13 -2
- package/dist/src/harness/hitl/candidates.js +1 -1
- package/dist/src/harness/hitl/coordinator.d.ts +3 -3
- package/dist/src/harness/hitl/coordinator.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +6 -4
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/intake.d.ts +3 -3
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/input-extraction.d.ts +4 -1
- package/dist/src/harness/input-extraction.js +1 -1
- package/dist/src/harness/input-request-resolution.d.ts +15 -0
- package/dist/src/harness/input-request-resolution.js +1 -1
- package/dist/src/harness/model-call/call.d.ts +5 -8
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/errors.js +1 -1
- package/dist/src/harness/model-call/model.d.ts +4 -5
- package/dist/src/harness/model-call/model.js +1 -1
- package/dist/src/harness/model-call/request.d.ts +4 -4
- package/dist/src/harness/model-call/request.js +1 -1
- package/dist/src/harness/model-call/response.d.ts +2 -1
- package/dist/src/harness/model-call/response.js +1 -1
- package/dist/src/harness/model-call/retry.d.ts +1 -1
- package/dist/src/harness/model-call/retry.js +1 -1
- package/dist/src/harness/model-call/run.d.ts +5 -3
- package/dist/src/harness/model-call/run.js +1 -1
- package/dist/src/harness/model-call/tools.d.ts +14 -24
- package/dist/src/harness/model-call/tools.js +1 -1
- package/dist/src/harness/model-call/usage.js +1 -1
- package/dist/src/harness/model-profile.d.ts +28 -0
- package/dist/src/harness/model-profile.js +1 -0
- package/dist/src/harness/prompt-cache.d.ts +5 -53
- package/dist/src/harness/prompt-cache.js +1 -1
- package/dist/src/harness/provider-safety.d.ts +3 -5
- package/dist/src/harness/provider-safety.js +1 -1
- package/dist/src/harness/provider-tools.d.ts +7 -14
- package/dist/src/harness/provider-tools.js +1 -1
- package/dist/src/harness/session-machine/commit.js +1 -1
- package/dist/src/harness/session-machine/transitions.d.ts +5 -2
- package/dist/src/harness/session-machine/transitions.js +1 -1
- package/dist/src/harness/step/after-model.js +1 -1
- package/dist/src/harness/step-hooks.d.ts +6 -9
- package/dist/src/harness/step-hooks.js +1 -1
- package/dist/src/harness/tool-call-input-errors.d.ts +2 -2
- package/dist/src/harness/tool-call-io.d.ts +3 -0
- package/dist/src/harness/tool-call-io.js +1 -1
- package/dist/src/harness/tools.d.ts +24 -22
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/turn-tag-state.d.ts +12 -0
- package/dist/src/harness/turn-tag-state.js +1 -1
- package/dist/src/harness/types.d.ts +14 -0
- package/dist/src/instrumentation/lifecycle.d.ts +0 -1
- package/dist/src/instrumentation/native-events.js +1 -1
- package/dist/src/instrumentation/runtime.d.ts +2 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-definition/schedule-collection.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.d.ts +2 -2
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-module.d.ts +2 -1
- package/dist/src/internal/authored-module.js +1 -1
- package/dist/src/internal/gateway.d.ts +0 -13
- package/dist/src/internal/gateway.js +1 -1
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/mcp/skills.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/host/local-schedules-runtime-plugin.d.ts +5 -0
- package/dist/src/internal/nitro/host/local-schedules-runtime-plugin.js +1 -0
- package/dist/src/internal/nitro/routes/schedule-collection-consumer.d.ts +6 -0
- package/dist/src/internal/nitro/routes/schedule-collection-consumer.js +1 -1
- package/dist/src/internal/schedules/consumer-route.d.ts +2 -0
- package/dist/src/internal/schedules/consumer-route.js +1 -1
- package/dist/src/internal/schedules/dev-environment.d.ts +2 -0
- package/dist/src/internal/schedules/dev-environment.js +1 -0
- package/dist/src/internal/vercel-agent-summary.d.ts +2 -2
- package/dist/src/internal/workflow/vercel-world-defaults.d.ts +1 -1
- package/dist/src/internal/workflow/vercel-world-defaults.js +1 -1
- package/dist/src/protocol/catalog-tools.d.ts +12 -0
- package/dist/src/protocol/catalog-tools.js +1 -0
- package/dist/src/protocol/message-version.js +1 -1
- package/dist/src/protocol/message.d.ts +1 -1
- package/dist/src/protocol/remote-agent-protocol.d.ts +2 -0
- package/dist/src/protocol/remote-agent-protocol.js +1 -1
- package/dist/src/protocol/reply-tool.d.ts +2 -0
- package/dist/src/protocol/reply-tool.js +1 -0
- package/dist/src/protocol/runtime-tools.d.ts +6 -0
- package/dist/src/protocol/runtime-tools.js +1 -0
- package/dist/src/protocol/session-projection.js +1 -1
- package/dist/src/protocol/task-tools.d.ts +4 -4
- package/dist/src/protocol/task-tools.js +1 -1
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -1
- package/dist/src/public/channels/linear/defaults.js +2 -2
- package/dist/src/public/channels/slack/action-status.d.ts +0 -9
- package/dist/src/public/channels/slack/action-status.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +2 -2
- package/dist/src/public/channels/slack/task-card.d.ts +1 -1
- package/dist/src/public/definitions/connections/mcp.d.ts +4 -4
- package/dist/src/public/definitions/connections/openapi.d.ts +6 -7
- package/dist/src/public/definitions/remote-agent.d.ts +6 -3
- package/dist/src/public/definitions/workspace-agent.d.ts +6 -3
- package/dist/src/public/experimental/schedules/index.d.ts +1 -1
- package/dist/src/public/schedules/providers/in-memory.js +1 -1
- package/dist/src/public/schedules/providers/vercel.js +1 -1
- package/dist/src/public/schedules/subscription.d.ts +36 -16
- package/dist/src/public/tools/web-search.d.ts +1 -1
- package/dist/src/runtime/agent/bootstrap.d.ts +2 -1
- package/dist/src/runtime/agent/bootstrap.js +1 -1
- package/dist/src/runtime/agent/mock-model-adapter.js +2 -2
- package/dist/src/runtime/agent/mock-model-fixtures.js +2 -2
- package/dist/src/runtime/agent/mock-model-skill-selection.d.ts +2 -0
- package/dist/src/runtime/agent/mock-model-skill-selection.js +2 -2
- package/dist/src/runtime/agent/mock-structured-output.d.ts +1 -1
- package/dist/src/runtime/connections/mcp-client.js +1 -1
- package/dist/src/runtime/connections/registry.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/connections/tool-result.d.ts +2 -2
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-tool.js +1 -1
- package/dist/src/runtime/schedules/collection-client.d.ts +12 -3
- package/dist/src/runtime/schedules/collection-client.js +1 -1
- package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +2 -2
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +2 -1
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
- package/dist/src/runtime/subagents/registry.d.ts +2 -1
- package/dist/src/runtime/subagents/registry.js +1 -1
- package/dist/src/runtime/tools/registry.d.ts +2 -0
- package/dist/src/runtime/tools/registry.js +1 -1
- package/dist/src/runtime/types.d.ts +3 -3
- package/dist/src/setup/connection-connector.js +1 -2
- package/dist/src/setup/index.d.ts +1 -1
- package/dist/src/setup/index.js +1 -1
- package/dist/src/setup/integrations/slack/setup.d.ts +23 -3
- package/dist/src/setup/integrations/slack/setup.js +1 -1
- package/dist/src/setup/primitives/process-output.d.ts +5 -0
- package/dist/src/setup/primitives/process-output.js +2 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/create/web-template.d.ts +3 -2
- package/dist/src/setup/scaffold/create/web-template.js +384 -412
- package/dist/src/setup/scaffold/update/update-slack-channel.d.ts +17 -0
- package/dist/src/setup/scaffold/update/update-slack-channel.js +1 -1
- package/dist/src/setup/slack-connect-create.d.ts +10 -2
- package/dist/src/setup/slack-connect-create.js +1 -1
- package/dist/src/setup/slack-connect-lifecycle.d.ts +92 -44
- package/dist/src/setup/slack-connect-lifecycle.js +1 -1
- package/dist/src/setup/slack-connect.d.ts +30 -11
- package/dist/src/setup/slack-connect.js +1 -1
- package/dist/src/setup/slack-setup-plan.d.ts +72 -0
- package/dist/src/setup/slack-setup-plan.js +1 -0
- package/dist/src/setup/slackbot.d.ts +75 -35
- package/dist/src/setup/slackbot.js +2 -1
- package/dist/src/setup/vercel-project.d.ts +1 -1
- package/dist/src/setup/vercel-project.js +0 -0
- package/dist/src/shared/action-label.d.ts +10 -0
- package/dist/src/shared/action-label.js +1 -0
- package/dist/src/shared/action-request-name.d.ts +3 -1
- package/dist/src/shared/action-request-name.js +1 -1
- package/dist/src/shared/action-types.d.ts +7 -8
- package/dist/src/shared/action-types.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +11 -3
- package/dist/src/shared/development-env-files.d.ts +4 -0
- package/dist/src/shared/development-env-files.js +1 -0
- package/dist/src/shared/input.d.ts +0 -1
- package/dist/src/shared/map-with-concurrency.d.ts +2 -0
- package/dist/src/shared/map-with-concurrency.js +1 -0
- package/dist/src/shared/skill-definition.d.ts +6 -0
- package/dist/src/shared/skill-package.d.ts +1 -0
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/web-search.d.ts +15 -2
- package/dist/src/shared/web-search.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tool-stubs/execute.d.ts +0 -3
- package/dist/src/tool-stubs/execute.js +1 -1
- package/dist/src/tool-stubs/rules.js +1 -1
- package/dist/src/tool-stubs/validate-targets.js +1 -1
- package/dist/src/tools/behavior.d.ts +3 -6
- package/dist/src/tools/definition.d.ts +5 -0
- package/dist/src/tools/dynamic.d.ts +5 -2
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tools/provided/task-cancel.d.ts +1 -1
- package/dist/src/tools/provided/task-wait.d.ts +1 -1
- package/dist/src/tools/provided/web-search.d.ts +20 -7
- package/dist/src/tools/provided/web-search.js +1 -1
- package/dist/src/tools/schema.d.ts +5 -0
- package/dist/src/tools/schema.js +1 -1
- package/dist/src/{runtime/connections/tool-signature.d.ts → tools/signature.d.ts} +2 -2
- package/dist/src/tools/workflow-definition.d.ts +1 -1
- package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
- package/dist/src/tracing/agent-otel-provider.js +2 -2
- package/dist/src/tracing/agent-otel-runtime-context.d.ts +1 -0
- package/dist/src/tracing/agent-otel-runtime-context.js +1 -1
- package/dist/src/tracing/agent-otel-turn-state.d.ts +6 -0
- package/dist/src/tracing/agent-otel-turn-state.js +1 -0
- package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
- package/dist/src/tracing/agent-trace-context-codec.js +1 -1
- package/dist/src/tracing/agent-trace-state.d.ts +4 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +8 -8
- package/docs/channels/chat-sdk.mdx +1 -1
- package/docs/channels/slack.mdx +32 -82
- package/docs/code-extension.mdx +28 -7
- package/docs/concepts/built-in-tools.md +43 -43
- package/docs/concepts/context-control.md +1 -1
- package/docs/concepts/execution-model-and-durability.mdx +1 -1
- package/docs/concepts/sessions-runs-and-streaming.md +4 -4
- package/docs/connections/mcp.mdx +5 -5
- package/docs/connections/openapi.mdx +1 -1
- package/docs/connections/overview.mdx +4 -2
- package/docs/evals/assertions.mdx +5 -3
- package/docs/evals/reporters.mdx +3 -1
- package/docs/evals/tool-stubs.mdx +3 -1
- package/docs/extensions.md +2 -0
- package/docs/guides/dev-tui.md +2 -2
- package/docs/guides/dynamic-capabilities.md +14 -4
- package/docs/guides/frontend/overview.mdx +1 -1
- package/docs/guides/remote-agents.md +10 -3
- package/docs/instructions.mdx +5 -5
- package/docs/reference/cli.md +2 -2
- package/docs/reference/typescript-api.md +3 -3
- package/docs/skills.mdx +19 -4
- package/docs/subagents/index.mdx +5 -3
- package/docs/tools/overview.mdx +22 -1
- package/docs/tools/tasks-upgrade.md +1 -1
- package/docs/tools/tasks.md +32 -32
- package/docs/tools/workflows.mdx +6 -6
- package/docs/tutorial/team-playbooks.mdx +2 -2
- package/package.json +27 -11
- package/dist/src/compiled/_chunks/workflow/dist-DmXynLVH.js +0 -1
- package/dist/src/compiled/_chunks/workflow/private-Dlf90Zvn.js +0 -1
- package/dist/src/compiled/_chunks/workflow/signal-exit-iIdjQcCK.js +0 -95
- package/dist/src/compiled/_chunks/workflow/sleep-BMqbraZM.js +0 -1
- package/dist/src/execution/connection-announcement.d.ts +0 -7
- package/dist/src/execution/connection-announcement.js +0 -4
- package/dist/src/execution/tools/connection-approval.d.ts +0 -25
- package/dist/src/execution/tools/connection-approval.js +0 -1
- package/dist/src/execution/tools/connection-search-rank.d.ts +0 -21
- package/dist/src/execution/tools/connection-search-rank.js +0 -1
- package/dist/src/execution/tools/connection-target.d.ts +0 -18
- package/dist/src/execution/tools/connection-target.js +0 -1
- package/dist/src/execution/tools/connection-tools.d.ts +0 -4
- package/dist/src/execution/tools/connection-tools.js +0 -2
- package/dist/src/execution/tools/load-skill.d.ts +0 -10
- package/dist/src/execution/tools/load-skill.js +0 -1
- package/dist/src/extensions/code/extension/lib/github-shell.js +0 -1
- package/dist/src/extensions/code/extension/skills/pr/SKILL.md +0 -53
- package/dist/src/extensions/code/extension/subagents/worker/tools/load_skill.d.ts +0 -2
- package/dist/src/extensions/code/extension/subagents/worker/tools/load_skill.js +0 -1
- package/dist/src/harness/advertised-tools.d.ts +0 -26
- package/dist/src/harness/advertised-tools.js +0 -1
- package/dist/src/harness/nested-actions.d.ts +0 -23
- package/dist/src/harness/nested-actions.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/cli-config.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/cred-storage.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/index.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/schema.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/schema.zod.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/types.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/envpath.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/errors.js +0 -2
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/errutils.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/exec.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/fsutils.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/index.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/lookup.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/safety.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/auth-errors.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/exchange-vercel-oidc-token.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-context.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-sync.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-with-refresh.js +0 -2
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/index.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/oauth.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-error.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-io.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-util.js +0 -2
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/verify-vercel-oidc-token.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/version.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_queue@0.5.1_@opentelemetry_api@1.9.1/node_modules/@vercel/queue/dist/index.js +0 -36
- package/dist/src/node_modules/.pnpm/balanced-match@4.0.4/node_modules/balanced-match/dist/esm/index.js +0 -1
- package/dist/src/node_modules/.pnpm/brace-expansion@5.0.12/node_modules/brace-expansion/dist/esm/index.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js +0 -1
- package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js +0 -2
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js +0 -1
- package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js +0 -1
- package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js +0 -1
- package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js +0 -1
- package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js +0 -1
- package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js +0 -1
- package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js +0 -1
- package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js +0 -1
- package/dist/src/node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js +0 -1
- package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js +0 -1
- package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js +0 -1
- package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/index.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/decrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/encrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/embedded.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/thumbprint.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/local.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/remote.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/sign.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/verify.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/sign.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/verify.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/sign.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/verify.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/decrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/encrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/produce.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/sign.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/unsecured.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/verify.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/export.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_key_pair.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_secret.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/import.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/aesgcmkw.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/buffer_utils.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/cek.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_iv_length.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_key_type.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_p2s.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/crypto_key.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/epoch.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/invalid_key_input.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_disjoint.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_jwk.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_object.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/iv.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/private_symbols.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/secs.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_algorithms.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_crit.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/aeskw.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/asn1.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/base64url.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/cbc_tag.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_cek_length.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_key_length.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ciphers.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/decrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/digest.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/dsa_digest.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ecdhes.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/encrypt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/generate.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_named_curve.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/hmac_digest.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_like.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_object.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/node_key.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/normalize_key.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/pbes2kw.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/random.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/rsaes.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/runtime.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/sign.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/verify.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/webcrypto.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/base64url.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_jwt.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_protected_header.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/errors.js +0 -1
- package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/runtime.js +0 -1
- package/dist/src/node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js +0 -1
- package/dist/src/node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/ast.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/brace-expressions.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/escape.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/index.js +0 -1
- package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/unescape.js +0 -1
- package/dist/src/node_modules/.pnpm/mixpart@0.0.6/node_modules/mixpart/dist/index.js +0 -7
- package/dist/src/node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js +0 -1
- package/dist/src/node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js +0 -1
- package/dist/src/node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js +0 -1
- package/dist/src/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +0 -1
- package/dist/src/node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js +0 -1
- package/dist/src/node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js +0 -1
- package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js +0 -1
- package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js +0 -1
- package/dist/src/node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js +0 -2
- package/dist/src/node_modules/.pnpm/which@2.0.2/node_modules/which/which.js +0 -1
- package/dist/src/node_modules/.pnpm/xdg-app-paths@5.5.1/node_modules/xdg-app-paths/src/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js +0 -1
- package/dist/src/public/tools/load-skill.d.ts +0 -3
- package/dist/src/public/tools/load-skill.js +0 -1
- package/dist/src/runtime/skills/fragment-context.d.ts +0 -4
- package/dist/src/runtime/skills/fragment-context.js +0 -1
- package/dist/src/tools/framework/connection-tools.d.ts +0 -3
- package/dist/src/tools/framework/connection-tools.js +0 -1
- package/dist/src/tools/provided/load-skill.d.ts +0 -2
- package/dist/src/tools/provided/load-skill.js +0 -1
- /package/dist/src/extensions/{code → git}/extension/lib/github-shell-schema.d.ts +0 -0
- /package/dist/src/extensions/{code → git}/extension/lib/github-shell-schema.js +0 -0
- /package/dist/src/extensions/{code → git}/extension/lib/signed-commit.d.ts +0 -0
- /package/dist/src/extensions/{code → git}/extension/lib/signed-commit.js +0 -0
- /package/dist/src/{runtime/connections/tool-signature.js → tools/signature.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Ar as t,C as n,Cr as r,D as i,Dr as a,E as o,Er as s,F as c,I as l,L as u,M as d,Mr as f,N as p,Nr as m,O as h,Or as g,P as _,R as v,S as y,Sr as b,T as x,Tr as S,_ as C,a as w,b as T,br as E,c as D,d as O,f as k,g as A,h as j,i as M,j as N,jr as P,k as F,kr as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,t as W,u as G,v as K,vr as q,w as J,wr as Y,x as X,xr as Z,y as Q,yr as $,z as ee}from"../../_chunks/workflow/serialization-
|
|
1
|
+
import{A as e,Ar as t,C as n,Cr as r,D as i,Dr as a,E as o,Er as s,F as c,I as l,L as u,M as d,Mr as f,N as p,Nr as m,O as h,Or as g,P as _,R as v,S as y,Sr as b,T as x,Tr as S,_ as C,a as w,b as T,br as E,c as D,d as O,f as k,g as A,h as j,i as M,j as N,jr as P,k as F,kr as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,t as W,u as G,v as K,vr as q,w as J,wr as Y,x as X,xr as Z,y as Q,yr as $,z as ee}from"../../_chunks/workflow/serialization-DPdYS_w2.js";export{W as FRAMED_STREAM_MAX_RECONNECTS,z as FRAMED_STREAM_MAX_TOTAL_RECONNECTS,f as SerializationFormat,H as WorkflowServerReadableStream,M as WorkflowServerWritableStream,q as aesKeyOf,w as cancelAbortReaders,s as compress,B as createForwardedWritable,U as createReconnectingFramedStream,g as decodeFormatPrefix,a as decompress,$ as decrypt,D as dehydrateDynamicWorkflowCode,L as dehydrateRunError,G as dehydrateStepArguments,O as dehydrateStepError,k as dehydrateStepReturnValue,V as dehydrateWorkflowArguments,R as dehydrateWorkflowReturnValue,E as deriveRunPayloadKeys,j as deserializePreparedReplayPayload,A as deserializePreparedStepError,I as encodeWithFormatPrefix,Z as encrypt,C as getByteFramingStream,K as getByteUnframingStream,Q as getCommonRevivers,T as getDeserializeStream,X as getExternalReducers,y as getExternalRevivers,n as getForwardedWritableEncryptionKey,J as getRunReadableStream,x as getSerializeStream,o as getStreamType,i as getWorkflowReducers,h as getWorkflowRevivers,F as hydrateDynamicWorkflowCode,e as hydrateRunError,N as hydrateStepArguments,d as hydrateStepError,p as hydrateStepReturnValue,_ as hydrateWorkflowArguments,c as hydrateWorkflowReturnValue,t as isEncrypted,m as isFormatPrefix,b as isRunPayloadKeys,r as isSealTarget,l as maybeDecrypt,u as maybeEncrypt,P as peekFormatPrefix,v as prepareReplayPayload,Y as runPayloadKeys,S as sealTo,ee as tagForwardedWritableTarget};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "5.
|
|
1
|
+
export declare const version = "5.2.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fr as e,Pr as t,Zr as n,ii as r,ni as i,ri as a}from"../../_chunks/workflow/serialization-
|
|
1
|
+
import{Fr as e,Pr as t,Zr as n,ii as r,ni as i,ri as a}from"../../_chunks/workflow/serialization-DPdYS_w2.js";import{d as o,i as s}from"../../_chunks/workflow/dist-T5NnW-0k.js";import{i as c}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{c as l,i as u,o as d,r as f,t as p}from"../../_chunks/workflow/attribute-changes-BW-kbMMn.js";import{t as m}from"../../_chunks/workflow/sleep-BY6leHh8.js";import{t as h}from"../../_chunks/workflow/run-DzdAqdb1.js";e(t,h);function g(e){let t=globalThis[i];return t||u(`createHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-hook`,g),t(e)}function _(e){let{respondWith:t,token:n,...r}=e??{};if(n!==void 0)throw Error("`createWebhook()` does not accept a `token` option. Webhook tokens are always generated for you. Use `createHook()` with `resumeHook()` for deterministic token patterns.");let i;t!==void 0&&(i={respondWith:t});let a=g({...r,metadata:i,isWebhook:!0}),{url:o}=l();return a.url=c(o,{type:`webhook`,token:a.token}),a}function v(){function e(t,n){d(`defineHook().resume()`,`https://workflow-sdk.dev/docs/api-reference/workflow-api/resume-hook`,e)}return{create(e){return g(e)},resume:e}}async function y(e,t={}){let n=p(e,t);if(n.length===0)return;let i=t.allowReservedAttributes===!0,a=globalThis[r];if(!a)throw new s("setAttributes() called outside a workflow runtime context. It must be called from within a workflow body (`use workflow`).");await a(n,i?{allowReservedAttributes:!0}:{})}function b(e={}){let{namespace:t}=e,r=globalThis[a](t);return Object.create(globalThis.WritableStream.prototype,{[n]:{value:r,writable:!1}})}function x(){f(`getStepMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-step-metadata`,x)}function S(){d(`resumeHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow-api/resume-hook`,S)}export{s as FatalError,o as RetryableError,g as createHook,_ as createWebhook,v as defineHook,x as getStepMetadata,l as getWorkflowMetadata,b as getWritable,S as resumeHook,y as setAttributes,m as sleep};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"../../_chunks/workflow/
|
|
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=Ye(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function $e(e){try{let{stdout:t}=await Je(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return qe(t,e)}catch{return[]}}async function et(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await Ze(e);case`darwin`:return await Qe(e);case`win32`:return await $e(e);default:return[]}}catch(e){return a(`[getAllPorts] Detection failed:`,e),[]}}const tt=`${we}/flow?__health`;async function nt(e,t={}){let{endpoint:n=tt,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 rt(e){let t=await et();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await nt(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(a(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function it(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const at=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,ot=()=>process.env.WORKFLOW_LOCAL_BASE_URL,st=it(()=>({dataDir:at(),baseUrl:ot()}));function ct(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 lt(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??N(`http://localhost`)}async function ut(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 N(`http://localhost:${e.port}`);if(process.env.PORT)return N(`http://localhost:${process.env.PORT}`);let t=await rt({endpoint:P()});if(t)return N(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const B=S(`@workflow/world-local//fs`,1,()=>({ulid:w(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function dt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var ft=class extends O{constructor(e,t){super(`Unsafe ${e} "${dt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function V(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new ft(e,t)}function H(e,...t){let n=z.resolve(e),r=z.resolve(e,...t);if(r!==n&&!r.startsWith(n+z.sep))throw new ft(`path`,t.join(`/`));return r}const pt=process.platform===`win32`;async function U(e,t=5){if(!pt)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 mt(){B.createdFilesCache.clear(),B.createdDirectoriesCache.clear()}const ht=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function gt(e){return e.replace(ht,``)}function _t(e,t){return e.endsWith(`.${t}`)}function vt(e){return!ht.test(e)}function W(e,t,n,r){return V(`fileId`,n),r!==void 0&&V(`tag`,r),H(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function G(e,t,n,r,i){if(V(`fileId`,n),i!==void 0&&V(`tag`,i),i){let a=await Y(H(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return Y(H(e,t,`${n}.json`),r)}async function yt(e,t){let n=`.${t}.json`;try{return(await I.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function bt(e,t,n){let r=`.${t}${n}`;try{return(await I.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function xt(e){let t=z.resolve(e);if(!B.createdDirectoriesCache.has(t))try{await I.mkdir(t,{recursive:!0}),B.createdDirectoriesCache.add(t)}catch(e){let n=e.code;if(Ue(n)&&!await St(t))throw new Ve(t,n)}}async function St(e){try{return(await I.stat(e)).isDirectory()}catch{return!1}}async function Ct(e,t){await xt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return B.createdDirectoriesCache.delete(z.resolve(e)),await xt(e),t()}}function K(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function wt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function q(e,t,n){return J(e,JSON.stringify(t,K,2),n)}async function J(e,t,n){if(!n?.overwrite){if(B.createdFilesCache.has(e))throw new A(`File ${e} already exists and 'overwrite' is false`);try{throw await I.access(e),B.createdFilesCache.add(e),new A(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${B.ulid()}`,i=!1;try{await Ct(z.dirname(e),async()=>{await I.writeFile(r,t),i=!0,await U(()=>I.rename(r,e))}),B.createdFilesCache.add(e)}catch(e){throw i&&await U(()=>I.unlink(r),3).catch(()=>{}),e}}async function Y(e,t){try{let n=await U(()=>I.readFile(e,`utf-8`));return t.parse(JSON.parse(n,wt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Tt(e){return await I.readFile(e)}async function Et(e){let t=await I.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function X(e){try{await U(()=>I.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Z(e,t){let n=`${e}.tmp.${B.ulid()}`,r=!1;try{return await Ct(z.dirname(e),async()=>{await I.writeFile(n,t,{flag:`wx`}),r=!0;try{return await U(()=>I.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await U(()=>I.unlink(n),3).catch(()=>{})}}async function Dt(e,t){try{return await Ct(z.dirname(t),()=>U(()=>I.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Q(e){return Ot(e,`.json`)}async function Ot(e,t){try{return(await I.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const kt=`key:`;function At(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 jt(e,t,n){return n?`${kt}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function Mt(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&V(`filePrefix`,i);let m=z.resolve(t),h=await Q(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=At(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=z.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await Y(t,n):structuredClone(e)}catch(t){if(t instanceof F.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?jt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}const Nt=S(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function Pt(){return typeof import.meta.url==`string`&&import.meta.url?z.dirname(De(import.meta.url)):null}async function Ft(){if(Nt.cached)return Nt.cached;let e=Pt();if(e)try{let t=await R(z.join(e,`../package.json`),`utf-8`);return Nt.cached=JSON.parse(t),Nt.cached}catch{}return Nt.cached={name:`@workflow/world-local`,version:`5.0.2`},Nt.cached}const It=`version.txt`;var Lt=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Rt=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 zt(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 Bt(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Vt(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:zt(t.substring(n+1))}}function Ht(e,t){return`${e}@${Bt(t)}`}function Ut(e,t){console.log(`[world-local] Upgrading from version ${Bt(e)} to ${Bt(t)}`)}async function Wt(e){let t=z.resolve(e);try{await Ae(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Lt(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await Oe(t,ke.R_OK)}catch(e){let n=e;throw new Lt(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=z.join(t,`.workflow-write-test-${Date.now()}`);try{await Fe(n,``),await Pe(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Lt(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Gt(e){let t=z.join(z.resolve(e),It);try{return Vt(await R(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Kt(e,t){let n=z.join(z.resolve(e),It),r=Ht((await Ft()).name,t);await Fe(n,r)}function qt(e,t){return t||Bt(e)}async function Jt(e){await Wt(e);let t=await Ft(),n=zt(t.version),r=await Gt(e);if(r===null){await Kt(e,n);return}let{version:i}=r;if(Bt(i)!==Bt(n))try{Ut(i,n),await Kt(e,n)}catch(e){let r=qt(i,e instanceof Rt?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${Bt(i)} to ${Bt(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 Yt=S(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function Xt(){return Yt.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),Yt.apiPromise}async function Zt(){return Yt.tracerPromise||=Xt().then(e=>e?e.trace.getTracer(`workflow`):null),Yt.tracerPromise}async function Qt(e,...t){let[n,r]=await Promise.all([Zt(),Xt()]),{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 $t(e){let t=await Xt();if(t)return t.SpanKind[e]}function en(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const tn=en(`peer.service`),nn=en(`rpc.system`),rn=en(`rpc.service`),an=en(`rpc.method`),on=en(`workflow.run.id`),sn=en(`step.id`),cn={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},ln={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},un=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function dn(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 fn(e,t){return typeof e[t]==`string`?e[t]:void 0}function pn(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function mn(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 hn(e,t,n){let r=`${e}.${t}`,i={},a=ln[r],o=a===void 0?un.has(r)?pn(n[0]):void 0:fn(n,a);if(o&&Object.assign(i,on(o)),r===`world.steps.get`){let e=fn(n,1);e&&Object.assign(i,sn(e))}return i}function gn(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=dn(t);r&&(n=`${e}.${a} ${r}`)}return Qt(n,{kind:await $t(`INTERNAL`)},async r=>{r?.setAttributes({...tn(cn.peerService),...nn(cn.rpcSystem),...rn(cn.rpcService),...an(n),...hn(e,a,t)});let o=await i(...t),s=mn(o);return s&&r?.setAttributes(on(s)),o})}}return n}var _n=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}))(),vn=i(),yn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,K))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,wt)}};const bn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,xn=2147483647,Sn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function Cn(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 wn(){return{bodyTimeout:Cn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,0),connections:1e3,headersTimeout:Cn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,0),keepAliveTimeout:3e4}}const Tn=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function En(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(Tn))return!0;t=`cause`in t?t.cause:void 0}return!1}function Dn(e){let t=wn(),i=ye()?o({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,s=i?void 0:new vn.Agent(t),u=new yn,d=w(),f=new _n.Sema(Sn),p=new AbortController,m=p.signal,h=new Map,g=new Map,_=async(r,o,c)=>{let p=[];if(c?.idempotencyKey){let e=h.get(c.idempotencyKey);if(e)return{messageId:e}}let _=u.serialize(o),{prefix:v}=l(r),y=E.parse(`msg_${d()}`),b=o,x=b.runId??void 0,S=b.stepId??void 0;if(c?.idempotencyKey){let e=c.idempotencyKey;h.set(e,y),p.push(()=>{h.delete(e)})}return(async()=>{if(c?.delaySeconds&&c.delaySeconds>0){let e=Math.min(c.delaySeconds*1e3,xn);await Re(e,void 0,{signal:m})}f.tryAcquire()||(a(`[world-local]: concurrency limit (${Sn}) reached, waiting for queue to free up`),await f.acquire());let o=0;try{for(let a=0;a<256;a++){let l={...c?.headers,"content-type":`application/json`,"x-vqs-queue-name":r,"x-vqs-message-id":y,"x-vqs-message-attempt":String(o+1)},u=g.get(v),d,f;try{if(u)d=await u(new Request(M(lt(e),{type:`flow`}),{method:`POST`,headers:l,body:_}));else{let r=await ut(e),a=M(r,{type:`flow`});d=i?await n(a,{method:`POST`,headers:new Headers(l),body:_,agents:i,signal:m,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(a,{method:`POST`,duplex:`half`,dispatcher:s,headers:l,body:_,signal:m})}o++,f=await d.text()}catch(e){let t=e?.name;if(m.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(En(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${a+1}), retrying`,{queueName:r,messageId:y,...x&&{runId:x},...S&&{stepId:S},error:String(e)}),await Re(5e3,void 0,{signal:m});continue}if(d.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,xn);await Re(t,void 0,{signal:m})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${o}, HTTP ${d.status})`,{queueName:r,messageId:y,...x&&{runId:x},...S&&{stepId:S},handlerError:f}),await Re(5e3,void 0,{signal:m})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:r,messageId:y,...x&&{runId:x},...S&&{stepId:S}})}finally{f.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(En(e)?console.error(`[local world] Queue operation failed: detected "${Tn}". 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:r,messageId:y,...x&&{runId:x},...S&&{stepId:S},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of p)e()}),{messageId:y}},v=F.compile(F.object({"x-vqs-queue-name":c,"x-vqs-message-id":E,"x-vqs-message-attempt":F.coerce.number()}));return{queue:_,createQueueHandler:(e,t)=>async n=>{let r=v.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new yn().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,bn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Ft()).version}`,registerHandler(e,t){g.set(e,t)},async close(){m.aborted||(p.abort(),i&&r(i),await s?.close())}}}var On=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`))}}})),kn=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())}}})),An=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}})),jn=t(((t,n)=>{var r=e(`fs`),i=On(),a=kn(),o=An(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
-
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=te,e.createWriteStream=ne;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;ie(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function ee(){var e=this;ie(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function te(t,n){return new e.ReadStream(t,n)}function ne(t,n){return new e.WriteStream(t,n)}var re=e.open;e.open=ie;function ie(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return re(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),Mn=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}})),Nn=t((e=>{var t=Mn();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}}})),Pn=t(((e,t)=>{t.exports=Nn()})),Fn=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})),In=t(((t,n)=>{let r=e(`path`),i=jn(),a=Pn(),o=s(),c=Fn(),l={};function u(e,t){return t.lockfilePath||`${e}.lock`}function d(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function f(e,t,n){let r=u(e,t);t.fs.mkdir(r,i=>{if(!i)return c.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?f(e,{...t,stale:0},n):n(r);if(!p(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));m(e,t,r=>{if(r)return n(r);f(e,{...t,stale:0},n)})})})}function p(e,t){return e.mtime.getTime()<Date.now()-t.stale}function m(e,t,n){t.fs.rmdir(u(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function h(e,t){let n=l[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return g(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=c.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,h(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function g(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),l[e]===t&&delete l[e],t.options.onCompromised(n)}function _(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs: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),d(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{f(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=l[r]={lockfilePath:u(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};h(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));v(r,{...t,realpath:!1},e)})})})})}function v(e,t,n){t={fs:i,realpath:!0,...t},d(e,t,(e,r)=>{if(e)return n(e);let i=l[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete l[r],m(r,t,n)})}function y(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),d(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(u(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!p(r,t)))})}function b(){return l}o(()=>{for(let e in l){let t=l[e].options;try{t.fs.rmdirSync(u(e,t))}catch{}}}),n.exports.lock=_,n.exports.unlock=v,n.exports.check=y,n.exports.getLocks=b})),Ln=t(((e,t)=>{let n=jn();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}})),Rn=t(((e,t)=>{let n=In(),{toPromise:r,toSync:i,toSyncOptions:a}=Ln();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 zn(e){return Te(`sha256`).update(e).digest(`hex`)}function Bn(e,t,n){return H(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Vn(e,t,n){let r=[Bn(e,t)];n&&r.push(Bn(e,t,n));for(let e of r){let t;try{t=await L.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function Hn(e,t,n){let r=[Bn(e,t)];n&&r.push(Bn(e,t,n));for(let e of r)try{return await L.access(e),!0}catch{}return!1}function Un(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function Wn(e,t,n){let r=[Un(e,t)];n&&r.push(Un(e,t,n));for(let e of r)try{return await L.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function Gn(e,t,n){return H(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Kn(e,t,n,r){return z.join(Gn(e,t,r),`${n}.json`)}async function qn(e,t,n){let r=[Gn(e,t)];n&&r.push(Gn(e,t,n));for(let e of r){let t;try{t=await L.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await U(()=>L.unlink(z.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await L.rmdir(e).catch(()=>{})}}async function Jn(e,t,n){let r=await Yn(e,t,n),i=Date.now();if(r.maxId)try{let e=ie(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${ir(i)}`,createdAt:new Date(i)}}async function Yn(e,t,n){let r=[];try{r=await L.readdir(z.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!vt(t)&&!(n&&_t(t,n)))continue;let r=gt(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=_e(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Xn(e,t){return z.join(e,`hooks`,`tokens`,`${zn(t)}.json`)}const Zn=F.compile(F.object({hookId:F.string().optional(),runId:F.string(),eventId:F.string().optional(),tokenRetentionUntil:F.coerce.date().optional(),claimedFrom:F.object({runId:F.string(),hookId:F.string(),workflowName:F.string().optional(),deploymentId:F.string().optional(),runSpecVersion:F.number().optional()}).optional()}));async function Qn(e){try{return await Y(e,Zn)}catch(e){if(e instanceof SyntaxError||e instanceof F.ZodError)return null;throw e}}async function $n(e,t,n){let r=Xn(e,t);await L.mkdir(z.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,Rn.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new O(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new O(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new O(`Could not release Hook token claim lock`,{cause:e})}return o}function er(e,t,n){let r=Te(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return z.join(e,`hooks`,`resumes`,`${r}.json`)}async function tr(e,t,n,r){await $n(e,t,async i=>{let a=Xn(e,t),o=await Qn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await X(a))})}function nr(e,t,n,r){let i=Te(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return z.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const rr=S(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),ir=e=>rr.next(e),ar=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=gt(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return de(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return de(a)}},or=F.compile(F.object({runId:F.string()})),sr=F.compile(F.object({hookId:F.string(),tag:F.string().optional()}));function cr(e,t){return H(e,`hooks`,`token-index`,zn(t))}function lr(e,t){return V(`hookId`,t),H(e,`hooks`,`id-index`,t)}function ur(e){return H(e,`hooks`,`by-run`)}function dr(e){let t=gt(e);return t===e?void 0:e.slice(t.length+1)}function fr(e,t){return t?vt(e)||_t(e,t):vt(e)}async function pr(e){try{return await Y(e,_)}catch(e){if(e instanceof SyntaxError||e instanceof F.ZodError)return null;throw e}}async function mr(e,t,n,r,i,a){V(`runId`,n),V(`eventId`,i),a!==void 0&&V(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Z(z.join(cr(e,t),o),s),Z(z.join(lr(e,r),o),s)])}function hr(e,t,n,r){return W(e,`hooks/by-run`,`${t}-${n}`,r)}async function gr(e,t,n,r){await Z(hr(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function _r(e,t,n,r){await X(hr(e,t,n,r)),r&&await X(hr(e,t,n))}async function vr(e,t){V(`runId`,t);let n=ur(e),r=`${t}-`,i=[];for(let e of await Q(n)){if(!e.startsWith(r))continue;let t=null;try{t=await Y(z.join(n,`${e}.json`),sr)}catch(e){if(!(e instanceof SyntaxError||e instanceof F.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function yr(e,t){await X(z.join(ur(e),`${t}.json`))}const br=S(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function xr(){br.ensuredBasedirs.clear()}async function Sr(e){let t=z.resolve(e),n=br.ensuredBasedirs.get(t);return n||(n=wr(t).catch(e=>{throw br.ensuredBasedirs.delete(t),e}),br.ensuredBasedirs.set(t,n)),n}async function Cr(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function wr(e){let t=z.join(e,`hooks`,`.hook-index-complete`);try{await L.access(t);return}catch{}let n=z.join(e,`events`);await Cr(await Q(n),32,async t=>{let r=await pr(z.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await mr(e,i,r.runId,r.correlationId,r.eventId,dr(t))}catch{}});let r=z.join(e,`hooks`);await Cr(await Q(r),32,async t=>{let n=null;try{n=await Y(z.join(r,`${t}.json`),D)}catch(e){if(!(e instanceof SyntaxError||e instanceof F.ZodError))throw e}if(n)try{await gr(e,n.runId,n.hookId,dr(t))}catch{}}),await Z(t,``)}async function Tr(e,t,n,r){await Sr(e);let i;try{i=t.kind===`token`?cr(e,t.token):lr(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=gt(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await Q(i)).filter(e=>fr(e,r)).sort((e,t)=>gt(t).localeCompare(gt(e)));for(let t of o){let r=null;try{r=await Y(z.join(i,`${t}.json`),or)}catch(e){if(!(e instanceof SyntaxError||e instanceof F.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=W(e,`events`,`${r.runId}-${o}`,dr(t))}catch{continue}let c=await pr(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}function Er(e,t){if(t===`none`){let{dynamicWorkflowCode:t,...n}=e;return{...n,input:void 0,output:void 0}}return e}function Dr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Or(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function kr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Ar(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 jr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Mr(e,t,n){let r=await G(e,`runs`,t,v,n);return r?f(r.status):!1}async function Nr(e,t,n,r){let i=async t=>{if(await Mr(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await Hn(e,t.correlationId,r)},a=await Tr(e,t,e=>jr(e,n)&&i(e),r);return a&&jr(a,n)?a:null}async function Pr(e,t,n){let r=Ar(t);return await Z(Xn(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 gr(e,r.runId,r.hookId,n),await Z(W(e,`hooks`,r.hookId,n),JSON.stringify(r,K,2)),r}async function Fr(e,t,n){let r=await Nr(e,{kind:`token`,token:t},e=>kr(e)===t,n);return r?Pr(e,r,n):null}async function Ir(e,t,n){let r=await Nr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Pr(e,r,n):null}function Lr(e,t){async function n(n){return await Hn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Mr(e,n.runId,t)}async function r(n){let r=await Vn(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await Qn(Xn(e,i));if(a?.hookId)try{let o=await G(e,`hooks`,a.hookId,D,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new j(i)}else if(o)return null}catch(e){if(!ft.is(e))throw e;return null}let o=z.join(e,`hooks`),s=await Q(o),c=!1;for(let e of s){let t=await Y(z.join(o,`${e}.json`),D);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new j(i)}}if(c)throw new j(i);return null}async function a(r,i){V(`hookId`,r);let a=await G(e,`hooks`,r,D,t);if(a&&!await n(a))throw new j(r);let o=a??await Ir(e,r,t);if(!o)throw new j(r);let s=i?.resolveData||`all`;return Or({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await Fr(e,n,t);if(!r)throw new j(n);return r}async function s(t){let r=z.join(e,`hooks`),i=t.resolveData||`all`,a=await Mt({directory:r,schema:D,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>Or(e,i))}}return{get:a,getByToken:o,list:s}}async function Rr(e,t){await Sr(e);for(let n of await vr(e,t)){if(n.hookId){let r=null,i=null;try{i=W(e,`hooks`,n.hookId,n.tag),r=await Y(i,D)}catch(e){if(!ft.is(e)&&!(e instanceof SyntaxError||e instanceof F.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await tr(e,r.token,r.runId,r.hookId),await X(nr(e,r.token,r.runId,r.hookId)),await X(i)}}await yr(e,n.fileId)}}const zr=S(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),Br=e=>zr.next(e),Vr=F.compile(F.object({streams:F.array(F.string())}));function Hr(e){return e===1}function Ur(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function Wr(e){return Hr(e[0])}function Gr(e){return{eof:Wr(e),chunk:Buffer.from(e.subarray(1))}}async function Kr(e){try{return await L.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function qr(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 Jr(e,t){return V(`streamName`,t),z.join(e,t)}async function Yr(e,t,n){let r=Jr(e,t),i=await Kr(r),a=new Map;return qr(a,i,`.json`),qr(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&qr(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const Xr=`chnk_${`0`.repeat(26)}`;async function Zr(e,t,n){let r=z.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{V(`runId`,t),a=(await G(e,`streams/runs`,t,Vr,n))?.streams??[]}catch(e){Qr(`streams of ${t}`,e);return}for(let e of a)try{let t=Jr(r,e);await J(z.join(t,`${Xr}${i}.bin`),Ur({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await Kr(t))e.startsWith(Xr)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await U(()=>L.unlink(z.join(t,e))).catch(t=>{t.code!==`ENOENT`&&Qr(e,t)})}catch(t){Qr(e,t)}}function Qr(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function $r(e,t){let n=t?`.${t}`:``,r=new Be,i=new Set;async function a(n,r){V(`runId`,n),V(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=W(e,`streams/runs`,n,t),s=(await G(e,`streams/runs`,n,Vr,t))?.streams??[];s.includes(r)||(s.push(r),await q(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${Br()}`;await a(await t,i);let l=o(s),u=Ur({chunk:l,eof:!1});await J(z.join(Jr(z.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${Br()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=Ur({chunk:t,eof:!1});return await J(z.join(Jr(z.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${Br()}`;await a(await t,i),await J(z.join(Jr(z.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),Ur({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return V(`runId`,n),(await G(e,`streams/runs`,n,Vr,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await Yr(z.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=z.join(c,`${e}${t}`);if(f<l){if(Hr(await Et(n))){u=!0;break}f++;continue}if(d.length>=a){Hr(await Et(n))?u=!0:f++;break}let r=Gr(await Tt(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 Yr(z.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(Hr(await Et(z.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=z.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await Yr(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`;Hr(await Et(z.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=Gr(await Tt(z.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await Yr(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=Gr(await Tt(z.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function ei(e){let t=ue(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${pe} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function ti(e,t){return{...e,input:void 0,output:void 0,error:void 0,dynamicWorkflowCode:void 0,expiredAt:t}}async function ni(e,t,n){await Promise.all([ii(z.join(e,`steps`),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),ii(z.join(e,`events`),t,e=>{let t=e.eventData;if(t&&typeof t==`object`){for(let n of re(String(e.eventType)))delete t[n];(e.eventType===`run_created`||e.eventType===`run_started`)&&(delete t.dynamicWorkflowCode,delete t.dynamicWorkflowCodeRef)}}),ai(e,t),Zr(e,t,n)])}const ri=F.record(F.string(),F.any()),$=F.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of re(String(e.eventType)))n in t||(t[n]=void 0)}return e},_);async function ii(e,t,n){let r;try{r=await Q(e)}catch(t){oi(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=z.join(e,`${i}.json`);try{let e=await Y(r,ri);if(!e)continue;n(e),await q(r,e,{overwrite:!0})}catch(e){oi(r,e)}}}async function ai(e,t){let n;try{await Sr(e),n=await vr(e,t)}catch(e){oi(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=W(e,`hooks`,r.hookId,r.tag),i=await Y(n,ri);if(!i||i.runId!==t)continue;i.metadata=void 0,await q(n,i,{overwrite:!0})}catch(e){oi(r.hookId,e)}}function oi(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const si=new Be;si.setMaxListeners(0);function ci(){return se(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function li(e){si.emit(`run:${e}`)}function ui(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),si.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);si.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function di(e,t,n,r,i,a){if(f(a.status)||await Wn(e,t))throw new xe(`Workflow run "${t}" is already in a terminal state`);let o=Kn(e,t,n);await Z(o,r);try{if(await Wn(e,t)||await Dt(o,i)!==`linked`)throw new xe(`Workflow run "${t}" is already in a terminal state`)}finally{await L.unlink(o).catch(()=>{})}}async function fi(e,t,n,r,i){V(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Z(Un(e,t),``),await qn(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=ei(i.attributes),s=o?ti(i,n):i;return await q(H(e,`runs`,`${t}.json`),s,{overwrite:!0}),li(t),await Rr(e,t),o&&await ni(e,t,void 0),{event:void 0,run:Er(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${ir()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:8},c=H(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await di(e,t,i,JSON.stringify(s,K,2),c,r):await q(c,s),{event:y(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const pi=S(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function mi(e,t){let n=pi.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{pi.byKey.get(e)===r.task&&pi.byKey.delete(e)}})();return r.task=i,pi.byKey.set(e,i),i}function hi(e,t){let n=(async(n,r)=>{V(`runId`,n);let i=await G(e,`runs`,n,v,t);if(!i)throw new Se(n);return Er(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let r=Date.now()+(t?.timeoutMs??0);for(;;){let i=await n(e,t);if(f(i.status))return i;let a=r-Date.now();if(a<=0||t?.signal?.aborted)return i;await ui(e,Math.min(a,ci()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof Se)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await Mt({directory:z.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:ar(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>Er(e,`none`))}:r}),experimentalSetAttributes:async(n,r,i)=>(V(`runId`,n),mi(n,async()=>{let a=await G(e,`runs`,n,v,t);if(!a)throw new Se(n);try{ve(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof ce,e}let o=te(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await q(W(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const gi=864e5;function _i(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new O(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*gi}const vi=F.compile(F.object({eventId:F.string()})),yi=F.compile(F.object({runId:F.string(),resumeId:F.string(),hookId:F.string(),eventId:F.string(),payloadDigest:F.string().optional()}));function bi(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function xi(e,t,n,r){let i=await Yn(e,t,r);for(let a of i.ids){let i=await G(e,`events`,`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&bi(i,n))return i}return null}async function Si(e,t,n){if(t.hookId&&await Hn(e,t.hookId,n))return!0;let r=await G(e,`runs`,t.runId,v,n);return r?f(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Ci(e){try{return await Y(e,vi)}catch(e){if(e instanceof SyntaxError||e instanceof F.ZodError)return null;throw e}}function wi(e){return ne(e.eventId)?e.eventId:null}function Ti(e,t){let n=gt(t).slice(e.length+1);return ne(n)?n:null}async function Ei(e,t,n){return(await Mt({directory:z.join(e,`events`),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:ar(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Di(e,t,n,r,i){let a=await G(e,`events`,`${t}-${r}`,$,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await G(e,`hooks`,n,D,i))return;let o=Ar(a);await mr(e,o.token,t,n,r,i),await gr(e,t,n,i),await Z(W(e,`hooks`,n,i),JSON.stringify(o,K,2))}async function Oi(e,t,n,r,i){let a=nr(e,t,n,r);return await Z(a,JSON.stringify({eventId:i}))?i:(await Ci(a))?.eventId??null}function ki(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 Ai(e,t){let n=z.join(e,`waits`),r=await Q(n);for(let e of r)e.startsWith(`${t}-`)&&await X(z.join(n,`${e}.json`))}async function ji(e,t,n,r){return mi(t,async()=>{let i=(await Y(W(e,`runs`,t,n),v))?.attributes??r.attributes,a={...r,attributes:i},o=f(a.status)&&ei(i);return o&&(a=ti(a,new Date)),await q(W(e,`runs`,t,n),a,{overwrite:!0}),f(a.status)&&li(t),{run:a,purged:o}})}function Mi(e,t){let n=_i(),r=4194304,i=new Map,a=new Map,o=new Map,s=0;function c(e){let t=i.get(e);if(!t)return;i.delete(e),s-=a.get(e)??0,a.delete(e);let n=o.get(t.runId);n?.delete(e),n?.size===0&&o.delete(t.runId)}function l(e){for(let t of o.get(e)??[])c(t)}function _(){i.clear(),a.clear(),o.clear(),s=0,x.clear()}let x=new Map;function S(e){return t?`${e}.${t}`:e}async function ee(n,r){let i=`${n}-${me(r)}`;for(let n of t?[W(e,`events`,i,t),W(e,`events`,i)]:[W(e,`events`,i)])try{return await L.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function re(n,r){let i=S(n),a=x.get(i);if(a===void 0||r?.rescan){let r=await Yn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},x.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await ee(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function ie(e,t){let n=_e(t);if(n===null)return;let r=x.get(S(e));r&&(r.published=Math.max(r.published,n))}async function se(e){let t=await re(e);return t===null?`evnt_${ir()}`:me(t)}async function ce(n){let r=await re(n,{rescan:!0});return r===null?Jn(e,n,t):{eventId:me(r),createdAt:new Date}}function le(e,t,n){if(n>r)return;for(;i.size>0&&(i.size>=1e3||s+n>r);){let e=i.keys().next().value;c(e)}i.set(e,t),a.set(e,n),s+=n;let l=o.get(t.runId)??new Set;l.add(e),o.set(t.runId,l)}function ue(e,t,n){if(b(e.eventType)){l(e.runId);return}let i=Buffer.byteLength(n);if(i>r)return;let a=$.safeParse(JSON.parse(n,wt));a.success&&le(t,a.data,i)}async function fe(n){let r=n;for(let n=0;;n++){let i=W(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,K,2),o=_e(r.eventId);if(o===null)return await J(i,a),ue(r,i,a),r;if(await Z(i,a))return ie(r.runId,r.eventId),ue(r,i,a),r;let s=await re(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});ze(s!==null),r={...r,eventId:me(s)}}}async function pe(n,r){let i=await Vn(e,n,t);if(i.committed)throw i.forceClaimedBy?new k(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new j(n)}let w=(t,n)=>Mt({directory:z.join(e,`events`),schema:$,cachedItems:i,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:ar(`evnt`),getId:e=>e.eventId,getSortKey:wi,getSortKeyFromFileId:e=>Ti(t,e)}),ye=new Map,E=new Map,M={clearCache:_,async create(r,i,a){if(i.eventType===`hook_created`&&i.eventData.tokenRetentionUntil!==void 0&&i.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new O(`Hook minimum retention cannot exceed ${n/gi} days in the Local World.`,{status:400});if(r!=null&&r!==``&&V(`runId`,r),`correlationId`in i&&typeof i.correlationId==`string`&&V(`correlationId`,i.correlationId),m(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.${t}`:`${r}-${i.correlationId}`;return ki(ye,e,o)}if(T(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.hook.${t}`:`${r}-${i.correlationId}.hook`;return ki(E,e,o)}return o();async function o(){let n=``,o=!1,s=null,c=new Date,_;if(i.eventType===`run_created`&&(!r||r===``))_=`wrun_${ir()}`;else if(r)_=r;else throw Error(`runId is required for non-run_created events`);if(i.eventType===`run_created`&&r&&r!==``){let e=he(_,`wrun_`);if(e)throw new O(e)}let x=i.specVersion??8,S=null;if(i.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(i.eventType)&&(S=await G(e,`runs`,_,v,t),i.eventType===`run_started`&&!S&&`eventData`in i&&i.eventData)){let n=i.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c};if(await Z(W(e,`runs`,_,t),JSON.stringify(r,K))){let e=await se(_);await fe({eventType:`run_created`,runId:_,eventId:e,createdAt:c,specVersion:x,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),S=r}else S=await G(e,`runs`,_,v,t)}}if(n=await se(_),!S&&(i.eventType===`run_failed`||i.eventType===`attr_set`||i.eventType===`run_started`))throw new Se(_);if(S){if(ge(S.specVersion))throw new Ce(S.specVersion,8);if(C(S.specVersion))return fi(e,_,i,S,a&&{resolveData:ae(a.resolveData)})}let ee=d(i),le=ee&&i.eventType===`step_started`;if(S&&f(S.status)){if(i.eventType===`run_cancelled`&&S.status===`cancelled`){let e=await fe({...i,runId:_,eventId:n,createdAt:c,specVersion:x}),t=a?.resolveData??`all`;return{event:y(e,t),run:S,...S?{maxEvents:oe()}:{}}}if(i.eventType===`run_started`)throw new xe(`Workflow run "${_}" is already in terminal state "${S.status}"`);if(b(i.eventType))throw new A(`Cannot transition run from terminal state "${S.status}"`);if(ee)throw new A(`Cannot create new entities on run in terminal state "${S.status}"`);if(i.eventType===`attr_set`)throw new A(`Cannot set attributes on run in terminal state "${S.status}"`)}let T=null;if(m(i.eventType)&&i.eventType!==`step_created`&&i.correlationId){if(T=await G(e,`steps`,`${_}-${i.correlationId}`,p,t),!T&&!le)throw new O(`Step "${i.correlationId}" not found`);if(le&&T)throw new A(`Step "${i.correlationId}" already created`);if(T){if(g(T.status))throw new A(`Cannot modify step in terminal state "${T.status}"`);if(S&&f(S.status)&&(T.status!==`running`||i.eventType===`step_started`))throw new xe(`Cannot ${i.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${S.status}"`)}}if(h(i.eventType)&&i.correlationId){if(i.eventType===`hook_received`&&a?.resumeId){let n=await Y(er(e,_,a.resumeId),yi);if(n&&n.hookId===i.correlationId&&(!a.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===a.resumePayloadDigest)){let r=await G(e,`events`,`${_}-${n.eventId}`,$,t),i=r&&bi(r,n)?r:await xi(e,_,n,t);if(i)return{event:i}}}if(i.eventType===`hook_received`&&await pe(i.correlationId,i.eventData?.token),!await G(e,`hooks`,i.correlationId,D,t))throw new j(i.correlationId);if(i.eventType===`hook_received`&&a?.resumeId){let r=er(e,_,a.resumeId),c=async r=>{if(r.hookId!==i.correlationId)throw new A(`hook_received resumeId "${a.resumeId}" already recorded for a different hook`);if(a.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==a.resumePayloadDigest)throw new A(`hook_received resumeId "${a.resumeId}" already recorded with a different payload`);let c=await G(e,`events`,`${_}-${r.eventId}`,$,t);if(c&&bi(c,r))return{event:c};let l=await xi(e,_,r,t);return l?{event:l}:(s=r.eventId,c||(n=r.eventId,o=!0),null)},l=await Y(r,yi);if(l){let e=await c(l);if(e)return e}else if(o=!ne(n),s=n,!await Z(r,JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}))){s=null;let e=await Y(r,yi);if(e){let t=await c(e);if(t)return t}}}}let ye,E={...i,runId:_,eventId:n,createdAt:c,specVersion:x,...i.eventType===`hook_received`&&a?.resumeId?{resumeId:a.resumeId}:{}};if(i.eventType===`run_started`&&`eventData`in E&&delete E.eventData,E.eventType===`run_created`&&E.eventData){let{dynamicWorkflowCode:e,dynamicWorkflowCodeRef:t,...n}=E.eventData;E={...E,eventData:n}}if(le&&E.eventType===`step_started`&&E.eventData){let{input:e,...t}=E.eventData;E={...E,eventData:t}}let k,M=!1,N,P,we,F=!1,Te;if(b(i.eventType)&&S){await Z(Un(e,_,t),``),await qn(e,_,t);let r=await ce(_);n=r.eventId,E={...E,eventId:n,createdAt:r.createdAt}}if(i.eventType===`run_created`&&`eventData`in i){let n=i.eventData;if(ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),k={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c},!await Z(W(e,`runs`,_,t),JSON.stringify(k,K,2)))throw new A(`Workflow run "${_}" already exists`)}else if(i.eventType===`run_started`){if(S){if(S.status===`running`){if(a?.skipPreload)return{run:S,maxEvents:oe()};let e=await w(_,{limit:oe()});return{run:S,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:oe()}}let n=await ji(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:S.startedAt??c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,M=n.purged}}else if(i.eventType===`run_completed`&&`eventData`in i){let n=i.eventData;if(S){let r=await ji(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,M=r.purged,await Promise.all([Rr(e,_),Ai(e,_)])}}else if(i.eventType===`run_failed`&&`eventData`in i){let n=i.eventData;if(S){let r=await ji(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,M=r.purged,await Promise.all([Rr(e,_),Ai(e,_)])}}else if(i.eventType===`run_cancelled`){if(S){let n=await ji(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,M=n.purged,await Promise.all([Rr(e,_),Ai(e,_)])}}else if(i.eventType===`attr_set`&&S)k=await mi(_,async()=>{let n=await Y(W(e,`runs`,_,t),v);if(!n)throw new Se(_);if(ve(i.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:i.eventData.allowReservedAttributes===!0}),i.correlationId&&i.eventData.writer.type===`workflow`&&!await Z(H(e,`.locks`,`attributes`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Attribute event "${i.correlationId}" already exists`);let r={...n,attributes:te(n.attributes,i.eventData.changes),updatedAt:c};return await q(W(e,`runs`,_,t),r,{overwrite:!0}),r});else if(i.eventType===`step_created`&&`eventData`in i){if(!await Z(H(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Step "${i.correlationId}" already created`);let n=i.eventData;N={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x},await q(W(e,`steps`,`${_}-${i.correlationId}`,t),N)}else if(i.eventType===`step_started`){if(!T&&le){let n=i.eventData;if(await Z(H(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``)){let r={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x};await q(W(e,`steps`,`${_}-${i.correlationId}`,t),r);let a=await se(_);await fe({eventType:`step_created`,runId:_,eventId:a,createdAt:c,specVersion:x,correlationId:i.correlationId,eventData:{stepName:n.stepName,input:n.input}}),T=r,F=!0}else throw new A(`Step "${i.correlationId}" already created`)}if(T){if(T.retryAfter&&T.retryAfter.getTime()>Date.now())throw new be(`Cannot start step "${i.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((T.retryAfter.getTime()-Date.now())/1e3)});let n=`${_}-${i.correlationId}`,r=await G(e,`steps`,n,p,t);if(r&&g(r.status))throw new A(`Cannot modify step in terminal state "${r.status}"`);N={...T,status:`running`,startedAt:T.startedAt??c,attempt:T.attempt+1,retryAfter:void 0,updatedAt:c},await q(W(e,`steps`,n,t),N,{overwrite:!0})}}else if(i.eventType===`step_completed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Z(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);N={...T,status:`completed`,output:n.result,completedAt:c,updatedAt:c},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(i.eventType===`step_failed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Z(H(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);N={...T,status:`failed`,error:n.error,completedAt:c,updatedAt:c},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(i.eventType===`step_retrying`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;N={...T,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:c},await q(W(e,`steps`,r,t),N,{overwrite:!0})}}else if(i.eventType===`hook_created`&&`eventData`in i){let r=i.eventData,s=Xn(e,r.token),l,u=()=>JSON.stringify({token:r.token,hookId:i.correlationId,runId:_,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil,...l&&{claimedFrom:l}}),d=await $n(e,r.token,async a=>{let o=await Qn(s);if(o||=(a.throwIfAborted(),await X(s),await Fr(e,r.token,t),await Qn(s)),!o)return a.throwIfAborted(),ze(await Z(s,u())),{status:`claimed`};if(o.runId===_&&o.hookId===i.correlationId)return{status:`owned`,claim:o};if(!await Si(e,o,t)){if(r.force!==!0||!o.hookId)return{status:`conflict`,claim:o};a.throwIfAborted();let s=await G(e,`runs`,o.runId,v,t),u=s!==null&&!f(s.status);if(l={runId:o.runId,hookId:o.hookId,...u&&{workflowName:s.workflowName,deploymentId:s.deploymentId,runSpecVersion:s.specVersion}},u&&(s.specVersion??1)<8)return{status:`conflict`,claim:o,forceRefusedReason:`victim-spec-version`};let d=await Ei(e,_,i.correlationId);d?(n=d,ye={...E,eventId:n}):(ye=await fe({...E,eventData:{...E.eventData,forceClaimedFrom:l}}),n=ye.eventId),await gr(e,_,i.correlationId,t),await q(W(e,`hooks`,i.correlationId,t),{runId:_,hookId:i.correlationId,token:r.token,metadata:r.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:c,specVersion:x,isWebhook:r.isWebhook??!1,isSystem:r.isSystem??!1,tokenRetentionUntil:r.tokenRetentionUntil,claimedFrom:l},{overwrite:!0});let p=await Z(Bn(e,o.hookId,t),JSON.stringify({forceClaimedBy:{runId:_,hookId:i.correlationId}}));u&&p&&await fe({eventType:`hook_disposed`,correlationId:o.hookId,eventData:{token:r.token,forceClaimedBy:{runId:_,hookId:i.correlationId}},runId:o.runId,eventId:await se(o.runId),createdAt:new Date,specVersion:s.specVersion})}return a.throwIfAborted(),l?await J(s,u(),{overwrite:!0}):await X(s),o.hookId&&(await X(W(e,`hooks`,o.hookId,t)),await X(nr(e,r.token,o.runId,o.hookId)),await _r(e,o.runId,o.hookId,t)),a.throwIfAborted(),l||ze(await Z(s,u())),{status:`claimed`}});if(d.status===`owned`&&d.claim.claimedFrom&&(l=d.claim.claimedFrom),d.status===`owned`){let a=d.claim,s;if(a.eventId)s=a.eventId;else{let a=await Ei(e,_,i.correlationId);if(a!==null)throw await Di(e,_,i.correlationId,a,t),new A(`Hook "${i.correlationId}" already created`);let o=await Oi(e,r.token,_,i.correlationId,n);if(o===null)throw new A(`Hook "${i.correlationId}" already created`);s=o}n=s,o=!0;let l=de(n.replace(/^evnt_/,``))??c;E={...i,eventData:{...i.eventData,tokenRetentionUntil:a.tokenRetentionUntil},runId:_,eventId:n,createdAt:l,specVersion:x}}if(d.status===`conflict`){let e=d.claim,t=await fe({eventType:`hook_conflict`,correlationId:i.correlationId,eventData:{token:r.token,conflictingRunId:e.runId,...d.forceRefusedReason!==void 0&&{forceRefusedReason:d.forceRefusedReason}},runId:_,eventId:n,createdAt:c,specVersion:x}),o=a?.resolveData??`all`,s=typeof a?.sinceCursor==`string`?await w(_,{sortOrder:`asc`,cursor:a.sinceCursor}):void 0,l={event:y(t,o),run:k,step:N,hook:void 0};return s?{...l,events:o===`none`?s.data.map(e=>y(e,o)):s.data,cursor:s.cursor,hasMore:s.hasMore}:l}l&&(E={...E,eventData:{...E.eventData,forceClaimedFrom:l}});let p=E.eventData;P={runId:_,hookId:i.correlationId,token:p.token,metadata:p.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:E.createdAt,specVersion:x,isWebhook:p.isWebhook??!1,isSystem:p.isSystem??!1,tokenRetentionUntil:p.tokenRetentionUntil,...l&&{claimedFrom:l}},Te=d.status===`owned`||l?{overwrite:!0}:void 0,await mr(e,r.token,_,i.correlationId,n,t)}else if(i.eventType===`hook_disposed`){if(!await Z(Bn(e,i.correlationId,t),``))throw new A(`Hook "${i.correlationId}" already disposed`);let n=W(e,`hooks`,i.correlationId,t),r=await G(e,`hooks`,i.correlationId,D,t);r&&(await tr(e,r.token,r.runId,r.hookId),await X(nr(e,r.token,r.runId,r.hookId))),await X(n),await _r(e,_,i.correlationId,t)}else if(i.eventType===`wait_created`&&`eventData`in i){let n=`${_}-${i.correlationId}`;if(!await Z(H(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new A(`Wait "${i.correlationId}" already exists`);let r=i.eventData;we={waitId:n,runId:_,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x},await q(W(e,`waits`,n,t),we)}else if(i.eventType===`wait_completed`){let n=`${_}-${i.correlationId}`,r=H(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Z(r,``))throw new A(`Wait "${i.correlationId}" already completed`);let a=await G(e,`waits`,n,u,t);if(!a)throw await L.unlink(r).catch(()=>{}),new O(`Wait "${i.correlationId}" not found`);we={...a,status:`completed`,completedAt:c,updatedAt:c},await q(W(e,`waits`,n,t),we,{overwrite:!0})}if(i.eventType===`hook_received`&&i.correlationId&&await pe(i.correlationId,i.eventData?.token),i.eventType===`hook_created`&&i.correlationId){let n=await Vn(e,i.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new A(`Hook "${i.correlationId}" was force-claimed by another run before its creation was journaled`)}let Ee=W(e,`events`,`${_}-${n}`,t),De=JSON.stringify(E,K,2),I=async r=>{let i=_e(n);if(o||i===null)return!1;let a=await re(_,{rescan:r>0&&r%8==0,atLeast:i+1});return a!==null&&(n=me(a),E={...E,eventId:n},Ee=W(e,`events`,`${_}-${n}`,t),De=JSON.stringify(E,K,2),!0)},Oe=!1;ye&&(E=ye,Ee=W(e,`events`,`${_}-${n}`,t),De=JSON.stringify(E,K,2),Oe=!0);for(let r=0;!Oe;r++){if(i.eventType===`hook_received`){let r=await Wn(e,_,t),i=r?null:await G(e,`runs`,_,v,t);if(r||i&&f(i.status))throw new xe(`Workflow run "${_}" is already in a terminal state`);let a=Kn(e,_,`${n}.${ir()}`,t);if(!await Z(a,De))throw new O(`Failed to stage event "${n}" for run "${_}": staging path already exists`);try{if(await Wn(e,_,t))throw new xe(`Workflow run "${_}" is already in a terminal state`);let n=await Dt(a,Ee);if(n===`missing`)throw new xe(`Workflow run "${_}" is already in a terminal state`);Oe=n===`linked`}finally{await X(a).catch(()=>{})}}else Oe=await Z(Ee,De);if(Oe){ie(_,n);break}if(i.eventType===`hook_received`&&a?.resumeId){let r=await G(e,`events`,`${_}-${n}`,$,t);if(r&&bi(r,{runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n}))return{event:r}}if(i.eventType===`hook_created`&&i.correlationId){let r=await G(e,`events`,`${_}-${n}`,$,t);if(r?.eventType===`hook_created`&&r.correlationId===i.correlationId)break}if(!await I(r))break}if(!Oe)throw i.eventType===`hook_created`&&i.correlationId&&await Di(e,_,i.correlationId,n,t),new A(`Event "${n}" already exists for run "${_}"`);ue(E,Ee,De),i.eventType===`hook_received`&&a?.resumeId&&s!==null&&s!==n&&await J(er(e,_,a.resumeId),JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}),{overwrite:!0}),P&&i.eventType===`hook_created`&&(await gr(e,P.runId,P.hookId,t),await q(W(e,`hooks`,P.hookId,t),P,Te)),M&&(await ni(e,_,t),l(_));let ke=a?.resolveData??`all`,Ae=y(E,ke),R;if(i.eventType===`run_started`&&k&&!a?.skipPreload&&(R=await w(_,{limit:oe()})),typeof a?.sinceCursor==`string`){let e=await w(_,{sortOrder:`asc`,cursor:a.sinceCursor});R=ke===`none`?{...e,data:e.data.map(e=>y(e,ke))}:e}let je={event:Ae,run:k,step:N,hook:P,wait:we,...F?{stepCreated:!0}:{},...k?{maxEvents:oe()}:{}};return R?{...je,events:R.data,cursor:R.cursor,hasMore:R.hasMore}:je}},async get(n,r,i){V(`runId`,n),V(`eventId`,r);let a=await G(e,`events`,`${n}-${r}`,$,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);let o=i?.resolveData??`all`;return y(a,o)},async list(e){let{runId:t}=e;V(`runId`,t);let n=e.resolveData??`all`,r=await w(t,{...e.pagination,limit:e.pagination?.limit??oe()});return n===`none`?{...r,data:r.data.map(e=>y(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;V(`correlationId`,n),V(`runId`,t.runId);let r=t.resolveData??`all`,a=await Mt({directory:z.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:ar(`evnt`),getId:e=>e.eventId,getSortKey:wi,getSortKeyFromFileId:e=>Ti(t.runId,e)});return r===`none`?{...a,data:a.data.map(e=>y(e,r))}:a}};async function N(e,t,n){if(!e.event)return e;let r=_e(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await M.list({runId:e.event.runId,pagination:{cursor:`${kt}${me(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let P=(async(e,t,n)=>{if(n?.eventCount===void 0)return M.create(e,t,n);let r=n.resolveData??`all`,i=await M.create(e,t,n);return typeof n.sinceCursor==`string`?i:N(i,n.eventCount,r)});return{...M,create:P}}function Ni(e){let t=z.join(e,`snapshots`);function n(e){return V(`runId`,e),H(t,`${e}.snapshot`)}return{async save(e,r,i){await xt(t),await J(n(e),Buffer.from(le(i,r)),{overwrite:!0})},async load(e){let t;try{t=await Tt(n(e))}catch(e){if(e.code===`ENOENT`)return null;throw e}return ee(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},async delete(e){await L.rm(n(e),{force:!0})}}}function Pi(e,t){return{get:(async(n,r,i)=>{V(`runId`,n),V(`stepId`,r);let a=await G(e,`steps`,`${n}-${r}`,p,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return Dr(a,i?.resolveData??`all`)}),list:(async t=>{V(`runId`,t.runId);let n=t.resolveData??`all`,r=await Mt({directory:z.join(e,`steps`),schema:p,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:ar(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function Fi(e,t){let n=hi(e,t),r=Pi(e,t),i=Mi(e,t),a=Lr(e,t),o=Ni(e);return{runs:gn(`world.runs`,n),steps:gn(`world.steps`,r),events:gn(`world.events`,i),hooks:gn(`world.hooks`,a),experimental_snapshots:gn(`world.experimental_snapshots`,o),clearCache:()=>i.clearCache()}}function Ii(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...st.value,...t};Ge(n.dataDir);let r=n.tag,i=Dn(n),{clearCache:a,...o}=Fi(n.dataDir,r),s=ct(n);return{specVersion:fe(),capabilities:{hookRetention:{active:!0},dynamicWorkflowCode:!0,hookResumeDedup:!0,hookForceClaim:!0},...i,...o,...gn(`world.streams`,{...$r(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await Jt(n.dataDir),!s)return;let e=r?e=>_t(e,r):vt,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=z.join(e,`hooks`),i=await yt(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-DmXynLVH.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await Y(z.join(t,n),a);r?.token&&(await X(z.join(t,`tokens`,`${zn(r.token)}.json`)),await X(nr(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=z.join(e,t),i=await yt(n,r);await Promise.all(i.map(e=>X(z.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=z.join(e,`hooks`,t),i;try{i=await I.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(n,e.name),i=await yt(t,r);await Promise.all(i.map(e=>X(z.join(t,e))))}))}await I.rm(z.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=z.join(e,`streams`,`chunks`),s;try{s=await I.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=z.join(o,e.name),n=await bt(t,r,`.bin`);await Promise.all(n.map(e=>I.unlink(z.join(t,e)).catch(()=>{})))})),mt()}else mt(),xr(),await Ne(n.dataDir,{recursive:!0,force:!0}),await Jt(n.dataDir)}}}export{Lt as DataDirAccessError,Rt as DataDirVersionError,Ve as UnwritableDataDirError,Ii as createWorld,Wt as ensureDataDir,Jt as initDataDir,zt as parseVersion};
|
|
1
|
+
import{a as e,t}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"../../_chunks/workflow/undici-D-ILjOKD.js";import{C as c,E as l,F as u,G as d,H as f,I as p,J as m,K as h,L as g,U as _,V as v,X as y,Y as b,_ as x,_t as S,a as C,c as ee,ct as te,d as ne,et as re,ft as ie,g as ae,gt as oe,ht as se,it as ce,l as le,lt as ue,n as de,o as fe,ot as pe,p as me,pt as w,q as T,r as he,s as ge,u as _e,ut as ve,v as ye,x as E,y as D}from"../../_chunks/workflow/dist-CyBgVS7g.js";import{b as be,f as xe,j as O,k as Se,o as k,p as Ce,r as A,s as we}from"../../_chunks/workflow/dist-T5NnW-0k.js";import{i as j,n as M,r as N,t as Te}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{z as P}from"#compiled/zod/index.js";import{createHash as Ee}from"node:crypto";import{promisify as De}from"node:util";import{fileURLToPath as Oe}from"node:url";import{promises as F}from"node:fs";import I,{access as ke,constants as Ae,mkdir as je,opendir as Me,readFile as Ne,readdir as Pe,readlink as Fe,rm as Ie,unlink as Le,writeFile as Re}from"node:fs/promises";import L from"node:path";import{tmpdir as ze}from"node:os";import{execFile as Be}from"node:child_process";import{setTimeout as Ve}from"node:timers/promises";import He from"node:assert";import{EventEmitter as Ue}from"node:events";var We=class extends O{dataDir;constructor(e,t){super(`[workflow] The local (filesystem) world cannot create its data directory "${e}" (${t}). Workflow runs cannot be stored, so every run will fail before its first step. If this is a Vercel deployment, its filesystem is read-only and the local world cannot work there. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world. Otherwise point WORKFLOW_LOCAL_DATA_DIR at a writable directory.`,{code:t}),this.name=`UnwritableDataDirError`,this.dataDir=e}static is(e){return e instanceof Error&&e.name===`UnwritableDataDirError`}};const Ge=new Set([`EROFS`,`EACCES`,`EPERM`]);function Ke(e){return e!==void 0&&Ge.has(e)}const qe=S(`@workflow/world-local//buildTargetWarnings`,1,()=>({warnedAboutVercelDeployment:!1}));function Je(e){if(qe.warnedAboutVercelDeployment||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=L.resolve(e),n=ze();t===n||t.startsWith(`${n}${L.sep}`)||(qe.warnedAboutVercelDeployment=!0,console.warn(`[workflow] Warning: the local (filesystem) world is running inside a Vercel deployment, writing to ${t}. That filesystem is read-only, so workflow runs will fail before their first step. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world.`))}function Ye(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function Xe(e,t){let n=[],r=e.trim().split(`
|
|
2
|
+
`);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=Ye(i.slice(s+1));c!==void 0&&n.push(c)}return n}const Ze=De(Be);function Qe(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const $e=((e,t)=>e.join(t))([``,`proc`],`/`);async function et(e){let t=[`${$e}/net/tcp`,`${$e}/net/tcp6`],n=[],r=new Set,i=`${$e}/${e}/fd`;try{let e=(await Pe(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await Fe(`${i}/${e}`)).match(/^socket:\[(\d+)\]$/)?.[1]??null));for(let e of t)e.status===`fulfilled`&&e.value&&(n.push(e.value),r.add(e.value))}catch{return[]}if(n.length===0)return[];let a=new Map;for(let e of t)try{let t=(await Ne(e,`utf8`)).split(`
|
|
3
|
+
`).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=Qe(c,16);l!==void 0&&a.set(o,l)}}catch{}let o=[];for(let e of n){let t=a.get(e);t!==void 0&&o.push(t)}return o}async function tt(e){try{let{stdout:t}=await Ze(`lsof`,[`-a`,`-i`,`-P`,`-n`,`-p`,e.toString()]),n=[],r=t.split(`
|
|
4
|
+
`);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Qe(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function nt(e){try{let{stdout:t}=await Ze(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Xe(t,e)}catch{return[]}}async function rt(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await et(e);case`darwin`:return await tt(e);case`win32`:return await nt(e);default:return[]}}catch(e){return a(`[getAllPorts] Detection failed:`,e),[]}}const it=`${Te}/flow?__health`;async function at(e,t={}){let{endpoint:n=it,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function ot(e){let t=await rt();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await at(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(a(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function st(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const ct=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,lt=()=>process.env.WORKFLOW_LOCAL_BASE_URL,ut=st(()=>({dataDir:ct(),baseUrl:lt()}));function dt(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return t!==`0`&&t!==`false`}function ft(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??M(`http://localhost`)}async function pt(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return M(`http://localhost:${e.port}`);if(process.env.PORT)return M(`http://localhost:${process.env.PORT}`);let t=await ot({endpoint:N()});if(t)return M(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const R=S(`@workflow/world-local//fs`,1,()=>({ulid:w(()=>Math.random()),createdFilesCache:new Set,createdDirectoriesCache:new Set}));function mt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var ht=class extends O{constructor(e,t){super(`Unsafe ${e} "${mt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function z(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new ht(e,t)}function B(e,...t){let n=L.resolve(e),r=L.resolve(e,...t);if(r!==n&&!r.startsWith(n+L.sep))throw new ht(`path`,t.join(`/`));return r}const gt=process.platform===`win32`;async function V(e,t=5){if(!gt)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}async function H(e){let t=await Promise.allSettled(e),n=t.find(e=>e.status===`rejected`);if(n)throw n.reason;return t.map(e=>e.value)}function _t(){R.createdFilesCache.clear(),R.createdDirectoriesCache.clear()}const vt=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function yt(e){return e.replace(vt,``)}function bt(e,t){return e.endsWith(`.${t}`)}function xt(e){return!vt.test(e)}function U(e,t,n,r){return z(`fileId`,n),r!==void 0&&z(`tag`,r),B(e,t,r?`${n}.${r}.json`:`${n}.json`)}const St=[`events`,`steps`];function W(e,t){return z(`runId`,t),L.join(e,t)}async function G(e,t,n,r,i){if(z(`fileId`,n),i!==void 0&&z(`tag`,i),i){let a=await X(B(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(B(e,t,`${n}.json`),r)}async function Ct(e,t){let n=`.${t}.json`;try{return await K(e),(await F.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function wt(e,t,n){let r=`.${t}${n}`;try{return await K(e),(await F.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function Tt(e){let t=L.resolve(e);if(R.createdDirectoriesCache.has(t)){await K(t);return}let n;try{await F.mkdir(t,{recursive:!0})}catch(e){n=e;let r=e.code;if(Ke(r)&&!await Dt(t))throw new We(t,r)}if(n!==void 0){await K(t);return}await K(t),R.createdDirectoriesCache.add(t)}var Et=class extends O{constructor(e){super(`Refusing to use symlinked run directory ${e}: replace it with a real directory.`),this.name=`SymlinkedRunDirError`}};async function K(e){let t=L.basename(L.dirname(e));if(!St.includes(t))return;let n;try{n=await F.lstat(e)}catch(e){if(e.code===`ENOENT`)return;throw e}if(n.isSymbolicLink())throw new Et(e)}async function Dt(e){try{return(await F.stat(e)).isDirectory()}catch{return!1}}async function Ot(e,t){await Tt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return R.createdDirectoriesCache.delete(L.resolve(e)),await Tt(e),t()}}function q(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function kt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function J(e,t,n){return Y(e,JSON.stringify(t,q,2),n)}async function Y(e,t,n){if(!n?.overwrite){if(R.createdFilesCache.has(e))throw new A(`File ${e} already exists and 'overwrite' is false`);try{throw await F.access(e),R.createdFilesCache.add(e),new A(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${R.ulid()}`,i=!1;try{await Ot(L.dirname(e),async()=>{await F.writeFile(r,t),i=!0,await V(()=>F.rename(r,e))}),R.createdFilesCache.add(e)}catch(e){throw i&&await V(()=>F.unlink(r),3).catch(()=>{}),e}}async function X(e,t){await K(L.dirname(e));try{let n=await V(()=>F.readFile(e,`utf-8`));return t.parse(JSON.parse(n,kt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function At(e){return await K(L.dirname(e)),await F.readFile(e)}async function jt(e){await K(L.dirname(e));let t=await F.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Z(e){await K(L.dirname(e));try{await V(()=>F.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${R.ulid()}`,r=!1;try{return await Ot(L.dirname(e),async()=>{await F.writeFile(n,t,{flag:`wx`}),r=!0;try{return await V(()=>F.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await V(()=>F.unlink(n),3).catch(()=>{})}}async function Mt(e,t){try{return await Ot(L.dirname(t),()=>V(()=>F.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Nt(e){return Pt(e,`.json`)}async function Pt(e,t){try{return await K(e),(await F.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function Ft(e,t){let n=L.join(e,t),r;try{r=await F.readdir(n,{withFileTypes:!0})}catch(e){if(e.code===`ENOENT`)return[];throw e}return r.filter(e=>e.isDirectory()).map(e=>L.join(n,e.name))}const It=`key:`;function Lt(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Rt(e,t,n){return n?`${It}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function zt(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&z(`filePrefix`,i);let m=L.resolve(t),h=await Nt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Lt(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=L.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof P.ZodError)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Rt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}var Bt=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!(e&&e.code!==`ENOSYS`&&(process.getuid&&process.getuid()===0||e.code!==`EINVAL`&&e.code!==`EPERM`))}}})),Vt=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=65536,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),Ht=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),Ut=t(((t,n)=>{var r=e(`fs`),i=Bt(),a=Vt(),o=Ht(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
+
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=te,e.createWriteStream=ne;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;ie(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function ee(){var e=this;ie(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function te(t,n){return new e.ReadStream(t,n)}function ne(t,n){return new e.WriteStream(t,n)}var re=e.open;e.open=ie;function ie(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return re(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),Wt=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0){if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1}var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),Gt=t((e=>{var t=Wt();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),Kt=t(((e,t)=>{t.exports=Gt()})),qt=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),Jt=t(((t,r)=>{let i=e(`path`),a=Ut(),o=Kt(),s=n(),c=qt(),l={};function u(e,t){return t.lockfilePath||`${e}.lock`}function d(e,t,n){if(!t.realpath)return n(null,i.resolve(e));t.fs.realpath(e,n)}function f(e,t,n){let r=u(e,t);t.fs.mkdir(r,i=>{if(!i)return c.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?f(e,{...t,stale:0},n):n(r);if(!p(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));m(e,t,r=>{if(r)return n(r);f(e,{...t,stale:0},n)})})})}function p(e,t){return e.mtime.getTime()<Date.now()-t.stale}function m(e,t,n){t.fs.rmdir(u(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function h(e,t){let n=l[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return g(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=c.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?g(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,h(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,h(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function g(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),l[e]===t&&delete l[e],t.options.onCompromised(n)}function _(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:a,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),d(e,t,(e,r)=>{if(e)return n(e);let i=o.operation(t.retries);i.attempt(()=>{f(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=l[r]={lockfilePath:u(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};h(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));v(r,{...t,realpath:!1},e)})})})})}function v(e,t,n){t={fs:a,realpath:!0,...t},d(e,t,(e,r)=>{if(e)return n(e);let i=l[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete l[r],m(r,t,n)})}function y(e,t,n){t={stale:1e4,realpath:!0,fs:a,...t},t.stale=Math.max(t.stale||0,2e3),d(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(u(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!p(r,t)))})}function b(){return l}s(()=>{for(let e in l){let t=l[e].options;try{t.fs.rmdirSync(u(e,t))}catch{}}}),r.exports.lock=_,r.exports.unlock=v,r.exports.check=y,r.exports.getLocks=b})),Yt=t(((e,t)=>{let n=Ut();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),Xt=t(((e,t)=>{let n=Jt(),{toPromise:r,toSync:i,toSyncOptions:a}=Yt();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function Zt(e){return Ee(`sha256`).update(e).digest(`hex`)}function Qt(e,t,n){return B(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function $t(e,t,n){let r=[Qt(e,t)];n&&r.push(Qt(e,t,n));for(let e of r){let t;try{t=await I.readFile(e,`utf8`)}catch{continue}if(t.trim()===``)return{committed:!0};try{let e=JSON.parse(t).forceClaimedBy;if(e&&typeof e.runId==`string`&&typeof e.hookId==`string`)return{committed:!0,forceClaimedBy:{runId:e.runId,hookId:e.hookId}}}catch{}return{committed:!0}}return{committed:!1}}async function en(e,t,n){let r=[Qt(e,t)];n&&r.push(Qt(e,t,n));for(let e of r)try{return await I.access(e),!0}catch{}return!1}function tn(e,t,n){return B(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function nn(e,t,n){let r=[tn(e,t)];n&&r.push(tn(e,t,n));for(let e of r)try{return await I.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function rn(e,t,n){return B(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function an(e,t,n,r){return L.join(rn(e,t,r),`${n}.json`)}async function on(e,t,n){let r=[rn(e,t)];n&&r.push(rn(e,t,n));for(let e of r){let t;try{t=await I.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await V(()=>I.unlink(L.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await I.rmdir(e).catch(()=>{})}}async function sn(e,t,n){let r=await cn(e,t,n),i=Date.now();if(r.maxId)try{let e=ie(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${_n(i)}`,createdAt:new Date(i)}}async function cn(e,t,n){let r=[];try{let n=L.join(e,W(`events`,t));await K(n),r=await I.readdir(n)}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!xt(t)&&!(n&&bt(t,n)))continue;let r=yt(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=_e(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function ln(e,t){return L.join(e,`hooks`,`tokens`,`${Zt(t)}.json`)}const un=P.compile(P.object({hookId:P.string().optional(),runId:P.string(),eventId:P.string().optional(),tokenRetentionUntil:P.coerce.date().optional(),claimedFrom:P.object({runId:P.string(),hookId:P.string(),workflowName:P.string().optional(),deploymentId:P.string().optional(),runSpecVersion:P.number().optional()}).optional()}));async function dn(e){try{return await X(e,un)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function fn(e,t,n){let r=ln(e,t);await I.mkdir(L.dirname(r),{recursive:!0});let i=new AbortController,a;try{a=await(0,Xt.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new O(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new O(`Could not acquire Hook token claim lock`,{cause:e})}let o;try{o=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await a().catch(()=>{}),e}try{await a()}catch(e){throw new O(`Could not release Hook token claim lock`,{cause:e})}return o}function pn(e,t,n){let r=Ee(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return L.join(e,`hooks`,`resumes`,`${r}.json`)}async function mn(e,t,n,r){await fn(e,t,async i=>{let a=ln(e,t),o=await dn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function hn(e,t,n,r){let i=Ee(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return L.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const gn=S(`@workflow/world-local//storageMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),_n=e=>gn.next(e),vn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=yt(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);if(i===-1){let e=r.replace(/\.json$/,``).replace(t,``);return de(e)}if(e===`step`)return null;let a=r.substring(i+1).replace(/\.json$/,``).replace(t,``);return de(a)}},yn=P.compile(P.object({runId:P.string()})),bn=P.compile(P.object({hookId:P.string(),tag:P.string().optional()}));function xn(e,t){return B(e,`hooks`,`token-index`,Zt(t))}function Sn(e,t){return z(`hookId`,t),B(e,`hooks`,`id-index`,t)}function Cn(e){return B(e,`hooks`,`by-run`)}function wn(e){let t=yt(e);return t===e?void 0:e.slice(t.length+1)}function Tn(e,t){return t?xt(e)||bt(e,t):xt(e)}async function En(e){try{return await X(e,_)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}async function Dn(e,t,n,r,i,a){z(`runId`,n),z(`eventId`,i),a!==void 0&&z(`tag`,a);let o=a?`${n}-${i}.${a}.json`:`${n}-${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(L.join(xn(e,t),o),s),Q(L.join(Sn(e,r),o),s)])}function On(e,t,n,r){return U(e,`hooks/by-run`,`${t}-${n}`,r)}async function kn(e,t,n,r){await Q(On(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function An(e,t,n,r){await Z(On(e,t,n,r)),r&&await Z(On(e,t,n))}async function jn(e,t){z(`runId`,t);let n=Cn(e),r=`${t}-`,i=[];for(let e of await Nt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(L.join(n,`${e}.json`),bn)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function Mn(e,t){await Z(L.join(Cn(e),`${t}.json`))}const Nn=S(`@workflow/world-local//hookIndexEnsureCache`,1,()=>({ensuredBasedirs:new Map}));function Pn(){Nn.ensuredBasedirs.clear()}async function Fn(e){let t=L.resolve(e),n=Nn.ensuredBasedirs.get(t);return n||(n=Ln(t).catch(e=>{throw Nn.ensuredBasedirs.delete(t),e}),Nn.ensuredBasedirs.set(t,n)),n}async function In(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function Ln(e){let t=L.join(e,`hooks`,`.hook-index-complete`);try{await I.access(t);return}catch{}let n=async t=>{let n=L.basename(t,`.json`),r=await En(t);if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await Dn(e,i,r.runId,r.correlationId,r.eventId,wn(n))}catch{}};await In(await Ft(e,`events`),8,async e=>In(await Nt(e),32,t=>n(L.join(e,`${t}.json`))));let r=L.join(e,`hooks`);await In(await Nt(r),32,async t=>{let n=null;try{n=await X(L.join(r,`${t}.json`),D)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(n)try{await kn(e,n.runId,n.hookId,wn(t))}catch{}}),await Q(t,``)}async function Rn(e,t,n,r){await Fn(e);let i;try{i=t.kind===`token`?xn(e,t.token):Sn(e,t.hookId)}catch{return null}let a=(e,t)=>{let n=yt(e);return n.startsWith(`${t}-`)?n.slice(t.length+1):n},o=(await Nt(i)).filter(e=>Tn(e,r)).sort((e,t)=>yt(t).localeCompare(yt(e)));for(let t of o){let r=null;try{r=await X(L.join(i,`${t}.json`),yn)}catch(e){if(!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(!r)continue;let o=a(t,r.runId),s;try{s=U(e,W(`events`,r.runId),`${r.runId}-${o}`,wn(t))}catch{continue}let c=await En(s);if(c&&c.eventType===`hook_created`&&typeof c.correlationId==`string`&&await n(c))return c}return null}const zn=`@workflow/world-local`,Bn=S(`@workflow/world-local//packageInfo`,1,()=>({cached:null}));function Vn(){return typeof import.meta.url==`string`&&import.meta.url?L.dirname(Oe(import.meta.url)):null}async function Hn(){if(Bn.cached)return Bn.cached;let e=Vn();if(e)try{let t=await Ne(L.join(e,`../package.json`),`utf-8`);return Bn.cached=JSON.parse(t),Bn.cached}catch{}return Bn.cached={name:zn,version:`5.1.0`},Bn.cached}const Un=`version.txt`;var Wn=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Gn=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function Kn(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function qn(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Jn(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:Kn(t.substring(n+1))}}function Yn(e,t){return`${e}@${qn(t)}`}function Xn(e,t){console.warn(`[world-local] Upgrading from version ${qn(e)} to ${qn(t)}`)}async function Zn(e){let t=L.resolve(e);try{await je(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Wn(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await ke(t,Ae.R_OK)}catch(e){let n=e;throw new Wn(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=L.join(t,`.workflow-write-test-${Date.now()}`);try{await Re(n,``),await Le(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Wn(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Qn(e){let t=L.join(L.resolve(e),Un);try{return Jn(await Ne(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function $n(e,t){let n=L.join(L.resolve(e),Un),r=Yn((await Hn()).name,t);await Re(n,r)}const er=/^wrun_[0-9A-Za-z]+-[^/\\]+\.json$/;function tr(e,t,n){if(n.isDirectory()){e.runScoped=!0;return}if(!n.name.endsWith(`.json`))return;let r=L.join(t,n.name);n.isFile()&&er.test(n.name)?e.flat.push(r):e.unrecognized.push(r)}async function nr(e){let t={flat:[],unrecognized:[],runScoped:!1};for(let n of St){let r;try{r=await Me(L.join(e,n))}catch(e){if(e.code===`ENOENT`)continue;throw e}for await(let e of r)tr(t,n,e)}return t}var rr=class extends Error{dataDir;files;constructor(e,t){let n=t.slice(0,5).join(`, `);super(`[world-local] ${L.resolve(e)} holds ${t.length} event/step file(s) this version does not read (${n}${t.length>5?`, …`:``}). If an older version of ${zn} is using this directory, stop it. Then delete the directory, or move or remove those files.`),this.dataDir=e,this.files=t,this.name=`DataDirLayoutError`}};function ir(e,t){return t||qn(e)}async function ar(e){await Zn(e);let t=await nr(e);if(t.unrecognized.length>0||t.runScoped&&t.flat.length>0)throw new rr(e,[...t.unrecognized,...t.flat]);t.flat.length>0&&(console.warn(`[world-local] Deleting local workflow data in "${L.resolve(e)}": it was written by an older version of ${zn} with an incompatible storage layout.`),_t(),Pn(),await Ie(e,{recursive:!0,force:!0,maxRetries:3}),await Zn(e));let n=await Hn(),r=Kn(n.version),i=await Qn(e);if(i===null){await $n(e,r);return}let{version:a}=i;if(qn(a)!==qn(r))try{Xn(a,r),await $n(e,r)}catch(e){let t=ir(a,e instanceof Gn?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${qn(a)} to ${qn(r)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${n.name}@${t}`),e}}const or=S(`@workflow/world-local//telemetry`,1,()=>({apiPromise:null,tracerPromise:null}));async function sr(){return or.apiPromise||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),or.apiPromise}async function cr(){return or.tracerPromise||=sr().then(e=>e?e.trace.getTracer(`workflow`):null),or.tracerPromise}async function lr(e,...t){let[n,r]=await Promise.all([cr(),sr()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function ur(e){let t=await sr();if(t)return t.SpanKind[e]}function dr(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const fr=dr(`peer.service`),pr=dr(`rpc.system`),mr=dr(`rpc.service`),hr=dr(`rpc.method`),gr=dr(`workflow.run.id`),_r=dr(`step.id`),vr={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},yr={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},br=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function xr(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function Sr(e,t){return typeof e[t]==`string`?e[t]:void 0}function Cr(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function wr(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function Tr(e,t,n){let r=`${e}.${t}`,i={},a=yr[r],o=a===void 0?br.has(r)?Cr(n[0]):void 0:Sr(n,a);if(o&&Object.assign(i,gr(o)),r===`world.steps.get`){let e=Sr(n,1);e&&Object.assign(i,_r(e))}return i}function Er(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=xr(t);r&&(n=`${e}.${a} ${r}`)}return lr(n,{kind:await ur(`INTERNAL`)},async r=>{r?.setAttributes({...fr(vr.peerService),...pr(vr.rpcSystem),...mr(vr.rpcService),...hr(n),...Tr(e,a,t)});let o=await i(...t),s=wr(o);return s&&r?.setAttributes(gr(s)),o})}}return n}var Dr=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),Or=s(),kr=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,q))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,kt)}};const Ar=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,jr=2147483647,Mr=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function Nr(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function Pr(){return{bodyTimeout:Nr(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,0),connections:1e3,headersTimeout:Nr(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,0),keepAliveTimeout:3e4}}const Fr=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function Ir(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(Fr))return!0;t=`cause`in t?t.cause:void 0}return!1}function Lr(e){let t=Pr(),n=ye()?i({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,s=n?void 0:new Or.Agent(t),u=new kr,d=w(),f=new Dr.Sema(Mr),p=new AbortController,m=p.signal,h=new Map,g=new Map,_=async(i,o,c)=>{let p=[];if(c?.idempotencyKey){let e=h.get(c.idempotencyKey);if(e)return{messageId:e}}let _=u.serialize(o),{prefix:v}=l(i),y=E.parse(`msg_${d()}`),b=o,x=b.runId??void 0,S=b.stepId??void 0;if(c?.idempotencyKey){let e=c.idempotencyKey;h.set(e,y),p.push(()=>{h.delete(e)})}return(async()=>{if(c?.delaySeconds&&c.delaySeconds>0){let e=Math.min(c.delaySeconds*1e3,jr);await Ve(e,void 0,{signal:m})}f.tryAcquire()||(a(`[world-local]: concurrency limit (${Mr}) reached, waiting for queue to free up`),await f.acquire());let o=0;try{for(let a=0;a<256;a++){let l={...c?.headers,"content-type":`application/json`,"x-vqs-queue-name":i,"x-vqs-message-id":y,"x-vqs-message-attempt":String(o+1)},u=g.get(v),d,f;try{if(u)d=await u(new Request(j(ft(e),{type:`flow`}),{method:`POST`,headers:l,body:_}));else{let i=await pt(e),a=j(i,{type:`flow`});d=n?await r(a,{method:`POST`,headers:new Headers(l),body:_,agents:n,signal:m,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(a,{method:`POST`,duplex:`half`,dispatcher:s,headers:l,body:_,signal:m})}o++,f=await d.text()}catch(e){let t=e?.name;if(m.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(Ir(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${a+1}), retrying`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},error:String(e)}),await Ve(5e3,void 0,{signal:m});continue}if(d.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){if(e>0){let t=Math.min(e*1e3,jr);await Ve(t,void 0,{signal:m})}continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${o}, HTTP ${d.status})`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},handlerError:f}),await Ve(5e3,void 0,{signal:m})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S}})}finally{f.release()}})().catch(e=>{e?.name!==`AbortError`&&e?.name!==`ResponseAborted`&&(Ir(e)?console.error(`[local world] Queue operation failed: detected "${Fr}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:i,messageId:y,...x&&{runId:x},...S&&{stepId:S},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of p)e()}),{messageId:y}},v=P.compile(P.object({"x-vqs-queue-name":c,"x-vqs-message-id":E,"x-vqs-message-attempt":P.coerce.number()}));return{queue:_,createQueueHandler:(e,t)=>async n=>{let r=v.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new kr().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a});if(typeof s==`object`&&s&&`invoke`in s&&s.invoke===!0)return Response.json({result:e});let n=null;return typeof e==`object`&&e&&`timeoutSeconds`in e&&typeof e.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,Ar)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Hn()).version}`,registerHandler(e,t){g.set(e,t)},async close(){m.aborted||(p.abort(),n&&o(n),await s?.close())}}}function Rr(e,t){if(t===`none`){let{dynamicWorkflowCode:t,...n}=e;return{...n,input:void 0,output:void 0}}return e}function zr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Br(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function Vr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function Hr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a,forceClaimedFrom:o}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,...o!==void 0&&{claimedFrom:o},metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function Ur(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Wr(e,t,n){let r=await G(e,`runs`,t,v,n);return r?f(r.status):!1}async function Gr(e,t,n,r){let i=async t=>{if(await Wr(e,t.runId,r)){let e=t.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return!1}return!await en(e,t.correlationId,r)},a=await Rn(e,t,e=>Ur(e,n)&&i(e),r);return a&&Ur(a,n)?a:null}async function Kr(e,t,n){let r=Hr(t);return await Q(ln(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil,...r.claimedFrom&&{claimedFrom:r.claimedFrom}})),await kn(e,r.runId,r.hookId,n),await Q(U(e,`hooks`,r.hookId,n),JSON.stringify(r,q,2)),r}async function qr(e,t,n){let r=await Gr(e,{kind:`token`,token:t},e=>Vr(e)===t,n);return r?Kr(e,r,n):null}async function Jr(e,t,n){let r=await Gr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Kr(e,r,n):null}function Yr(e,t){async function n(n){return await en(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Wr(e,n.runId,t)}async function r(n){let r=await $t(e,n.hookId,t);return r.committed&&r.forceClaimedBy!==void 0}async function i(i){let a=await dn(ln(e,i));if(a?.hookId)try{let o=await G(e,`hooks`,a.hookId,D,t);if(o?.token===i){if(await n(o))return{...o,isWebhook:o.isWebhook??!0};if(!await r(o))throw new we(i)}else if(o)return null}catch(e){if(!ht.is(e))throw e;return null}let o=L.join(e,`hooks`),s=await Nt(o),c=!1;for(let e of s){let t=await X(L.join(o,`${e}.json`),D);if(t?.token===i){if(await n(t))return{...t,isWebhook:t.isWebhook??!0};if(await r(t)){c=!0;continue}throw new we(i)}}if(c)throw new we(i);return null}async function a(r,i){z(`hookId`,r);let a=await G(e,`hooks`,r,D,t);if(a&&!await n(a))throw new we(r);let o=a??await Jr(e,r,t);if(!o)throw new we(r);let s=i?.resolveData||`all`;return Br({...o,isWebhook:o.isWebhook??!0},s)}async function o(n){let r=await i(n)??await qr(e,n,t);if(!r)throw new we(n);return r}async function s(t){let r=L.join(e,`hooks`),i=t.resolveData||`all`,a=await zt({directory:r,schema:D,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>Br(e,i))}}return{get:a,getByToken:o,list:s}}async function Xr(e,t){await Fn(e);for(let n of await jn(e,t)){if(n.hookId){let r=null,i=null;try{i=U(e,`hooks`,n.hookId,n.tag),r=await X(i,D)}catch(e){if(!ht.is(e)&&!(e instanceof SyntaxError||e instanceof P.ZodError))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await mn(e,r.token,r.runId,r.hookId),await Z(hn(e,r.token,r.runId,r.hookId)),await Z(i)}}await Mn(e,n.fileId)}}const Zr=S(`@workflow/world-local//streamerMonotonicUlid`,1,()=>({next:w(()=>Math.random())})),Qr=e=>Zr.next(e),$r=P.compile(P.object({streams:P.array(P.string())}));function ei(e){return e===1}function ti(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function ni(e){return ei(e[0])}function ri(e){return{eof:ni(e),chunk:Buffer.from(e.subarray(1))}}async function ii(e){try{return await I.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function ai(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function oi(e,t){return z(`streamName`,t),L.join(e,t)}async function si(e,t,n){let r=oi(e,t),i=await ii(r),a=new Map;return ai(a,i,`.json`),ai(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&ai(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}const ci=`chnk_${`0`.repeat(26)}`;async function li(e,t,n){let r=L.join(e,`streams`,`chunks`),i=n?`.${n}`:``,a;try{z(`runId`,t),a=(await G(e,`streams/runs`,t,$r,n))?.streams??[]}catch(e){ui(`streams of ${t}`,e);return}for(let e of a)try{let t=oi(r,e);await Y(L.join(t,`${ci}${i}.bin`),ti({chunk:Buffer.from([]),eof:!0}),{overwrite:!0});for(let e of await ii(t))e.startsWith(ci)||(e.endsWith(`.bin`)||e.endsWith(`.json`))&&await V(()=>I.unlink(L.join(t,e))).catch(t=>{t.code!==`ENOENT`&&ui(e,t)})}catch(t){ui(e,t)}}function ui(e,t){console.warn(`[world-local] Failed to purge stream data for ${e}:`,t instanceof Error?t.message:t)}function di(e,t){let n=t?`.${t}`:``,r=new Ue,i=new Set;async function a(n,r){z(`runId`,n),z(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=U(e,`streams/runs`,n,t),s=(await G(e,`streams/runs`,n,$r,t))?.streams??[];s.includes(r)||(s.push(r),await J(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${Qr()}`;await a(await t,i);let l=o(s),u=ti({chunk:l,eof:!1});await Y(L.join(oi(L.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${Qr()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=ti({chunk:t,eof:!1});return await Y(L.join(oi(L.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${Qr()}`;await a(await t,i),await Y(L.join(oi(L.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),ti({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return z(`runId`,n),(await G(e,`streams/runs`,n,$r,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await si(L.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=L.join(c,`${e}${t}`);if(f<l){if(ei(await jt(n))){u=!0;break}f++;continue}if(d.length>=a){ei(await jt(n))?u=!0:f++;break}let r=ri(await At(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await si(L.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ei(await jt(L.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=L.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await si(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;ei(await jt(L.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=ri(await At(L.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await si(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=ri(await At(L.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function fi(e){let t=ue(e);return t.unsupported&&console.warn(`[world-local] Ignoring unrecognized ${pe} value ${JSON.stringify(t.raw)}; keeping the run's data.`),t.mode===`none`}function pi(e,t){return{...e,input:void 0,output:void 0,error:void 0,dynamicWorkflowCode:void 0,expiredAt:t}}async function mi(e,t,n){await Promise.all([gi(L.join(e,W(`steps`,t)),t,e=>{e.input=void 0,e.output=void 0,e.error=void 0}),gi(L.join(e,W(`events`,t)),t,e=>{let t=e.eventData;if(t&&typeof t==`object`){for(let n of re(String(e.eventType)))delete t[n];(e.eventType===`run_created`||e.eventType===`run_started`)&&(delete t.dynamicWorkflowCode,delete t.dynamicWorkflowCodeRef)}}),_i(e,t),li(e,t,n)])}const hi=P.record(P.string(),P.any()),$=P.preprocess(e=>{if(e&&typeof e==`object`&&`eventType`in e&&`eventData`in e){let t=e.eventData;if(t&&typeof t==`object`)for(let n of re(String(e.eventType)))n in t||(t[n]=void 0)}return e},_);async function gi(e,t,n){let r;try{r=await Nt(e)}catch(t){vi(e,t);return}for(let i of r){if(!i.startsWith(`${t}-`))continue;let r=L.join(e,`${i}.json`);try{let e=await X(r,hi);if(!e)continue;n(e),await J(r,e,{overwrite:!0})}catch(e){vi(r,e)}}}async function _i(e,t){let n;try{await Fn(e),n=await jn(e,t)}catch(e){vi(`hooks of ${t}`,e);return}for(let r of n)if(r.hookId)try{let n=U(e,`hooks`,r.hookId,r.tag),i=await X(n,hi);if(!i||i.runId!==t)continue;i.metadata=void 0,await J(n,i,{overwrite:!0})}catch(e){vi(r.hookId,e)}}function vi(e,t){console.warn(`[world-local] Failed to purge user data for ${e}:`,t instanceof Error?t.message:t)}const yi=new Ue;yi.setMaxListeners(0);function bi(){return se(`WORKFLOW_LOCAL_RUN_STATUS_POLL_INTERVAL_MS`,100,{integer:!0,min:1})}function xi(e){yi.emit(`run:${e}`)}function Si(e,t,n){return t<=0||n?.aborted?Promise.resolve():new Promise(r=>{let i=`run:${e}`,a=!1,o=()=>{a||(a=!0,clearTimeout(s),yi.off(i,o),n?.removeEventListener(`abort`,o),r())},s=setTimeout(o,t);yi.once(i,o),n?.addEventListener(`abort`,o,{once:!0})})}async function Ci(e,t,n,r,i,a){if(f(a.status)||await nn(e,t))throw new xe(`Workflow run "${t}" is already in a terminal state`);let o=an(e,t,n);await Q(o,r);try{if(await nn(e,t)||await Mt(o,i)!==`linked`)throw new xe(`Workflow run "${t}" is already in a terminal state`)}finally{await I.unlink(o).catch(()=>{})}}async function wi(e,t,n,r,i){z(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(tn(e,t),``),await on(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes},o=fi(i.attributes),s=o?pi(i,n):i;return await J(B(e,`runs`,`${t}.json`),s,{overwrite:!0}),xi(t),await Xr(e,t),o&&await mi(e,t,void 0),{event:void 0,run:Rr(s,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${_n()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:8},c=`${t}-${i}`,l=B(e,W(`events`,t),`${c}.json`);return n.eventType===`hook_received`?await Ci(e,t,i,JSON.stringify(s,q,2),l,r):await J(l,s),{event:y(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const Ti=S(`@workflow/world-local//runFileLocks`,1,()=>({byKey:new Map}));function Ei(e,t){let n=Ti.byKey.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{Ti.byKey.get(e)===r.task&&Ti.byKey.delete(e)}})();return r.task=i,Ti.byKey.set(e,i),i}function Di(e,t){let n=(async(n,r)=>{z(`runId`,n);let i=await G(e,`runs`,n,v,t);if(!i)throw new Se(n);return Rr(i,r?.resolveData??`all`)});return{get:n,waitForTerminalStatus:(async(e,t)=>{let r=Date.now()+(t?.timeoutMs??0);for(;;){let i=await n(e,t);if(f(i.status))return i;let a=r-Date.now();if(a<=0||t?.signal?.aborted)return i;await Si(e,Math.min(a,bi()),t?.signal)}}),getMany:(async(e,t)=>{let r=[...new Set(e)],i=await Promise.all(r.map(async e=>{try{return await n(e,t)}catch(e){if(e instanceof Se)return null;throw e}})),a=new Map(r.map((e,t)=>[e,i[t]]));return e.map(e=>a.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await zt({directory:L.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status!==void 0&&!(Array.isArray(t.status)?t.status:[t.status]).includes(e.status)),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:vn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>Rr(e,`none`))}:r}),experimentalSetAttributes:async(n,r,i)=>(z(`runId`,n),Ei(n,async()=>{let a=await G(e,`runs`,n,v,t);if(!a)throw new Se(n);try{ve(r,{existingKeys:Object.keys(a.attributes??{}),allowReservedAttributes:i?.allowReservedAttributes})}catch(e){throw e instanceof ce,e}let o=te(a.attributes,r),s={...a,attributes:o,updatedAt:new Date};return await J(U(e,`runs`,n,t),s,{overwrite:!0}),{attributes:o}}))}}const Oi=864e5;function ki(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new O(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Oi}const Ai=P.compile(P.object({eventId:P.string()})),ji=P.compile(P.object({runId:P.string(),resumeId:P.string(),hookId:P.string(),eventId:P.string(),payloadDigest:P.string().optional()}));function Mi(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function Ni(e,t,n,r){let i=await cn(e,t,r);for(let a of i.ids){let i=await G(e,W(`events`,t),`${t}-${a}`,$,r);if(i&&i.resumeId===n.resumeId&&Mi(i,n))return i}return null}async function Pi(e,t,n){if(t.hookId&&await en(e,t.hookId,n))return!0;let r=await G(e,`runs`,t.runId,v,n);return r?f(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Fi(e){try{return await X(e,Ai)}catch(e){if(e instanceof SyntaxError||e instanceof P.ZodError)return null;throw e}}function Ii(e){return ne(e.eventId)?e.eventId:null}function Li(e,t){let n=yt(t).slice(e.length+1);return ne(n)?n:null}async function Ri(e,t,n){return(await zt({directory:L.join(e,W(`events`,t)),schema:$,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:vn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function zi(e,t,n,r,i){let a=`${t}-${r}`,o=await G(e,W(`events`,t),a,$,i);if(!o||o.eventType!==`hook_created`||o.correlationId!==n||await G(e,`hooks`,n,D,i))return;let s=Hr(o);await Dn(e,s.token,t,n,r,i),await kn(e,t,n,i),await Q(U(e,`hooks`,n,i),JSON.stringify(s,q,2))}async function Bi(e,t,n,r,i){let a=hn(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await Fi(a))?.eventId??null}function Vi(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Hi(e,t){let n=L.join(e,`waits`),r=await Nt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(L.join(n,`${e}.json`))}async function Ui(e,t,n,r){return Ei(t,async()=>{let i=(await X(U(e,`runs`,t,n),v))?.attributes??r.attributes,a={...r,attributes:i},o=f(a.status)&&fi(i);return o&&(a=pi(a,new Date)),await J(U(e,`runs`,t,n),a,{overwrite:!0}),f(a.status)&&xi(t),{run:a,purged:o}})}function Wi(e,t){let n=ki(),r=4194304,i=new Map,a=new Map,o=new Map,s=0;function c(e){let t=i.get(e);if(!t)return;i.delete(e),s-=a.get(e)??0,a.delete(e);let n=o.get(t.runId);n?.delete(e),n?.size===0&&o.delete(t.runId)}function l(e){for(let t of o.get(e)??[])c(t)}function _(){i.clear(),a.clear(),o.clear(),s=0,x.clear()}let x=new Map;function S(e){return t?`${e}.${t}`:e}async function ee(n,r){let i=`${n}-${me(r)}`;for(let r of t?[U(e,W(`events`,n),i,t),U(e,W(`events`,n),i)]:[U(e,W(`events`,n),i)])try{return await I.stat(r),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function re(n,r){let i=S(n),a=x.get(i);if(a===void 0||r?.rescan){let r=await cn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},x.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await ee(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function ie(e,t){let n=_e(t);if(n===null)return;let r=x.get(S(e));r&&(r.published=Math.max(r.published,n))}async function se(e){let t=await re(e);return t===null?`evnt_${_n()}`:me(t)}async function ce(n){let r=await re(n,{rescan:!0});return r===null?sn(e,n,t):{eventId:me(r),createdAt:new Date}}function le(e,t,n){if(n>r)return;for(;i.size>0&&(i.size>=1e3||s+n>r);){let e=i.keys().next().value;c(e)}i.set(e,t),a.set(e,n),s+=n;let l=o.get(t.runId)??new Set;l.add(e),o.set(t.runId,l)}function ue(e,t,n){if(b(e.eventType)){l(e.runId);return}let i=Buffer.byteLength(n);if(i>r)return;let a=$.safeParse(JSON.parse(n,kt));a.success&&le(t,a.data,i)}async function fe(n){let r=n;for(let n=0;;n++){let i=U(e,W(`events`,r.runId),`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,q,2),o=_e(r.eventId);if(o===null)return await Y(i,a),ue(r,i,a),r;if(await Q(i,a))return ie(r.runId,r.eventId),ue(r,i,a),r;let s=await re(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});He(s!==null),r={...r,eventId:me(s)}}}async function pe(n,r){let i=await $t(e,n,t);if(i.committed)throw i.forceClaimedBy?new k(typeof r==`string`?r:``,i.forceClaimedBy.runId,i.forceClaimedBy.hookId):new we(n)}let w=(t,n)=>zt({directory:L.join(e,W(`events`,t)),schema:$,cachedItems:i,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:vn(`evnt`),getId:e=>e.eventId,getSortKey:Ii,getSortKeyFromFileId:e=>Li(t,e)}),ye=new Map,E=new Map,j={clearCache:_,async create(r,i,a){if(i.eventType===`hook_created`&&i.eventData.tokenRetentionUntil!==void 0&&i.eventData.tokenRetentionUntil.getTime()>Date.now()+n)throw new O(`Hook minimum retention cannot exceed ${n/Oi} days in the Local World.`,{status:400});if(r!=null&&r!==``&&z(`runId`,r),`correlationId`in i&&typeof i.correlationId==`string`&&z(`correlationId`,i.correlationId),m(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.${t}`:`${r}-${i.correlationId}`;return Vi(ye,e,o)}if(T(i.eventType)&&r&&i.correlationId){let e=t?`${r}-${i.correlationId}.hook.${t}`:`${r}-${i.correlationId}.hook`;return Vi(E,e,o)}return o();async function o(){let n=``,o=!1,s=null,c=new Date,_;if(i.eventType===`run_created`&&(!r||r===``))_=`wrun_${_n()}`;else if(r)_=r;else throw Error(`runId is required for non-run_created events`);if(i.eventType===`run_created`&&r&&r!==``){let e=he(_,`wrun_`);if(e)throw new O(e)}let x=i.specVersion??8,S=null;if(i.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(i.eventType)&&(S=await G(e,`runs`,_,v,t),i.eventType===`run_started`&&!S&&`eventData`in i&&i.eventData)){let n=i.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c};if(await Q(U(e,`runs`,_,t),JSON.stringify(r,q))){let e=await se(_);await fe({eventType:`run_created`,runId:_,eventId:e,createdAt:c,specVersion:x,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),S=r}else S=await G(e,`runs`,_,v,t)}}if(n=await se(_),!S&&(i.eventType===`run_failed`||i.eventType===`attr_set`||i.eventType===`run_started`))throw new Se(_);if(S){if(ge(S.specVersion))throw new Ce(S.specVersion,8);if(C(S.specVersion))return wi(e,_,i,S,a&&{resolveData:ae(a.resolveData)})}let ee=d(i),le=ee&&i.eventType===`step_started`;if(S&&f(S.status)){if(i.eventType===`run_cancelled`&&S.status===`cancelled`){let e=await fe({...i,runId:_,eventId:n,createdAt:c,specVersion:x}),t=a?.resolveData??`all`;return{event:y(e,t),run:S,...S?{maxEvents:oe()}:{}}}if(i.eventType===`run_started`)throw new xe(`Workflow run "${_}" is already in terminal state "${S.status}"`);if(b(i.eventType))throw new A(`Cannot transition run from terminal state "${S.status}"`);if(ee)throw new A(`Cannot create new entities on run in terminal state "${S.status}"`);if(i.eventType===`attr_set`)throw new A(`Cannot set attributes on run in terminal state "${S.status}"`)}let T=null;if(m(i.eventType)&&i.eventType!==`step_created`&&i.correlationId){let n=`${_}-${i.correlationId}`;if(T=await G(e,W(`steps`,_),n,p,t),!T&&!le)throw new O(`Step "${i.correlationId}" not found`);if(le&&T)throw new A(`Step "${i.correlationId}" already created`);if(T){if(g(T.status))throw new A(`Cannot modify step in terminal state "${T.status}"`);if(S&&f(S.status)&&(T.status!==`running`||i.eventType===`step_started`))throw new xe(`Cannot ${i.eventType===`step_started`?`start`:`modify non-running`} step on run in terminal state "${S.status}"`)}}if(h(i.eventType)&&i.correlationId){if(i.eventType===`hook_received`&&a?.resumeId){let n=await X(pn(e,_,a.resumeId),ji);if(n&&n.hookId===i.correlationId&&(!a.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===a.resumePayloadDigest)){let r=await G(e,W(`events`,_),`${_}-${n.eventId}`,$,t),i=r&&Mi(r,n)?r:await Ni(e,_,n,t);if(i)return{event:i}}}if(i.eventType===`hook_received`&&await pe(i.correlationId,i.eventData?.token),!await G(e,`hooks`,i.correlationId,D,t))throw new we(i.correlationId);if(i.eventType===`hook_received`&&a?.resumeId){let r=pn(e,_,a.resumeId),c=async r=>{if(r.hookId!==i.correlationId)throw new A(`hook_received resumeId "${a.resumeId}" already recorded for a different hook`);if(a.resumePayloadDigest&&r.payloadDigest&&r.payloadDigest!==a.resumePayloadDigest)throw new A(`hook_received resumeId "${a.resumeId}" already recorded with a different payload`);let c=await G(e,W(`events`,_),`${_}-${r.eventId}`,$,t);if(c&&Mi(c,r))return{event:c};let l=await Ni(e,_,r,t);return l?{event:l}:(s=r.eventId,c||(n=r.eventId,o=!0),null)},l=await X(r,ji);if(l){let e=await c(l);if(e)return e}else if(o=!ne(n),s=n,!await Q(r,JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}))){s=null;let e=await X(r,ji);if(e){let t=await c(e);if(t)return t}}}}let ye,E={...i,runId:_,eventId:n,createdAt:c,specVersion:x,...i.eventType===`hook_received`&&a?.resumeId?{resumeId:a.resumeId}:{}};if(i.eventType===`run_started`&&`eventData`in E&&delete E.eventData,E.eventType===`run_created`&&E.eventData){let{dynamicWorkflowCode:e,dynamicWorkflowCodeRef:t,...n}=E.eventData;E={...E,eventData:n}}if(le&&E.eventType===`step_started`&&E.eventData){let{input:e,...t}=E.eventData;E={...E,eventData:t}}let k,j=!1,M,N,Te,P=!1,Ee;if(b(i.eventType)&&S){await Q(tn(e,_,t),``),await on(e,_,t);let r=await ce(_);n=r.eventId,E={...E,eventId:n,createdAt:r.createdAt}}if(i.eventType===`run_created`&&`eventData`in i){let n=i.eventData;if(ve(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),k={runId:_,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:x,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,dynamicWorkflowCode:n.dynamicWorkflowCode,createdAt:c,updatedAt:c},!await Q(U(e,`runs`,_,t),JSON.stringify(k,q,2)))throw new A(`Workflow run "${_}" already exists`)}else if(i.eventType===`run_started`){if(S){if(S.status===`running`){if(a?.skipPreload)return{run:S,maxEvents:oe()};let e=await w(_,{limit:oe()});return{run:S,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:oe()}}let n=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:S.startedAt??c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,j=n.purged}}else if(i.eventType===`run_completed`&&`eventData`in i){let n=i.eventData;if(S){let r=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`run_failed`&&`eventData`in i){let n=i.eventData;if(S){let r=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=r.run,j=r.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`run_cancelled`){if(S){let n=await Ui(e,_,t,{runId:S.runId,deploymentId:S.deploymentId,workflowName:S.workflowName,specVersion:S.specVersion,executionContext:S.executionContext,input:S.input,createdAt:S.createdAt,expiredAt:S.expiredAt,startedAt:S.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:c,updatedAt:c,attributes:S.attributes,encryptionPublicKey:S.encryptionPublicKey,dynamicWorkflowCode:S.dynamicWorkflowCode});k=n.run,j=n.purged,await Promise.all([Xr(e,_),Hi(e,_)])}}else if(i.eventType===`attr_set`&&S)k=await Ei(_,async()=>{let n=await X(U(e,`runs`,_,t),v);if(!n)throw new Se(_);if(ve(i.eventData.changes,{existingKeys:Object.keys(n.attributes),allowReservedAttributes:i.eventData.allowReservedAttributes===!0}),i.correlationId&&i.eventData.writer.type===`workflow`&&!await Q(B(e,`.locks`,`attributes`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Attribute event "${i.correlationId}" already exists`);let r={...n,attributes:te(n.attributes,i.eventData.changes),updatedAt:c};return await J(U(e,`runs`,_,t),r,{overwrite:!0}),r});else if(i.eventType===`step_created`&&`eventData`in i){if(!await Q(B(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``))throw new A(`Step "${i.correlationId}" already created`);let n=i.eventData;M={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x};let r=`${_}-${i.correlationId}`;await J(U(e,W(`steps`,_),r,t),M)}else if(i.eventType===`step_started`){if(!T&&le){let n=i.eventData;if(await Q(B(e,`.locks`,`steps`,t?`${_}-${i.correlationId}.created.${t}`:`${_}-${i.correlationId}.created`),``)){let r={runId:_,stepId:i.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x};await J(U(e,W(`steps`,_),`${_}-${i.correlationId}`,t),r);let a=await se(_);await fe({eventType:`step_created`,runId:_,eventId:a,createdAt:c,specVersion:x,correlationId:i.correlationId,eventData:{stepName:n.stepName,input:n.input}}),T=r,P=!0}else throw new A(`Step "${i.correlationId}" already created`)}if(T){if(T.retryAfter&&T.retryAfter.getTime()>Date.now())throw new be(`Cannot start step "${i.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((T.retryAfter.getTime()-Date.now())/1e3)});let n=`${_}-${i.correlationId}`,r=await G(e,W(`steps`,_),n,p,t);if(r&&g(r.status))throw new A(`Cannot modify step in terminal state "${r.status}"`);M={...T,status:`running`,startedAt:T.startedAt??c,attempt:T.attempt+1,retryAfter:void 0,updatedAt:c},await J(U(e,W(`steps`,_),n,t),M,{overwrite:!0})}}else if(i.eventType===`step_completed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...T,status:`completed`,output:n.result,completedAt:c,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_failed`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new A(`Cannot modify step in terminal state`);M={...T,status:`failed`,error:n.error,completedAt:c,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`step_retrying`&&`eventData`in i){let n=i.eventData;if(T){let r=`${_}-${i.correlationId}`;M={...T,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:c},await J(U(e,W(`steps`,_),r,t),M,{overwrite:!0})}}else if(i.eventType===`hook_created`&&`eventData`in i){let r=i.eventData,s=ln(e,r.token),l,u=()=>JSON.stringify({token:r.token,hookId:i.correlationId,runId:_,eventId:n,tokenRetentionUntil:r.tokenRetentionUntil,...l&&{claimedFrom:l}}),d=await fn(e,r.token,async a=>{let o=await dn(s);if(o||=(a.throwIfAborted(),await Z(s),await qr(e,r.token,t),await dn(s)),!o)return a.throwIfAborted(),He(await Q(s,u())),{status:`claimed`};if(o.runId===_&&o.hookId===i.correlationId)return{status:`owned`,claim:o};if(!await Pi(e,o,t)){if(r.force!==!0||!o.hookId)return{status:`conflict`,claim:o};a.throwIfAborted();let s=await G(e,`runs`,o.runId,v,t),u=s!==null&&!f(s.status);if(l={runId:o.runId,hookId:o.hookId,...u&&{workflowName:s.workflowName,deploymentId:s.deploymentId,runSpecVersion:s.specVersion}},u&&(s.specVersion??1)<8)return{status:`conflict`,claim:o,forceRefusedReason:`victim-spec-version`};let d=await Ri(e,_,i.correlationId);d?(n=d,ye={...E,eventId:n}):(ye=await fe({...E,eventData:{...E.eventData,forceClaimedFrom:l}}),n=ye.eventId),await kn(e,_,i.correlationId,t),await J(U(e,`hooks`,i.correlationId,t),{runId:_,hookId:i.correlationId,token:r.token,metadata:r.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:c,specVersion:x,isWebhook:r.isWebhook??!1,isSystem:r.isSystem??!1,tokenRetentionUntil:r.tokenRetentionUntil,claimedFrom:l},{overwrite:!0});let p=await Q(Qt(e,o.hookId,t),JSON.stringify({forceClaimedBy:{runId:_,hookId:i.correlationId}}));u&&p&&await fe({eventType:`hook_disposed`,correlationId:o.hookId,eventData:{token:r.token,forceClaimedBy:{runId:_,hookId:i.correlationId}},runId:o.runId,eventId:await se(o.runId),createdAt:new Date,specVersion:s.specVersion})}return a.throwIfAborted(),l?await Y(s,u(),{overwrite:!0}):await Z(s),o.hookId&&(await Z(U(e,`hooks`,o.hookId,t)),await Z(hn(e,r.token,o.runId,o.hookId)),await An(e,o.runId,o.hookId,t)),a.throwIfAborted(),l||He(await Q(s,u())),{status:`claimed`}});if(d.status===`owned`&&d.claim.claimedFrom&&(l=d.claim.claimedFrom),d.status===`owned`){let a=d.claim,s;if(a.eventId)s=a.eventId;else{let a=await Ri(e,_,i.correlationId);if(a!==null)throw await zi(e,_,i.correlationId,a,t),new A(`Hook "${i.correlationId}" already created`);let o=await Bi(e,r.token,_,i.correlationId,n);if(o===null)throw new A(`Hook "${i.correlationId}" already created`);s=o}n=s,o=!0;let l=de(n.replace(/^evnt_/,``))??c;E={...i,eventData:{...i.eventData,tokenRetentionUntil:a.tokenRetentionUntil},runId:_,eventId:n,createdAt:l,specVersion:x}}if(d.status===`conflict`){let e=d.claim,t=await fe({eventType:`hook_conflict`,correlationId:i.correlationId,eventData:{token:r.token,conflictingRunId:e.runId,...d.forceRefusedReason!==void 0&&{forceRefusedReason:d.forceRefusedReason}},runId:_,eventId:n,createdAt:c,specVersion:x}),o=a?.resolveData??`all`,s=typeof a?.sinceCursor==`string`?await w(_,{sortOrder:`asc`,cursor:a.sinceCursor}):void 0,l={event:y(t,o),run:k,step:M,hook:void 0};return s?{...l,events:o===`none`?s.data.map(e=>y(e,o)):s.data,cursor:s.cursor,hasMore:s.hasMore}:l}l&&(E={...E,eventData:{...E.eventData,forceClaimedFrom:l}});let p=E.eventData;N={runId:_,hookId:i.correlationId,token:p.token,metadata:p.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:E.createdAt,specVersion:x,isWebhook:p.isWebhook??!1,isSystem:p.isSystem??!1,tokenRetentionUntil:p.tokenRetentionUntil,...l&&{claimedFrom:l}},Ee=d.status===`owned`||l?{overwrite:!0}:void 0,await Dn(e,r.token,_,i.correlationId,n,t)}else if(i.eventType===`hook_disposed`){if(!await Q(Qt(e,i.correlationId,t),``))throw new A(`Hook "${i.correlationId}" already disposed`);let n=U(e,`hooks`,i.correlationId,t),r=await G(e,`hooks`,i.correlationId,D,t);r&&(await mn(e,r.token,r.runId,r.hookId),await Z(hn(e,r.token,r.runId,r.hookId))),await Z(n),await An(e,_,i.correlationId,t)}else if(i.eventType===`wait_created`&&`eventData`in i){let n=`${_}-${i.correlationId}`;if(!await Q(B(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new A(`Wait "${i.correlationId}" already exists`);let r=i.eventData;Te={waitId:n,runId:_,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:c,updatedAt:c,specVersion:x},await J(U(e,`waits`,n,t),Te)}else if(i.eventType===`wait_completed`){let n=`${_}-${i.correlationId}`,r=B(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new A(`Wait "${i.correlationId}" already completed`);let a=await G(e,`waits`,n,u,t);if(!a)throw await I.unlink(r).catch(()=>{}),new O(`Wait "${i.correlationId}" not found`);Te={...a,status:`completed`,completedAt:c,updatedAt:c},await J(U(e,`waits`,n,t),Te,{overwrite:!0})}if(i.eventType===`hook_received`&&i.correlationId&&await pe(i.correlationId,i.eventData?.token),i.eventType===`hook_created`&&i.correlationId){let n=await $t(e,i.correlationId,t);if(n.committed&&n.forceClaimedBy)throw new A(`Hook "${i.correlationId}" was force-claimed by another run before its creation was journaled`)}let De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),F=async r=>{let i=_e(n);if(o||i===null)return!1;let a=await re(_,{rescan:r>0&&r%8==0,atLeast:i+1});return a!==null&&(n=me(a),E={...E,eventId:n},De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),!0)},ke=!1;ye&&(E=ye,De=U(e,W(`events`,_),`${_}-${n}`,t),Oe=JSON.stringify(E,q,2),ke=!0);for(let r=0;!ke;r++){if(i.eventType===`hook_received`){let r=await nn(e,_,t),i=r?null:await G(e,`runs`,_,v,t);if(r||i&&f(i.status))throw new xe(`Workflow run "${_}" is already in a terminal state`);let a=an(e,_,`${n}.${_n()}`,t);if(!await Q(a,Oe))throw new O(`Failed to stage event "${n}" for run "${_}": staging path already exists`);try{if(await nn(e,_,t))throw new xe(`Workflow run "${_}" is already in a terminal state`);let n=await Mt(a,De);if(n===`missing`)throw new xe(`Workflow run "${_}" is already in a terminal state`);ke=n===`linked`}finally{await Z(a).catch(()=>{})}}else ke=await Q(De,Oe);if(ke){ie(_,n);break}if(i.eventType===`hook_received`&&a?.resumeId){let r=await G(e,W(`events`,_),`${_}-${n}`,$,t);if(r&&Mi(r,{runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n}))return{event:r}}if(i.eventType===`hook_created`&&i.correlationId){let r=await G(e,W(`events`,_),`${_}-${n}`,$,t);if(r?.eventType===`hook_created`&&r.correlationId===i.correlationId)break}if(!await F(r))break}if(!ke)throw i.eventType===`hook_created`&&i.correlationId&&await zi(e,_,i.correlationId,n,t),new A(`Event "${n}" already exists for run "${_}"`);ue(E,De,Oe),i.eventType===`hook_received`&&a?.resumeId&&s!==null&&s!==n&&await Y(pn(e,_,a.resumeId),JSON.stringify({runId:_,resumeId:a.resumeId,hookId:i.correlationId,eventId:n,...a.resumePayloadDigest?{payloadDigest:a.resumePayloadDigest}:{}}),{overwrite:!0}),N&&i.eventType===`hook_created`&&(await kn(e,N.runId,N.hookId,t),await J(U(e,`hooks`,N.hookId,t),N,Ee)),j&&(await mi(e,_,t),l(_));let Ae=a?.resolveData??`all`,je=y(E,Ae),Me;if(i.eventType===`run_started`&&k&&!a?.skipPreload&&(Me=await w(_,{limit:oe()})),typeof a?.sinceCursor==`string`){let e=await w(_,{sortOrder:`asc`,cursor:a.sinceCursor});Me=Ae===`none`?{...e,data:e.data.map(e=>y(e,Ae))}:e}let Ne={event:je,run:k,step:M,hook:N,wait:Te,...P?{stepCreated:!0}:{},...k?{maxEvents:oe()}:{}};return Me?{...Ne,events:Me.data,cursor:Me.cursor,hasMore:Me.hasMore}:Ne}},async get(n,r,i){z(`runId`,n),z(`eventId`,r);let a=`${n}-${r}`,o=await G(e,W(`events`,n),a,$,t);if(!o)throw Error(`Event ${r} in run ${n} not found`);let s=i?.resolveData??`all`;return y(o,s)},async list(e){let{runId:t}=e;z(`runId`,t);let n=e.resolveData??`all`,r=await w(t,{...e.pagination,limit:e.pagination?.limit??oe()});return n===`none`?{...r,data:r.data.map(e=>y(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;z(`correlationId`,n),z(`runId`,t.runId);let r=t.resolveData??`all`,a=await zt({directory:L.join(e,W(`events`,t.runId)),schema:$,cachedItems:i,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:vn(`evnt`),getId:e=>e.eventId,getSortKey:Ii,getSortKeyFromFileId:e=>Li(t.runId,e)});return r===`none`?{...a,data:a.data.map(e=>y(e,r))}:a}};async function M(e,t,n){if(!e.event)return e;let r=_e(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await j.list({runId:e.event.runId,pagination:{cursor:`${It}${me(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let N=(async(e,t,n)=>{if(n?.eventCount===void 0)return j.create(e,t,n);let r=n.resolveData??`all`,i=await j.create(e,t,n);return typeof n.sinceCursor==`string`?i:M(i,n.eventCount,r)});return{...j,create:N}}function Gi(e){let t=L.join(e,`snapshots`);function n(e){return z(`runId`,e),B(t,`${e}.snapshot`)}return{async save(e,r,i){await Tt(t),await Y(n(e),Buffer.from(le(i,r)),{overwrite:!0})},async load(e){let t;try{t=await At(n(e))}catch(e){if(e.code===`ENOENT`)return null;throw e}return ee(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},async delete(e){await I.rm(n(e),{force:!0})}}}function Ki(e,t){return{get:(async(n,r,i)=>{z(`runId`,n),z(`stepId`,r);let a=`${n}-${r}`,o=await G(e,W(`steps`,n),a,p,t);if(!o)throw Error(`Step ${r} in run ${n} not found`);return zr(o,i?.resolveData??`all`)}),list:(async t=>{z(`runId`,t.runId);let n=t.resolveData??`all`,r=await zt({directory:L.join(e,W(`steps`,t.runId)),schema:p,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:vn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function qi(e,t){let n=Di(e,t),r=Ki(e,t),i=Wi(e,t),a=Yr(e,t),o=Gi(e);return{runs:Er(`world.runs`,n),steps:Er(`world.steps`,r),events:Er(`world.events`,i),hooks:Er(`world.hooks`,a),experimental_snapshots:Er(`world.experimental_snapshots`,o),clearCache:()=>i.clearCache()}}async function Ji(e,t){let n=L.join(e,`.locks`),r;try{r=await F.readdir(n,{withFileTypes:!0})}catch{r=[]}await H(r.filter(e=>e.isDirectory()).map(async e=>{let r=L.join(n,e.name);await H((await F.readdir(r).catch(()=>[])).filter(e=>e.endsWith(`.${t}`)).map(e=>F.rm(L.join(r,e),{recursive:!0,force:!0})))}))}function Yi(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...ut.value,...t};Je(n.dataDir);let r=n.tag,i=Lr(n),{clearCache:a,...o}=qi(n.dataDir,r),s=dt(n);return{specVersion:fe(),capabilities:{hookRetention:{active:!0},dynamicWorkflowCode:!0,hookResumeDedup:!0,hookForceClaim:!0},...i,...o,...Er(`world.streams`,{...di(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await ar(n.dataDir),!s)return;let e=r?e=>bt(e,r):xt,t={...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))};await x(t,i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=L.join(e,`hooks`),i=await Ct(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-CyBgVS7g.js`).then(e=>e.t);await H(i.map(async n=>{let r=await X(L.join(t,n),a);r?.token&&(await Z(L.join(t,`tokens`,`${Zt(r.token)}.json`)),await Z(hn(e,r.token,r.runId,r.hookId)))}));let o=(await Ct(L.join(e,`runs`),r)).flatMap(e=>{let t=e.slice(0,-`.${r}.json`.length);return[L.join(`steps`,t),L.join(`events`,t)]});await H([`runs`,...o,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=L.join(e,t);await H((await Ct(n,r)).map(e=>Z(L.join(n,e))))})),await H(o.map(t=>F.rmdir(L.join(e,t)).catch(()=>{})));for(let t of[`token-index`,`id-index`]){let n=L.join(e,`hooks`,t),i;try{i=await F.readdir(n,{withFileTypes:!0})}catch{i=[]}await H(i.filter(e=>e.isDirectory()).map(async e=>{let t=L.join(n,e.name);await H((await Ct(t,r)).map(e=>Z(L.join(t,e))))}))}await Ji(e,r);let s=L.join(e,`streams`,`chunks`),c;try{c=await F.readdir(s,{withFileTypes:!0})}catch{c=[]}await H(c.filter(e=>e.isDirectory()).map(async e=>{let t=L.join(s,e.name);await H((await wt(t,r,`.bin`)).map(e=>F.unlink(L.join(t,e)).catch(()=>{})))})),_t()}else _t(),Pn(),await Ie(n.dataDir,{recursive:!0,force:!0}),await ar(n.dataDir)}}}export{Wn as DataDirAccessError,rr as DataDirLayoutError,Gn as DataDirVersionError,We as UnwritableDataDirError,Yi as createWorld,Zn as ensureDataDir,ar as initDataDir,Kn as parseVersion};
|