eve 0.70.0 → 0.70.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/src/channel/adapter.js +1 -1
- package/dist/src/channel/channel-operations.js +1 -1
- package/dist/src/channel/resolve-text.d.ts +8 -0
- package/dist/src/channel/resolve-text.js +2 -1
- package/dist/src/cli/banner.d.ts +2 -2
- package/dist/src/cli/banner.js +1 -1
- package/dist/src/cli/commands/init-agent-workspace.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/dev/tui/prompt-commands.d.ts +7 -7
- package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
- package/dist/src/cli/dev/tui/runner.d.ts +4 -3
- package/dist/src/cli/dev/tui/runner.js +2 -2
- package/dist/src/cli/dev/tui/task-activity.d.ts +0 -17
- package/dist/src/cli/dev/tui/task-activity.js +1 -1
- package/dist/src/cli/dev/tui/task-records.d.ts +17 -0
- package/dist/src/cli/dev/tui/task-records.js +1 -0
- package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
- package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +7 -1
- package/dist/src/cli/dev/tui/test/mock-terminal.js +4 -3
- package/dist/src/cli/dev/tui/theme.d.ts +1 -1
- package/dist/src/cli/dev/tui/theme.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.d.ts +15 -2
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/dev/tui/transcript-parts.d.ts +10 -2
- package/dist/src/cli/dev/tui/transcript-parts.js +2 -2
- package/dist/src/cli/dev/tui/transcript.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +8 -8
- package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +1 -1
- package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +15 -0
- package/dist/src/compiled/@workflow/core/runtime/dynamic-workflow.d.ts +182 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +7 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/quickjs-assets.generated.d.ts +7 -0
- package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +2 -30
- package/dist/src/compiled/@workflow/core/runtime/quickjs-log-view.d.ts +27 -4
- package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +55 -3
- package/dist/src/compiled/@workflow/core/runtime/quickjs-snapshot-codec.d.ts +74 -0
- package/dist/src/compiled/@workflow/core/runtime/start.d.ts +4 -0
- package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +44 -0
- package/dist/src/compiled/@workflow/core/runtime.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/schemas.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization/compression.d.ts +27 -2
- package/dist/src/compiled/@workflow/core/serialization/hardened.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -0
- package/dist/src/compiled/@workflow/core/serialization.d.ts +48 -0
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- package/dist/src/compiled/@workflow/core/set-error-stack.d.ts +12 -0
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +47 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/events.d.ts +10 -0
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -0
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +127 -0
- package/dist/src/compiled/@workflow/world/queue.d.ts +6 -0
- package/dist/src/compiled/@workflow/world/runs.d.ts +9 -2
- package/dist/src/compiled/@workflow/world/snapshots.d.ts +60 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +19 -17
- package/dist/src/compiled/_chunks/node/undici-B61sz6UT.js +95 -0
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-D721NpZv.js → attribute-changes-VaTKT4K8.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/dist-B7NC1c9-.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{functions-DpZiBxgQ.js → functions-CKkqf9V6.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/helpers-CP9TjeO8.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{logger-D4GJNTk4.js → logger-oqfblE3p.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/resume-hook-yq-NAdBu.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-DYKeqbob.js +32 -0
- package/dist/src/compiled/_chunks/workflow/serialization-APSKphN5.js +3 -0
- package/dist/src/compiled/_chunks/workflow/signal-exit-iIdjQcCK.js +95 -0
- package/dist/src/compiled/_chunks/workflow/sleep-Ba8SExMt.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{token-BhlnqoHM.js → token-BKeK6DmC.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/token-Cv2GYj9A.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{token-util-DaeRTzDa.js → token-util-CddTZ_ef.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{wait-until-3_1djUuL.js → wait-until-Dc9s3yyP.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{wrapper-CzrF_dmI.js → wrapper-Dq4OeGmJ.js} +4 -4
- package/dist/src/compiled/{gray-matter → js-yaml}/LICENSE +2 -2
- package/dist/src/compiled/js-yaml/index.d.ts +12 -0
- package/dist/src/compiled/js-yaml/index.js +34 -0
- package/dist/src/compiled/shadcn-registry/index.js +4 -4
- package/dist/src/context/serialize.d.ts +5 -1
- package/dist/src/context/serialize.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/extension-specifier.d.ts +1 -0
- package/dist/src/discover/extension-specifier.js +1 -1
- package/dist/src/discover/extensions.d.ts +1 -1
- package/dist/src/discover/extensions.js +1 -1
- package/dist/src/discover/project-source.d.ts +5 -0
- package/dist/src/discover/project-source.js +1 -1
- package/dist/src/evals/loaders/yaml.js +1 -1
- package/dist/src/evals/session.d.ts +1 -0
- package/dist/src/evals/session.js +1 -1
- package/dist/src/evals/types.d.ts +6 -0
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/legacy-remote-agent/protocol.d.ts +8 -0
- package/dist/src/execution/legacy-remote-agent/protocol.js +1 -1
- package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
- package/dist/src/execution/proxied-deliver-step.d.ts +11 -0
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/sandbox/read-file.d.ts +8 -1
- package/dist/src/execution/sandbox/read-file.js +3 -3
- package/dist/src/execution/session/active-turn.d.ts +4 -1
- package/dist/src/execution/session/active-turn.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.d.ts +23 -0
- package/dist/src/execution/session/checkpoint-migrations.js +1 -0
- package/dist/src/execution/session/entry-input.d.ts +23 -5
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/finalization.js +1 -1
- package/dist/src/execution/session/handoff-steps.d.ts +24 -5
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +40 -16
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/pending-turn-state.d.ts +2 -0
- package/dist/src/execution/session/pending-turn-state.js +1 -1
- package/dist/src/execution/session/program.d.ts +16 -3
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/turn-step-result.js +1 -1
- package/dist/src/execution/session/turn-step-types.d.ts +13 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +14 -2
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/workflow-runtime.d.ts +4 -4
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/attachment-staging.d.ts +27 -7
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/compaction-prompt.js +2 -2
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/token-estimate.d.ts +5 -3
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/attachments/media-metadata.d.ts +25 -0
- package/dist/src/internal/attachments/media-metadata.js +1 -0
- package/dist/src/internal/attachments/sandbox-refs.d.ts +12 -7
- package/dist/src/internal/attachments/sandbox-refs.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/bundler/extension-mount-plugin.d.ts +4 -0
- package/dist/src/internal/bundler/extension-mount-plugin.js +1 -1
- package/dist/src/internal/bundler/extension-scope-plugin.js +2 -2
- package/dist/src/internal/helpers/frontmatter.d.ts +24 -0
- package/dist/src/internal/helpers/frontmatter.js +1 -0
- package/dist/src/internal/helpers/markdown.js +1 -3
- package/dist/src/internal/input-text.d.ts +12 -0
- package/dist/src/internal/input-text.js +1 -0
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
- package/dist/src/internal/node-esm-compat-banner.js +1 -1
- 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/public/channels/chat-sdk/input-actions.d.ts +8 -2
- package/dist/src/public/channels/chat-sdk/input-actions.js +4 -1
- package/dist/src/public/channels/github/defaults.js +2 -3
- package/dist/src/public/channels/linear/hitl.js +2 -3
- package/dist/src/public/channels/slack/action-status.d.ts +10 -5
- package/dist/src/public/channels/slack/action-status.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +3 -3
- package/dist/src/public/channels/slack/limits.d.ts +1 -1
- package/dist/src/public/channels/slack/limits.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +11 -9
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/slack/task-card.js +1 -1
- package/dist/src/public/channels/slack/thread-status.d.ts +33 -0
- package/dist/src/public/channels/slack/thread-status.js +1 -0
- package/dist/src/public/channels/twilio/defaults.js +4 -2
- package/dist/src/public/definitions/state.d.ts +2 -0
- package/dist/src/public/definitions/state.js +1 -1
- package/dist/src/runtime/connections/openapi-spec.d.ts +1 -4
- package/dist/src/runtime/connections/openapi-spec.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/create/web-template.d.ts +4 -4
- package/dist/src/setup/scaffold/create/web-template.js +33 -26
- package/dist/src/subagents/callback-route.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +2 -2
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/subagents/parent-notification.d.ts +7 -7
- package/dist/src/subagents/parent-notification.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/read-file.d.ts +7 -0
- package/dist/src/tools/provided/read-file.js +2 -2
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/docs/agent-config.md +2 -2
- package/docs/channels/chat-sdk.mdx +1 -1
- package/docs/channels/slack.mdx +21 -15
- package/docs/channels/twilio.mdx +1 -1
- package/docs/concepts/built-in-tools.md +1 -1
- package/docs/concepts/default-harness.md +4 -0
- package/docs/concepts/execution-model-and-durability.mdx +9 -1
- package/docs/concepts/sessions-runs-and-streaming.md +3 -3
- package/docs/evals/cases.mdx +1 -0
- package/docs/extensions.md +6 -3
- package/docs/guides/dev-tui.md +5 -3
- package/docs/guides/dynamic-capabilities.md +1 -1
- package/docs/sandbox/index.mdx +11 -0
- package/docs/tools/overview.mdx +4 -2
- package/package.json +8 -8
- package/dist/src/compiled/_chunks/node/undici-h5GH4RBM.js +0 -95
- package/dist/src/compiled/_chunks/workflow/debug-log-CVPstO1D.js +0 -1
- package/dist/src/compiled/_chunks/workflow/dist-BUFGAKRb.js +0 -1
- package/dist/src/compiled/_chunks/workflow/frames-Dr9fHWdo.js +0 -3
- package/dist/src/compiled/_chunks/workflow/helpers-DkKxg_yn.js +0 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-uTW-jBYz.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-5DmiMN9b.js +0 -1
- package/dist/src/compiled/_chunks/workflow/serialization-CNIYl1D3.js +0 -3
- package/dist/src/compiled/_chunks/workflow/signal-exit-DZKTacNU.js +0 -95
- package/dist/src/compiled/_chunks/workflow/sleep-DFKgN7UG.js +0 -1
- package/dist/src/compiled/_chunks/workflow/token-1wSBbi5N.js +0 -1
- package/dist/src/compiled/_chunks/workflow/token-util-Cm4Ec1Bg.js +0 -1
- package/dist/src/compiled/_chunks/workflow/ws-transport--rYOVIaf.js +0 -1
- package/dist/src/compiled/gray-matter/index.d.ts +0 -62
- package/dist/src/compiled/gray-matter/index.js +0 -48
- package/dist/src/internal/helpers/gray-matter.d.ts +0 -25
- package/dist/src/internal/helpers/gray-matter.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as e,s as t,t as n}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{$ as r,B as i,C as a,S as o,T as s,a as c,dt as l,ft as u,ht as d,lt as f,nt as p,pt as m,q as h,ut as g}from"../../_chunks/workflow/dist-BUFGAKRb.js";import{$ as _,$n as v,At as y,B as b,Bt as x,C as S,Cn as C,Ct as w,Dt as T,E,En as D,Et as O,F as k,Ft as A,Ht as j,I as M,It as N,J as P,Jt as ee,K as F,Kt as I,Lt as L,Mt as R,Nt as z,Ot as te,P as ne,Pt as re,Q as ie,Qn as B,Qt as ae,R as oe,Rt as se,Sn as ce,St as le,T as ue,Tn as de,Tt as fe,U as V,V as pe,Vt as me,W as he,X as ge,Xt as _e,Y as ve,Yt as ye,Z as be,Zt as xe,_t as H,a as U,an as Se,b as Ce,bn as we,bt as Te,c as Ee,cn as De,d as Oe,dn as ke,en as Ae,er as je,et as Me,f as Ne,fn as Pe,g as Fe,gn as Ie,gt as Le,hn as Re,i as ze,in as Be,it as Ve,j as He,jt as Ue,k as We,kt as Ge,ln as Ke,mn as qe,n as W,nn as Je,nr as Ye,nt as Xe,o as Ze,on as Qe,p as $e,pn as et,q as tt,qt as nt,r as rt,rn as it,rt as at,s as ot,sn as st,tn as ct,tr as lt,tt as ut,u as dt,un as ft,v as pt,vt as mt,w as ht,wn as gt,wt as _t,x as vt,xn as yt,xt as bt,y as G,yn as xt,yt as St,z as Ct,zt as wt}from"../../_chunks/workflow/logger-D4GJNTk4.js";import{A as K,C as Tt,D as Et,F as Dt,M as q,N as Ot,P as kt,T as At,a as jt,b as Mt,c as Nt,d as Pt,f as J,h as Ft,i as Y,j as It,l as Lt,n as Rt,o as zt,r as X,s as Bt,t as Vt,u as Ht,y as Ut}from"../../_chunks/workflow/dist-CaNNONeg.js";import{i as Wt,n as Gt,r as Kt,t as Z}from"../../_chunks/workflow/global-DKbOgrts.js";import{a as qt,n as Jt}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{A as Yt,B as Q,G as Xt,H as Zt,I as Qt,K as $t,M as en,O as tn,Q as nn,R as rn,U as an,V as on,W as sn,Y as cn,Z as ln,a as un,at as dn,c as fn,d as pn,et as mn,ft as hn,gt as gn,ht as _n,j as vn,k as yn,l as bn,mt as xn,ot as Sn,p as Cn,pt as wn,u as Tn,z as En}from"../../_chunks/workflow/serialization-CNIYl1D3.js";import{awaitEarlierDeliveries as Dn,getStepFunction as On,isDeliveryIdle as kn,registerDeliveryBarrier as An,scheduleWorkflowSuspension as jn}from"./private.js";import{C as Mn,D as Nn,E as Pn,O as Fn,S as In,T as Ln,_ as Rn,b as zn,c as Bn,d as Vn,f as Hn,g as Un,h as Wn,i as Gn,l as Kn,m as qn,p as Jn,r as Yn,s as Xn,t as Zn,u as Qn,v as $n,w as er,x as tr,y as nr}from"../../_chunks/workflow/helpers-DkKxg_yn.js";import{d as rr,l as ir,n as ar,s as or,u as sr}from"../../_chunks/workflow/attribute-changes-D721NpZv.js";import{r as cr,t as lr}from"../../_chunks/workflow/wait-until-3_1djUuL.js";import{a as ur,n as dr,o as fr,r as pr,s as mr,t as hr}from"../../_chunks/workflow/resume-hook-uTW-jBYz.js";import{a as gr,c as _r,d as vr,f as yr,i as br,l as xr,m as Sr,n as Cr,o as wr,p as Tr,r as Er,s as Dr,t as Or,u as kr}from"../../_chunks/workflow/run-5DmiMN9b.js";import{t as Ar}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{createRequire as jr}from"node:module";import{createHash as Mr}from"node:crypto";import{types as Nr}from"node:util";import Pr from"node:assert/strict";import{pathToFileURL as Fr}from"node:url";import{Script as Ir,createContext as Lr,runInContext as Rr}from"node:vm";function zr(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function Br(e){return e===`vercel`||e===`@workflow/world-vercel`}var Vr=t(kt(),1);function Hr(e){return e instanceof sr||e instanceof ir||e instanceof rr||e instanceof ar}const Ur=`The workflow event log contains orphaned or mismatched events and cannot be replayed. This is an internal workflow SDK error; please report it with the runId.`;function Wr(e,t){let n=t??yr(e);return Ft.is(e)?{attribution:`user`,errorCode:n,hint:`A value passed across a workflow/step boundary could not be serialized. See the error message for the offending path and the Learn More link for details.`}:Hr(e)?{attribution:`user`,errorCode:n,hint:`A workflow-only or step-only API was called from the wrong context. The error message includes the exact API and how to move the call.`}:Vt.is(e)?{attribution:`sdk`,errorCode:n,hint:Ur}:n===q.DEPLOYMENT_MISMATCH?{attribution:`sdk`,errorCode:n,hint:`The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.`}:e instanceof K?{attribution:`sdk`,errorCode:n,hint:`This is an internal workflow SDK error, not a bug in your code. If it keeps happening, please report it with the stack trace and the runId.`}:n===q.REPLAY_TIMEOUT?{attribution:`sdk`,errorCode:n,hint:'The workflow replay between step boundaries took too long. This bounds workflow-VM and event-log replay time only — step bodies (`"use step"` functions) are excluded. This usually means the event log is unusually large or the workflow function is doing heavy synchronous work in workflow code outside of step bodies. Override the default budget via the WORKFLOW_REPLAY_TIMEOUT_MS env var if needed.'}:n===q.MAX_DELIVERIES_EXCEEDED?{attribution:`sdk`,errorCode:n,hint:`The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.`}:n===q.MAX_EVENTS_EXCEEDED?{attribution:`user`,errorCode:n,hint:`The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.`}:n===q.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:Ur}:n===q.STREAM_ERROR?{attribution:`sdk`,errorCode:n,hint:`Workflow stream infrastructure failed while reading or writing data. This is an SDK or backend failure, not an error in your workflow code; please retry the run and report persistent failures with the runId.`}:n===q.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}function Gr(e){if(e===null)return!0;let t=typeof e;return t!==`object`&&t!==`function`}var Kr=class{preparer;preparedPayloads=new Map;primitiveStepResults=new Map;encryptionKey;nextUnscannedEventIndex=0;constructor(e,t=Qt){this.preparer=t,this.encryptionKey=Promise.resolve(e)}prepareEvent(e){this.prepareEventIfMissing(e)?.catch(()=>{})}async prewarm(e,t){let n=[],r=this.startPreparation(this.workflowInputKey(e.runId),e.input);r&&n.push(r);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let r=t[e],i=this.prepareEventIfMissing(r);i&&n.push(i)}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return Gr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,await this.encryptionKey)}prepareEventIfMissing(e){let t,n;switch(e.eventType){case`run_created`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData.input);case`run_started`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData?.input);case`step_completed`:t=`result`,n=e.eventData?.result;break;case`step_failed`:t=`error`,n=e.eventData?.error;break;case`hook_received`:t=`payload`,n=e.eventData?.payload;break;default:return}return this.startPreparation(this.eventPayloadKey(e.eventId,t),n)}startPreparation(e,t){if(t instanceof Uint8Array&&!this.preparedPayloads.has(e))return this.ensurePreparation(e,t)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const qr=`cinst_${u()}`;function Jr(){return m(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const Yr=24e4,Xr=3e4,Zr=78e4,Qr=d(`@workflow/core//envWarnings`,1,()=>({replayTimeoutValues:new Set,maxInlineStepsValues:new Set,maxEventsValues:new Set}));function $r(e,t,n){Qr.replayTimeoutValues.has(e)||(Qr.replayTimeoutValues.add(e),W.warn(t,n))}function ei(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return Yr;let t=Number(e);return!Number.isFinite(t)||t<=0?($r(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:Yr}),Yr):t<3e4?($r(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:Xr,minMs:Xr}),Xr):t>78e4?($r(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:Zr,maxMs:Zr}),Zr):t}function ti(){return m(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}function ni(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(Qr.maxInlineStepsValues.has(e)||(Qr.maxInlineStepsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(Qr.maxInlineStepsValues.has(e)||(Qr.maxInlineStepsValues.add(e),W.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}function ri(){return process.env.WORKFLOW_RESILIENT_STEP_DISPATCH===`1`}function ii(){let e=process.env.WORKFLOW_BATCH_TRANSITIONS;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function ai(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){Qr.maxEventsValues.has(e)||(Qr.maxEventsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function oi(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function si(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function ci(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function li(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function ui(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function di(){return m(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function fi(){return m(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function pi(){return m(`WORKFLOW_OPEN_WAIT_CLOCK_SKEW_MS`,3e4,{integer:!0})}function mi(){return m(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function hi(){return m(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function gi(){return m(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function _i(){return m(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const vi=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function yi(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=vi(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}function bi(e){return Nr.isNativeError(e)?e.name:`Error`}function xi(e){return Nr.isNativeError(e)?e.message:String(e)}function Si(e){return Nr.isNativeError(e)?e.stack??``:``}function Ci(e){if(typeof e!=`object`||!e)return String(e);let{name:t,message:n,code:r}=e,i=typeof t==`string`&&t?t:`Error`,a=typeof n==`string`&&n?`${i}: ${n}`:i;return typeof r==`string`&&r&&!a.includes(r)?`${a} (${r})`:a}function wi(e){let t=[],n=new Set;try{for(let r=Ti(e);r!=null&&t.length<=4;r=Ti(r)){if(typeof r!=`object`){t.push(String(r));break}if(n.has(r))break;n.add(r),t.push(Ci(r),...Ei(r))}}catch{t.push(`[unavailable cause]`)}return t.length>4?[...t.slice(0,4),`…`].join(`
|
|
1
|
+
import{a as e,s as t,t as n}from"../../_chunks/workflow/rolldown-runtime-B_knIduE.js";import{D as r,H as i,T as a,Y as o,_t as s,a as c,dt as l,ft as u,ht as d,it as f,mt as p,pt as m,tt as h,w as g}from"../../_chunks/workflow/dist-B7NC1c9-.js";import{$ as _,$t as v,An as y,At as b,B as x,Bt as S,C,Cn as w,Ct as T,Dn as E,Dt as D,E as O,En as k,Et as A,F as j,Ft as M,Ht as N,I as P,It as F,J as I,Jt as ee,K as L,Kt as R,Lt as te,Mt as ne,Nt as re,On as ie,Ot as ae,P as oe,Pt as z,Q as B,Qt as se,R as ce,Rt as V,St as le,T as ue,Tn as de,Tt as fe,U as pe,V as me,Vt as he,W as ge,X as _e,Y as ve,Yt as ye,Z as be,_n as xe,_t as H,a as U,an as Se,ar as Ce,b as we,bn as Te,bt as Ee,c as De,cn as Oe,d as ke,dn as Ae,en as je,et as Me,f as Ne,fn as Pe,g as Fe,gn as Ie,gt as Le,hn as Re,i as ze,in as Be,ir as Ve,it as He,j as Ue,jt as We,k as Ge,kn as Ke,kt as qe,ln as Je,mn as Ye,n as W,nn as Xe,nr as Ze,nt as Qe,o as $e,on as et,or as tt,p as nt,pn as rt,q as it,qt as at,r as ot,rr as st,rt as ct,s as lt,sn as ut,tn as dt,tt as ft,u as pt,un as mt,v as ht,vn as gt,vt as _t,w as vt,wn as yt,wt as bt,x as xt,xt as St,y as G,yn as Ct,yt as wt,z as Tt,zt as Et}from"../../_chunks/workflow/logger-oqfblE3p.js";import{A as K,C as Dt,D as Ot,F as kt,M as q,N as At,P as jt,T as Mt,a as Nt,b as Pt,c as Ft,d as It,f as J,h as Lt,i as Y,j as Rt,l as zt,n as Bt,o as Vt,r as X,s as Ht,t as Ut,u as Wt,y as Gt}from"../../_chunks/workflow/dist-CaNNONeg.js";import{i as Kt,n as qt,r as Jt,t as Z}from"../../_chunks/workflow/global-DKbOgrts.js";import{a as Yt,n as Xt}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{$ as Zt,A as Qt,B as $t,G as en,H as Q,J as tn,K as nn,M as rn,N as an,P as on,R as sn,U as cn,V as ln,W as un,Z as dn,_t as fn,a as pn,ct as mn,d as hn,et as gn,f as _n,gt as vn,ht as yn,j as bn,k as xn,l as Sn,m as Cn,mt as wn,nt as Tn,q as En,st as Dn,u as On,vt as kn}from"../../_chunks/workflow/serialization-APSKphN5.js";import{awaitEarlierDeliveries as An,getStepFunction as jn,isDeliveryIdle as Mn,registerDeliveryBarrier as Nn,scheduleWorkflowSuspension as Pn}from"./private.js";import{A as Fn,B as In,C as Ln,D as Rn,E as zn,F as Bn,G as Vn,H as Hn,I as Un,J as Wn,K as Gn,L as Kn,M as qn,N as Jn,O as Yn,P as Xn,R as Zn,S as Qn,T as $n,U as er,V as tr,W as nr,X as rr,Y as ir,Z as ar,_ as or,a as sr,b as cr,c as lr,d as ur,f as dr,g as fr,h as pr,i as mr,k as hr,l as gr,m as _r,n as vr,p as yr,q as br,u as xr,v as Sr,w as Cr,x as wr,y as Tr,z as Er}from"../../_chunks/workflow/helpers-CP9TjeO8.js";import{d as Dr,l as Or,n as kr,s as Ar,u as jr}from"../../_chunks/workflow/attribute-changes-VaTKT4K8.js";import{r as Mr,t as Nr}from"../../_chunks/workflow/wait-until-Dc9s3yyP.js";import{a as Pr,n as Fr,o as Ir,r as Lr,s as Rr,t as zr}from"../../_chunks/workflow/resume-hook-yq-NAdBu.js";import{a as Br,c as Vr,d as Hr,f as Ur,g as Wr,h as Gr,i as Kr,l as qr,m as Jr,n as Yr,o as Xr,p as Zr,r as Qr,s as $r,t as ei,u as ti}from"../../_chunks/workflow/run-DYKeqbob.js";import{t as ni}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{createRequire as ri}from"node:module";import{createHash as ii}from"node:crypto";import{types as ai}from"node:util";import oi from"node:assert/strict";import{pathToFileURL as si}from"node:url";import{Script as ci,createContext as li,runInContext as ui}from"node:vm";function di(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function fi(e){return e===`vercel`||e===`@workflow/world-vercel`}var pi=t(jt(),1);function mi(e){return e instanceof jr||e instanceof Or||e instanceof Dr||e instanceof kr}const hi=`The workflow event log contains orphaned or mismatched events and cannot be replayed. This is an internal workflow SDK error; please report it with the runId.`;function gi(e,t){let n=t??Ur(e);return Lt.is(e)?{attribution:`user`,errorCode:n,hint:`A value passed across a workflow/step boundary could not be serialized. See the error message for the offending path and the Learn More link for details.`}:mi(e)?{attribution:`user`,errorCode:n,hint:`A workflow-only or step-only API was called from the wrong context. The error message includes the exact API and how to move the call.`}:Ut.is(e)?{attribution:`sdk`,errorCode:n,hint:hi}:n===q.DEPLOYMENT_MISMATCH?{attribution:`sdk`,errorCode:n,hint:`The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.`}:e instanceof K?{attribution:`sdk`,errorCode:n,hint:`This is an internal workflow SDK error, not a bug in your code. If it keeps happening, please report it with the stack trace and the runId.`}:n===q.REPLAY_TIMEOUT?{attribution:`sdk`,errorCode:n,hint:'The workflow replay between step boundaries took too long. This bounds workflow-VM and event-log replay time only — step bodies (`"use step"` functions) are excluded. This usually means the event log is unusually large or the workflow function is doing heavy synchronous work in workflow code outside of step bodies. Override the default budget via the WORKFLOW_REPLAY_TIMEOUT_MS env var if needed.'}:n===q.MAX_DELIVERIES_EXCEEDED?{attribution:`sdk`,errorCode:n,hint:`The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.`}:n===q.MAX_EVENTS_EXCEEDED?{attribution:`user`,errorCode:n,hint:`The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.`}:n===q.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:hi}:n===q.STREAM_ERROR?{attribution:`sdk`,errorCode:n,hint:`Workflow stream infrastructure failed while reading or writing data. This is an SDK or backend failure, not an error in your workflow code; please retry the run and report persistent failures with the runId.`}:n===q.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}function _i(e){if(e===null)return!0;let t=typeof e;return t!==`object`&&t!==`function`}var vi=class{preparer;preparedPayloads=new Map;primitiveStepResults=new Map;encryptionKey;nextUnscannedEventIndex=0;constructor(e,t=sn){this.preparer=t,this.encryptionKey=Promise.resolve(e)}prepareEvent(e){this.prepareEventIfMissing(e)?.catch(()=>{})}async prewarm(e,t){let n=[],r=this.startPreparation(this.workflowInputKey(e.runId),e.input);r&&n.push(r);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let r=t[e],i=this.prepareEventIfMissing(r);i&&n.push(i)}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return _i(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,await this.encryptionKey)}prepareEventIfMissing(e){let t,n;switch(e.eventType){case`run_created`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData.input);case`run_started`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData?.input);case`step_completed`:t=`result`,n=e.eventData?.result;break;case`step_failed`:t=`error`,n=e.eventData?.error;break;case`hook_received`:t=`payload`,n=e.eventData?.payload;break;default:return}return this.startPreparation(this.eventPayloadKey(e.eventId,t),n)}startPreparation(e,t){if(t instanceof Uint8Array&&!this.preparedPayloads.has(e))return this.ensurePreparation(e,t)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const yi=`cinst_${p()}`,bi=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function xi(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=bi(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}function Si(e){return ai.isNativeError(e)?e.name:`Error`}function Ci(e){return ai.isNativeError(e)?e.message:String(e)}function wi(e){return ai.isNativeError(e)?e.stack??``:``}function Ti(e){if(typeof e!=`object`||!e)return String(e);let{name:t,message:n,code:r}=e,i=typeof t==`string`&&t?t:`Error`,a=typeof n==`string`&&n?`${i}: ${n}`:i;return typeof r==`string`&&r&&!a.includes(r)?`${a} (${r})`:a}function Ei(e){let t=[],n=new Set;try{for(let r=Di(e);r!=null&&t.length<=4;r=Di(r)){if(typeof r!=`object`){t.push(String(r));break}if(n.has(r))break;n.add(r),t.push(Ti(r),...Oi(r))}}catch{t.push(`[unavailable cause]`)}return t.length>4?[...t.slice(0,4),`…`].join(`
|
|
2
2
|
`):t.join(`
|
|
3
|
-
`)}function Ti(e){return typeof e==`object`&&e?e.cause:void 0}function Ei(e){let t=e.errors;return Array.isArray(t)?t.slice(0,4).map(Ci):[]}function Di(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function Oi(e){if(!Di(e)||Y.is(e))return e;let t=new Y(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function ki(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function Ai(e){if(Nr.isNativeError(e))return{name:e.name,message:e.message,stack:e.stack??``};if(typeof e==`string`)return{name:`Error`,message:e,stack:``};try{return{name:`Error`,message:JSON.stringify(e),stack:``}}catch{return{name:`Error`,message:String(e),stack:``}}}async function ji(e){if(ki(e))try{let t=await ji(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await ji(e);return{...t,message:`Promise rejection: ${t.message}`}}return Ai(e)}const Mi=Symbol.for(`@workflow/core//lifecycleHooks`);function Ni(){return Object.hasOwn(globalThis,Mi)||Object.defineProperty(globalThis,Mi,{value:[],writable:!1,enumerable:!1,configurable:!1}),globalThis[Mi]}function Pi(e,t,n,r,i){let a=(r,i)=>{try{W.error(`Workflow lifecycle ${n} ${r}`,{workflowRunId:e,workflowName:t,errorName:bi(i),errorMessage:xi(i),errorStack:Si(i)})}catch{}};try{let e=Ni().slice().filter(e=>{try{return!!e[n]}catch(e){return a(`handler threw`,e),!1}});if(e.length===0)return;lr(G(`workflow.lifecycle.${n}`,async()=>{let t=[];try{let n=await r(t);for(let t of e)try{await i(t,n)}catch(e){a(`handler threw`,e)}}finally{let e=0;for(;e<t.length;){let n=t.slice(e);e=t.length;let r=await Promise.allSettled(n);for(let e of r)e.status===`rejected`&&a(`stream operation failed`,e.reason)}}}),e=>a(`dispatch failed`,e))}catch(e){a(`dispatch failed`,e)}}function Fi(e,t){Pi(e,t,`onRunCompleted`,async()=>({run:new Or(e),workflowName:t}),(e,t)=>e.onRunCompleted?.(t))}async function Ii(e,t,n,r){try{return await tn(e,t,n,r,globalThis,void 0,{lazyStreams:!0,liveAbortSignals:!1})}catch{return Error(`Failed to hydrate workflow run error`)}}function Li(e,t,n,r,i){Pi(e,t,`onRunFailed`,async a=>({run:new Or(e),workflowName:t,error:new Et(e,await Ii(n,e,r,a),{errorCode:i})}),(e,t)=>e.onRunFailed?.(t))}const Ri={outcome:`continue`};function zi(e,t,n){return{outcome:e,spanAttributes:{...Ie(t),...nt(n),...I(e===`rerouted`)}}}async function Bi({world:e,run:t,workflowName:n,requestId:r,retryCount:i=0,reenqueue:a,isDeploymentUnavailableError:o,beforeStop:s}){if(e.capabilities?.deploymentAffinity!==!0)return Ri;let c=await e.getDeploymentId();if(t.deploymentId===c)return Ri;await s?.();let l=_i(),u={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:c,retryCount:i,maxRetries:l},d=async(i,a)=>{let o=new Tt(t.runId,t.deploymentId,c,{recoveryAttempts:i,cause:a}),s;try{s=await fn(o,t.runId,void 0,void 0,(t.specVersion??0)>=5),await e.events.create(t.runId,{eventType:`run_failed`,specVersion:cr(t.specVersion),eventData:{error:s,errorCode:q.DEPLOYMENT_MISMATCH}},{requestId:r})}catch(e){if(!X.is(e)&&!J.is(e))throw e;return zi(`failed`,t.deploymentId,i)}return Li(t.runId,n,s,void 0,q.DEPLOYMENT_MISMATCH),zi(`failed`,t.deploymentId,i)};if(a&&i<l){let e=i+1,n=Math.min(2**i,8);try{return await a({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),W.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...u,attempt:e,delaySeconds:n}),zi(`rerouted`,t.deploymentId,e)}catch(t){if(!o?.(t))throw t;return W.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...u,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),d(0,t)}}return W.error(i>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,u),d(i)}function Vi(e){let t=new Set,n=new Map;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.set(r.correlationId,Hi(r.eventData?.resumeAt));break;case`wait_completed`:n.delete(r.correlationId)}let r;for(let e of n.values())(r===void 0||e<r)&&(r=e);return{openHook:t.size>0,openWait:n.size>0,earliestOpenWaitResumeAtMs:r}}function Hi(e){let t;if(e instanceof Date)t=e.getTime();else if(typeof e==`number`)t=e;else if(typeof e==`string`)t=new Date(e).getTime();else return-1/0;return Number.isFinite(t)?t:-1/0}function Ui(e,t){return e.earliestOpenWaitResumeAtMs!==void 0&&e.earliestOpenWaitResumeAtMs<=t}function Wi(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function Gi(){try{return jr(Fr(process.cwd()+`/package.json`).href)}catch{return jr(import.meta.url)}}const Ki=Symbol.for(`@workflow/world//cache`),qi=Symbol.for(`@workflow/world//stubbedCache`),Ji=Symbol.for(`@workflow/world//cachePromise`),Yi=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function Xi(e){if(typeof e.createWorld==`function`)return e.createWorld();if(typeof e.default==`function`)return e.default();if(e.default&&typeof e.default==`object`)return e.default;throw Error(`Invalid target world module: must export createWorld(), a default factory, or a default World instance.`)}function Zi(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return Fr(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return Fr(process.cwd()+`/`+e).href;try{return Fr(Gi().resolve(e)).href}catch{return e}}const Qi=async()=>{let e=zr();if(Br(e)){let e=[`WORKFLOW_VERCEL_PROJECT`,`WORKFLOW_VERCEL_TEAM`,`WORKFLOW_VERCEL_AUTH_TOKEN`,`WORKFLOW_VERCEL_ENV`].filter(e=>process.env[e]);return e.length>0&&process.env.VERCEL===`1`&&console.warn(`[workflow] Warning: ${e.join(`, `)} env var(s) are set but have no effect at runtime. These are only used by the Workflow CLI. Remove them from your Vercel project environment variables.`),Wi()}if(e===`local`)return Wi({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=Gi()(e)}catch{t=await import(Zi(e))}if(typeof t==`function`)return t();try{return await Xi(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},$i=async()=>{if($[qi])return B($[qi]),$[qi];$[Yi]||($[Yi]=Qi().catch(e=>{throw $[Yi]=void 0,e}));let e=await $[Yi];return B(e),$[qi]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},ea=async()=>$[Ki]?(B($[Ki]),$[Ki]):($[Ji]||($[Ji]=Qi().catch(e=>{throw $[Ji]=void 0,e})),$[Ki]=await $[Ji],B($[Ki]),$[Ki]),ta=e=>{$[Ki]=e,$[qi]=e,$[Ji]=void 0,$[Yi]=void 0},na=Symbol.for(`@workflow/world//getWorldFn`);globalThis[na]??=ea;var ra=class{limitMs;elapsedMs=0;intervalStart;constructor(e=ei()){this.limitMs=e,this.intervalStart=Date.now()}get configuredLimitMs(){return this.limitMs}elapsed(){let e=this.intervalStart===null?0:Date.now()-this.intervalStart;return this.elapsedMs+e}pause(){this.intervalStart!==null&&(this.elapsedMs+=Date.now()-this.intervalStart,this.intervalStart=null)}resume(){this.intervalStart=Date.now()}isExhausted(){return this.elapsed()>=this.limitMs}},ia=class extends Error{name=`ReplayTimeoutRetryError`};async function aa(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a,slotSnapshot:o}=e,s=W.forRun(t,n),c=ti();if(i<=c)throw s.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:c}),new ia(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let l=await ea(),u=Wr(void 0,q.REPLAY_TIMEOUT);s.error(`Workflow replay exceeded timeout and max retries exceeded. Failing the run`,{timeoutMs:a,attempt:i,maxRetries:c,errorCode:u.errorCode,errorAttribution:u.attribution});let d=Wn(l,t),f=new Y(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`),p=await d(),m=await fn(f,t,p);await l.events.create(t,{eventType:`run_failed`,specVersion:8,eventData:{error:m,errorCode:q.REPLAY_TIMEOUT}},{requestId:r,...o}),Li(t,n,m,p,q.REPLAY_TIMEOUT)}var oa=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new sa}activate(){this.active=!0}async withEventCreate(e,t){if(!this.active||this.reported)return t(e);this.reported=!0;try{return await t({...e,replayDivergenceCount:this.divergenceCount})}catch(e){throw this.reported=!1,e}}},sa=class extends oa{constructor(){super(0)}activate(){}};function ca(e,t){if(e&&Number.isFinite(e.resumeRequestedAtMs)&&Number.isFinite(e.queuePublishRequestedAtMs))return{trigger:`hook`,...e.strategy===`lazy`||e.strategy===`parallel`||e.strategy===`sequential`?{strategy:e.strategy}:{},resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,consumerStartedAtMs:e.consumerStartedAtMs??NaN,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===`hook_preload`||e.setupSource===`run_started`||e.setupSource===`event_load`?{setupSource:e.setupSource}:{},stepExecution:t}}function la(e){if(e&&Number.isFinite(e.consumerStartedAtMs))return{resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,...e.strategy===void 0?{}:{strategy:e.strategy},consumerStartedAtMs:e.consumerStartedAtMs,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===void 0?{}:{setupSource:e.setupSource}}}function ua(e){let t=[e.resumeRequestedAtMs,e.queuePublishRequestedAtMs,e.consumerStartedAtMs,e.replayStartedAtMs,e.nextStepEncounteredAtMs,e.stepClaimStartedAtMs,...e.stepClaimCompletedAtMs===void 0?[]:[e.stepClaimCompletedAtMs],e.stepCodeStartedAtMs];for(let e of t)if(typeof e!=`number`||!Number.isFinite(e))return;for(let e=1;e<t.length;e++)if(t[e]<t[e-1])return;return t}function da(e){let{tracking:t}=e;if(!t||e.attempt!==1||t.replayStartedAtMs===void 0||t.nextStepEncounteredAtMs===void 0||e.stepClaimStartedAtMs===void 0)return;let n={resumeRequestedAtMs:t.resumeRequestedAtMs,queuePublishRequestedAtMs:t.queuePublishRequestedAtMs,consumerStartedAtMs:t.consumerStartedAtMs,replayStartedAtMs:t.replayStartedAtMs,nextStepEncounteredAtMs:t.nextStepEncounteredAtMs,stepClaimStartedAtMs:e.stepClaimStartedAtMs,stepClaimCompletedAtMs:e.stepClaimCompletedAtMs,stepCodeStartedAtMs:e.stepCodeStartedAtMs};if(!ua(n))return;let{resumeRequestedAtMs:r,queuePublishRequestedAtMs:i,consumerStartedAtMs:a,replayStartedAtMs:o,nextStepEncounteredAtMs:s,stepClaimStartedAtMs:c,stepClaimCompletedAtMs:l,stepCodeStartedAtMs:u}=n;return{...at(u-r),...tt(i-r),...P(a-i),...ge(o-a),...ve(s-o),..._(c-s),...l===void 0?{}:ie(l-c),...ut(u-(l??c)),...Ve(t.trigger),...t.strategy===void 0?{}:Xe(t.strategy),...t.setupSource===void 0?{}:be(t.setupSource),...Me(t.stepExecution)}}function fa(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return g(Ar(t).ulid)}catch{return}}const pa=d(`@workflow/core//devServerPort`,1,()=>({getPort:void 0,cachedPort:void 0,inFlight:void 0}));async function ma(){if(pa.cachedPort!==void 0)return pa.cachedPort;if(pa.inFlight)return pa.inFlight;if(!pa.getPort)try{let e=[`@workflow/utils`,`get-port`].join(`/`),t=jr(Fr(process.cwd()+`/package.json`).href)(e);pa.getPort=t.getPort}catch{pa.getPort=async()=>void 0}let e=pa.getPort??(async()=>void 0);return pa.inFlight=e().then(e=>(typeof e==`number`&&(pa.cachedPort=e),e)).finally(()=>{pa.inFlight=void 0}),pa.inFlight}const ha=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function ga(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(ha.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(n||i!==void 0)return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},replayMs:e.replayMs,turbo:e.turbo,retained:e.retained}}function _a(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),e.preclaimedStart&&l.push(`preclaimedStart`),t.retained&&l.push(`retained`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}const va=`__workflowUnserializableStepInput`;function ya(){return{args:[`[input unavailable: step argument serialization failed]`],closureVars:[],thisVal:void 0,[va]:!0}}function ba(e){return typeof e==`object`&&!!e&&e[va]===!0}function xa(){return m(`WORKFLOW_STEP_STREAM_DRAIN_TIMEOUT_MS`,3e4,{integer:!0,min:1})}function Sa(e){let t=e?.name;return t===`AbortError`||t===`ResponseAborted`}async function Ca(e){if(e.length===0)return;let t=xa(),n;try{await Promise.race([Promise.all(e.map(e=>(e.settleReleasedWrites?.()??Promise.resolve(!1)).catch(e=>{if(!Sa(e))throw e;return!1}))),new Promise((e,r)=>{n=setTimeout(()=>r(new K(`Timed out draining step stream writes after ${t}ms`)),t)})])}catch(e){if(!Sa(e))throw e}finally{n!==void 0&&clearTimeout(n)}}function wa(e,t){if(t&&e.events&&e.cursor!==void 0)return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function Ta(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:a,stepName:o}=e,s=!!process.env.VERCEL_URL,c=(e.runSpecVersion??0)>=5,l=e.replayRecoveryReporter??oa.inert(),u=async(e,r)=>l.withEventCreate(Fn(r),r=>t.events.create(n,e,r)),d={computeInstanceId:qr,...e.requestId?{requestId:e.requestId}:{}},f=`step.execute ${lt(o)}`;return G(f,{},async l=>{if(l?.setAttributes({...O(o),...Je(r),...Re(n),...w(a)}),Pr(!(e.lazyStepInput!==void 0&&e.preclaimedStart),`executeStep: lazyStepInput and preclaimedStart are mutually exclusive`),e.preclaimedStart&&e.preclaimedStart.owned===!1)return W.debug(`Pre-claimed step start lost, skipping`,{stepName:o,stepId:a,workflowRunId:n}),l?.setAttributes({...A(!0),...re(`running`)}),{type:`skipped`};let f=Wn(t,n),p=On(o);if(!p||typeof p!=`function`){let t=`Step "${o}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(W.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:o,stepId:a}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},d)}catch(e){if(X.is(e))return{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(new Y(t),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return{type:`skipped`};throw e}return l?.setAttributes({...L(`failed`),...bt(!0)}),{type:`failed`}}let m=p.maxRetries??3;if(l?.setAttributes({...fe(m)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>m+1){let t=m,r=`Step "${o}" exceeded max retries (${t} ${Dt(`retry`,`retries`,t)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,stepId:a,attempt:e.authoritativeAttempt,maxRetries:m});try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(new Y(r),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}return l?.setAttributes({...L(`failed`),...y(!0)}),{type:`failed`}}let h=e=>{if(Ut.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return W.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(J.is(e))return W.info(`Workflow run "${n}" has already completed, skipping step "${a}": ${e.message}`),{type:`gone`};if(X.is(e))return W.debug(`Step in terminal state, skipping`,{stepName:o,stepId:a,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),l?.setAttributes({...A(!0),...re(`completed`)}),{type:`skipped`};if(Mt.is(e)){let t=Math.max(1,e.retryAfter??1);return W.debug(`Step retryAfter timestamp not yet reached`,{stepName:o,stepId:a,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},g=e.preclaimedStart===void 0&&e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(oi()||e.forceOptimisticStart===!0&&!si());e.preclaimedStart?l?.setAttributes(N(`batch_preclaimed`)):e.lazyStepInput!==void 0&&l?.setAttributes(N(g?`optimistic`:`awaited`));let _,v=d,b,x,C,T=async()=>{if(!C)return;let e=await C;if(e.ok)return;let t=h(e.err);if(!t)throw e.err;return t};if(e.preclaimedStart?.owned)_=e.preclaimedStart.step,b=e.preclaimedStart.batchPostSentAtMs,x=e.preclaimedStart.claimCompletedAtMs;else if(g){C=(e.runReadyBarrier??Promise.resolve()).then(()=>(b=Date.now(),u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},v))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;_={runId:n,stepId:a,stepName:o,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};b=Date.now();let n=await u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:e.lazyStepInput===void 0?{stepName:o,...t}:{stepName:o,workflowName:r,input:e.lazyStepInput,...t}},v);x=Date.now(),_=n.step}catch(e){let t=h(e);if(t)return t;throw e}W.debug(`Step execution details`,{stepName:o,stepId:_.stepId,status:_.status,attempt:_.attempt}),l?.setAttributes({...L(_.status)});let E;if(_.attempt>m+1&&_.error){let e=_.attempt-1,t=`Step "${o}" exceeded max retries (${e} ${Dt(`retry`,`retries`,e)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,retryCount:e});let r=new Y(t);if(_.error!=null)try{r.cause=await Yt(_.error,n,await f())}catch{}try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(r,n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...L(`failed`),...y(!0)}),{type:`failed`}}let D=[],k=[],j=[],M=!0,P,ee=()=>{if(!P||P.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t!==void 0&&b!==void 0&&(P.rsfs=Math.max(0,b-t),l&&l.setAttributes({...z(P.rsfs)}))};try{let t=_.attempt;if(!_.startedAt)throw new K(`Step "${a}" has no "startedAt" timestamp`);let u=_.startedAt,d=e.encryptionKey??await f(),m=await G(`step.hydrate`,{},async t=>{let r=Date.now(),i=await yn(_.input,n,d,k,globalThis,{},e.workflowDeploymentId,j),a=Date.now()-r;return t?.setAttributes({...Le(i.args.length),...V(a)}),i});if(ba(m)){let{message:e,hint:t}=$t(`step arguments`,void 0);throw new Ft(e,{hint:t})}let h=m.args,v=m.thisVal??null,y=Jt(s?`https://${process.env.VERCEL_URL}`:`http://localhost:${await ma()??3e3}`),S,C=!1,w=Date.now();P=_a({tracking:e.latencyTracking,stepCodeStartedAtMs:w,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:g,preclaimedStart:e.preclaimedStart!==void 0,stepStartPostSentAtMs:b}),P&&l?.setAttributes({...P.ttfs===void 0?{}:wt(P.ttfs),...P.stso===void 0?{}:se(P.stso),...P.rsfs===void 0?{}:z(P.rsfs),...P.finalSchedulingReplay===void 0?{}:le(P.finalSchedulingReplay),..._t(P.optimizations??[])});let O=()=>{let n=e.resumeTracking;if(!n||n.reported)return;let r=da({tracking:n,attempt:t,stepClaimStartedAtMs:b,stepClaimCompletedAtMs:x,stepCodeStartedAtMs:Date.now()});r&&(n.reported=!0,l?.setAttributes(r))},A=`ok`,N=performance.now();try{E=await G(`step.execute`,{},async()=>await Xt.run({stepMetadata:{stepName:o,stepId:a,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:y,features:{encryption:!!d}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:k,preCompletionOps:D,streamStates:j,closureVars:m.closureVars,encryptionKey:d,runReadyBarrier:g?e.runReadyBarrier:void 0},()=>(O(),p.apply(v,h))))}catch(e){A=`error`,S=e,C=!0}finally{Fe(performance.now()-N,A)}let I=Date.now()-w;if(un(...h,v,m.closureVars),C)throw S;if(l?.setAttributes({...he(I)}),E=await G(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await pn(E,n,d,k,globalThis,!1,!1,c,g?e.runReadyBarrier:void 0),a=Date.now()-r;return t?.setAttributes({...F(a),...Ge(typeof i)}),i}),k.length>0){let e=Promise.all(k);lr(e,e=>{W.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:a,error:e instanceof Error?e.message:String(e)})}),M=!1;let t=Promise.race([e.then(()=>{M=!0},e=>{if(Sa(e)){M=!0;return}throw e}),new Promise(e=>setTimeout(e,500))]);t.catch(()=>{}),await Ca(j),await t}if(g){let e=await T();if(e)return e;ee()}D.length>0&&await Promise.all(D).catch(()=>{})}catch(e){if(g){let e=await T();if(e)return e;ee()}D.length>0&&await Promise.all(D).catch(()=>{});let t=Oi(e),r=await ji(t),i=r.stack||Si(t)||``;t instanceof Error&&l?.recordException?.(t);let s=Y.is(t);if(l?.setAttributes({...Te(bi(t)),...St(r.message),...ue(bi(t)),...S(s?`fatal`:Pt.is(t)?`retryable`:`transient`),...ht(!s)}),J.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};if(s){rt.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:o,errorStack:i}),Nr.isNativeError(t)&&i&&(t.stack=i);try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(t,n,await f(),[],globalThis,c),...P}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...L(`failed`),...bt(!0)}),{type:`failed`}}let d=_.attempt;if(l?.setAttributes({...H(d),...fe(m)}),d>=m+1){let t=_.attempt-1;rt.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:o,attempt:_.attempt,retryCount:t,errorStack:i});let s=`Step "${o}" failed after ${m} ${Dt(`retry`,`retries`,m)}: ${r.message}`,d=new Y(s);d.cause=e,i&&(d.stack=i);try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(d,n,await f(),[],globalThis,c),...P}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...L(`failed`),...y(!0)}),{type:`failed`}}Pt.is(e)?rt.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,message:e.message}):rt.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,errorStack:i}),Nr.isNativeError(e)&&i&&(e.stack=i);try{await u({eventType:`step_retrying`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await Tn(e,n,await f(),[],globalThis,c),...Pt.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(X.is(e))return W.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}let p=Math.max(1,Pt.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return l?.setAttributes({...Ue(p),...R(!0)}),{type:`retry`,timeoutSeconds:p}}let I;try{I=await u({eventType:`step_completed`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,result:E,...P}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(X.is(e))return W.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};if(J.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};throw e}let te=wa(I,e.inlineDeltaSinceCursor!==void 0);return l?.setAttributes({...L(`completed`),...Ge(typeof E)}),k.length>0&&rt.debug(`Step has pending ops`,{workflowRunId:n,stepName:o,opsCount:k.length}),{type:`completed`,hasPendingOps:!M,inlineDelta:te}})}function Ea(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function Da(e,t){if(e.lastStartedAt===void 0)return 0;let n=di(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function Oa(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function ka(e,t,n){let r=new Map,i=new Set;for(let t of e)if(t.correlationId!==void 0){if(t.eventType===`step_started`){let e=`eventData`in t&&t.eventData&&`ownerMessageId`in t.eventData&&typeof t.eventData.ownerMessageId==`string`?t.eventData.ownerMessageId:void 0;r.set(t.correlationId,e)}else t.eventType===`step_retrying`&&i.add(t.correlationId)}for(let e of t)if(e!==void 0&&!i.has(e)&&r.get(e)===n)return!0;return!1}const Aa=d(`eve//freshStepSingleFlight`,1,()=>new Set),ja=d(`@workflow/core//stepSingleFlight`,1,()=>({inFlight:new Map}));async function Ma(e,t,n,r=`warn`){let i=`${e}:${t}`,a=ja.inFlight.get(i);if(a){W[Aa.has(i)?`debug`:r](`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await a}catch{}return{type:`skipped`}}let o=n();ja.inFlight.set(i,o),r===`debug`&&Aa.add(i);try{return await o}finally{ja.inFlight.delete(i),Aa.delete(i)}}async function Na({runId:e,hookEvent:t,queueItem:n,requestId:r,sinceCursor:i,createEvent:a,world:o,forceClaimVictimWakes:s}){try{let c=await a(t,{requestId:r,...i===void 0?{}:{sinceCursor:i}});if(c.event?.eventType===`hook_conflict`)return{hasHookConflict:!0,hasAwaitedHookCreation:!1};if(c.hook?.claimedFrom){s?.add(c.hook.hookId);let t=await fr(o,e,c.hook);W.info(`Hook token force-claimed from another run`,{workflowRunId:e,hookId:n.correlationId,victimRunId:c.hook.claimedFrom.runId,victimWake:t})}return{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(X.is(t))return W.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(J.is(t))return W.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(Fa(t)){let e=new Y(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Pa({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s,stepDispatch:c,ownerMessageId:l,allowDeferredBatchWork:u,forceClaimVictimWakes:d}){let f=n.runId,p=mr(t,f,a?.events,{alreadyWoken:d}),m=async()=>{if(o)try{await o}catch{}},h=async e=>{let t=(await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(t.length!==0)throw t.find(e=>Lt.is(e))??t[0]},g=s??oa.inert(),_=(e,n)=>g.withEventCreate(n,n=>t.events.create(f,e,n)),y=0,b=0,x=!1,S=async(e,t)=>{if(b++,!a)return _(e,t);let n=a,r=await _(e,{...t,...Ln(n.events)});if(typeof t?.sinceCursor==`string`)return n.cursor===t.sinceCursor&&r.events!==void 0&&r.hasMore!==!0&&(Un(n.events,r.events),n.cursor=r.cursor??n.cursor,x=!0),r;let i=Yn(n.events,r);return y+=i.added,i.truncated?W.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:f,eventType:e.eventType,eventId:r.event?.eventId,offered:i.offered}):i.added>0&&W.debug(`Suspension write skipped occupied slots`,{workflowRunId:f,eventType:e.eventType,eventId:r.event?.eventId,reported:i.added}),r},C=e.items.filter(e=>e.type===`step`),w=e.items.filter(e=>e.type===`hook`),T=e.items.filter(e=>e.type===`wait`),E=e.items.filter(e=>e.type===`attribute`),O=w.filter(e=>!e.hasCreatedEvent),k=new Map;for(let e of w){if(e.hasCreatedEvent&&!e.disposed)continue;let t=k.get(e.token);t?t.push(e):k.set(e.token,[e])}let A=await t.getEncryptionKeyForRun?.(n),j=A?await v(A):void 0,M=(n.specVersion??0)>=5,N=0,P=[];async function ee(t,n){let r={executions:[]};try{return await bn(t,f,j,e.globalThis,!1,M,r)}finally{N+=r.totalExecutions??r.executions.length,P.push(...r.executions.slice(0,5-P.length).map(e=>({...n,...e})))}}async function F(e){let t={eventType:`hook_disposed`,specVersion:8,correlationId:e.correlationId,eventData:{token:e.token}};try{await S(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(J.is(t))W.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(Bt.is(t))W.info(`Hook not found for disposal, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}}let I=[],L=[],R=0,z=O.length===1&&typeof a?.cursor==`string`?a.cursor:void 0,ne=async e=>{for(let n of e){let e=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await ee(n.metadata,{source:`hook_metadata`,correlationId:n.correlationId}),a={eventType:`hook_created`,specVersion:8,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0},...n.force&&{force:!0}}},o=await Na({runId:f,hookEvent:a,queueItem:n,requestId:i,sinceCursor:z,createEvent:S,world:t,forceClaimVictimWakes:d});o.hasHookConflict&&I.push(n.correlationId),o.hasAwaitedHookCreation&&L.push(n.correlationId),e=o.hasHookConflict}n.disposed&&!e&&await F(n)}},re=async e=>{try{let n=await ee({aborted:!0,reason:e.abortReason},{source:`hook_abort`,correlationId:e.correlationId});await S({eventType:`hook_received`,specVersion:8,correlationId:e.correlationId,eventData:{token:e.token,payload:n}});try{let r=an(e.token);await t.streams.write(f,r,n),await t.streams.close(f,r)}catch{W.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:f,correlationId:e.correlationId})}}catch(t){if(X.is(t)||J.is(t))W.info(`Workflow run already completed, skipping abort`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}},ie=[...k.values()],B=w.filter(e=>e.abortRequested&&!e.disposed),ae,oe=ie.length>0||B.length>0?(async()=>{if(await m(),ie.length>0){let e={startMs:Date.now()};ae=e,await h(ie.map(ne)),e.endMs=Date.now()}B.length>0&&await h(B.map(re))})():void 0,se=new Set(C.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),le=new Set,ue=new Set,de=async(t,r)=>{W.warn(`Step arguments failed to serialize; failing the step so the workflow can observe the error`,{workflowRunId:f,correlationId:t.correlationId,stepName:t.stepName,error:r.message}),await m();let a=await bn(ya(),f,j,e.globalThis,!1,M);try{await S({eventType:`step_created`,specVersion:8,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}},{requestId:i})}catch(e){if(X.is(e))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:t.correlationId,message:e.message});else if(J.is(e))return;else throw e}try{await S({eventType:`step_failed`,specVersion:8,correlationId:t.correlationId,eventData:{stepName:t.stepName,error:await Tn(r,f,j,[],e.globalThis,M)}},{requestId:i})}catch(e){if(X.is(e)||J.is(e))W.info(`Tried failing step, but step or run has already finished.`,{workflowRunId:f,correlationId:t.correlationId,message:e.message});else throw e}ue.add(t.correlationId),V.delete(t.correlationId)},fe=O.some(e=>e.hasConflictAwaiter===!0),V=new Set(fe?[]:C.filter(e=>se.has(e.correlationId)).slice(0,ni()).map(e=>e.correlationId)),pe=new Map,me=[];oe&&me.push(oe);let he=new Set,ge=c!==void 0&&ri()&&(n.specVersion??0)>=3,_e=ii()&&typeof t.events.createBatch==`function`&&(n.specVersion??0)>=6&&!ge&&E.length===0,ve=[],ye=[],be=_e&&l!==void 0&&(V.size>=2||V.size===1&&O.length>0),xe=new Map,H,U=()=>(H??=c?.getTraceCarrier()??Promise.resolve({}),H),Se=0,Ce=0;for(let e of C)if(se.has(e.correlationId)){let r=be&&V.has(e.correlationId),a=Ce;Ce+=r?2:1;let o=(async()=>{let o;try{o=await ee({args:e.args,closureVars:e.closureVars,thisVal:e.thisVal},{source:`step_input`,correlationId:e.correlationId})}catch(t){if(!Ft.is(t)||!c)throw t;await de(e,t);return}if(V.has(e.correlationId)){pe.set(e.correlationId,{correlationId:e.correlationId,stepName:e.stepName,dehydratedInput:o}),r&&(ve.push({order:a,kind:`inline-created`,correlationId:e.correlationId,event:{eventType:`step_created`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}}}),ve.push({order:a+1,kind:`inline-started`,correlationId:e.correlationId,event:{eventType:`step_started`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,...l===void 0?{}:{ownerMessageId:l}}}}));return}let s={eventType:`step_created`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}};if(ge&&o instanceof Uint8Array&&o.byteLength<=131072){await m();let r=await U(),[a,l]=await Promise.allSettled([S(s,{requestId:i}),nr(t,c.queueName,{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:r,requestedAt:new Date,stepInput:{input:o},runContext:Mn(n)},{idempotencyKey:Pn(e.correlationId,e.stepName)})]);if(l.status===`rejected`)throw l.reason;if(he.add(e.correlationId),a.status===`rejected`){let t=a.reason;if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(Tr(t))Se++,W.warn(`Step creation event write failed, but the step was dispatched via the queue. The step_created event will be ensured by the queue consumer.`,{workflowRunId:f,correlationId:e.correlationId,stepName:e.stepName,error:t instanceof Error?t.message:String(t)});else throw t}else le.add(e.correlationId);return}if(_e){ve.push({order:a,kind:`step`,correlationId:e.correlationId,stepName:e.stepName,event:s});return}try{await m(),await S(s,{requestId:i}),le.add(e.correlationId)}catch(t){if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}})();me.push(o),_e&&ye.push(o.catch(()=>{}))}for(let e of T)if(!e.hasCreatedEvent){let t={eventType:`wait_created`,specVersion:8,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};if(_e){ve.push({order:Ce++,kind:`wait`,correlationId:e.correlationId,event:t});continue}me.push((async()=>{try{await m(),await S(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Wait already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}})())}let we;_e&&me.push((async()=>{if(await Promise.all(ye),ve.length===0)return;let e=[...ve].sort((e,t)=>e.order-t.order);await m();let r=async e=>{try{await S(e.event,{requestId:i}),e.kind===`step`&&le.add(e.correlationId)}catch(t){if(X.is(t))W.info(e.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}};if(e.length===1){await r(e[0]);return}let o=a?(qn(a.events)??0)+1:void 0,s=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1],o=i.kind===`inline-created`&&a?.kind===`inline-started`&&a.correlationId===i.correlationId,s=o?2:1;n.length>0&&n.length+s>32&&(t.push(n),n=[]),n.push(i),o&&(n.push(a),r++)}return n.length>0&&t.push(n),t},l=e=>e.kind===`inline-created`||e.kind===`inline-started`,d=s(e.filter(e=>l(e))),p=e.filter(e=>!l(e)),h=p.length===1?[p]:s(p),g=p.length===1?h[0]:void 0,_=[...d,...h],v=c!==void 0;if(v)for(let t of e)t.kind===`step`&&he.add(t.correlationId);let y=0,x,C=async e=>{let n=Date.now();b++;let{results:r}=await t.events.createBatch(f,e.map(e=>({event:e.event,...e.kind===`inline-started`?{computeInstanceId:qr}:{}})),{requestId:i}),a=Date.now();for(let[t,i]of r.entries()){let r=e[t];if(i.error===void 0){if(r.kind===`step`)le.add(r.correlationId);else if(r.kind===`inline-started`){let e=pe.get(r.correlationId);if(e===void 0)throw new It(`no dehydrated input for pre-claimed step ${r.correlationId}`,{status:500});let t=new Date,o=i.step?.startedAt?{...i.step,startedAt:i.step.startedAt}:{runId:f,stepId:r.correlationId,stepName:e.stepName,status:`running`,attempt:1,createdAt:t,updatedAt:t,startedAt:t};xe.set(r.correlationId,{owned:!0,step:{...o,input:e.dehydratedInput},batchPostSentAtMs:n,claimCompletedAtMs:a})}continue}if(i.status===409){if(r.kind===`inline-created`||r.kind===`inline-started`){xe.set(r.correlationId,{owned:!1}),W.info(`Inline step pre-claim lost, continuing`,{workflowRunId:f,correlationId:r.correlationId,message:i.message});continue}W.info(r.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:f,correlationId:r.correlationId,message:i.message});continue}throw new It(`batched ${r.event.eventType} for ${r.correlationId} failed: ${i.error}: ${i.message}`,{status:i.status})}let o=qn(r.flatMap(e=>e.error===void 0&&e.event?[e.event]:[]));y+=r.filter(e=>e.error===void 0).length,o!==void 0&&(x===void 0||o>x)&&(x=o)},w=async e=>{if(!v)return;let r=e.filter(e=>e.kind===`step`);if(r.length===0)return;let i=await U();await zn(t,c.queueName,r.map(e=>({message:{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:i,requestedAt:new Date,runContext:Mn(n)},opts:{idempotencyKey:Pn(e.correlationId,e.stepName)}})))},T=_.map(e=>e===g?r(e[0]):C(e)),E=_.map(async(e,t)=>{await T[t],await w(e)}),D=(async()=>{let e=await Promise.allSettled([...T,...E]);if(o!==void 0&&x!==void 0){let e=x-o+1-y;e>0&&W.debug(`Batched fan-out committed above snapshot`,{workflowRunId:f,expectedFirstSlot:o,maxCommittedSlot:x,committedCount:y,interleaved:e})}let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason})(),O=_.flatMap((e,t)=>e.some(e=>e.kind===`inline-started`)?[T[t]]:[]);if(u){if(D.catch(()=>{}),we=D,O.length>0)try{await Promise.all(O)}catch(e){throw await D.catch(()=>{}),e}}else await D})());for(let e of E)me.push((async()=>{try{await m(),await S({eventType:`attr_set`,specVersion:8,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(X.is(t))W.info(`Workflow attribute event already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(Fa(t)){let e=new Y(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());let Te=Promise.allSettled(me.filter(e=>e!==oe)).then(()=>Date.now());try{await h(me)}finally{await p}if(ae?.endMs!==void 0){let e=Math.max(ae.startMs,await Te);R+=Math.max(0,ae.endMs-e)}let Ee=[];for(let e of V){let t=pe.get(e);t&&Ee.push(t)}let De=Date.now(),Oe;for(let e of T){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-De),r=Math.ceil(n/1e3);(!Oe||r<Oe.seconds)&&(Oe={seconds:r,correlationId:e.correlationId,resumeAtMs:t})}return r?.setAttributes({...xt(`workflow_suspended`),...yt(C.length),...ct(O.length),...D(T.length),...ue.size>0?ce(ue.size):{},...Se>0?te(Se):{}}),{pendingSteps:C,createdStepCorrelationIds:le,failedStepCorrelationIds:ue,queuedStepCorrelationIds:he,lazyInlineSteps:Ee,inlineClaims:xe,deferredBatchWork:we,waitTimeout:I.length>0?void 0:Oe,hasHookConflict:I.length>0,hookConflictCorrelationIds:I,hasAwaitedHookCreation:L.length>0,awaitedHookCorrelationIds:L,eventLogCarriedForward:x&&b===1,hasAttributeEvents:E.length>0,hasHookEvents:O.length>0,hookCreationMs:R,serializationBlockerCount:N,serializationBlockers:P,reportedEventCount:y}}function Fa(e){return e instanceof p||e instanceof Error&&e.name===`AttributeValidationError`||It.is(e)&&e.status===400}const Ia=()=>m(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),La=()=>m(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function Ra(e,t,n=Date.now(),r=0){let i=za(e,t,n);return r<=0?i:{delaySeconds:i.delaySeconds,idempotencyKey:`${i.idempotencyKey}:a${r}`}}function za(e,t,n){let r=Ia();if(e<=Math.min(La(),r))return{delaySeconds:e,idempotencyKey:`${t}:${Math.floor(n/1e3)}`};let i=Math.ceil(e/r);return{delaySeconds:Math.min(e,r),idempotencyKey:i===1?t:`${t}:hop-${i}`}}var Ba=44,Va=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Ha=new Uint8Array(64),Ua=new Uint8Array(128);for(let e=0;e<Va.length;e++){let t=Va.charCodeAt(e);Ha[e]=t,Ua[t]=e}function Wa(e){let t=0,n=0,r=0;do r=Ua[e.next()],t|=(r&31)<<n,n+=5;while(r&32);return t}function Ga(e){return e&1?-2147483648|-(e>>>1):e>>>1}function Ka(e,t){return e.pos>=t?!1:e.peek()!==Ba}var qa=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Ja(e){let{length:t}=e,n=new qa(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i+=Ga(Wa(n)),i<u&&(l=!1),u=i,Ka(n,e)?(a+=Ga(Wa(n)),o+=Ga(Wa(n)),s+=Ga(Wa(n)),Ka(n,e)?(c+=Ga(Wa(n)),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Ya(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Ya(e){e.sort(Xa)}function Xa(e,t){return e[0]-t[0]}const Za=/^[\w+.-]+:\/\//,Qa=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,$a=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function eo(e){return Za.test(e)}function to(e){return e.startsWith(`//`)}function no(e){return e.startsWith(`/`)}function ro(e){return e.startsWith(`file:`)}function io(e){return/^[.?#]/.test(e)}function ao(e){let t=Qa.exec(e);return so(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function oo(e){let t=$a.exec(e),n=t[2];return so(`file:`,``,t[1]||``,``,no(n)?n:`/`+n,t[3]||``,t[4]||``)}function so(e,t,n,r,i,a,o){return{scheme:e,user:t,host:n,port:r,path:i,query:a,hash:o,type:7}}function co(e){if(to(e)){let t=ao(`http:`+e);return t.scheme=``,t.type=6,t}if(no(e)){let t=ao(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(ro(e))return oo(e);if(eo(e))return ao(e);let t=ao(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function lo(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function uo(e,t){fo(t,t.type),e.path=e.path===`/`?t.path:lo(t.path)+e.path}function fo(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function po(e,t){if(!e&&!t)return``;let n=co(e),r=n.type;if(t&&r!==7){let e=co(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:uo(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}fo(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?io(t||e)&&!io(r)?`./`+r+i:r+i:i||`.`}case 5:return n.path+i;default:return n.scheme+`//`+n.user+n.host+n.port+n.path+i}}function mo(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function ho(e,t){let n=mo(e),r=t?t+`/`:``;return e=>po(r+(e||``),n)}var go=0,_o=1,vo=2,yo=3,bo=4;function xo(e,t){let n=So(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=So(e,r+1))e[r]=wo(e[r],t);return e}function So(e,t){for(let n=t;n<e.length;n++)if(!Co(e[n]))return n;return e.length}function Co(e){for(let t=1;t<e.length;t++)if(e[t][go]<e[t-1][go])return!1;return!0}function wo(e,t){return t||(e=e.slice()),e.sort(To)}function To(e,t){return e[go]-t[go]}var Eo=!1;function Do(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][go]-t;if(a===0)return Eo=!0,i;a<0?n=i+1:r=i-1}return Eo=!1,n-1}function Oo(e,t,n){for(let r=n+1;r<e.length&&e[r][go]===t;n=r++);return n}function ko(e,t,n){for(let r=n-1;r>=0&&e[r][go]===t;n=r--);return n}function Ao(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function jo(e,t,n,r){let{lastKey:i,lastNeedle:a,lastIndex:o}=n,s=0,c=e.length-1;if(r===i){if(t===a)return Eo=o!==-1&&e[o][go]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=Do(e,t,s,c)}function Mo(e){return typeof e==`string`?JSON.parse(e):e}var No="`line` must be greater than 0 (lines start at line 1)",Po="`column` must be greater than or equal to 0 (columns start at column 0)",Fo=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=Mo(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=r;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=r.ignoreList||r.x_google_ignoreList||void 0;let u=ho(t,s);this.resolvedSources=c.map(u);let{mappings:d}=r;if(typeof d==`string`)this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=xo(d,n);else if(r.sections)throw Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);else throw Error(`invalid source map: ${JSON.stringify(r)}`);this._decodedMemo=Ao(),this._bySources=void 0,this._bySourceMemos=void 0}};function Io(e){return e}function Lo(e){var t;return(t=Io(e))._decoded||(t._decoded=Ja(Io(e)._encoded))}function Ro(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(No);if(r<0)throw Error(Po);let a=Lo(e);if(n>=a.length)return zo(null,null,null,null);let o=a[n],s=Bo(o,Io(e)._decodedMemo,n,r,i||1);if(s===-1)return zo(null,null,null,null);let c=o[s];if(c.length===1)return zo(null,null,null,null);let{names:l,resolvedSources:u}=e;return zo(u[c[_o]],c[vo]+1,c[yo],c.length===5?l[c[bo]]:null)}function zo(e,t,n,r){return{source:e,line:t,column:n,name:r}}function Bo(e,t,n,r,i){let a=jo(e,r,t,n);return Eo?a=(i===-1?Oo:ko)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function Vo(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Ho(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&Vo(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Uo=d(`@workflow/core//sourceMapTracers`,1,()=>({byCode:new Map}));function Wo(e){let t=Uo.byCode.get(e);if(t!==void 0)return Uo.byCode.delete(e),Uo.byCode.set(e,t),t;let n=null,r=Ho(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new Fo(JSON.parse(e))}catch{n=null}for(Uo.byCode.set(e,n);Uo.byCode.size>8;){let e=Uo.byCode.keys().next().value;if(e===void 0)break;Uo.byCode.delete(e)}return n}function Go(e,t,n){if(!e.includes(t))return e;let r=Wo(n);if(!r)return e;try{return e.split(`
|
|
4
|
-
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=
|
|
5
|
-
`)}catch{return e}}function Ko(e,t,n){let r=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*r*t/e.length);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(o+=e[t[s]&r]||``,o.length>=a)return o}}}function qo(e,t){let n=e.get(t);if(n)return n;let r=Jo(t);if(r){for(let[t,n]of e)if(Jo(t)===r)return n}}function Jo(e){let t=e.indexOf(`_`);return t===-1?void 0:e.slice(t+1)}function Yo(e){switch(e.type){case`step`:return`step ${e.stepName} (${e.correlationId})`;case`hook`:return`hook (${e.correlationId})`;case`wait`:return`wait (${e.correlationId})`;case`attribute`:return`attribute (${e.correlationId})`}return`unknown`}function Xo(e,t,n){let r=e.correlationId?qo(t,e.correlationId):void 0,i=n.describe();return[`pending at this id: ${r?Yo(r):`none`}.`,`consumer: index=${i.index}, length=${i.length}, parked=${i.parked}, lastConsumed=${i.lastConsumedEventId??`none`}`].join(` `)}function Zo(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:o}=Wt(),s=`step_${e.generateUlid()}`,c={type:`step`,correlationId:s,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(c.thisVal=this);let l=n?.();return l&&(c.closureVars=l),e.invocationsQueue.set(s,c),rt.debug(`Step consumer setup`,{correlationId:s,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n)return jn(e),Q.NotConsumed;if(rt.debug(`Step consumer event processing`,{correlationId:s,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:s===n.correlationId,eventType:n.eventType}),n.correlationId!==s)return Q.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: step event ${n.eventType} for ${s} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),Q.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(s);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{o(new Ht(`Replay divergence: step ${s} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),Q.Finished):(r.hasCreatedEvent=!0,Q.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),Q.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),Q.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=An(e,t,`step`,{deliveredAt:+n.createdAt}),i,a=Dn(e,t,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(n.eventId,`error`,n.eventData.error);i=await Yt(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){rt.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new Y(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),o(i)})}),Q.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,s=An(e,i,`step`,{deliveredAt:+n.createdAt}),c,l=Dn(e,i,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{c={ok:!0,value:await e.replayPayloadCache.getStepResult(t,async()=>{let n=await e.replayPayloadCache.prepareEventPayload(t,`result`,r);return await vn(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{s.markDelivered(),c.ok?a(c.value):o(c.error)})}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: Unexpected event type for step ${s} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),Q.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(mn(n),Object.defineProperty(r,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(r,"bind",{value:function(e,...r){let i=Function.prototype.bind.call(this,e,...r);return Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperty(i,"__boundThis",{value:e,writable:!1,enumerable:!1,configurable:!1}),r.length>0&&Object.defineProperty(i,"__boundArgs",{value:r,writable:!1,enumerable:!1,configurable:!1}),i},writable:!1,enumerable:!1,configurable:!1}),r}}var Qo=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=o();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,o=n.next;return o.int32=function(){return n.next()*4294967296|0},o.double=function(){return o()+(o()*2097152|0)*11102230246251565e-32},o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}function o(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.alea=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),$o=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor128=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),es=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorwow=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),ts=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.x,n=t.i,r=e[n],i;return r^=r>>>7,i=r^r<<24,r=e[n+1&7],i^=r^r>>>10,r=e[n+3&7],i^=r^r>>>3,r=e[n+4&7],i^=r^r<<7,r=e[n+7&7],r^=r<<13,i^=r^r<<9,e[n]=i,t.i=n+1&7,i};function n(e,t){var n,r=[];if(t===(t|0))r[0]=t;else for(t=``+t,n=0;n<t.length;++n)r[n&7]=r[n&7]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&r[n]===0;++n);for(n==8?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.x&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorshift7=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),ns=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.w,n=t.X,r=t.i,i,a;return t.w=e=e+1640531527|0,a=n[r+34&127],i=n[r=r+1&127],a^=a<<13,i^=i<<17,a^=a>>>15,i^=i>>>12,a=n[r]=a^i,t.i=r,a+(e^e>>>16)|0};function n(e,t){var n,r,i,a,o,s=[],c=128;for(t===(t|0)?(r=t,t=null):(t+=`\0`,r=0,c=Math.max(c,t.length)),i=0,a=-32;a<c;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),a===0&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(o=o+1640531527|0,n=s[a&127]^=r+o,i=n==0?i+1:0);for(i>=128&&(s[(t&&t.length||0)&127]=-1),i=127,a=512;a>0;--a)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;e.w=o,e.X=s,e.i=i}n(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.X&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor4096=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),rs=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,r=t.d,i=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var r=0;r<n.length+20;r++)t.b^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.tychei=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),is=n(((t,n)=>{(function(t,r,i){var a=256,o=6,s=52,c=`random`,l=i.pow(a,o),u=i.pow(2,s),d=u*2,f=a-1,p;function m(e,t,n){var s=[];t=t==1?{entropy:!0}:t||{};var f=v(_(t.entropy?[e,b(r)]:e??y(),3),s),p=new h(s),m=function(){for(var e=p.g(o),t=l,n=0;e<u;)e=(e+n)*a,t*=a,n=p.g(1);for(;e>=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return m.int32=function(){return p.g(4)|0},m.quick=function(){return p.g(4)/4294967296},m.double=m,v(b(p.S),r),(t.pass||n||function(e,t,n,r){return r&&(r.S&&g(r,p),e.state=function(){return g(p,{})}),n?(i[c]=e,t):e})(m,f,`global`in t?t.global:this==i,t.state)}function h(e){var t,n=e.length,r=this,i=0,o=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);i<a;)s[i]=i++;for(i=0;i<a;i++)s[i]=s[o=f&o+e[i%n]+(t=s[i])],s[o]=t;(r.g=function(e){for(var t,n=0,i=r.i,o=r.j,s=r.S;e--;)t=s[i=f&i+1],n=n*a+s[f&(s[i]=s[o=f&o+t])+(s[o]=t)];return r.i=i,r.j=o,n})(a)}function g(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){var n=[],r=typeof e,i;if(t&&r==`object`)for(i in e)try{n.push(_(e[i],t-1))}catch{}return n.length?n:r==`string`?e:e+`\0`}function v(e,t){for(var n=e+``,r,i=0;i<n.length;)t[f&i]=f&(r^=t[f&i]*19)+n.charCodeAt(i++);return b(t)}function y(){try{var e;return p&&(e=p.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),b(e)}catch{var n=t.navigator,i=n&&n.plugins;return[+new Date,t,i,t.screen,b(r)]}}function b(e){return String.fromCharCode.apply(0,e)}if(v(i.random(),r),typeof n==`object`&&n.exports){n.exports=m;try{p=e(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:t,[],Math)})),as=t(n(((e,t)=>{var n=Qo(),r=$o(),i=es(),a=ts(),o=ns(),s=rs(),c=is();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const os=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ss=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)ss[os.charCodeAt(e)]=e;function cs(e){return e===9||e===10||e===12||e===13||e===32}function ls(e,t){for(;t<e.length&&cs(e.charCodeAt(t));)t++;return t}function us(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=ss[r.charCodeAt(0)],a=ss[r.charCodeAt(1)],o=ss[r.charCodeAt(2)],s=ss[r.charCodeAt(3)],c=i<<2|a>>4,l=(a&15)<<4|o>>2,u=(o&3)<<6|s;if(n===2){if(t&&l!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c]}if(n===3){if(t&&u!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c,l]}return[c,l,u]}function ds(e,t,n,r){if(r===void 0&&(r=2**53-1),r===0)return{read:0,bytes:[],error:null};let i=0,a=[],o=``,s=0,c=0,l=e.length;for(;;){if(c=ls(e,c),c===l){if(s>0){if(n===`stop-before-partial`)return{read:i,bytes:a,error:null};if(n===`loose`){if(s===1)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: lone character in final chunk`)};a.push(...us(o,!1))}else return{read:i,bytes:a,error:SyntaxError(`Invalid base64: incomplete chunk in strict mode`)}}return{read:l,bytes:a,error:null}}let u=e[c];if(c++,u===`=`){if(s<2)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: padding in unexpected place`)};if(c=ls(e,c),s===2){if(c===l)return n===`stop-before-partial`?{read:i,bytes:a,error:null}:{read:i,bytes:a,error:SyntaxError(`Invalid base64: missing second padding character`)};u=e[c],u===`=`&&(c=ls(e,c+1))}if(c<l)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected characters after padding`)};let t=n===`strict`;try{a.push(...us(o,t))}catch(e){return{read:i,bytes:a,error:e}}return{read:l,bytes:a,error:null}}if(t===`base64url`){if(u===`+`||u===`/`)return{read:i,bytes:a,error:SyntaxError(`Invalid base64url: unexpected character '${u}'`)};u===`-`?u=`+`:u===`_`&&(u=`/`)}let d=u.charCodeAt(0);if(d>=128||ss[d]===255)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected character '${e[c-1]}'`)};let f=r-a.length;if(f===1&&s===2||f===2&&s===3||(o+=u,s=o.length,s===4&&(a.push(...us(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function fs(e,t){t===void 0&&(t=2**53-1);let n=e.length,r=[],i=0;if(n%2!=0)return{read:0,bytes:[],error:SyntaxError(`Invalid hex: string length must be even`)};for(;i<n&&r.length<t;){let t=e.substring(i,i+2);if(!/^[0-9a-fA-F]{2}$/.test(t))return{read:i,bytes:r,error:SyntaxError(`Invalid hex: unexpected character at position ${i}`)};i+=2,r.push(Number.parseInt(t,16))}return{read:i,bytes:r,error:null}}function ps(e,t){let n=t?.alphabet??`base64`;if(n!==`base64`&&n!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${n}"`);let r=!!t?.omitPadding,i=``,a=e.length;for(let t=0;t<a;t+=3){let n=e[t],o=t+1<a?e[t+1]:0,s=t+2<a?e[t+2]:0;i+=os[n>>2&63],i+=os[(n&3)<<4|o>>4&15],t+1<a?i+=os[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=os[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function ms(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function hs(e){let t=e.prototype,n=e;t.toBase64||Object.defineProperty(t,"toBase64",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return ps(this,t)},writable:!0,enumerable:!1,configurable:!0}),t.toHex||Object.defineProperty(t,"toHex",{value:function(){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return ms(this)},writable:!0,enumerable:!1,configurable:!0}),t.setFromBase64||Object.defineProperty(t,"setFromBase64",{value:function(t,n){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=ds(t,r,i,this.length),o=a.bytes,s=o.length;for(let e=0;e<s;e++)this[e]=o[e];if(a.error)throw a.error;return{read:a.read,written:s}},writable:!0,enumerable:!1,configurable:!0}),t.setFromHex||Object.defineProperty(t,"setFromHex",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let n=fs(t,this.length),r=n.bytes,i=r.length;for(let e=0;e<i;e++)this[e]=r[e];if(n.error)throw n.error;return{read:n.read,written:i}},writable:!0,enumerable:!1,configurable:!0}),n.fromBase64||Object.defineProperty(e,"fromBase64",{value:function(t,n){if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=ds(t,r,i);if(a.error)throw a.error;return new e(a.bytes)},writable:!0,enumerable:!1,configurable:!0}),n.fromHex||Object.defineProperty(e,"fromHex",{value:function(t){if(typeof t!=`string`)throw TypeError(`expected a string`);let n=fs(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function gs(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)n+=r===8||r===13||r===18||r===23?`-`:r===14?`4`:r===19?t[Math.floor(e()*4)+8]:t[Math.floor(e()*16)];return n}}const _s={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function vs(e){if(Nr.isTypedArray(e)||Nr.isDataView(e)){if(Nr.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Nr.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function ys(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,as.default)(n),i=Lr(),a=Rr(`globalThis`,i);a.Math.random=r;let o=a.Date;a.Date=function(...e){return new.target===void 0?new o(t).toString():Reflect.construct(o,e.length===0?[t]:e,new.target)},a.Date.prototype=o.prototype,Object.setPrototypeOf(a.Date,o),a.Date.now=()=>t;let s=globalThis.crypto,c=s.subtle;function l(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(r()*256);return e}let u=gs(r),d=a;delete d.Atomics.waitAsync,delete d.WebAssembly.compile,delete d.WebAssembly.instantiate,delete d.WebAssembly.compileStreaming,delete d.WebAssembly.instantiateStreaming,delete d.WeakRef,delete d.FinalizationRegistry;let f=async(e,t)=>{let n=typeof e==`string`?e:e.name,r=_s[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=Mr(r).update(vs(t)).digest(),a=new ArrayBuffer(i.byteLength);return new Uint8Array(a).set(i),a};return a.crypto=new Proxy(s,{get(e,t){return t===`getRandomValues`?l:t===`randomUUID`?u:t===`subtle`?new Proxy(c,{get(e,t){if(t===`digest`)return f;let n=e[t];return typeof n==`function`?()=>{throw new K(`\`crypto.subtle.${String(t)}()\` is not available inside a workflow function. Move it to a step function where full Node.js crypto is available.`)}:n}}):e[t]}}),a.process={env:Object.freeze({...process.env})},a.DOMException=globalThis.DOMException,a.Headers=globalThis.Headers,a.TextEncoder=globalThis.TextEncoder,a.TextDecoder=globalThis.TextDecoder,a.console=globalThis.console,a.URL=globalThis.URL,a.URLSearchParams=globalThis.URLSearchParams,a.structuredClone=globalThis.structuredClone,a.atob=globalThis.atob,a.btoa=globalThis.btoa,hs(a.Uint8Array),a.Symbol.dispose??=Symbol.for(`Symbol.dispose`),a.Symbol.asyncDispose??=Symbol.for(`Symbol.asyncDispose`),a.exports={},a.module={exports:a.exports},{context:i,globalThis:a,updateTimestamp:e=>{t=e}}}const bs=d(`@workflow/core//vmScriptCache`,1,()=>({byCode:new Map}));function xs(e){let t=bs.byCode.get(e);if(t!==void 0)return bs.byCode.delete(e),bs.byCode.set(e,t),t}function Ss(e,t){let n=xs(e);if(n===void 0)for(n=new Map,bs.byCode.set(e,n);bs.byCode.size>8;){let e=bs.byCode.keys().next().value;if(e===void 0)break;bs.byCode.delete(e)}let r=n.get(t),i=r!==void 0;return r===void 0&&(r=new Ir(e,{filename:t}),n.set(t,r)),{script:r,cacheHit:i}}function Cs(e){return async function(t,n={}){let{promise:r,resolve:i}=Wt(),a=`attr_${e.generateUlid()}`;try{f({changes:t,writer:{type:`workflow`},...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}})}catch(t){if(!(t instanceof p))throw t;if(!e.eventsConsumer.events.some(e=>e.eventType===`attr_set`&&e.correlationId===a))throw new Y(t.message)}let o={type:`attribute`,correlationId:a,changes:t,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}};return e.invocationsQueue.set(a,o),e.eventsConsumer.subscribe(r=>r?r.correlationId===a?r.eventType!==`attr_set`||r.eventData.writer.type!==`workflow`||JSON.stringify(r.eventData.changes)!==JSON.stringify(t)||r.eventData.allowReservedAttributes===!0!=(n.allowReservedAttributes===!0)?(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),Q.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),Q.Finished):Q.NotConsumed:(jn(e),Q.NotConsumed)),r}}function ws(e,t){if(typeof t!=`string`)return null;let n=ln(cn,e.globalThis),r=n?.[nn];return typeof r==`function`?r.call(n,{runId:t}):null}function Ts(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new Y("The configured World does not support `experimental_minRetention` for Hooks.");if(t.experimental_force===!0){if(t.token===void 0||t.token===null)throw Error("`createHook()` was called with `experimental_force: true` but no `token`. Force-claiming only applies to an explicit token another run may hold.");if(t.isWebhook===!0)throw Error("Webhook hooks do not support `experimental_force`. Use a non-webhook `createHook()` with an explicit token.");if(e.worldCapabilities?.hookForceClaim!==!0)throw new Y("The configured World does not support `experimental_force` for Hooks.")}let n=`hook_${e.generateUlid()}`,r=t.token??e.generateNanoid(),i=t.experimental_minRetention===void 0?void 0:Ot(t.experimental_minRetention),a=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:r,tokenRetentionUntil:i,...t.experimental_force===!0&&{force:!0},metadata:t.metadata,isWebhook:a});let o=[],s=[],c=[],l=!1,u=!1,d=!1,f=!1,p=null,m=null,h=null,g=Promise.resolve();function _(t,n){let r=e.eventsConsumer.eventIndex,i=An(e,r,`hook`,{deliveredAt:t}),a=Dn(e,r,`hook`);g=e.promiseQueue.then(()=>a).then(()=>{i.markDelivered(),n()})}function v(t){let n=g;e.promiseQueue=e.promiseQueue.then(()=>{n.then(t)})}let y=new Set;ze.debug(`Hook consumer setup`,{correlationId:n,token:r}),e.eventsConsumer.subscribe(i=>{if(!i)return l=!0,(s.length>0&&o.length===0||c.length>0&&!u&&!f)&&jn(e),Q.NotConsumed;if(i.correlationId!==n)return Q.NotConsumed;let a=`eventData`in i&&i.eventData&&`token`in i.eventData?i.eventData.token:void 0;if(typeof a==`string`&&a!==r)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: hook event ${i.eventType} for ${n} belongs to token "${a}", but the current hook consumer expects "${r}"`,{eventId:i.eventId}))}),Q.Finished;if(i.eventType===`hook_created`){let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.hasCreatedEvent=!0,t.tokenRetentionUntil=i.eventData.tokenRetentionUntil),u=!0;let r=c.slice();return c.length=0,_(+i.createdAt,()=>{for(let e of r)e.resolve(null)}),Q.Consumed}if(i.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=i,a=t.experimental_force===!0&&r.eventData.forceRefusedReason===void 0,o=a?new Y(`createHook({ experimental_force: true }) for token "${r.eventData.token}" was answered with a hook_conflict: the configured World does not support force-claiming hook tokens${r.eventData.conflictingRunId?` (run "${r.eventData.conflictingRunId}" holds it)`:``}.`):new jt(r.eventData.token,r.eventData.conflictingRunId);f=!0,p=o,h=a?null:ws(e,r.eventData.conflictingRunId);let l=s.slice();s.length=0;let u=c.slice();return c.length=0,_(+i.createdAt,()=>{for(let e of l)e.reject(o);for(let e of u)h?e.resolve(h):e.reject(o)}),Q.Consumed}if(i.eventType===`hook_received`){let t=i.resumeId;if(typeof t==`string`){if(y.has(t))return Q.Consumed;y.add(t)}let n=e.eventsConsumer.eventIndex,r=s.length>0,a=An(e,n,`hook`,{armed:r,deliveredAt:+i.createdAt});if(r){let t=Dn(e,n,`hook`),r=s.shift();if(r){e.pendingDeliveries++;let n;e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(i.eventId,`payload`,i.eventData.payload);n={ok:!0,value:await vn(i.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},t)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--}t.then(()=>{a.markDelivered(),n.ok?r.resolve(n.value):r.reject(n.error)})})}}else{let t,r=Wt();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(i.eventId,`payload`,i.eventData.payload);t={ok:!0,value:await vn(i.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){t={ok:!1,error:e}}finally{e.pendingDeliveries--,r.resolve()}}),o.push({claim:()=>(a.arm(),r.promise.then(()=>Dn(e,n,`hook`)).then(()=>{if(a.markDelivered(),t&&!t.ok)throw t.error;return t.value}))})}return Q.Consumed}if(i.eventType===`hook_disposed`){e.invocationsQueue.delete(n),d=!0;let t=i.eventData?.forceClaimedBy;if(t){let i=new zt(r,t.runId,t.hookId);m=i;let a=s.slice();s.length=0;let o=c.slice();c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)e.resolve(null)}),ze.debug(`Hook force-claimed by another run`,{correlationId:n,token:r,claimedByRunId:t.runId})}return Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: Unexpected event type for hook ${n} (token: ${r}) "${i.eventType}"`,{eventId:i.eventId}))}),Q.Finished});let b=!1;function x(){let t=Wt();if(f&&p)return v(()=>{t.reject(p)}),t.promise;if(o.length>0){let e=o.shift();if(e)return e.claim()}if(m){let n=m;return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(n)}),t.promise}return l&&jn(e),s.push(t),t.promise}function S(){let t=Wt();if(u)return v(()=>{t.resolve(null)}),t.promise;if(f)return v(()=>{h?t.resolve(h):t.reject(p)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),l&&jn(e),c.push(t),t.promise}function C(){if(b||(b=!0,d))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),s.length>0&&(s.length=0,jn(e)),ze.debug(`Hook disposed`,{correlationId:n,token:r})}let w={token:r,getConflict(){return S()},then(e,t){return x().then(e,t)},async*[Symbol.asyncIterator](){for(;!b;)yield await this},dispose:C,[Symbol.dispose]:C},T=e.globalThis.Symbol.dispose;return T&&T!==Symbol.dispose&&(w[T]=C),w}}function Es(e){return async function(t){let{promise:n,resolve:r}=Wt(),i=`wait_${e.generateUlid()}`,a=Ot(t),o={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,o),e.eventsConsumer.subscribe(t=>{if(!t)return jn(e),Q.NotConsumed;if(t.correlationId!==i)return Q.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),Q.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),Q.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=An(e,o,`wait`,{deliveredAt:+t.createdAt}),c=Dn(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Ht(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished}),n}}async function Ds(e,t,n,r,i,a){if(t.size!==0){for(let e of t.values())e.type===`hook`&&e.isSystem&&!e.disposed&&!e.abortRequested&&(e.disposed=!0);try{let e=await ea();await Pa({suspension:new Gt(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){W.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function Os(e,t){let n=je(t)?.moduleSpecifier||t,r=`globalThis.__private_workflows?.get(${JSON.stringify(t)})`;return G(`workflow.bundle.compile`,async t=>{let i=Ss(e,n),a=Ss(r,n);return t?.setAttributes({...j(i.cacheHit)}),{bundleScript:i.script,workflowLookupScript:a.script}})}function ks(e){return js(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await Ns(e);return t?.setAttributes({...x(n.argumentCount)}),Ms(await r,t)})}function As(e,t){return js(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...x(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:Ms(r,n)})}function js(e,t,n,r){return G(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...Je(t.workflowName),...Re(t.runId),...xt(t.status),...ae(n.length),...Ae(e)}),r(i)))}function Ms(e,t){return e.type===`completed`?t?.setAttributes({...Ke(e.resultType)}):t&&(U(e.suspension,t),e.parked&&t.setAttributes({...st(e.parked.count),...Se(e.parked.eventId),...Qe(e.parked.eventType)})),e}async function Ns(e){let t=await pt(`workflow.vm.create_context`);return Ps(e,t.end).catch(e=>{throw t.fail(e),e})}async function Ps({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,compiledWorkflowScripts:a,runReadyBarrier:o,worldCapabilities:s},c){let u=t.startedAt;if(!u)throw new K(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let d=fa(t.runId)??+t.createdAt,f=!!process.env.VERCEL_URL,p=Jt(f?`https://${process.env.VERCEL_URL}`:`http://localhost:${await ma()??3e3}`),{context:m,globalThis:h,updateTimestamp:g}=ys({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:d}),_=Wt(),v={type:`running`,interruption:_},y=e=>{switch(v.type){case`running`:{let{interruption:t}=v;v=Gt.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},k.suspensionGeneration++,t.reject(e);return}case`suspended`:v={type:`replay`};return;case`replay`:case`completed`:return}},b=l(()=>h.Math.random()),x=0,S=()=>(x+=1,b(d)),C=Ko(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*h.Math.random())),w={current:Promise.resolve()},T={current:()=>!0},E=d,D=e=>{e>E&&(E=e,g(e))},O=new on(n,{onUnconsumedEvent:e=>{y(new Ht(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}. ${Xo(e,k.invocationsQueue,O)}`,{eventId:e.eventId}))},onDuplicateEvent:(e,n)=>{let r={workflowRunId:t.runId,eventId:e.eventId,eventType:e.eventType,firstEventType:n,correlationId:e.correlationId};if(n!==e.eventType){W.debug(`Ignoring inert event that decides an already-decided outcome differently`,r);return}W.debug(`Ignoring inert event that repeats a class already in the event log`,r)},getPromiseQueue:()=>w.current,isDeliveryIdle:()=>T.current()}),k={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:h,onWorkflowError:y,eventsConsumer:O,generateUlid:S,generateNanoid:C,get mintCount(){return x},invocationsQueue:new Map,get promiseQueue(){return w.current},set promiseQueue(e){w.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,advanceClock:D,replayPayloadCache:i};T.current=()=>kn(k);let A=!1;k.eventsConsumer.subscribe(e=>e?e.eventType===`run_created`?Q.Consumed:e.eventType===`run_started`?A?Q.NotConsumed:(A=!0,Q.Consumed):e.eventType===`attr_set`&&e.eventData.writer.type===`step`?Q.Consumed:Q.NotConsumed:Q.NotConsumed);let j=Zo(k),M=Ts(k),N=Es(k),P=Cs(k);h[gn]=j,h[xn]=P,h[hn]=M,h[_n]=N,h[wn]=e=>sn(t.runId,e);let ee={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new h.Date(+u),url:p,features:{encryption:!!r}};h[or]=ee,h[Sn]=S,h.fetch=()=>{throw new h.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Rt.FETCH_IN_WORKFLOW_FUNCTION}`)};let F=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;h.setTimeout=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setInterval=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearTimeout=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearInterval=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setImmediate=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearImmediate=()=>{throw new K(F,{slug:Rt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.AbortController=En(k);let I=rn();h.AbortSignal={abort:I.abort,any:I.any,timeout:I.timeout};class L{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof h.URL){let t=String(e);try{new h.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new h.Headers(t.headers):(typeof e==`string`||e instanceof h.URL)&&(this.headers=new h.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);this.body=n==null?null:Object.create(h.ReadableStream.prototype,{[dn]:{value:n,writable:!1}})}clone(){Z()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}h.Request=L,Object.defineProperties(L.prototype,{arrayBuffer:{value:j(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:j(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:j(`__builtin_response_text`),writable:!0,configurable:!0}});class R{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new h.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);this.body=e==null?null:Object.create(h.ReadableStream.prototype,{[dn]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new h.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new R(n,{...t,headers:r})}static error(){Z()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new h.Headers;n.set(`Location`,String(e));let r=Object.create(R.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}h.Response=R,Object.defineProperties(R.prototype,{arrayBuffer:{value:j(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:j(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:j(`__builtin_response_text`),writable:!0,configurable:!0}});class z{constructor(){Z()}get locked(){return!1}cancel(){Z()}getReader(){Z()}pipeThrough(){Z()}pipeTo(){Z()}tee(){Z()}values(){Z()}static from(){Z()}[Symbol.asyncIterator](){Z()}}h.ReadableStream=z;class te{constructor(){Z()}get locked(){return!1}abort(){Z()}close(){Z()}getWriter(){Z()}}h.WritableStream=te;class ne{readable;writable;constructor(){Z()}}h.TransformStream=ne,h.console=globalThis.console;let re=Symbol.for(`@vercel/request-context`);h[re]=globalThis[re],c();let{bundleScript:ie,workflowLookupScript:B}=a??await Os(e,t.workflowName),ae=await G(`workflow.bundle.evaluate`,async()=>(ie.runInContext(m),B.runInContext(m)));if(typeof ae!=`function`)throw new At(t.workflowName);let oe=[];k.promiseQueue=k.promiseQueue.then(async()=>{oe=await G(`workflow.input.hydrate`,async()=>{let e=await i.prepareWorkflowInput(t);return en(t.input,t.runId,r,h,{},e)})}),await k.promiseQueue;let se=async e=>{throw Gt.is(e)||Ht.is(e)?(v.type===`running`&&(v={type:`replay`}),e):(v={type:`completed`},await Ds(t.runId,k.invocationsQueue,h,t,`failed`,o),e)},ce=async(e,n)=>{let i;try{i=await Promise.race([e,n.promise])}catch(e){return v.type===`suspended`&&e===v.suspension?{type:`suspended`,suspension:v.suspension,session:fe,parked:O.parkedSummary}:se(e)}v={type:`completed`};let a=O.strandedEvent;if(a)return se(new Ht(`Replay finished without consuming event: eventType=${a.eventType}, correlationId=${a.correlationId}, eventId=${a.eventId}. ${Xo(a,k.invocationsQueue,O)}`,{eventId:a.eventId}));try{let e=await Cn(i,t.runId,r,h,!1,(t.specVersion??0)>=5);return await Ds(t.runId,k.invocationsQueue,h,t,`completed`,o),{type:`completed`,output:e,resultType:typeof i}}catch(e){return se(e)}},le=await Ee(),ue=await pt(`workflow.replay.execute`),de=le.run(async()=>ae(...oe)),fe={workflowRun:t,argumentCount:oe.length,async resume(e){switch(v.type){case`suspended`:{let t=O.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return v={type:`replay`},{type:`replay`};let n=Wt();return v={type:`running`,interruption:n},k.suspensionGeneration++,le.refresh(),O.append(e.slice(t.length)),ce(de,n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new K(`Cannot resume ${v.type} workflow "${t.runId}"`)}}},V=ce(de,_);return V.then(ue.end,ue.fail),{session:fe,execution:V}}function Fs(e){let t=ai();return t===void 0?e:e===void 0?t:Math.min(e,t)}function Is({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.environment;if(!i)return!1;let a=e.getEnvironment?.();return!a||a===i?!1:(r.error(`Refusing to run this workflow: it was created in the "${i}" environment but this deployment runs in "${a}". Executing it here would create a second copy of the same run id in both environments — one pending forever, one running — so the queue message is being discarded without executing and without retrying. The client that called start() wrote the run to its own environment but addressed the queue message to a deployment in another one. Check that the environment that client authenticates as (WORKFLOW_VERCEL_ENV for CLI and CI clients, or the OIDC token's environment inside a deployment) matches the environment of the deployment it targets. The run it created is still pending in "${i}" and will not run.`,{workflowRunId:n,creatorEnvironment:i,currentEnvironment:a,pinnedDeploymentId:t?.deploymentId}),!0)}async function Ls({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}a&&a!==i&&r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function Rs(e){return K.is(e)?q.RUNTIME_ERROR:Sr(e)?q.WORLD_CONTRACT_ERROR:null}function zs(e){return!It.is(e)||e.status!==void 0&&e.status!==404?!1:/step/i.test(e.message)&&/not found/i.test(e.message)}async function Bs({world:e,workflowRun:t,runId:n,workflowName:r,requestId:i,err:a,errorCode:o,logMessage:s}){W.error(s,{workflowRunId:n,errorCode:o,error:a instanceof Error?a.message:String(a)});let c,l;try{c=await Wn(e,t??n)(),l=await fn(a,n,c,globalThis,(t?.specVersion??0)>=5),await e.events.create(n,{eventType:`run_failed`,specVersion:8,eventData:{error:l,errorCode:o}},{requestId:i})}catch(e){if(X.is(e)||J.is(e))return;if(Sr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:q.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}Li(n,r,l,c,o)}function Vs(e,t){return e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`))}function Hs(e,t){let n=Vs(e,t);return n?(W.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function Us(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function Ws({suspension:e,serializationBlockerCount:t,hookContinuation:n=!1,invocationContinuation:r=!1}){return li()?t>0?{retain:!1,reason:`serialization_executed_workflow_code`}:n?{retain:!0}:!r&&e.stepCount===0&&e.attributeCount===0?{retain:!1,reason:`no_replay_driver`}:{retain:!0}:{retain:!1,reason:`disabled`}}function Gs(e,t){return{serializationBlockerCount:t,serializationBlockers:e.map(({source:e,correlationId:t,kind:n,detail:r})=>({source:e,correlationId:t,kind:n,detail:r&&r.length>160?`${r.slice(0,160)}…`:r})),serializationBlockersTruncated:t>e.length}}function Ks(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}async function qs(e,t){let n=process.env.WORKFLOW_V2_TIMEOUT_MS;if(n!==void 0&&n!==``){let e=Number(n);if(Number.isFinite(e)&&e>0)return e}let r=await e.getRuntimeDeadline?.();if(r!==void 0){let e=r.getTime();if(!Number.isNaN(e)){let n=Math.floor(e-t);if(n>=(0,Vr.default)(`25m`))return(0,Vr.default)(`10m`);if(n>=(0,Vr.default)(`10m`))return(0,Vr.default)(`5m`)}}return(0,Vr.default)(`2m`)}function Js(e,t){qt(t?.basePath);let n=s(t?.namespace),l=a(`workflow`,n),u=t=>t.createQueueHandler(l,ur(t)(async(a,s,u)=>{let d=Date.now(),f=Rn(a);if(f){await Kn(f,t.specVersion);return}let{runId:p,traceCarrier:m,requestedAt:_,stepId:v,stepName:y,replayDivergence:x,preconditionReinvocations:S,deploymentMismatchRetryCount:w,runInput:E,hookInput:D,stepInput:O,runContext:k,hookResumeTiming:A,waitContinuation:j}=o.parse(a),M=ca(A,v===void 0?`inline`:`dispatched`);M&&v===void 0&&(M.consumerStartedAtMs=d),M&&!Number.isFinite(M.consumerStartedAtMs)&&(M=void 0);let N=$e(m)?m:void 0,{requestId:P}=s,F=s.queueName.slice(l.length),I=W.forRun(p,F),L=Jr();if(s.attempt>L){let e=Wr(void 0,q.MAX_DELIVERIES_EXCEEDED);I.error(`Workflow handler exceeded max deliveries (${s.attempt}/${L})`,{attempt:s.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});let t,n;try{let e=await ea(),r=Wn(e,p),i=new Y(`Workflow exceeded maximum queue deliveries (${s.attempt}/${L})`);t=await r(),n=await fn(i,p,t),await e.events.create(p,{eventType:`run_failed`,specVersion:8,eventData:{error:n,errorCode:q.MAX_DELIVERIES_EXCEEDED}},{requestId:P})}catch(e){if(X.is(e)||J.is(e))return;if(Tr(e))throw I.warn(`Transient error marking run as failed after max deliveries, retrying via queue redelivery`,{attempt:s.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e)}),e;I.error(`Failed to mark run as failed after ${s.attempt} delivery attempts. A persistent error is preventing the run from being terminated. The run will remain in its current state until manually resolved. This is most likely due to a persistent outage of the workflow backend or a bug in the workflow runtime and should be reported to the Workflow team.`,{attempt:s.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0});return}Li(p,F,n,t,q.MAX_DELIVERIES_EXCEEDED);return}let R=Ne(),z=()=>dt(R,N),te=await ot(R,N),ne=new ra,re=R===`continuous`?N:void 0,ie=await Oe(`CONSUMER`);return await Ce(re,async()=>await vt({workflowRunId:p,workflowName:F},async()=>{let t=await G(`workflow.route.get_world`,async()=>ea());if(!Is({world:t,runInput:E,runId:p,runLogger:I}))return await Ls({world:t,runInput:E,runId:p,runLogger:I}),G(`workflow.execute ${Ye(F)}`,{kind:ie,links:te},async a=>{a?.setAttributes({...Je(F),...it(`execute_v2`),...pe(`vercel-queue`),...oe(s.queueName),...Ct(s.messageId),...b(`process`),...Xn({requestedAt:_}),...Re(p),...gt(!!N),...C(R)});let o=Date.now(),l=await qs(t,o),d=o+l+pi(),f=!1,m=0,L=new Set,te=x?new oa(x.count):oa.inert(),re,ie,B=await Ze(t=>{if(t&&!vr(t))return ie!==t.workflowName&&(ie=t.workflowName,re=Os(e,t.workflowName),re.catch(()=>{})),re}),se=Kt(()=>{let e=tr(t,p);return e.catch(()=>{}),e}),ce,le=e=>{if(e&&!vr(e))return ce||=new Kr(se.value),ce},fe=e=>{e.eventType===`run_created`&&(le(e.eventData),B(e.eventData)),ce?.prepareEvent(e)},V=async(e,n)=>{let r=ve(e,n),i={...ge(),resolveData:Zn,...n},a=await te.withEventCreate(r===void 0?i:{...i,sinceCursor:r},n=>t.events.create(p,e,n));return r!==void 0&&be(r,a),a},he=(e,t)=>G(`workflow.replay.load`,async n=>{let r=0;n?.setAttributes({...Re(p),...De(e)});try{let e=await t(e=>{r++,fe(e)});return r=e.events?.length??r,e}finally{n?.setAttributes(ae(r))}}),ge=()=>H.type===`loadAll`?{}:Ln(H.events),ve=(e,t)=>{if(!(Ae||H.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||h(e.eventType)))return H.cursor??void 0},be=(e,t)=>{H.type===`ready`&&H.cursor===e&&t.events!==void 0&&t.hasMore!==!0&&Gn(H,{events:t.events,cursor:t.cursor})},H={type:`loadAll`},U,Se,Ce=-1,Te,Ee,Oe=0,ke,Ae=ci()&&E!==void 0&&s.attempt===1&&v===void 0&&!x;a?.setAttributes(de(Ae));let Me,Ne=async()=>{if(Me)try{await Me}catch{}},Pe=async e=>{let n=Rs(e);return n?(await Bs({world:t,workflowRun:U,runId:p,workflowName:F,requestId:P,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`}),!0):!1},Fe=new Set,Ie=e=>{Fe.size>0&&W.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:p,ackPath:e,stepIds:[...Fe]})},Le=async()=>({runId:p,traceCarrier:await z(),requestedAt:new Date}),ze=async(e,r)=>{if(Ie(`reinvoke`),!Ae)return{timeoutSeconds:e};await nr(t,Bn(F,n),{...await Le(),...r},e>0?{delaySeconds:e}:void 0)},Ve=0,Ue=null,Ge=e=>{let t=Ue;if(!t)return;Ue=null;let n=new Set(e.map(e=>e.eventId)),r=Us(n,t.ids),i=Us(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;W.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:p,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:m})},Ke=(e,t,{allowDelta:n=!0}={})=>{if(Ve>=mi())return!1;Ve++,Qe=null;let r=n&&Ve===1?$n(t,p):null,i=r!==null&&H.type!==`loadAll`;return Ue=H.type===`loadAll`?null:{ids:new Set(H.events.map(e=>e.eventId)),restart:Ve,reason:e,source:i?`inline-delta`:`full-reload`},r&&H.type!==`loadAll`?(Gn(H,r),H={...H,type:`ready`}):(H={type:`loadAll`},ce?.resetScan()),W.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:p,reason:e,loopIteration:m,preconditionRestarts:Ve,source:i?`inline-delta`:`full-reload`}),a?.setAttributes({"workflow.precondition_restarts":Ve}),!0},qe=async(e,t)=>{let n=(S??0)+1,r=hi();return n>r?{reinvoked:!1,error:new K(`Event creation was rejected as stale after ${r} re-invocations of ${mi()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(W.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:p,reason:e,loopIteration:m,preconditionReinvocations:n,maxReinvocations:r}),a?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await ze(gi(),{preconditionReinvocations:n})})},Ye=async(e,r,i)=>{let{outcome:o,spanAttributes:s}=await Bi({world:t,run:e,workflowName:F,requestId:P,retryCount:w,beforeStop:i,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:i,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await nr(t,Bn(F,n),{...await r(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:i,delaySeconds:o})}});return s&&a?.setAttributes(s),o};if(v&&y)try{let e=async()=>{if(!O)return`ok`;try{await t.events.create(p,{eventType:`step_created`,specVersion:8,correlationId:v,eventData:{stepName:y,workflowName:F,input:O.input}},{requestId:P,viaStepDispatch:!0}),a?.setAttributes(T(!0)),W.warn(`Materialized step_created from the queue message — the producer’s direct write did not land`,{workflowRunId:p,stepId:v,stepName:y})}catch(e){if(X.is(e))return`ok`;if(J.is(e))return`gone`;throw e}return`ok`},r,o;if(a?.setAttributes(mt(k?`run_context`:`runs_get`)),k){if((O&&s.attempt>1?await e():`ok`)===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p});return}o=k}else{let[n,i]=await Promise.all([t.runs.get(p,{resolveData:`none`}),O&&s.attempt>1?e():`ok`]);if(i===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p});return}if(n.status!==`running`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p,status:n.status});return}r=n,o={deploymentId:n.deploymentId,specVersion:n.specVersion??0,...n.startedAt?{startedAt:+n.startedAt}:{},rootRunId:In(n.attributes,p)}}if(await Ye({runId:p,deploymentId:o.deploymentId,specVersion:o.specVersion},async()=>({...await Le(),stepId:v,stepName:y,...O?{stepInput:O}:{},...k?{runContext:k}:{},...A?{hookResumeTiming:A}:{}}))!==`continue`)return;let l=o.startedAt??Date.now(),u=s.attempt,d=On(y)?.maxRetries??3;s.attempt>d+1&&(u=yi((await Jn(p)).events,v,{type:`totalAttempts`})+1);let f=M;M=void 0,ne.pause();let m;try{let n=()=>Ta({world:t,workflowRunId:p,workflowDeploymentId:o.deploymentId,workflowName:F,workflowStartedAt:l,rootRunId:o.rootRunId??p,requestId:P,stepId:v,stepName:y,runSpecVersion:o.specVersion,authoritativeAttempt:u,...f?{resumeTracking:f}:{}});m=await Ma(p,v,async()=>{try{return await n()}catch(t){if(!O||!zs(t))throw t;return await e()===`gone`?{type:`gone`}:await n()}})}finally{ne.resume()}if(m.type===`retry`||m.type===`throttled`)return{timeoutSeconds:m.timeoutSeconds};if(t.capabilities?.invoke&&m.type!==`gone`){await nr(t,Bn(F,n),{runId:p,traceCarrier:await z(),requestedAt:new Date});return}if(m.type===`completed`&&m.hasPendingOps){await nr(t,Bn(F,n),{runId:p,traceCarrier:await z(),requestedAt:new Date});return}if(m.type===`completed`||m.type===`failed`||m.type===`skipped`){let e=await Jn(p);H=Ks(e);let n=new Set,a=new Set;for(let t of e.events)t.eventType===`step_created`?n.add(t.correlationId):(t.eventType===`step_completed`||t.eventType===`step_failed`)&&a.add(t.correlationId);let o=new Set;for(let e of n)a.has(e)||o.add(e);if(o.size>0){if(ui()&&ka(e.events,o,s.messageId))W.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:p});else{W.debug(`Background step done but other steps pending, returning`,{workflowRunId:p});return}}W.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:p});let u=r??await t.runs.get(p,{resolveData:`none`});if(i(u.status)){W.debug(`Run already finished, skipping inline replay after background step`,{workflowRunId:p,status:u.status});return}B(u);let d=e.events.find(e=>e.eventType===`run_created`),f;if(d)f=d.eventData.input;else{if(!c(u.specVersion))throw new K(`Workflow run "${p}" has no "run_created" event`);let e=await t.runs.get(p,{resolveData:`all`});if(e.status!==`running`)return;f=e.input}U={...u,input:f,status:`running`,output:void 0,error:void 0,completedAt:void 0},Ce=l}else return}catch(e){let n=Rs(e);if(!n)throw e;await Bs({world:t,workflowRun:U,runId:p,workflowName:F,requestId:P,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!U&&D?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=D.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await Ye(await t.runs.get(p,{resolveData:`none`}),async()=>({...await Le(),hookInput:D,...A?{hookResumeTiming:A}:{}}),Ne)!==`continue`)return}let Xe=!1;if(!U&&D&&D.resumeId!==void 0&&D.payloadDigest!==void 0){let e=D,t;try{t=new Date(g(e.resumeId))}catch{t=void 0}try{a?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await he(`hook_preload`,n=>V({eventType:`hook_received`,specVersion:8,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:P,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0,replayEventObserver:n}));if(Xe=!0,n.run!==void 0&&n.run.startedAt!==void 0&&n.event!==void 0&&n.events!==void 0&&n.events.length>0&&n.cursor!=null&&n.hasMore===!1&&typeof n.maxEvents==`number`&&n.events.some(e=>e.eventType===`run_created`)&&n.events.some(e=>e.eventType===`run_started`)&&n.events.some(t=>t.eventType===`hook_received`&&t.resumeId===e.resumeId)&&n.run?.startedAt&&n.events){let e=n.events.find(e=>e.runId===p&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){a?.setAttributes({...xt(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...He(`hook_received_stream`)}),W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:p,eventType:e.eventType});return}U=n.run,B(U),Se=Fs(n.maxEvents),Ee=Date.now(),M&&(M.setupSource=`hook_preload`),H={type:`ready`,events:n.events,cursor:n.cursor},Ce=+n.run.startedAt,a?.setAttributes({...xt(n.run.status),...we(Ce),...He(`hook_received_stream`)})}else a?.setAttributes(He(`hook_received_fallback`))}catch(e){if(Bt.is(e)||J.is(e)){W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:p,message:e.message});return}if(await Pe(e))return;throw e}}if(!U){let e={eventType:`run_started`,specVersion:E?.specVersion??8,...E?{eventData:{input:E.input,deploymentId:E.deploymentId,workflowName:E.workflowName,executionContext:E.executionContext,attributes:E.attributes,allowReservedAttributes:E.allowReservedAttributes}}:{}};if(Ae&&E){a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=V(e,{requestId:P,skipPreload:!0});Me=t;try{B(E),le(E)}catch(e){if(await Ne(),!await Pe(e))throw e;return}t.then(e=>{let t=Fs(e.maxEvents);t!==void 0&&(Se=t)}).catch(()=>{}),H={type:`ready`,events:[],cursor:null};let n=new Date;U={runId:p,status:`running`,deploymentId:E.deploymentId,workflowName:E.workflowName,specVersion:E.specVersion,executionContext:E.executionContext,input:E.input,attributes:E.attributes??{},startedAt:n,createdAt:n,updatedAt:n},Ce=+n,Ee=+n,a?.setAttributes({...xt(`running`),...we(Ce)})}else try{a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=he(`run_started`,t=>V(e,{requestId:P,replayEventObserver:t}));try{B(E),le(E)}catch(e){try{await t}catch{}throw e}let n=await t;if(U=n.run,Se=Fs(n.maxEvents),Ee=Date.now(),M&&(M.setupSource=`run_started`),n.events?.length){let e={events:[...n.events],cursor:n.cursor??null};H=n.hasMore?Ks(e):{...e,type:`ready`}}if(Ce=+n.run.startedAt,a?.setAttributes({...xt(n.run.status),...we(Ce)}),n.run.status!==`running`){W.info(`Workflow already completed or failed, skipping`,{workflowRunId:p,status:n.run.status});return}B(U)}catch(e){if(X.is(e)||J.is(e)){W.info(`Run already finished during setup, skipping`,{workflowRunId:p,message:e.message});return}if(!await Pe(e))throw e;return}}if(Pr(U,`Workflow run must be loaded before replay`),M&&M.setupSource===void 0&&(M.setupSource=`event_load`),await Ye(U,async()=>({...await Le(),...D?{hookInput:D}:{},...A?{hookResumeTiming:A}:{}}),Ne)!==`continue`)return;if(D&&!Xe&&!(D.resumeId!==void 0&&H.type!==`loadAll`&&H.events.some(e=>e.eventType===`hook_received`&&e.resumeId===D.resumeId))){let e;try{e=D.resumeId===void 0?void 0:new Date(g(D.resumeId))}catch{e=void 0}let n;try{let r=await t.events.create(p,{eventType:`hook_received`,specVersion:8,correlationId:D.hookId,eventData:{token:D.token,payload:D.payload}},{requestId:P,occurredAt:e,resumeId:D.resumeId,resumePayloadDigest:D.payloadDigest});a?.setAttributes(We(!0));let i=r.event;n=i?{...i,eventData:{token:D.token,payload:D.payload}}:void 0}catch(e){if(Bt.is(e)||J.is(e))return;throw e}H.type!==`loadAll`&&n?(Vn(H.events,n),fe(n)):H={type:`loadAll`}}let Qe=null,$e=new Set,et=new Set;for(;;){let i=u?.revision??0;if(m++,ne.isExhausted()){await aa({runId:p,workflowName:F,requestId:P,attempt:s.attempt,limitMs:ne.configuredLimitMs,slotSnapshot:ge()});return}if(Date.now()-o>=l){W.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:p,loopIteration:m,elapsedMs:Date.now()-o}),await nr(t,Bn(F,n),{runId:p,traceCarrier:await z(),requestedAt:new Date});return}let c=0,h=!1;try{if(vr(U)){W.debug(`Using QuickJS VM engine`,{workflowRunId:p,loopIteration:m}),await Ne(),H.type===`loadAfter`&&(Gn(H,await Jn(p,H.cursor)),H={...H,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),r=await t({workflowCode:e,workflowName:F,workflowRun:U,preloadedEvents:H.type===`ready`?H.events:void 0,preloadedEventsComplete:H.type===`ready`,preloadedCursor:H.type===`ready`?H.cursor:void 0,runInput:E,parentSpan:a,maxEventsLimit:Se,namespace:n,nextTraceCarrier:z,waitContinuation:j,deliveryAttempt:s.attempt,ownerMessageId:s.messageId,requestId:P});return r?.timeoutSeconds===void 0?void 0:await ze(r.timeoutSeconds)}if(H.type!==`ready`){f=!1;let e=await Jn(p,H.type===`loadAfter`?H.cursor:void 0);H.type===`loadAfter`?(Gn(H,e),H={...H,type:`ready`}):H={...e,type:`ready`}}if(Pr(H.type===`ready`),Ge(H.events),Hs(H.events,p))return;let i=Date.now(),o=new Set(H.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),l=H.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!o.has(e.correlationId)&&i>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:8,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of l)try{let t=await V(e,{requestId:P});Yn(H.events,t)}catch(t){if(X.is(t)){W.info(`Wait already completed, skipping`,{workflowRunId:p,correlationId:e.correlationId});continue}throw t}Pr(H.type===`ready`);let u=new Set(H.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),d=l.filter(e=>!u.has(e.correlationId));if(d.length>0){if(f=!1,H.cursor){let e=await Jn(p,H.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));d.every(e=>t.has(e.correlationId))?Gn(H,e):H={...await Jn(p),type:`ready`}}else H={...await Jn(p),type:`ready`}}if(Hn()){let e=await er(p,{events:H.events,cursor:H.cursor});if(H={...e.log,type:`ready`},e.gap!==void 0)throw new Vt(`Event log for run ${p} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(Hs(H.events,p))return;if(Se!==void 0){let e=H.events.reduce((e,t)=>r(t)?e:e+1,0);if(e>=Se)throw new Nt(e,Se)}Te??=H.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`||r(e)),W.debug(`Starting workflow execution`,{workflowRunId:p,loopIteration:m,eventCount:H.events.length,executionMode:Qe?`retained`:`replay`}),c=Date.now(),M&&(M.replayStartedAtMs??=c);let g=le(U);Pr(g,`Node workflow replay requires payload preparation`);let _=g.prewarm(U,H.events),v=Qe?await As(Qe,H.events):{type:`replay`};if(h=Qe!==null&&v.type!==`replay`,v.type===`replay`){Qe=null;let n=B(U);Pr(n,`Node workflow replay requires compiled scripts`),v=await ks({workflowCode:e,workflowRun:U,events:H.events,encryptionKey:await se.value,replayPayloadCache:g,compiledWorkflowScripts:await n,runReadyBarrier:Me,worldCapabilities:t.capabilities})}if(await _,v.type===`suspended`)throw Qe=v.session,v.suspension;let y=v.output;W.debug(`Workflow execution completed`,{workflowRunId:p,loopIteration:m,replayMs:Date.now()-c,executionMode:Qe?`retained`:`replay`}),te.activate();try{await Ne(),await V({eventType:`run_completed`,specVersion:8,eventData:{output:y}},{requestId:P})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}throw e}Fi(p,F),a?.setAttributes({...xt(`completed`)});return}catch(r){if(Gt.is(r)){te.activate();let e=Date.now(),g=e-c;M&&r.stepCount>0&&(M.nextStepEncounteredAtMs??=e),W.debug(`Workflow suspended`,{workflowRunId:p,loopIteration:m,replayMs:g,steps:r.stepCount,hooks:r.hookCount,waits:r.waitCount});let _=Zt(r.stepCount,r.hookCount,r.waitCount);_&&W.debug(_);let v=Date.now();Pr(H.type===`ready`,`Workflow suspended before its event log was loaded`);let y;try{y=await Pa({suspension:r,world:t,run:U,span:a,requestId:P,eventLog:H,runReadyBarrier:Me,replayRecoveryReporter:te,forceClaimVictimWakes:L,stepDispatch:{queueName:Bn(F,n),getTraceCarrier:z},ownerMessageId:s.messageId,allowDeferredBatchWork:!0})}catch(e){if(Lt.is(e)){if(Ke(`suspension-create`,e))continue;let t=await qe(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!Y.is(e))throw e;let t=yr(e);W.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:p,errorCode:t,errorName:e.name,errorMessage:e.message});let n,r;try{await Ne(),n=await se.value,r=await fn(e,p,n,globalThis,(U?.specVersion??0)>=5),await V({eventType:`run_failed`,specVersion:8,eventData:{error:r,errorCode:t}},{requestId:P})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}throw e}Li(p,F,r,n,t),a?.setAttributes({...xt(`failed`),...ye(t),...xe(e.name),..._e(e.message),...ue(e.name)});return}let b=Kt(()=>(Pr(H.type===`ready`),Vi(H.events))),x=Qe?Ws({suspension:r,serializationBlockerCount:y.serializationBlockerCount,hookContinuation:y.hasAwaitedHookCreation||y.hasHookConflict,invocationContinuation:u!==void 0}):void 0;x?.retain===!1&&(Qe=null),y.hasAttributeEvents&&ke===void 0&&(ke=Oe),Oe+=y.hookCreationMs,W.debug(`Suspension handled`,{workflowRunId:p,suspensionMs:Date.now()-v,pendingSteps:y.pendingSteps.length,timeoutSeconds:y.waitTimeout?.seconds,hasHookConflict:y.hasHookConflict,hasAwaitedHookCreation:y.hasAwaitedHookCreation,hasAttributeEvents:y.hasAttributeEvents,...x?{workflowVmRetention:x.retain?`retained`:`replay`}:{},...x?.retain===!1?{workflowVmRetentionReason:x.reason}:{},...y.serializationBlockerCount>0?Gs(y.serializationBlockers,y.serializationBlockerCount):{}});let S=(e,t)=>{if(!Qe)return!1;let n=e.filter(e=>!$e.has(e));if(n.length===0)return!1;for(let e of n)$e.add(e);let r=y.eventLogCarriedForward&&!b.value.openWait;return r||(Pr(H.type===`ready`),H=Ks(H)),W.debug(`Continuing over a hook write in-process`,{workflowRunId:p,loopIteration:m,settles:t,hookIds:n,carriedForward:y.eventLogCarriedForward,readBeforeResume:!r}),a?.setAttributes({"workflow.hook_write_continuations":$e.size}),!0};if(y.hasHookConflict){if(await y.deferredBatchWork,S(y.hookConflictCorrelationIds,`hook_conflict`))continue;if([...y.inlineClaims.values()].some(e=>e.owned)){H=Ks(H);continue}return await ze(0)}if(y.hasAttributeEvents){H=Ks(H);continue}if(y.failedStepCorrelationIds.size>0){await y.deferredBatchWork,Qe=null,H=Ks(H);continue}let C=y.pendingSteps;if(f&&y.waitTimeout!==void 0&&C.length===0&&!y.hasAwaitedHookCreation&&b.value.openWait){W.debug(`Re-reading the event log before parking on a wait over an inline delta`,{workflowRunId:p,loopIteration:m,waitCorrelationId:y.waitTimeout.correlationId}),a?.setAttributes({"workflow.wait_park_reread":!0}),H=Ks(H);continue}let w=y.lazyInlineSteps,T=new Set(w.map(e=>e.correlationId)),E=await z(),D=[],O=ui(),k=Date.now(),A=[],N=0,I=0;for(let e of y.queuedStepCorrelationIds)et.add(e);let R=M!==void 0&&w.length===0&&!C.some(e=>!T.has(e.correlationId)&&O&&Ea(e)&&e.ownerMessageId===s.messageId);for(let e of C){if(T.has(e.correlationId)||y.queuedStepCorrelationIds.has(e.correlationId))continue;let r=O&&Ea(e);if(r&&e.ownerMessageId===s.messageId){A.push(e);continue}let i=r?Da(e,k):0;if(i>0){N++,W.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:p,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),D.push(nr(t,Bn(F,n),{runId:p,traceCarrier:E,requestedAt:new Date},{delaySeconds:i,idempotencyKey:Oa(e)}));continue}if(et.has(e.correlationId)&&e.sawRetrying!==!0){I++;continue}et.add(e.correlationId);let a=R?la(M):void 0;a&&(R=!1,M=void 0),D.push(nr(t,Bn(F,n),{runId:p,stepId:e.correlationId,stepName:e.stepName,traceCarrier:E,requestedAt:new Date,runContext:Mn(U),...a?{hookResumeTiming:a}:{}},{idempotencyKey:Pn(e.correlationId,e.stepName)}))}if(y.waitTimeout){let e=j?.correlationId===y.waitTimeout.correlationId?j.attempt+1:0;D.push(nr(t,Bn(F,n),{runId:p,traceCarrier:E,requestedAt:new Date,waitContinuation:{correlationId:y.waitTimeout.correlationId,attempt:e}},Ra(y.waitTimeout.seconds,y.waitTimeout.correlationId,Date.now(),e)))}let re=Promise.all(D);re.catch(()=>{});let ie=[...w.map(e=>{let t=y.inlineClaims.get(e.correlationId);return t?{correlationId:e.correlationId,stepName:e.stepName,preclaimedStart:t}:{correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput}}),...A.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((N>0||A.length>0||I>0)&&a?.setAttributes({...A.length>0?Be(A.length):{},...N>0?me(N):{},...I>0?ee(I):{}}),I>0&&W.debug(`Skipped re-publishing step messages this invocation already published on an earlier replay pass`,{workflowRunId:p,loopIteration:m,republishesSkipped:I}),A.length>0&&W.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:p,stepIds:A.map(e=>e.correlationId)}),ie.length===0){if(await Promise.all([re,y.deferredBatchWork]),y.hasAwaitedHookCreation){if(S(y.awaitedHookCorrelationIds,`hook_created`))continue;return await ze(0)}if(u&&Date.now()-o<l&&await u.waitForActivity(i)){H=Ks(H);continue}return}let B=b.value,ae=Ui(B,d)||y.waitTimeout!==void 0&&!(y.waitTimeout.resumeAtMs>d),oe=typeof H.cursor==`string`&&r.stepCount===1&&C.length===1&&w.length===1&&A.length===0&&!ae;oe&&(B.openWait||y.waitTimeout!==void 0)&&a?.setAttributes({"workflow.inline_delta_over_pending_wait":!0});let ce=B.openHook||r.hookCount>0||y.hasHookEvents,le=Ae&&!y.hasAttributeEvents&&!y.waitTimeout&&!y.hasHookEvents&&!y.hasAwaitedHookCreation&&!B.openHook&&!B.openWait,de=ga({events:H.events,invocationStartedClean:Te===!0,runCreatedAtMs:fa(p)??(Ae?void 0:+U.createdAt),runStartedReceivedAtMs:Ee,replayMs:g,preStepBlockingMs:Oe,preStepBlockingBeforeAttrMs:ke,suspensionHasWaits:r.waitCount>0||y.waitTimeout!==void 0,suspensionCreatedHooks:r.hookCount>0||y.hasHookEvents,turbo:Ae,retained:h}),fe=M;M=void 0,ne.pause();let pe,he=ie.map((e,n)=>{let r=()=>(Pr(H.type===`ready`),Ta({world:t,workflowRunId:p,workflowDeploymentId:U.deploymentId,workflowName:F,workflowStartedAt:Ce,requestId:P,rootRunId:In(U.attributes,p),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:U.specVersion,authoritativeAttempt:e.lazyStepInput!==void 0||e.preclaimedStart!==void 0?1:yi(H.events,e.correlationId,{type:`ownedBy`,messageId:s.messageId})+1,lazyStepInput:e.lazyStepInput,preclaimedStart:e.preclaimedStart,ownerMessageId:s.messageId,forceOptimisticStart:le,suppressOptimisticStart:ce,runReadyBarrier:Me,...n===0&&(e.lazyStepInput!==void 0||e.preclaimedStart!==void 0)&&de?{latencyTracking:de}:{},...fe?{resumeTracking:fe}:{},...oe&&H.cursor?{inlineDeltaSinceCursor:H.cursor}:{},replayRecoveryReporter:te}));Fe.add(e.correlationId);let i=e.lazyStepInput!==void 0||e.preclaimedStart!==void 0;return(e.preclaimedStart?.owned===!1?r():Ma(p,e.correlationId,r,i?`debug`:`warn`)).finally(()=>Fe.delete(e.correlationId))});for(let e of he)e.catch(()=>{});try{try{await Promise.all([re,y.deferredBatchWork])}catch(e){throw await Promise.allSettled(he),e}pe=await Promise.all(he)}catch(e){if(Lt.is(e)){if(Ke(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(he)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await qe(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{ne.resume()}let ge=[],ve=!1,be;for(let e=0;e<ie.length;e++){let t=pe[e],n=ie[e];t.type===`retry`?ge.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?be=Math.max(be??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(ve=!0)}if(be!==void 0)return await ze(be);if(ge.length>0){let e=await z();await Promise.all(ge.map(({step:r,delaySeconds:i})=>nr(t,Bn(F,n),{runId:p,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date,runContext:Mn(U)},{delaySeconds:i,idempotencyKey:Pn(r.correlationId,r.stepName)})))}if(ve){W.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:p,loopIteration:m}),await nr(t,Bn(F,n),{runId:p,traceCarrier:await z(),requestedAt:new Date});return}if(ge.length>0)return;if(ie.length===1){let e=pe[0];if(e.type===`completed`&&e.inlineDelta){Gn(H,e.inlineDelta),f=!e.inlineDelta.hasMore,H=e.inlineDelta.hasMore?Ks(H):{...H,type:`ready`};continue}}H=Ks(H)}else{let i=r;if(Lt.is(r)){if(Ke(`replay-write`,r))continue;let e=await qe(`replay-write`,r);if(e.reinvoked)return e.result;i=e.error}if(Tr(r))throw I.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:r instanceof Error?r.name:`UnknownError`,errorMessage:r instanceof Error?r.message:String(r),deliveryAttempt:s.attempt}),r;let o,l={};if(Ht.is(r)){let e=(x?.count??0)+1,a=fi(),c=[...x?.eventIds??(x?[x.eventId]:[]),r.eventId].slice(-(a+1));if(l={errorCode:q.REPLAY_DIVERGENCE,divergenceEventId:r.eventId,priorDivergenceEventId:x?.eventId,divergenceEventIds:c,divergenceCount:e,deliveryAttempt:s.attempt,maxRecoveryReplays:a,loopIteration:m,servedByRetainedSession:h,eventLogState:H.type,eventLogLength:H.type===`loadAll`?void 0:H.events.length,eventLogLastEventId:H.type===`loadAll`?void 0:H.events.at(-1)?.eventId,cursor:H.type===`ready`?H.cursor??void 0:H.type===`loadAfter`?H.cursor:void 0,hasHookInput:D!==void 0,hasWaitContinuation:j!==void 0,isRecoveryReplay:x!==void 0,setupSource:M?.setupSource},e<=a){I.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{...l,errorMessage:r.message}),await nr(t,Bn(F,n),{runId:p,traceCarrier:await z(),requestedAt:new Date,replayDivergence:{eventId:r.eventId,count:e,eventIds:c}});return}o=e,i=new Vt(`Workflow replay diverged ${e} times after ${a} recovery replays; latest divergent event was ${r.eventId}; divergent event ids: ${c.join(`, `)}. Last divergence: ${r.message}`,{cause:r})}else c>0&&te.activate();i instanceof Error&&a?.recordException?.(i);let u=await ji(i),d=u.name||bi(i),f=u.message,g=u.stack||Si(i);if(g){let t=je(F)?.moduleSpecifier||F;g=Go(g,t,e)}let _=yr(i);W.error(`Error while running workflow`,{...l,workflowRunId:p,errorCode:_,errorName:d,errorMessage:f,errorStack:g,errorCause:wi(i)||void 0}),Nr.isNativeError(i)&&g&&(i.stack=g);let v,y;try{await Ne(),v=await se.value,y=await fn(i,p,v,globalThis,(U?.specVersion??0)>=5),await V({eventType:`run_failed`,specVersion:8,eventData:{error:y,errorCode:_}},{requestId:P,...o===void 0?{}:{replayDivergenceCount:o}})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}if(Sr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:p,errorCode:q.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}Li(p,F,y,v,_),a?.setAttributes({...xt(`failed`),...ye(_),...xe(d),..._e(f),...ue(d)});return}}}})}))})),d,f=0,p=Date.now(),m=typeof t?.routeModuleBodyStartedAt==`number`?p-t.routeModuleBodyStartedAt:void 0;return Nn(async e=>{f+=1;let t=d!==void 0,n=await Oe(`SERVER`);return G(`workflow.route.flow`,{kind:n,attributes:{...qe(`flow`),...E(qr),...ke(t),...Pe(f),...ft(Date.now()-p),...m===void 0?{}:et(m),...ne(e.method),...M(`/.well-known/workflow/v1/flow`)}},async t=>{d||=await G(`workflow.route.init`,async()=>{let e=await G(`workflow.route.get_world_handlers`,async()=>ea());return u(e)});let n=await d(e);return n instanceof Response&&t?.setAttributes(k(n.status)),n})})}export{Or as Run,Gt as WorkflowSuspension,Er as cancelRun,br as cancelRuns,Qi as createWorld,Xi as createWorldFromModule,hr as getHookByToken,Cr as getRun,ea as getWorld,$i as getWorldHandlers,Qn as healthCheck,gr as listStreams,wr as readStream,Dr as recreateRunFromExisting,_r as reenqueueRun,dr as resumeHook,pr as resumeWebhook,ta as setWorld,kr as start,xr as wakeUpRun,Js as workflowEntrypoint};
|
|
3
|
+
`)}function Di(e){return typeof e==`object`&&e?e.cause:void 0}function Oi(e){let t=e.errors;return Array.isArray(t)?t.slice(0,4).map(Ti):[]}function ki(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function Ai(e){if(!ki(e)||Y.is(e))return e;let t=new Y(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function ji(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function Mi(e){if(ai.isNativeError(e))return{name:e.name,message:e.message,stack:e.stack??``};if(typeof e==`string`)return{name:`Error`,message:e,stack:``};try{return{name:`Error`,message:JSON.stringify(e),stack:``}}catch{return{name:`Error`,message:String(e),stack:``}}}async function Ni(e){if(ji(e))try{let t=await Ni(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await Ni(e);return{...t,message:`Promise rejection: ${t.message}`}}return Mi(e)}const Pi=Symbol.for(`@workflow/core//lifecycleHooks`);function Fi(){return Object.hasOwn(globalThis,Pi)||Object.defineProperty(globalThis,Pi,{value:[],writable:!1,enumerable:!1,configurable:!1}),globalThis[Pi]}function Ii(e,t,n,r,i){let a=(r,i)=>{try{W.error(`Workflow lifecycle ${n} ${r}`,{workflowRunId:e,workflowName:t,errorName:Si(i),errorMessage:Ci(i),errorStack:wi(i)})}catch{}};try{let e=Fi().slice().filter(e=>{try{return!!e[n]}catch(e){return a(`handler threw`,e),!1}});if(e.length===0)return;Nr(G(`workflow.lifecycle.${n}`,async()=>{let t=[];try{let n=await r(t);for(let t of e)try{await i(t,n)}catch(e){a(`handler threw`,e)}}finally{let e=0;for(;e<t.length;){let n=t.slice(e);e=t.length;let r=await Promise.allSettled(n);for(let e of r)e.status===`rejected`&&a(`stream operation failed`,e.reason)}}}),e=>a(`dispatch failed`,e))}catch(e){a(`dispatch failed`,e)}}function Li(e,t){Ii(e,t,`onRunCompleted`,async()=>({run:new ei(e),workflowName:t}),(e,t)=>e.onRunCompleted?.(t))}async function Ri(e,t,n,r){try{return await Qt(e,t,n,r,globalThis,void 0,{lazyStreams:!0,liveAbortSignals:!1})}catch{return Error(`Failed to hydrate workflow run error`)}}function zi(e,t,n,r,i){Ii(e,t,`onRunFailed`,async a=>({run:new ei(e),workflowName:t,error:new Ot(e,await Ri(n,e,r,a),{errorCode:i})}),(e,t)=>e.onRunFailed?.(t))}const Bi={outcome:`continue`};function Vi(e,t,n){return{outcome:e,spanAttributes:{...Te(t),...at(n),...R(e===`rerouted`)}}}async function Hi({world:e,run:t,workflowName:n,requestId:r,retryCount:i=0,reenqueue:a,isDeploymentUnavailableError:o,beforeStop:s}){if(e.capabilities?.deploymentAffinity!==!0)return Bi;let c=await e.getDeploymentId();if(t.deploymentId===c)return Bi;await s?.();let l=qn(),u={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:c,retryCount:i,maxRetries:l},d=async(i,a)=>{let o=new Dt(t.runId,t.deploymentId,c,{recoveryAttempts:i,cause:a}),s;try{s=await Sn(o,t.runId,void 0,void 0,(t.specVersion??0)>=5),await e.events.create(t.runId,{eventType:`run_failed`,specVersion:Mr(t.specVersion),eventData:{error:s,errorCode:q.DEPLOYMENT_MISMATCH}},{requestId:r})}catch(e){if(!X.is(e)&&!J.is(e))throw e;return Vi(`failed`,t.deploymentId,i)}return zi(t.runId,n,s,void 0,q.DEPLOYMENT_MISMATCH),Vi(`failed`,t.deploymentId,i)};if(a&&i<l){let e=i+1,n=Math.min(2**i,8);try{return await a({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),W.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...u,attempt:e,delaySeconds:n}),Vi(`rerouted`,t.deploymentId,e)}catch(t){if(!o?.(t))throw t;return W.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...u,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),d(0,t)}}return W.error(i>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,u),d(i)}function Ui(e){let t=new Set,n=new Map;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.set(r.correlationId,Wi(r.eventData?.resumeAt));break;case`wait_completed`:n.delete(r.correlationId)}let r;for(let e of n.values())(r===void 0||e<r)&&(r=e);return{openHook:t.size>0,openWait:n.size>0,earliestOpenWaitResumeAtMs:r}}function Wi(e){let t;if(e instanceof Date)t=e.getTime();else if(typeof e==`number`)t=e;else if(typeof e==`string`)t=new Date(e).getTime();else return-1/0;return Number.isFinite(t)?t:-1/0}function Gi(e,t){return e.earliestOpenWaitResumeAtMs!==void 0&&e.earliestOpenWaitResumeAtMs<=t}function Ki(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function qi(){try{return ri(si(process.cwd()+`/package.json`).href)}catch{return ri(import.meta.url)}}const Ji=Symbol.for(`@workflow/world//cache`),Yi=Symbol.for(`@workflow/world//stubbedCache`),Xi=Symbol.for(`@workflow/world//cachePromise`),Zi=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function Qi(e){if(typeof e.createWorld==`function`)return e.createWorld();if(typeof e.default==`function`)return e.default();if(e.default&&typeof e.default==`object`)return e.default;throw Error(`Invalid target world module: must export createWorld(), a default factory, or a default World instance.`)}function $i(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return si(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return si(process.cwd()+`/`+e).href;try{return si(qi().resolve(e)).href}catch{return e}}const ea=async()=>{let e=di();if(fi(e)){let e=[`WORKFLOW_VERCEL_PROJECT`,`WORKFLOW_VERCEL_TEAM`,`WORKFLOW_VERCEL_AUTH_TOKEN`,`WORKFLOW_VERCEL_ENV`].filter(e=>process.env[e]);return e.length>0&&process.env.VERCEL===`1`&&console.warn(`[workflow] Warning: ${e.join(`, `)} env var(s) are set but have no effect at runtime. These are only used by the Workflow CLI. Remove them from your Vercel project environment variables.`),Ki()}if(e===`local`)return Ki({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=qi()(e)}catch{t=await import($i(e))}if(typeof t==`function`)return t();try{return await Qi(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},ta=async()=>{if($[Yi])return Ze($[Yi]),$[Yi];$[Zi]||($[Zi]=ea().catch(e=>{throw $[Zi]=void 0,e}));let e=await $[Zi];return Ze(e),$[Yi]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},na=async()=>$[Ji]?(Ze($[Ji]),$[Ji]):($[Xi]||($[Xi]=ea().catch(e=>{throw $[Xi]=void 0,e})),$[Ji]=await $[Xi],Ze($[Ji]),$[Ji]),ra=e=>{$[Ji]=e,$[Yi]=e,$[Xi]=void 0,$[Zi]=void 0},ia=Symbol.for(`@workflow/world//getWorldFn`);globalThis[ia]??=na;var aa=class{limitMs;elapsedMs=0;intervalStart;constructor(e=er()){this.limitMs=e,this.intervalStart=Date.now()}get configuredLimitMs(){return this.limitMs}elapsed(){let e=this.intervalStart===null?0:Date.now()-this.intervalStart;return this.elapsedMs+e}pause(){this.intervalStart!==null&&(this.elapsedMs+=Date.now()-this.intervalStart,this.intervalStart=null)}resume(){this.intervalStart=Date.now()}isExhausted(){return this.elapsed()>=this.limitMs}},oa=class extends Error{name=`ReplayTimeoutRetryError`};async function sa(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a,slotSnapshot:o}=e,s=W.forRun(t,n),c=Hn();if(i<=c)throw s.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:c}),new oa(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let l=await na(),u=gi(void 0,q.REPLAY_TIMEOUT);s.error(`Workflow replay exceeded timeout and max retries exceeded. Failing the run`,{timeoutMs:a,attempt:i,maxRetries:c,errorCode:u.errorCode,errorAttribution:u.attribution});let d=fr(l,t),f=new Y(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`),p=await d(),m=await Sn(f,t,p);await l.events.create(t,{eventType:`run_failed`,specVersion:8,eventData:{error:m,errorCode:q.REPLAY_TIMEOUT}},{requestId:r,...o}),zi(t,n,m,p,q.REPLAY_TIMEOUT)}var ca=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new la}activate(){this.active=!0}async withEventCreate(e,t){if(!this.active||this.reported)return t(e);this.reported=!0;try{return await t({...e,replayDivergenceCount:this.divergenceCount})}catch(e){throw this.reported=!1,e}}},la=class extends ca{constructor(){super(0)}activate(){}};function ua(e,t){if(e&&Number.isFinite(e.resumeRequestedAtMs)&&Number.isFinite(e.queuePublishRequestedAtMs))return{trigger:`hook`,...e.strategy===`lazy`||e.strategy===`parallel`||e.strategy===`sequential`?{strategy:e.strategy}:{},resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,consumerStartedAtMs:e.consumerStartedAtMs??NaN,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===`hook_preload`||e.setupSource===`run_started`||e.setupSource===`event_load`?{setupSource:e.setupSource}:{},stepExecution:t}}function da(e){if(e&&Number.isFinite(e.consumerStartedAtMs))return{resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,...e.strategy===void 0?{}:{strategy:e.strategy},consumerStartedAtMs:e.consumerStartedAtMs,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===void 0?{}:{setupSource:e.setupSource}}}function fa(e){let t=[e.resumeRequestedAtMs,e.queuePublishRequestedAtMs,e.consumerStartedAtMs,e.replayStartedAtMs,e.nextStepEncounteredAtMs,e.stepClaimStartedAtMs,...e.stepClaimCompletedAtMs===void 0?[]:[e.stepClaimCompletedAtMs],e.stepCodeStartedAtMs];for(let e of t)if(typeof e!=`number`||!Number.isFinite(e))return;for(let e=1;e<t.length;e++)if(t[e]<t[e-1])return;return t}function pa(e){let{tracking:t}=e;if(!t||e.attempt!==1||t.replayStartedAtMs===void 0||t.nextStepEncounteredAtMs===void 0||e.stepClaimStartedAtMs===void 0)return;let n={resumeRequestedAtMs:t.resumeRequestedAtMs,queuePublishRequestedAtMs:t.queuePublishRequestedAtMs,consumerStartedAtMs:t.consumerStartedAtMs,replayStartedAtMs:t.replayStartedAtMs,nextStepEncounteredAtMs:t.nextStepEncounteredAtMs,stepClaimStartedAtMs:e.stepClaimStartedAtMs,stepClaimCompletedAtMs:e.stepClaimCompletedAtMs,stepCodeStartedAtMs:e.stepCodeStartedAtMs};if(!fa(n))return;let{resumeRequestedAtMs:r,queuePublishRequestedAtMs:i,consumerStartedAtMs:a,replayStartedAtMs:o,nextStepEncounteredAtMs:s,stepClaimStartedAtMs:c,stepClaimCompletedAtMs:l,stepCodeStartedAtMs:u}=n;return{...ct(u-r),...it(i-r),...I(a-i),..._e(o-a),...ve(s-o),..._(c-s),...l===void 0?{}:B(l-c),...ft(u-(l??c)),...He(t.trigger),...t.strategy===void 0?{}:Qe(t.strategy),...t.setupSource===void 0?{}:be(t.setupSource),...Me(t.stepExecution)}}function ma(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return u(ni(t).ulid)}catch{return}}function ha(e,t){try{e.stack=t;return}catch{}try{Object.defineProperty(e,"stack",{value:t,writable:!0,configurable:!0})}catch{}}const ga=s(`@workflow/core//devServerPort`,1,()=>({getPort:void 0,cachedPort:void 0,inFlight:void 0}));async function _a(){if(ga.cachedPort!==void 0)return ga.cachedPort;if(ga.inFlight)return ga.inFlight;if(!ga.getPort)try{let e=[`@workflow/utils`,`get-port`].join(`/`),t=ri(si(process.cwd()+`/package.json`).href)(e);ga.getPort=t.getPort}catch{ga.getPort=async()=>void 0}let e=ga.getPort??(async()=>void 0);return ga.inFlight=e().then(e=>(typeof e==`number`&&(ga.cachedPort=e),e)).finally(()=>{ga.inFlight=void 0}),ga.inFlight}const va=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function ya(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(va.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(n||i!==void 0)return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},replayMs:e.replayMs,turbo:e.turbo,retained:e.retained}}function ba(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),e.preclaimedStart&&l.push(`preclaimedStart`),t.retained&&l.push(`retained`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}const xa=`__workflowUnserializableStepInput`;function Sa(){return{args:[`[input unavailable: step argument serialization failed]`],closureVars:[],thisVal:void 0,[xa]:!0}}function Ca(e){return typeof e==`object`&&!!e&&e[xa]===!0}function wa(){return d(`WORKFLOW_STEP_STREAM_DRAIN_TIMEOUT_MS`,3e4,{integer:!0,min:1})}function Ta(e){let t=e?.name;return t===`AbortError`||t===`ResponseAborted`}async function Ea(e){if(e.length===0)return;let t=wa(),n;try{await Promise.race([Promise.all(e.map(e=>(e.settleReleasedWrites?.()??Promise.resolve(!1)).catch(e=>{if(!Ta(e))throw e;return!1}))),new Promise((e,r)=>{n=setTimeout(()=>r(new K(`Timed out draining step stream writes after ${t}ms`)),t)})])}catch(e){if(!Ta(e))throw e}finally{n!==void 0&&clearTimeout(n)}}function Da(e,t){if(t&&e.events&&e.cursor!==void 0)return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function Oa(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:a,stepName:o}=e,s=!!process.env.VERCEL_URL,c=(e.runSpecVersion??0)>=5,l=e.replayRecoveryReporter??ca.inert(),u=async(e,r)=>l.withEventCreate(hr(r),r=>t.events.create(n,e,r)),d={computeInstanceId:yi,...e.requestId?{requestId:e.requestId}:{}},f=`step.execute ${Ce(o)}`;return G(f,{},async l=>{if(l?.setAttributes({...A(o),...et(r),...Ct(n),...T(a)}),oi(!(e.lazyStepInput!==void 0&&e.preclaimedStart),`executeStep: lazyStepInput and preclaimedStart are mutually exclusive`),e.preclaimedStart&&e.preclaimedStart.owned===!1)return W.debug(`Pre-claimed step start lost, skipping`,{stepName:o,stepId:a,workflowRunId:n}),l?.setAttributes({...M(!0),...z(`running`)}),{type:`skipped`};let f=fr(t,n),p=jn(o);if(!p||typeof p!=`function`){let t=`Step "${o}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(W.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:o,stepId:a}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},d)}catch(e){if(X.is(e))return{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(new Y(t),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return{type:`skipped`};throw e}return l?.setAttributes({...te(`failed`),...St(!0)}),{type:`failed`}}let m=p.maxRetries??3;if(l?.setAttributes({...fe(m)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>m+1){let t=m,r=`Step "${o}" exceeded max retries (${t} ${kt(`retry`,`retries`,t)})`;ot.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,stepId:a,attempt:e.authoritativeAttempt,maxRetries:m});try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(new Y(r),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}return l?.setAttributes({...te(`failed`),...b(!0)}),{type:`failed`}}let h=e=>{if(Gt.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return W.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(J.is(e))return W.info(`Workflow run "${n}" has already completed, skipping step "${a}": ${e.message}`),{type:`gone`};if(X.is(e))return W.debug(`Step in terminal state, skipping`,{stepName:o,stepId:a,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),l?.setAttributes({...M(!0),...z(`completed`)}),{type:`skipped`};if(Pt.is(e)){let t=Math.max(1,e.retryAfter??1);return W.debug(`Step retryAfter timestamp not yet reached`,{stepName:o,stepId:a,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},g=e.preclaimedStart===void 0&&e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(br()||e.forceOptimisticStart===!0&&!Wn());e.preclaimedStart?l?.setAttributes(F(`batch_preclaimed`)):e.lazyStepInput!==void 0&&l?.setAttributes(F(g?`optimistic`:`awaited`));let _,v=d,y,x,S,w=async()=>{if(!S)return;let e=await S;if(e.ok)return;let t=h(e.err);if(!t)throw e.err;return t};if(e.preclaimedStart?.owned)_=e.preclaimedStart.step,y=e.preclaimedStart.batchPostSentAtMs,x=e.preclaimedStart.claimCompletedAtMs;else if(g){S=(e.runReadyBarrier??Promise.resolve()).then(()=>(y=Date.now(),u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},v))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;_={runId:n,stepId:a,stepName:o,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};y=Date.now();let n=await u({eventType:`step_started`,specVersion:8,correlationId:a,eventData:e.lazyStepInput===void 0?{stepName:o,...t}:{stepName:o,workflowName:r,input:e.lazyStepInput,...t}},v);x=Date.now(),_=n.step}catch(e){let t=h(e);if(t)return t;throw e}W.debug(`Step execution details`,{stepName:o,stepId:_.stepId,status:_.status,attempt:_.attempt}),l?.setAttributes({...te(_.status)});let E;if(_.attempt>m+1&&_.error){let e=_.attempt-1,t=`Step "${o}" exceeded max retries (${e} ${kt(`retry`,`retries`,e)})`;ot.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,retryCount:e});let r=new Y(t);if(_.error!=null)try{r.cause=await rn(_.error,n,await f())}catch{}try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(r,n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...te(`failed`),...b(!0)}),{type:`failed`}}let D=[],O=[],k=[],j=!0,N,P=()=>{if(!N||N.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t!==void 0&&y!==void 0&&(N.rsfs=Math.max(0,y-t),l&&l.setAttributes({...re(N.rsfs)}))};try{let u=_.attempt;if(!_.startedAt)throw new K(`Step "${a}" has no "startedAt" timestamp`);let d=_.startedAt,m=e.encryptionKey??await f(),h=await G(`step.hydrate`,{},async t=>{let r=Date.now(),i=await bn(_.input,n,m,O,globalThis,{},e.workflowDeploymentId,k),a=Date.now()-r;return t?.setAttributes({...Le(i.args.length),...pe(a)}),i});if(Ca(h)){let{message:e,hint:t}=tn(`step arguments`,void 0);throw new Lt(e,{hint:t})}let v=h.args,b=h.thisVal??null,S=Xt(s?`https://${process.env.VERCEL_URL}`:`http://localhost:${await _a()??3e3}`),C,T=!1,A=Date.now();N=ba({tracking:e.latencyTracking,stepCodeStartedAtMs:A,attempt:u,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:g,preclaimedStart:e.preclaimedStart!==void 0,stepStartPostSentAtMs:y}),N&&l?.setAttributes({...N.ttfs===void 0?{}:Et(N.ttfs),...N.stso===void 0?{}:V(N.stso),...N.rsfs===void 0?{}:re(N.rsfs),...N.finalSchedulingReplay===void 0?{}:le(N.finalSchedulingReplay),...bt(N.optimizations??[])});let M=()=>{let t=e.resumeTracking;if(!t||t.reported)return;let n=pa({tracking:t,attempt:u,stepClaimStartedAtMs:y,stepClaimCompletedAtMs:x,stepCodeStartedAtMs:Date.now()});n&&(t.reported=!0,l?.setAttributes(n))},F=`ok`,I=performance.now();try{E=await G(`step.execute`,{},async()=>await En.run({stepMetadata:{stepName:o,stepId:a,stepStartedAt:new Date(+d),attempt:u},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:S,features:{encryption:!!m}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:O,preCompletionOps:D,streamStates:k,closureVars:h.closureVars,encryptionKey:m,runReadyBarrier:g?e.runReadyBarrier:void 0},()=>(M(),t.telemetry?.recordStepExecution?.(a),p.apply(b,v))))}catch(e){F=`error`,C=e,T=!0}finally{Fe(performance.now()-I,F)}let ee=Date.now()-A;if(pn(...v,b,h.closureVars),T)throw C;if(l?.setAttributes({...ge(ee)}),E=await G(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await _n(E,n,m,O,globalThis,!1,!1,c,g?e.runReadyBarrier:void 0),a=Date.now()-r;return t?.setAttributes({...L(a),...qe(typeof i)}),i}),O.length>0){let e=Promise.all(O);Nr(e,e=>{W.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:a,error:e instanceof Error?e.message:String(e)})}),j=!1;let t=Promise.race([e.then(()=>{j=!0},e=>{if(Ta(e)){j=!0;return}throw e}),new Promise(e=>setTimeout(e,500))]);t.catch(()=>{}),await Ea(k),await t}if(g){let e=await w();if(e)return e;P()}D.length>0&&await Promise.all(D).catch(()=>{})}catch(e){if(g){let e=await w();if(e)return e;P()}D.length>0&&await Promise.all(D).catch(()=>{});let t=Ai(e),r=await Ni(t),i=r.stack||wi(t)||``;t instanceof Error&&l?.recordException?.(t);let s=Y.is(t);if(l?.setAttributes({...Ee(Si(t)),...wt(r.message),...ue(Si(t)),...C(s?`fatal`:It.is(t)?`retryable`:`transient`),...vt(!s)}),J.is(e))return ot.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};if(s){ot.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:o,errorStack:i}),ai.isNativeError(t)&&i&&ha(t,i);try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(t,n,await f(),[],globalThis,c),...N}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...te(`failed`),...St(!0)}),{type:`failed`}}let d=_.attempt;if(l?.setAttributes({...H(d),...fe(m)}),d>=m+1){let t=_.attempt-1;ot.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:o,attempt:_.attempt,retryCount:t,errorStack:i});let s=`Step "${o}" failed after ${m} ${kt(`retry`,`retries`,m)}: ${r.message}`,d=new Y(s);d.cause=e,i&&(d.stack=i);try{await u({eventType:`step_failed`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(d,n,await f(),[],globalThis,c),...N}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...te(`failed`),...b(!0)}),{type:`failed`}}It.is(e)?ot.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,message:e.message}):ot.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,errorStack:i}),ai.isNativeError(e)&&i&&ha(e,i);try{await u({eventType:`step_retrying`,specVersion:8,correlationId:a,eventData:{stepName:o,error:await hn(e,n,await f(),[],globalThis,c),...It.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(X.is(e))return W.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}let p=Math.max(1,It.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return l?.setAttributes({...We(p),...ne(!0)}),{type:`retry`,timeoutSeconds:p}}let I;try{I=await u({eventType:`step_completed`,specVersion:8,correlationId:a,eventData:{stepName:o,workflowName:r,result:E,...N}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(X.is(e))return W.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};if(J.is(e))return ot.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};throw e}let ee=Da(I,e.inlineDeltaSinceCursor!==void 0);return l?.setAttributes({...te(`completed`),...qe(typeof E)}),O.length>0&&ot.debug(`Step has pending ops`,{workflowRunId:n,stepName:o,opsCount:O.length}),{type:`completed`,hasPendingOps:!j,inlineDelta:ee}})}function ka(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function Aa(e,t){if(e.lastStartedAt===void 0)return 0;let n=Jn(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function ja(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function Ma(e,t,n){let r=new Map,i=new Set;for(let t of e)if(t.correlationId!==void 0){if(t.eventType===`step_started`){let e=`eventData`in t&&t.eventData&&`ownerMessageId`in t.eventData&&typeof t.eventData.ownerMessageId==`string`?t.eventData.ownerMessageId:void 0;r.set(t.correlationId,e)}else t.eventType===`step_retrying`&&i.add(t.correlationId)}for(let e of t)if(e!==void 0&&!i.has(e)&&r.get(e)===n)return!0;return!1}const Na=s(`@workflow/core//stepSingleFlight`,1,()=>({inFlight:new Map}));async function Pa(e,t,n,r=`warn`){let i=`${e}:${t}`,a=Na.inFlight.get(i);if(a){W[r](`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await a}catch{}return{type:`skipped`}}let o=n();Na.inFlight.set(i,o);try{return await o}finally{Na.inFlight.delete(i)}}async function Fa({runId:e,hookEvent:t,queueItem:n,requestId:r,sinceCursor:i,createEvent:a,world:o,forceClaimVictimWakes:s}){try{let c=await a(t,{requestId:r,...i===void 0?{}:{sinceCursor:i}});if(c.event?.eventType===`hook_conflict`)return{hasHookConflict:!0,hasAwaitedHookCreation:!1};if(c.hook?.claimedFrom){s?.add(c.hook.hookId);let t=await Ir(o,e,c.hook);W.info(`Hook token force-claimed from another run`,{workflowRunId:e,hookId:n.correlationId,victimRunId:c.hook.claimedFrom.runId,victimWake:t})}return{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(X.is(t))return W.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(J.is(t))return W.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(La(t)){let e=new Y(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Ia({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s,stepDispatch:c,ownerMessageId:l,allowDeferredBatchWork:u,forceClaimVictimWakes:d}){let f=n.runId,p=Rr(t,f,a?.events,{alreadyWoken:d}),m=async()=>{if(o)try{await o}catch{}},h=async e=>{let t=(await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(t.length!==0)throw t.find(e=>zt.is(e))??t[0]},g=s??ca.inert(),_=(e,n)=>g.withEventCreate(n,n=>t.events.create(f,e,n)),v=0,b=0,x=!1,S=async(e,t)=>{if(b++,!a)return _(e,t);let n=a,r=await _(e,{...t,...zn(n.events)});if(typeof t?.sinceCursor==`string`)return n.cursor===t.sinceCursor&&r.events!==void 0&&r.hasMore!==!0&&(or(n.events,r.events),n.cursor=r.cursor??n.cursor,x=!0),r;let i=mr(n.events,r);return v+=i.added,i.truncated?W.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:f,eventType:e.eventType,eventId:r.event?.eventId,offered:i.offered}):i.added>0&&W.debug(`Suspension write skipped occupied slots`,{workflowRunId:f,eventType:e.eventType,eventId:r.event?.eventId,reported:i.added}),r},C=e.items.filter(e=>e.type===`step`),T=e.items.filter(e=>e.type===`hook`),E=e.items.filter(e=>e.type===`wait`),D=e.items.filter(e=>e.type===`attribute`),O=T.filter(e=>!e.hasCreatedEvent),A=new Map;for(let e of T){if(e.hasCreatedEvent&&!e.disposed)continue;let t=A.get(e.token);t?t.push(e):A.set(e.token,[e])}let j=await t.getEncryptionKeyForRun?.(n),M=j?await st(j):void 0,N=(n.specVersion??0)>=5,P=0,F=[];async function I(t,n){let r={executions:[]};try{return await On(t,f,M,e.globalThis,!1,N,r)}finally{P+=r.totalExecutions??r.executions.length,F.push(...r.executions.slice(0,5-F.length).map(e=>({...n,...e})))}}async function ee(e){let t={eventType:`hook_disposed`,specVersion:8,correlationId:e.correlationId,eventData:{token:e.token}};try{await S(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(J.is(t))W.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(Ht.is(t))W.info(`Hook not found for disposal, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}}let L=[],R=[],te=0,ne=O.length===1&&typeof a?.cursor==`string`?a.cursor:void 0,re=async e=>{for(let n of e){let e=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await I(n.metadata,{source:`hook_metadata`,correlationId:n.correlationId}),a={eventType:`hook_created`,specVersion:8,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0},...n.force&&{force:!0}}},o=await Fa({runId:f,hookEvent:a,queueItem:n,requestId:i,sinceCursor:ne,createEvent:S,world:t,forceClaimVictimWakes:d});o.hasHookConflict&&L.push(n.correlationId),o.hasAwaitedHookCreation&&R.push(n.correlationId),e=o.hasHookConflict}n.disposed&&!e&&await ee(n)}},ie=async e=>{try{let n=await I({aborted:!0,reason:e.abortReason},{source:`hook_abort`,correlationId:e.correlationId});await S({eventType:`hook_received`,specVersion:8,correlationId:e.correlationId,eventData:{token:e.token,payload:n}});try{let r=en(e.token);await t.streams.write(f,r,n),await t.streams.close(f,r)}catch{W.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:f,correlationId:e.correlationId})}}catch(t){if(X.is(t)||J.is(t))W.info(`Workflow run already completed, skipping abort`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}},oe=[...A.values()],z=T.filter(e=>e.abortRequested&&!e.disposed),B,se=oe.length>0||z.length>0?(async()=>{if(await m(),oe.length>0){let e={startMs:Date.now()};B=e,await h(oe.map(re)),e.endMs=Date.now()}z.length>0&&await h(z.map(ie))})():void 0,ce=new Set(C.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),V=new Set,le=new Set,ue=async(t,r)=>{W.warn(`Step arguments failed to serialize; failing the step so the workflow can observe the error`,{workflowRunId:f,correlationId:t.correlationId,stepName:t.stepName,error:r.message}),await m();let a=await On(Sa(),f,M,e.globalThis,!1,N);try{await S({eventType:`step_created`,specVersion:8,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}},{requestId:i})}catch(e){if(X.is(e))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:t.correlationId,message:e.message});else if(J.is(e))return;else throw e}try{await S({eventType:`step_failed`,specVersion:8,correlationId:t.correlationId,eventData:{stepName:t.stepName,error:await hn(r,f,M,[],e.globalThis,N)}},{requestId:i})}catch(e){if(X.is(e)||J.is(e))W.info(`Tried failing step, but step or run has already finished.`,{workflowRunId:f,correlationId:t.correlationId,message:e.message});else throw e}le.add(t.correlationId),pe.delete(t.correlationId)},fe=O.some(e=>e.hasConflictAwaiter===!0),pe=new Set(fe?[]:C.filter(e=>ce.has(e.correlationId)).slice(0,Bn()).map(e=>e.correlationId)),me=new Map,he=[];se&&he.push(se);let ge=new Set,_e=c!==void 0&&ir()&&(n.specVersion??0)>=3,ve=nr()&&typeof t.events.createBatch==`function`&&(n.specVersion??0)>=6&&!_e&&D.length===0,ye=[],be=[],xe=ve&&l!==void 0&&(pe.size>=2||pe.size===1&&O.length>0),H=new Map,U,Ce=()=>(U??=c?.getTraceCarrier()??Promise.resolve({}),U),we=0,Te=0;for(let e of C)if(ce.has(e.correlationId)){let r=xe&&pe.has(e.correlationId),a=Te;Te+=r?2:1;let o=(async()=>{let o;try{o=await I({args:e.args,closureVars:e.closureVars,thisVal:e.thisVal},{source:`step_input`,correlationId:e.correlationId})}catch(t){if(!Lt.is(t)||!c)throw t;await ue(e,t);return}if(pe.has(e.correlationId)){me.set(e.correlationId,{correlationId:e.correlationId,stepName:e.stepName,dehydratedInput:o}),r&&(ye.push({order:a,kind:`inline-created`,correlationId:e.correlationId,event:{eventType:`step_created`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}}}),ye.push({order:a+1,kind:`inline-started`,correlationId:e.correlationId,event:{eventType:`step_started`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,...l===void 0?{}:{ownerMessageId:l}}}}));return}let s={eventType:`step_created`,specVersion:8,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}};if(_e&&o instanceof Uint8Array&&o.byteLength<=131072){await m();let r=await Ce(),[a,l]=await Promise.allSettled([S(s,{requestId:i}),cr(t,c.queueName,{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:r,requestedAt:new Date,stepInput:{input:o},runContext:Cr(n)},{idempotencyKey:Rn(e.correlationId,e.stepName)})]);if(l.status===`rejected`)throw l.reason;if(ge.add(e.correlationId),a.status===`rejected`){let t=a.reason;if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(Zr(t))we++,W.warn(`Step creation event write failed, but the step was dispatched via the queue. The step_created event will be ensured by the queue consumer.`,{workflowRunId:f,correlationId:e.correlationId,stepName:e.stepName,error:t instanceof Error?t.message:String(t)});else throw t}else V.add(e.correlationId);return}if(ve){ye.push({order:a,kind:`step`,correlationId:e.correlationId,stepName:e.stepName,event:s});return}try{await m(),await S(s,{requestId:i}),V.add(e.correlationId)}catch(t){if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}})();he.push(o),ve&&be.push(o.catch(()=>{}))}for(let e of E)if(!e.hasCreatedEvent){let t={eventType:`wait_created`,specVersion:8,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};if(ve){ye.push({order:Te++,kind:`wait`,correlationId:e.correlationId,event:t});continue}he.push((async()=>{try{await m(),await S(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Wait already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}})())}let Ee;ve&&he.push((async()=>{if(await Promise.all(be),ye.length===0)return;let e=[...ye].sort((e,t)=>e.order-t.order);await m();let r=async e=>{try{await S(e.event,{requestId:i}),e.kind===`step`&&V.add(e.correlationId)}catch(t){if(X.is(t))W.info(e.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else throw t}};if(e.length===1){await r(e[0]);return}let o=a?(pr(a.events)??0)+1:void 0,s=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1],o=i.kind===`inline-created`&&a?.kind===`inline-started`&&a.correlationId===i.correlationId,s=o?2:1;n.length>0&&n.length+s>32&&(t.push(n),n=[]),n.push(i),o&&(n.push(a),r++)}return n.length>0&&t.push(n),t},l=e=>e.kind===`inline-created`||e.kind===`inline-started`,d=s(e.filter(e=>l(e))),p=e.filter(e=>!l(e)),h=p.length===1?[p]:s(p),g=p.length===1?h[0]:void 0,_=[...d,...h],v=c!==void 0;if(v)for(let t of e)t.kind===`step`&&ge.add(t.correlationId);let y=0,x,C=async e=>{let n=Date.now();b++;let{results:r}=await t.events.createBatch(f,e.map(e=>({event:e.event,...e.kind===`inline-started`?{computeInstanceId:yi}:{}})),{requestId:i}),a=Date.now();for(let[t,i]of r.entries()){let r=e[t];if(i.error===void 0){if(r.kind===`step`)V.add(r.correlationId);else if(r.kind===`inline-started`){let e=me.get(r.correlationId);if(e===void 0)throw new Rt(`no dehydrated input for pre-claimed step ${r.correlationId}`,{status:500});let t=new Date,o=i.step?.startedAt?{...i.step,startedAt:i.step.startedAt}:{runId:f,stepId:r.correlationId,stepName:e.stepName,status:`running`,attempt:1,createdAt:t,updatedAt:t,startedAt:t};H.set(r.correlationId,{owned:!0,step:{...o,input:e.dehydratedInput},batchPostSentAtMs:n,claimCompletedAtMs:a})}continue}if(i.status===409){if(r.kind===`inline-created`||r.kind===`inline-started`){H.set(r.correlationId,{owned:!1}),W.info(`Inline step pre-claim lost, continuing`,{workflowRunId:f,correlationId:r.correlationId,message:i.message});continue}W.info(r.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:f,correlationId:r.correlationId,message:i.message});continue}throw new Rt(`batched ${r.event.eventType} for ${r.correlationId} failed: ${i.error}: ${i.message}`,{status:i.status})}let o=pr(r.flatMap(e=>e.error===void 0&&e.event?[e.event]:[]));y+=r.filter(e=>e.error===void 0).length,o!==void 0&&(x===void 0||o>x)&&(x=o)},w=async e=>{if(!v)return;let r=e.filter(e=>e.kind===`step`);if(r.length===0)return;let i=await Ce();await wr(t,c.queueName,r.map(e=>({message:{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:i,requestedAt:new Date,runContext:Cr(n)},opts:{idempotencyKey:Rn(e.correlationId,e.stepName)}})))},T=_.map(e=>e===g?r(e[0]):C(e)),E=_.map(async(e,t)=>{await T[t],await w(e)}),D=(async()=>{let e=await Promise.allSettled([...T,...E]);if(o!==void 0&&x!==void 0){let e=x-o+1-y;e>0&&W.debug(`Batched fan-out committed above snapshot`,{workflowRunId:f,expectedFirstSlot:o,maxCommittedSlot:x,committedCount:y,interleaved:e})}let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason})(),O=_.flatMap((e,t)=>e.some(e=>e.kind===`inline-started`)?[T[t]]:[]);if(u){if(D.catch(()=>{}),Ee=D,O.length>0)try{await Promise.all(O)}catch(e){throw await D.catch(()=>{}),e}}else await D})());for(let e of D)he.push((async()=>{try{await m(),await S({eventType:`attr_set`,specVersion:8,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(X.is(t))W.info(`Workflow attribute event already exists, continuing`,{workflowRunId:f,correlationId:e.correlationId,message:t.message});else if(La(t)){let e=new Y(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());let De=Promise.allSettled(he.filter(e=>e!==se)).then(()=>Date.now());try{await h(he)}finally{await p}if(B?.endMs!==void 0){let e=Math.max(B.startMs,await De);te+=Math.max(0,B.endMs-e)}let Oe=[];for(let e of pe){let t=me.get(e);t&&Oe.push(t)}let ke=Date.now(),Ae;for(let e of E){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-ke),r=Math.ceil(n/1e3);(!Ae||r<Ae.seconds)&&(Ae={seconds:r,correlationId:e.correlationId,resumeAtMs:t})}return r?.setAttributes({...w(`workflow_suspended`),...de(C.length),...Se(O.length),...y(E.length),...le.size>0?k(le.size):{},...we>0?ae(we):{}}),{pendingSteps:C,createdStepCorrelationIds:V,failedStepCorrelationIds:le,queuedStepCorrelationIds:ge,lazyInlineSteps:Oe,inlineClaims:H,deferredBatchWork:Ee,waitTimeout:L.length>0?void 0:Ae,hasHookConflict:L.length>0,hookConflictCorrelationIds:L,hasAwaitedHookCreation:R.length>0,awaitedHookCorrelationIds:R,eventLogCarriedForward:x&&b===1,hasAttributeEvents:D.length>0,hasHookEvents:O.length>0,hookCreationMs:te,serializationBlockerCount:P,serializationBlockers:F,reportedEventCount:v}}function La(e){return e instanceof f||e instanceof Error&&e.name===`AttributeValidationError`||Rt.is(e)&&e.status===400}const Ra=()=>d(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),za=()=>d(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function Ba(e,t,n=Date.now(),r=0){let i=Va(e,t,n);return r<=0?i:{delaySeconds:i.delaySeconds,idempotencyKey:`${i.idempotencyKey}:a${r}`}}function Va(e,t,n){let r=Ra();if(e<=Math.min(za(),r))return{delaySeconds:e,idempotencyKey:`${t}:${Math.floor(n/1e3)}`};let i=Math.ceil(e/r);return{delaySeconds:Math.min(e,r),idempotencyKey:i===1?t:`${t}:hop-${i}`}}var Ha=44,Ua=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Wa=new Uint8Array(64),Ga=new Uint8Array(128);for(let e=0;e<Ua.length;e++){let t=Ua.charCodeAt(e);Wa[e]=t,Ga[t]=e}function Ka(e){let t=0,n=0,r=0;do r=Ga[e.next()],t|=(r&31)<<n,n+=5;while(r&32);return t}function qa(e){return e&1?-2147483648|-(e>>>1):e>>>1}function Ja(e,t){return e.pos>=t?!1:e.peek()!==Ha}var Ya=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Xa(e){let{length:t}=e,n=new Ya(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i+=qa(Ka(n)),i<u&&(l=!1),u=i,Ja(n,e)?(a+=qa(Ka(n)),o+=qa(Ka(n)),s+=qa(Ka(n)),Ja(n,e)?(c+=qa(Ka(n)),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Za(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Za(e){e.sort(Qa)}function Qa(e,t){return e[0]-t[0]}const $a=/^[\w+.-]+:\/\//,eo=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,to=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function no(e){return $a.test(e)}function ro(e){return e.startsWith(`//`)}function io(e){return e.startsWith(`/`)}function ao(e){return e.startsWith(`file:`)}function oo(e){return/^[.?#]/.test(e)}function so(e){let t=eo.exec(e);return lo(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function co(e){let t=to.exec(e),n=t[2];return lo(`file:`,``,t[1]||``,``,io(n)?n:`/`+n,t[3]||``,t[4]||``)}function lo(e,t,n,r,i,a,o){return{scheme:e,user:t,host:n,port:r,path:i,query:a,hash:o,type:7}}function uo(e){if(ro(e)){let t=so(`http:`+e);return t.scheme=``,t.type=6,t}if(io(e)){let t=so(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(ao(e))return co(e);if(no(e))return so(e);let t=so(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function fo(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function po(e,t){mo(t,t.type),e.path=e.path===`/`?t.path:fo(t.path)+e.path}function mo(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function ho(e,t){if(!e&&!t)return``;let n=uo(e),r=n.type;if(t&&r!==7){let e=uo(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:po(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}mo(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?oo(t||e)&&!oo(r)?`./`+r+i:r+i:i||`.`}case 5:return n.path+i;default:return n.scheme+`//`+n.user+n.host+n.port+n.path+i}}function go(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function _o(e,t){let n=go(e),r=t?t+`/`:``;return e=>ho(r+(e||``),n)}var vo=0,yo=1,bo=2,xo=3,So=4;function Co(e,t){let n=wo(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=wo(e,r+1))e[r]=Eo(e[r],t);return e}function wo(e,t){for(let n=t;n<e.length;n++)if(!To(e[n]))return n;return e.length}function To(e){for(let t=1;t<e.length;t++)if(e[t][vo]<e[t-1][vo])return!1;return!0}function Eo(e,t){return t||(e=e.slice()),e.sort(Do)}function Do(e,t){return e[vo]-t[vo]}var Oo=!1;function ko(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][vo]-t;if(a===0)return Oo=!0,i;a<0?n=i+1:r=i-1}return Oo=!1,n-1}function Ao(e,t,n){for(let r=n+1;r<e.length&&e[r][vo]===t;n=r++);return n}function jo(e,t,n){for(let r=n-1;r>=0&&e[r][vo]===t;n=r--);return n}function Mo(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function No(e,t,n,r){let{lastKey:i,lastNeedle:a,lastIndex:o}=n,s=0,c=e.length-1;if(r===i){if(t===a)return Oo=o!==-1&&e[o][vo]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=ko(e,t,s,c)}function Po(e){return typeof e==`string`?JSON.parse(e):e}var Fo="`line` must be greater than 0 (lines start at line 1)",Io="`column` must be greater than or equal to 0 (columns start at column 0)",Lo=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=Po(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=r;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=r.ignoreList||r.x_google_ignoreList||void 0;let u=_o(t,s);this.resolvedSources=c.map(u);let{mappings:d}=r;if(typeof d==`string`)this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=Co(d,n);else if(r.sections)throw Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);else throw Error(`invalid source map: ${JSON.stringify(r)}`);this._decodedMemo=Mo(),this._bySources=void 0,this._bySourceMemos=void 0}};function Ro(e){return e}function zo(e){var t;return(t=Ro(e))._decoded||(t._decoded=Xa(Ro(e)._encoded))}function Bo(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(Fo);if(r<0)throw Error(Io);let a=zo(e);if(n>=a.length)return Vo(null,null,null,null);let o=a[n],s=Ho(o,Ro(e)._decodedMemo,n,r,i||1);if(s===-1)return Vo(null,null,null,null);let c=o[s];if(c.length===1)return Vo(null,null,null,null);let{names:l,resolvedSources:u}=e;return Vo(u[c[yo]],c[bo]+1,c[xo],c.length===5?l[c[So]]:null)}function Vo(e,t,n,r){return{source:e,line:t,column:n,name:r}}function Ho(e,t,n,r,i){let a=No(e,r,t,n);return Oo?a=(i===-1?Ao:jo)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function Uo(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Wo(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&Uo(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Go=s(`@workflow/core//sourceMapTracers`,1,()=>({byCode:new Map}));function Ko(e){let t=Go.byCode.get(e);if(t!==void 0)return Go.byCode.delete(e),Go.byCode.set(e,t),t;let n=null,r=Wo(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new Lo(JSON.parse(e))}catch{n=null}for(Go.byCode.set(e,n);Go.byCode.size>8;){let e=Go.byCode.keys().next().value;if(e===void 0)break;Go.byCode.delete(e)}return n}function qo(e,t,n){if(!e.includes(t))return e;let r=Ko(n);if(!r)return e;try{return e.split(`
|
|
4
|
+
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=Bo(r,{line:c,column:l});if(u.source&&u.line!==null){let e=i||u.name||`anonymous`,t=u.column===null?l:u.column;return` at ${e} (${u.source}:${u.line}:${t})`}return e}).join(`
|
|
5
|
+
`)}catch{return e}}function Jo(e,t,n){let r=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*r*t/e.length);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(o+=e[t[s]&r]||``,o.length>=a)return o}}}function Yo(e,t){let n=e.get(t);if(n)return n;let r=Xo(t);if(r){for(let[t,n]of e)if(Xo(t)===r)return n}}function Xo(e){let t=e.indexOf(`_`);return t===-1?void 0:e.slice(t+1)}function Zo(e){switch(e.type){case`step`:return`step ${e.stepName} (${e.correlationId})`;case`hook`:return`hook (${e.correlationId})`;case`wait`:return`wait (${e.correlationId})`;case`attribute`:return`attribute (${e.correlationId})`}return`unknown`}function Qo(e,t,n){let r=e.correlationId?Yo(t,e.correlationId):void 0,i=n.describe();return[`pending at this id: ${r?Zo(r):`none`}.`,`consumer: index=${i.index}, length=${i.length}, parked=${i.parked}, lastConsumed=${i.lastConsumedEventId??`none`}`].join(` `)}function $o(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:o}=Kt(),s=`step_${e.generateUlid()}`,c={type:`step`,correlationId:s,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(c.thisVal=this);let l=n?.();return l&&(c.closureVars=l),e.invocationsQueue.set(s,c),ot.debug(`Step consumer setup`,{correlationId:s,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n)return Pn(e),Q.NotConsumed;if(ot.debug(`Step consumer event processing`,{correlationId:s,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:s===n.correlationId,eventType:n.eventType}),n.correlationId!==s)return Q.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: step event ${n.eventType} for ${s} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),Q.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(s);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{o(new Wt(`Replay divergence: step ${s} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),Q.Finished):(r.hasCreatedEvent=!0,Q.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),Q.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),Q.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=Nn(e,t,`step`,{deliveredAt:+n.createdAt}),i,a=An(e,t,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(n.eventId,`error`,n.eventData.error);i=await rn(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){ot.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new Y(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),o(i)})}),Q.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,s=Nn(e,i,`step`,{deliveredAt:+n.createdAt}),c,l=An(e,i,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{c={ok:!0,value:await e.replayPayloadCache.getStepResult(t,async()=>{let n=await e.replayPayloadCache.prepareEventPayload(t,`result`,r);return await an(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{s.markDelivered(),c.ok?a(c.value):o(c.error)})}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: Unexpected event type for step ${s} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),Q.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(Tn(n),Object.defineProperty(r,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(r,"bind",{value:function(e,...r){let i=Function.prototype.bind.call(this,e,...r);return Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperty(i,"__boundThis",{value:e,writable:!1,enumerable:!1,configurable:!1}),r.length>0&&Object.defineProperty(i,"__boundArgs",{value:r,writable:!1,enumerable:!1,configurable:!1}),i},writable:!1,enumerable:!1,configurable:!1}),r}}var es=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=o();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,o=n.next;return o.int32=function(){return n.next()*4294967296|0},o.double=function(){return o()+(o()*2097152|0)*11102230246251565e-32},o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}function o(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.alea=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),ts=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor128=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),ns=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorwow=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),rs=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.x,n=t.i,r=e[n],i;return r^=r>>>7,i=r^r<<24,r=e[n+1&7],i^=r^r>>>10,r=e[n+3&7],i^=r^r>>>3,r=e[n+4&7],i^=r^r<<7,r=e[n+7&7],r^=r<<13,i^=r^r<<9,e[n]=i,t.i=n+1&7,i};function n(e,t){var n,r=[];if(t===(t|0))r[0]=t;else for(t=``+t,n=0;n<t.length;++n)r[n&7]=r[n&7]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&r[n]===0;++n);for(n==8?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.x&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorshift7=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),is=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.w,n=t.X,r=t.i,i,a;return t.w=e=e+1640531527|0,a=n[r+34&127],i=n[r=r+1&127],a^=a<<13,i^=i<<17,a^=a>>>15,i^=i>>>12,a=n[r]=a^i,t.i=r,a+(e^e>>>16)|0};function n(e,t){var n,r,i,a,o,s=[],c=128;for(t===(t|0)?(r=t,t=null):(t+=`\0`,r=0,c=Math.max(c,t.length)),i=0,a=-32;a<c;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),a===0&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(o=o+1640531527|0,n=s[a&127]^=r+o,i=n==0?i+1:0);for(i>=128&&(s[(t&&t.length||0)&127]=-1),i=127,a=512;a>0;--a)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;e.w=o,e.X=s,e.i=i}n(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.X&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor4096=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),as=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,r=t.d,i=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var r=0;r<n.length+20;r++)t.b^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.tychei=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),os=n(((t,n)=>{(function(t,r,i){var a=256,o=6,s=52,c=`random`,l=i.pow(a,o),u=i.pow(2,s),d=u*2,f=a-1,p;function m(e,t,n){var s=[];t=t==1?{entropy:!0}:t||{};var f=v(_(t.entropy?[e,b(r)]:e??y(),3),s),p=new h(s),m=function(){for(var e=p.g(o),t=l,n=0;e<u;)e=(e+n)*a,t*=a,n=p.g(1);for(;e>=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return m.int32=function(){return p.g(4)|0},m.quick=function(){return p.g(4)/4294967296},m.double=m,v(b(p.S),r),(t.pass||n||function(e,t,n,r){return r&&(r.S&&g(r,p),e.state=function(){return g(p,{})}),n?(i[c]=e,t):e})(m,f,`global`in t?t.global:this==i,t.state)}function h(e){var t,n=e.length,r=this,i=0,o=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);i<a;)s[i]=i++;for(i=0;i<a;i++)s[i]=s[o=f&o+e[i%n]+(t=s[i])],s[o]=t;(r.g=function(e){for(var t,n=0,i=r.i,o=r.j,s=r.S;e--;)t=s[i=f&i+1],n=n*a+s[f&(s[i]=s[o=f&o+t])+(s[o]=t)];return r.i=i,r.j=o,n})(a)}function g(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){var n=[],r=typeof e,i;if(t&&r==`object`)for(i in e)try{n.push(_(e[i],t-1))}catch{}return n.length?n:r==`string`?e:e+`\0`}function v(e,t){for(var n=e+``,r,i=0;i<n.length;)t[f&i]=f&(r^=t[f&i]*19)+n.charCodeAt(i++);return b(t)}function y(){try{var e;return p&&(e=p.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),b(e)}catch{var n=t.navigator,i=n&&n.plugins;return[+new Date,t,i,t.screen,b(r)]}}function b(e){return String.fromCharCode.apply(0,e)}if(v(i.random(),r),typeof n==`object`&&n.exports){n.exports=m;try{p=e(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:t,[],Math)})),ss=t(n(((e,t)=>{var n=es(),r=ts(),i=ns(),a=rs(),o=is(),s=as(),c=os();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const cs=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ls=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)ls[cs.charCodeAt(e)]=e;function us(e){return e===9||e===10||e===12||e===13||e===32}function ds(e,t){for(;t<e.length&&us(e.charCodeAt(t));)t++;return t}function fs(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=ls[r.charCodeAt(0)],a=ls[r.charCodeAt(1)],o=ls[r.charCodeAt(2)],s=ls[r.charCodeAt(3)],c=i<<2|a>>4,l=(a&15)<<4|o>>2,u=(o&3)<<6|s;if(n===2){if(t&&l!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c]}if(n===3){if(t&&u!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c,l]}return[c,l,u]}function ps(e,t,n,r){if(r===void 0&&(r=2**53-1),r===0)return{read:0,bytes:[],error:null};let i=0,a=[],o=``,s=0,c=0,l=e.length;for(;;){if(c=ds(e,c),c===l){if(s>0){if(n===`stop-before-partial`)return{read:i,bytes:a,error:null};if(n===`loose`){if(s===1)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: lone character in final chunk`)};a.push(...fs(o,!1))}else return{read:i,bytes:a,error:SyntaxError(`Invalid base64: incomplete chunk in strict mode`)}}return{read:l,bytes:a,error:null}}let u=e[c];if(c++,u===`=`){if(s<2)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: padding in unexpected place`)};if(c=ds(e,c),s===2){if(c===l)return n===`stop-before-partial`?{read:i,bytes:a,error:null}:{read:i,bytes:a,error:SyntaxError(`Invalid base64: missing second padding character`)};u=e[c],u===`=`&&(c=ds(e,c+1))}if(c<l)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected characters after padding`)};let t=n===`strict`;try{a.push(...fs(o,t))}catch(e){return{read:i,bytes:a,error:e}}return{read:l,bytes:a,error:null}}if(t===`base64url`){if(u===`+`||u===`/`)return{read:i,bytes:a,error:SyntaxError(`Invalid base64url: unexpected character '${u}'`)};u===`-`?u=`+`:u===`_`&&(u=`/`)}let d=u.charCodeAt(0);if(d>=128||ls[d]===255)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected character '${e[c-1]}'`)};let f=r-a.length;if(f===1&&s===2||f===2&&s===3||(o+=u,s=o.length,s===4&&(a.push(...fs(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function ms(e,t){t===void 0&&(t=2**53-1);let n=e.length,r=[],i=0;if(n%2!=0)return{read:0,bytes:[],error:SyntaxError(`Invalid hex: string length must be even`)};for(;i<n&&r.length<t;){let t=e.substring(i,i+2);if(!/^[0-9a-fA-F]{2}$/.test(t))return{read:i,bytes:r,error:SyntaxError(`Invalid hex: unexpected character at position ${i}`)};i+=2,r.push(Number.parseInt(t,16))}return{read:i,bytes:r,error:null}}function hs(e,t){let n=t?.alphabet??`base64`;if(n!==`base64`&&n!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${n}"`);let r=!!t?.omitPadding,i=``,a=e.length;for(let t=0;t<a;t+=3){let n=e[t],o=t+1<a?e[t+1]:0,s=t+2<a?e[t+2]:0;i+=cs[n>>2&63],i+=cs[(n&3)<<4|o>>4&15],t+1<a?i+=cs[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=cs[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function gs(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function _s(e){let t=e.prototype,n=e;t.toBase64||Object.defineProperty(t,"toBase64",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return hs(this,t)},writable:!0,enumerable:!1,configurable:!0}),t.toHex||Object.defineProperty(t,"toHex",{value:function(){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return gs(this)},writable:!0,enumerable:!1,configurable:!0}),t.setFromBase64||Object.defineProperty(t,"setFromBase64",{value:function(t,n){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=ps(t,r,i,this.length),o=a.bytes,s=o.length;for(let e=0;e<s;e++)this[e]=o[e];if(a.error)throw a.error;return{read:a.read,written:s}},writable:!0,enumerable:!1,configurable:!0}),t.setFromHex||Object.defineProperty(t,"setFromHex",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let n=ms(t,this.length),r=n.bytes,i=r.length;for(let e=0;e<i;e++)this[e]=r[e];if(n.error)throw n.error;return{read:n.read,written:i}},writable:!0,enumerable:!1,configurable:!0}),n.fromBase64||Object.defineProperty(e,"fromBase64",{value:function(t,n){if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=ps(t,r,i);if(a.error)throw a.error;return new e(a.bytes)},writable:!0,enumerable:!1,configurable:!0}),n.fromHex||Object.defineProperty(e,"fromHex",{value:function(t){if(typeof t!=`string`)throw TypeError(`expected a string`);let n=ms(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function vs(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)n+=r===8||r===13||r===18||r===23?`-`:r===14?`4`:r===19?t[Math.floor(e()*4)+8]:t[Math.floor(e()*16)];return n}}const ys={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function bs(e){if(ai.isTypedArray(e)||ai.isDataView(e)){if(ai.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!ai.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function xs(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,ss.default)(n),i=li(),a=ui(`globalThis`,i);a.Math.random=r;let o=a.Date;a.Date=function(...e){return new.target===void 0?new o(t).toString():Reflect.construct(o,e.length===0?[t]:e,new.target)},a.Date.prototype=o.prototype,Object.setPrototypeOf(a.Date,o),a.Date.now=()=>t;let s=globalThis.crypto,c=s.subtle;function l(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(r()*256);return e}let u=vs(r),d=a;delete d.Atomics.waitAsync,delete d.WebAssembly.compile,delete d.WebAssembly.instantiate,delete d.WebAssembly.compileStreaming,delete d.WebAssembly.instantiateStreaming,delete d.WeakRef,delete d.FinalizationRegistry;let f=async(e,t)=>{let n=typeof e==`string`?e:e.name,r=ys[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=ii(r).update(bs(t)).digest(),a=new ArrayBuffer(i.byteLength);return new Uint8Array(a).set(i),a};return a.crypto=new Proxy(s,{get(e,t){return t===`getRandomValues`?l:t===`randomUUID`?u:t===`subtle`?new Proxy(c,{get(e,t){if(t===`digest`)return f;let n=e[t];return typeof n==`function`?()=>{throw new K(`\`crypto.subtle.${String(t)}()\` is not available inside a workflow function. Move it to a step function where full Node.js crypto is available.`)}:n}}):e[t]}}),a.process={env:Object.freeze({...process.env})},a.DOMException=globalThis.DOMException,a.Headers=globalThis.Headers,a.TextEncoder=globalThis.TextEncoder,a.TextDecoder=globalThis.TextDecoder,a.console=globalThis.console,a.URL=globalThis.URL,a.URLSearchParams=globalThis.URLSearchParams,a.structuredClone=globalThis.structuredClone,a.atob=globalThis.atob,a.btoa=globalThis.btoa,_s(a.Uint8Array),a.Symbol.dispose??=Symbol.for(`Symbol.dispose`),a.Symbol.asyncDispose??=Symbol.for(`Symbol.asyncDispose`),a.exports={},a.module={exports:a.exports},{context:i,globalThis:a,updateTimestamp:e=>{t=e}}}const Ss=s(`@workflow/core//vmScriptCache`,1,()=>({byCode:new Map}));function Cs(e){let t=Ss.byCode.get(e);if(t!==void 0)return Ss.byCode.delete(e),Ss.byCode.set(e,t),t}function ws(e,t){let n=Cs(e);if(n===void 0)for(n=new Map,Ss.byCode.set(e,n);Ss.byCode.size>8;){let e=Ss.byCode.keys().next().value;if(e===void 0)break;Ss.byCode.delete(e)}let r=n.get(t),i=r!==void 0;return r===void 0&&(r=new ci(e,{filename:t}),n.set(t,r)),{script:r,cacheHit:i}}function Ts(e){return async function(t,n={}){let{promise:r,resolve:i}=Kt(),a=`attr_${e.generateUlid()}`;try{l({changes:t,writer:{type:`workflow`},...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}})}catch(t){if(!(t instanceof f))throw t;if(!e.eventsConsumer.events.some(e=>e.eventType===`attr_set`&&e.correlationId===a))throw new Y(t.message)}let o={type:`attribute`,correlationId:a,changes:t,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}};return e.invocationsQueue.set(a,o),e.eventsConsumer.subscribe(r=>r?r.correlationId===a?r.eventType!==`attr_set`||r.eventData.writer.type!==`workflow`||JSON.stringify(r.eventData.changes)!==JSON.stringify(t)||r.eventData.allowReservedAttributes===!0!=(n.allowReservedAttributes===!0)?(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),Q.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),Q.Finished):Q.NotConsumed:(Pn(e),Q.NotConsumed)),r}}function Es(e,t){if(typeof t!=`string`)return null;let n=Zt(dn,e.globalThis),r=n?.[gn];return typeof r==`function`?r.call(n,{runId:t}):null}function Ds(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new Y("The configured World does not support `experimental_minRetention` for Hooks.");if(t.experimental_force===!0){if(t.token===void 0||t.token===null)throw Error("`createHook()` was called with `experimental_force: true` but no `token`. Force-claiming only applies to an explicit token another run may hold.");if(t.isWebhook===!0)throw Error("Webhook hooks do not support `experimental_force`. Use a non-webhook `createHook()` with an explicit token.");if(e.worldCapabilities?.hookForceClaim!==!0)throw new Y("The configured World does not support `experimental_force` for Hooks.")}let n=`hook_${e.generateUlid()}`,r=t.token??e.generateNanoid(),i=t.experimental_minRetention===void 0?void 0:At(t.experimental_minRetention),a=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:r,tokenRetentionUntil:i,...t.experimental_force===!0&&{force:!0},metadata:t.metadata,isWebhook:a});let o=[],s=[],c=[],l=!1,u=!1,d=!1,f=!1,p=null,m=null,h=null,g=Promise.resolve();function _(t,n){let r=e.eventsConsumer.eventIndex,i=Nn(e,r,`hook`,{deliveredAt:t}),a=An(e,r,`hook`);g=e.promiseQueue.then(()=>a).then(()=>{i.markDelivered(),n()})}function v(t){let n=g;e.promiseQueue=e.promiseQueue.then(()=>{n.then(t)})}let y=new Set;ze.debug(`Hook consumer setup`,{correlationId:n,token:r}),e.eventsConsumer.subscribe(i=>{if(!i)return l=!0,(s.length>0&&o.length===0||c.length>0&&!u&&!f)&&Pn(e),Q.NotConsumed;if(i.correlationId!==n)return Q.NotConsumed;let a=`eventData`in i&&i.eventData&&`token`in i.eventData?i.eventData.token:void 0;if(typeof a==`string`&&a!==r)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: hook event ${i.eventType} for ${n} belongs to token "${a}", but the current hook consumer expects "${r}"`,{eventId:i.eventId}))}),Q.Finished;if(i.eventType===`hook_created`){let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.hasCreatedEvent=!0,t.tokenRetentionUntil=i.eventData.tokenRetentionUntil),u=!0;let r=c.slice();return c.length=0,_(+i.createdAt,()=>{for(let e of r)e.resolve(null)}),Q.Consumed}if(i.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=i,a=t.experimental_force===!0&&r.eventData.forceRefusedReason===void 0,o=a?new Y(`createHook({ experimental_force: true }) for token "${r.eventData.token}" was answered with a hook_conflict: the configured World does not support force-claiming hook tokens${r.eventData.conflictingRunId?` (run "${r.eventData.conflictingRunId}" holds it)`:``}.`):new Nt(r.eventData.token,r.eventData.conflictingRunId);f=!0,p=o,h=a?null:Es(e,r.eventData.conflictingRunId);let l=s.slice();s.length=0;let u=c.slice();return c.length=0,_(+i.createdAt,()=>{for(let e of l)e.reject(o);for(let e of u)h?e.resolve(h):e.reject(o)}),Q.Consumed}if(i.eventType===`hook_received`){let t=i.resumeId;if(typeof t==`string`){if(y.has(t))return Q.Consumed;y.add(t)}let n=e.eventsConsumer.eventIndex,r=s.length>0,a=Nn(e,n,`hook`,{armed:r,deliveredAt:+i.createdAt});if(r){let t=An(e,n,`hook`),r=s.shift();if(r){e.pendingDeliveries++;let n;e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(i.eventId,`payload`,i.eventData.payload);n={ok:!0,value:await an(i.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},t)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--}t.then(()=>{a.markDelivered(),n.ok?r.resolve(n.value):r.reject(n.error)})})}}else{let t,r=Kt();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(i.eventId,`payload`,i.eventData.payload);t={ok:!0,value:await an(i.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){t={ok:!1,error:e}}finally{e.pendingDeliveries--,r.resolve()}}),o.push({claim:()=>(a.arm(),r.promise.then(()=>An(e,n,`hook`)).then(()=>{if(a.markDelivered(),t&&!t.ok)throw t.error;return t.value}))})}return Q.Consumed}if(i.eventType===`hook_disposed`){e.invocationsQueue.delete(n),d=!0;let t=i.eventData?.forceClaimedBy;if(t){let i=new Vt(r,t.runId,t.hookId);m=i;let a=s.slice();s.length=0;let o=c.slice();c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)e.resolve(null)}),ze.debug(`Hook force-claimed by another run`,{correlationId:n,token:r,claimedByRunId:t.runId})}return Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: Unexpected event type for hook ${n} (token: ${r}) "${i.eventType}"`,{eventId:i.eventId}))}),Q.Finished});let b=!1;function x(){let t=Kt();if(f&&p)return v(()=>{t.reject(p)}),t.promise;if(o.length>0){let e=o.shift();if(e)return e.claim()}if(m){let n=m;return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(n)}),t.promise}return l&&Pn(e),s.push(t),t.promise}function S(){let t=Kt();if(u)return v(()=>{t.resolve(null)}),t.promise;if(f)return v(()=>{h?t.resolve(h):t.reject(p)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),l&&Pn(e),c.push(t),t.promise}function C(){if(b||(b=!0,d))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),s.length>0&&(s.length=0,Pn(e)),ze.debug(`Hook disposed`,{correlationId:n,token:r})}let w={token:r,getConflict(){return S()},then(e,t){return x().then(e,t)},async*[Symbol.asyncIterator](){for(;!b;)yield await this},dispose:C,[Symbol.dispose]:C},T=e.globalThis.Symbol.dispose;return T&&T!==Symbol.dispose&&(w[T]=C),w}}function Os(e){return async function(t){let{promise:n,resolve:r}=Kt(),i=`wait_${e.generateUlid()}`,a=At(t),o={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,o),e.eventsConsumer.subscribe(t=>{if(!t)return Pn(e),Q.NotConsumed;if(t.correlationId!==i)return Q.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),Q.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),Q.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=Nn(e,o,`wait`,{deliveredAt:+t.createdAt}),c=An(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Wt(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished}),n}}async function ks(e,t,n,r,i,a){if(t.size!==0){for(let e of t.values())e.type===`hook`&&e.isSystem&&!e.disposed&&!e.abortRequested&&(e.disposed=!0);try{let e=await na();await Ia({suspension:new qt(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){W.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function As(e,t,n){let r=Ve(t)?.moduleSpecifier||t,i=`globalThis.__private_workflows?.get(${JSON.stringify(t)})`;return G(`workflow.bundle.compile`,async t=>{let a=n===`shared`?ws(e,r):{script:new ci(e,{filename:r}),cacheHit:!1},o=n===`shared`?ws(i,r):{script:new ci(i,{filename:r}),cacheHit:!1};return t?.setAttributes({...N(a.cacheHit)}),{bundleScript:a.script,workflowLookupScript:o.script}})}function js(e,t){return As(e,t,`shared`)}function Ms(e,t){return As(e,t,`none`)}function Ns(e){return Fs(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await Ls(e);return t?.setAttributes({...S(n.argumentCount)}),Is(await r,t)})}function Ps(e,t){return Fs(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...S(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:Is(r,n)})}function Fs(e,t,n,r){return G(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...et(t.workflowName),...Ct(t.runId),...w(t.status),...Xe(n.length),...Be(e)}),r(i)))}function Is(e,t){return e.type===`completed`?t?.setAttributes({...rt(e.resultType)}):t&&(U(e.suspension,t),e.parked&&t.setAttributes({...Ae(e.parked.count),...Je(e.parked.eventId),...mt(e.parked.eventType)})),e}async function Ls(e){let t=await ht(`workflow.vm.create_context`);return Rs(e,t.end).catch(e=>{throw t.fail(e),e})}async function Rs({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,compiledWorkflowScripts:a,runReadyBarrier:o,worldCapabilities:s},c){let l=t.startedAt;if(!l)throw new K(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let u=ma(t.runId)??+t.createdAt,d=!!process.env.VERCEL_URL,f=Xt(d?`https://${process.env.VERCEL_URL}`:`http://localhost:${await _a()??3e3}`),{context:p,globalThis:h,updateTimestamp:g}=xs({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:u}),_=Kt(),v={type:`running`,interruption:_},y=e=>{switch(v.type){case`running`:{let{interruption:t}=v;v=qt.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},k.suspensionGeneration++,t.reject(e);return}case`suspended`:v={type:`replay`};return;case`replay`:case`completed`:return}},b=m(()=>h.Math.random()),x=0,S=()=>(x+=1,b(u)),C=Jo(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*h.Math.random())),w={current:Promise.resolve()},T={current:()=>!0},E=u,D=e=>{e>E&&(E=e,g(e))},O=new cn(n,{onUnconsumedEvent:e=>{y(new Wt(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}. ${Qo(e,k.invocationsQueue,O)}`,{eventId:e.eventId}))},onDuplicateEvent:(e,n)=>{let r={workflowRunId:t.runId,eventId:e.eventId,eventType:e.eventType,firstEventType:n,correlationId:e.correlationId};if(n!==e.eventType){W.debug(`Ignoring inert event that decides an already-decided outcome differently`,r);return}W.debug(`Ignoring inert event that repeats a class already in the event log`,r)},getPromiseQueue:()=>w.current,isDeliveryIdle:()=>T.current()}),k={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:h,onWorkflowError:y,eventsConsumer:O,generateUlid:S,generateNanoid:C,get mintCount(){return x},invocationsQueue:new Map,get promiseQueue(){return w.current},set promiseQueue(e){w.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,advanceClock:D,replayPayloadCache:i};T.current=()=>Mn(k);let A=!1;k.eventsConsumer.subscribe(e=>e?e.eventType===`run_created`?Q.Consumed:e.eventType===`run_started`?A?Q.NotConsumed:(A=!0,Q.Consumed):e.eventType===`attr_set`&&e.eventData.writer.type===`step`?Q.Consumed:Q.NotConsumed:Q.NotConsumed);let j=$o(k),M=Ds(k),N=Os(k),P=Ts(k);h[kn]=j,h[vn]=P,h[wn]=M,h[fn]=N,h[yn]=e=>nn(t.runId,e);let F={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new h.Date(+l),url:f,features:{encryption:!!r}};h[Ar]=F,h[mn]=S,h.fetch=()=>{throw new h.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Bt.FETCH_IN_WORKFLOW_FUNCTION}`)};let I=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;h.setTimeout=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setInterval=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearTimeout=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearInterval=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setImmediate=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearImmediate=()=>{throw new K(I,{slug:Bt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.AbortController=ln(k);let ee=$t();h.AbortSignal={abort:ee.abort,any:ee.any,timeout:ee.timeout};class L{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof h.URL){let t=String(e);try{new h.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new h.Headers(t.headers):(typeof e==`string`||e instanceof h.URL)&&(this.headers=new h.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);this.body=n==null?null:Object.create(h.ReadableStream.prototype,{[Dn]:{value:n,writable:!1}})}clone(){Z()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}h.Request=L,Object.defineProperties(L.prototype,{arrayBuffer:{value:j(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:j(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:j(`__builtin_response_text`),writable:!0,configurable:!0}});class R{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new h.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);this.body=e==null?null:Object.create(h.ReadableStream.prototype,{[Dn]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new h.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new R(n,{...t,headers:r})}static error(){Z()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new h.Headers;n.set(`Location`,String(e));let r=Object.create(R.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}h.Response=R,Object.defineProperties(R.prototype,{arrayBuffer:{value:j(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:j(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:j(`__builtin_response_text`),writable:!0,configurable:!0}});class te{constructor(){Z()}get locked(){return!1}cancel(){Z()}getReader(){Z()}pipeThrough(){Z()}pipeTo(){Z()}tee(){Z()}values(){Z()}static from(){Z()}[Symbol.asyncIterator](){Z()}}h.ReadableStream=te;class ne{constructor(){Z()}get locked(){return!1}abort(){Z()}close(){Z()}getWriter(){Z()}}h.WritableStream=ne;class re{readable;writable;constructor(){Z()}}h.TransformStream=re,h.console=globalThis.console;let ie=Symbol.for(`@vercel/request-context`);h[ie]=globalThis[ie],c();let{bundleScript:ae,workflowLookupScript:oe}=a??await js(e,t.workflowName),z=await G(`workflow.bundle.evaluate`,async()=>(ae.runInContext(p),oe.runInContext(p)));if(typeof z!=`function`)throw new Mt(t.workflowName);let B=[];k.promiseQueue=k.promiseQueue.then(async()=>{B=await G(`workflow.input.hydrate`,async()=>{let e=await i.prepareWorkflowInput(t);return on(t.input,t.runId,r,h,{},e)})}),await k.promiseQueue;let se=async e=>{throw qt.is(e)||Wt.is(e)?(v.type===`running`&&(v={type:`replay`}),e):(v={type:`completed`},await ks(t.runId,k.invocationsQueue,h,t,`failed`,o),e)},ce=async(e,n)=>{let i;try{i=await Promise.race([e,n.promise])}catch(e){return v.type===`suspended`&&e===v.suspension?{type:`suspended`,suspension:v.suspension,session:de,parked:O.parkedSummary}:se(e)}v={type:`completed`};let a=O.strandedEvent;if(a)return se(new Wt(`Replay finished without consuming event: eventType=${a.eventType}, correlationId=${a.correlationId}, eventId=${a.eventId}. ${Qo(a,k.invocationsQueue,O)}`,{eventId:a.eventId}));try{let e=await Cn(i,t.runId,r,h,!1,(t.specVersion??0)>=5);return await ks(t.runId,k.invocationsQueue,h,t,`completed`,o),{type:`completed`,output:e,resultType:typeof i}}catch(e){return se(e)}},V=await De(),le=await ht(`workflow.replay.execute`),ue=V.run(async()=>z(...B)),de={workflowRun:t,argumentCount:B.length,async resume(e){switch(v.type){case`suspended`:{let t=O.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return v={type:`replay`},{type:`replay`};let n=Kt();return v={type:`running`,interruption:n},k.suspensionGeneration++,V.refresh(),O.append(e.slice(t.length)),ce(ue,n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new K(`Cannot resume ${v.type} workflow "${t.runId}"`)}}},fe=ce(ue,_);return fe.then(le.end,le.fail),{session:de,execution:fe}}function zs(e){let t=Xn();return t===void 0?e:e===void 0?t:Math.min(e,t)}function Bs({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.environment;if(!i)return!1;let a=e.getEnvironment?.();return!a||a===i?!1:(r.error(`Refusing to run this workflow: it was created in the "${i}" environment but this deployment runs in "${a}". Executing it here would create a second copy of the same run id in both environments — one pending forever, one running — so the queue message is being discarded without executing and without retrying. The client that called start() wrote the run to its own environment but addressed the queue message to a deployment in another one. Check that the environment that client authenticates as (WORKFLOW_VERCEL_ENV for CLI and CI clients, or the OIDC token's environment inside a deployment) matches the environment of the deployment it targets. The run it created is still pending in "${i}" and will not run.`,{workflowRunId:n,creatorEnvironment:i,currentEnvironment:a,pinnedDeploymentId:t?.deploymentId}),!0)}async function Vs({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}a&&a!==i&&r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function Hs(e){return K.is(e)?q.RUNTIME_ERROR:Jr(e)?q.WORLD_CONTRACT_ERROR:null}function Us(e){return!Rt.is(e)||e.status!==void 0&&e.status!==404?!1:/step/i.test(e.message)&&/not found/i.test(e.message)}async function Ws({world:e,workflowRun:t,runId:n,workflowName:r,requestId:i,err:a,errorCode:o,logMessage:s}){W.error(s,{workflowRunId:n,errorCode:o,error:a instanceof Error?a.message:String(a)});let c,l;try{c=await fr(e,t??n)(),l=await Sn(a,n,c,globalThis,(t?.specVersion??0)>=5),await e.events.create(n,{eventType:`run_failed`,specVersion:8,eventData:{error:l,errorCode:o}},{requestId:i})}catch(e){if(X.is(e)||J.is(e))return;if(Jr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:q.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}zi(n,r,l,c,o)}function Gs(e,t){return e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`))}function Ks(e,t){let n=Gs(e,t);return n?(W.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function qs(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function Js({suspension:e,serializationBlockerCount:t,hookContinuation:n=!1,invocationContinuation:r=!1}){return ar()?t>0?{retain:!1,reason:`serialization_executed_workflow_code`}:n?{retain:!0}:!r&&e.stepCount===0&&e.attributeCount===0?{retain:!1,reason:`no_replay_driver`}:{retain:!0}:{retain:!1,reason:`disabled`}}function Ys(e,t){return{serializationBlockerCount:t,serializationBlockers:e.map(({source:e,correlationId:t,kind:n,detail:r})=>({source:e,correlationId:t,kind:n,detail:r&&r.length>160?`${r.slice(0,160)}…`:r})),serializationBlockersTruncated:t>e.length}}function Xs(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}async function Zs(e,t){let n=process.env.WORKFLOW_V2_TIMEOUT_MS;if(n!==void 0&&n!==``){let e=Number(n);if(Number.isFinite(e)&&e>0)return e}let r=await e.getRuntimeDeadline?.();if(r!==void 0){let e=r.getTime();if(!Number.isNaN(e)){let n=Math.floor(e-t);if(n>=(0,pi.default)(`25m`))return(0,pi.default)(`10m`);if(n>=(0,pi.default)(`10m`))return(0,pi.default)(`5m`)}}return(0,pi.default)(`2m`)}async function Qs(e,t,n,r,i){let a=Wr(t.executionContext);if(!a)return{code:e};let o=`Workflow run "${t.runId}" is a dynamic workflow run (source ${a.sourceHash.slice(0,12)})`;if(!Vn())throw new K(`${o}, but this deployment has not enabled dynamic workflows, so its stored code was not executed. Set ${Fn}=1 on the deployment to enable them.`);let s=Gr(a);if(t.workflowName!==s)throw new K(`${o}, but its workflow name ${JSON.stringify(t.workflowName)} does not match the dynamic id ${JSON.stringify(s)} its marker derives, so its stored code was not executed.`);let c=t.dynamicWorkflowCode;if(c===void 0&&(await i(),c=(await r.runs.get(t.runId,{resolveData:`all`})).dynamicWorkflowCode),c===void 0)throw new K(`${o}, but its stored workflow code is missing, so it cannot be replayed. This means the code was never persisted or its storage has expired.`);let l=await n(),u=t.executionContext?.features;try{return{code:await xn(c,l,{encryptionRequired:u?.encryption===!0}),dynamicWorkflow:a}}catch(e){throw new K(`${o}, but its stored workflow code could not be decoded, so it was not executed: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}function $s(e,t){Yt(t?.basePath);let n=r(t?.namespace),s=a(`workflow`,n),l=t=>t.createQueueHandler(s,Pr(t)(async(r,a,l)=>{let d=Date.now(),f=Sr(r);if(f){await xr(f,t.specVersion);return}let{runId:p,traceCarrier:m,requestedAt:_,stepId:y,stepName:b,replayDivergence:S,preconditionReinvocations:C,deploymentMismatchRetryCount:T,runInput:O,hookInput:k,stepInput:A,runContext:j,hookResumeTiming:M,waitContinuation:N}=g.parse(r),P=ua(M,y===void 0?`inline`:`dispatched`);P&&y===void 0&&(P.consumerStartedAtMs=d),P&&!Number.isFinite(P.consumerStartedAtMs)&&(P=void 0);let F=nt(m)?m:void 0,{requestId:I}=a,L=a.queueName.slice(s.length),R=W.forRun(p,L),te=Un();if(a.attempt>te){let e=gi(void 0,q.MAX_DELIVERIES_EXCEEDED);R.error(`Workflow handler exceeded max deliveries (${a.attempt}/${te})`,{attempt:a.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});let t,n;try{let e=await na(),r=fr(e,p),i=new Y(`Workflow exceeded maximum queue deliveries (${a.attempt}/${te})`);t=await r(),n=await Sn(i,p,t),await e.events.create(p,{eventType:`run_failed`,specVersion:8,eventData:{error:n,errorCode:q.MAX_DELIVERIES_EXCEEDED}},{requestId:I})}catch(e){if(X.is(e)||J.is(e))return;if(Zr(e))throw R.warn(`Transient error marking run as failed after max deliveries, retrying via queue redelivery`,{attempt:a.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e)}),e;R.error(`Failed to mark run as failed after ${a.attempt} delivery attempts. A persistent error is preventing the run from being terminated. The run will remain in its current state until manually resolved. This is most likely due to a persistent outage of the workflow backend or a bug in the workflow runtime and should be reported to the Workflow team.`,{attempt:a.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0});return}zi(p,L,n,t,q.MAX_DELIVERIES_EXCEEDED);return}let ne=Ne(),re=()=>pt(ne,F),ae=await lt(ne,F),oe=new aa,z=ne===`continuous`?F:void 0,B=await ke(`CONSUMER`);return await we(z,async()=>await xt({workflowRunId:p,workflowName:L},async()=>{let t=await G(`workflow.route.get_world`,async()=>na());if(!Bs({world:t,runInput:O,runId:p,runLogger:R}))return await Vs({world:t,runInput:O,runId:p,runLogger:R}),G(`workflow.execute ${tt(L)}`,{kind:B,links:ae},async r=>{r?.setAttributes({...et(L),...ut(`execute_v2`),...me(`vercel-queue`),...ce(a.queueName),...Tt(a.messageId),...x(`process`),...lr({requestedAt:_}),...Ct(p),...ie(!!F),...E(ne)});let s=Date.now(),d=await Zs(t,s),f=s+d+Kn(),m=!1,g=0,te=new Set,ae=S?new ca(S.count):ca.inert(),z,B,V=await $e(t=>{if(t&&!Hr(t)&&!Wr(t.executionContext))return B!==t.workflowName&&(B=t.workflowName,z=js(e,t.workflowName),z.catch(()=>{})),z}),le=Jt(()=>{let e=Qn(t,p);return e.catch(()=>{}),e}),de,fe=e=>{if(e&&!Hr(e))return de||=new vi(le.value),de},pe=e=>{e.eventType===`run_created`&&(fe(e.eventData),V(e.eventData)),de?.prepareEvent(e)},ge=async(e,n)=>{let r=be(e,n),i={...ve(),resolveData:vr,...n},a=await ae.withEventCreate(r===void 0?i:{...i,sinceCursor:r},n=>t.events.create(p,e,n));return r!==void 0&&xe(r,a),a},_e=(e,t)=>G(`workflow.replay.load`,async n=>{let r=0;n?.setAttributes({...Ct(p),...Pe(e)});try{let e=await t(e=>{r++,pe(e)});return r=e.events?.length??r,e}finally{n?.setAttributes(Xe(r))}}),ve=()=>H.type===`loadAll`?{}:zn(H.events),be=(e,t)=>{if(!(ke||H.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||o(e.eventType)))return H.cursor??void 0},xe=(e,t)=>{H.type===`ready`&&H.cursor===e&&t.events!==void 0&&t.hasMore!==!0&&sr(H,{events:t.events,cursor:t.cursor})},H={type:`loadAll`},U,Se,Ce=-1,we,Te,Ee=0,De,ke=rr()&&O!==void 0&&a.attempt===1&&y===void 0&&!S;r?.setAttributes(Ke(ke));let Ae,Me=async()=>{if(Ae)try{await Ae}catch{}},Ne=async e=>{let n=Hs(e);return n?(await Ws({world:t,workflowRun:U,runId:p,workflowName:L,requestId:I,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`}),!0):!1},Fe=new Set,Ie=e=>{Fe.size>0&&W.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:p,ackPath:e,stepIds:[...Fe]})},Le=async()=>({runId:p,traceCarrier:await re(),requestedAt:new Date}),Re=async(e,r)=>{if(Ie(`reinvoke`),!ke)return{timeoutSeconds:e};await cr(t,gr(L,n),{...await Le(),...r},e>0?{delaySeconds:e}:void 0)},ze=0,Be=null,He=e=>{let t=Be;if(!t)return;Be=null;let n=new Set(e.map(e=>e.eventId)),r=qs(n,t.ids),i=qs(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;W.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:p,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:g})},We=(e,t,{allowDelta:n=!0}={})=>{if(ze>=Zn())return!1;ze++,rt=null;let i=n&&ze===1?Tr(t,p):null,a=i!==null&&H.type!==`loadAll`;return Be=H.type===`loadAll`?null:{ids:new Set(H.events.map(e=>e.eventId)),restart:ze,reason:e,source:a?`inline-delta`:`full-reload`},i&&H.type!==`loadAll`?(sr(H,i),H={...H,type:`ready`}):(H={type:`loadAll`},de?.resetScan()),W.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:p,reason:e,loopIteration:g,preconditionRestarts:ze,source:a?`inline-delta`:`full-reload`}),r?.setAttributes({"workflow.precondition_restarts":ze}),!0},qe=async(e,t)=>{let n=(C??0)+1,i=Er();return n>i?{reinvoked:!1,error:new K(`Event creation was rejected as stale after ${i} re-invocations of ${Zn()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(W.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:p,reason:e,loopIteration:g,preconditionReinvocations:n,maxReinvocations:i}),r?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await Re(In(),{preconditionReinvocations:n})})},Je=async(e,i,a)=>{let{outcome:o,spanAttributes:s}=await Hi({world:t,run:e,workflowName:L,requestId:I,retryCount:T,beforeStop:a,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:r,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await cr(t,gr(L,n),{...await i(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:r,delaySeconds:o})}});return s&&r?.setAttributes(s),o};if(y&&b)try{let e=async()=>{if(!A)return`ok`;try{await t.events.create(p,{eventType:`step_created`,specVersion:8,correlationId:y,eventData:{stepName:b,workflowName:L,input:A.input}},{requestId:I,viaStepDispatch:!0}),r?.setAttributes(D(!0)),W.warn(`Materialized step_created from the queue message — the producer’s direct write did not land`,{workflowRunId:p,stepId:y,stepName:b})}catch(e){if(X.is(e))return`ok`;if(J.is(e))return`gone`;throw e}return`ok`},o,s;if(r?.setAttributes(_t(j?`run_context`:`runs_get`)),j){if((A&&a.attempt>1?await e():`ok`)===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p});return}s=j}else{let[n,r]=await Promise.all([t.runs.get(p,{resolveData:`none`}),A&&a.attempt>1?e():`ok`]);if(r===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p});return}if(n.status!==`running`){W.debug(`Run already finished, skipping background step`,{workflowRunId:p,status:n.status});return}o=n,s={deploymentId:n.deploymentId,specVersion:n.specVersion??0,...n.startedAt?{startedAt:+n.startedAt}:{},rootRunId:Ln(n.attributes,p)}}if(await Je({runId:p,deploymentId:s.deploymentId,specVersion:s.specVersion},async()=>({...await Le(),stepId:y,stepName:b,...A?{stepInput:A}:{},...j?{runContext:j}:{},...M?{hookResumeTiming:M}:{}}))!==`continue`)return;let l=s.startedAt??Date.now(),u=a.attempt,d=jn(b)?.maxRetries??3;a.attempt>d+1&&(u=xi((await _r(p)).events,y,{type:`totalAttempts`})+1);let f=P;P=void 0,oe.pause();let m;try{let n=()=>Oa({world:t,workflowRunId:p,workflowDeploymentId:s.deploymentId,workflowName:L,workflowStartedAt:l,rootRunId:s.rootRunId??p,requestId:I,stepId:y,stepName:b,runSpecVersion:s.specVersion,authoritativeAttempt:u,...f?{resumeTracking:f}:{}});m=await Pa(p,y,async()=>{try{return await n()}catch(t){if(!A||!Us(t))throw t;return await e()===`gone`?{type:`gone`}:await n()}})}finally{oe.resume()}if(m.type===`retry`||m.type===`throttled`)return{timeoutSeconds:m.timeoutSeconds};if(t.capabilities?.invoke&&m.type!==`gone`){await cr(t,gr(L,n),{runId:p,traceCarrier:await re(),requestedAt:new Date});return}if(m.type===`completed`&&m.hasPendingOps){await cr(t,gr(L,n),{runId:p,traceCarrier:await re(),requestedAt:new Date});return}if(m.type===`completed`||m.type===`failed`||m.type===`skipped`){let e=await _r(p);H=Xs(e);let n=new Set,r=new Set;for(let t of e.events)t.eventType===`step_created`?n.add(t.correlationId):(t.eventType===`step_completed`||t.eventType===`step_failed`)&&r.add(t.correlationId);let s=new Set;for(let e of n)r.has(e)||s.add(e);if(s.size>0){if(Gn()&&Ma(e.events,s,a.messageId))W.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:p});else{W.debug(`Background step done but other steps pending, returning`,{workflowRunId:p});return}}W.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:p});let u=o??await t.runs.get(p,{resolveData:`none`});if(i(u.status)){W.debug(`Run already finished, skipping inline replay after background step`,{workflowRunId:p,status:u.status});return}V(u);let d=e.events.find(e=>e.eventType===`run_created`),f;if(d)f=d.eventData.input;else{if(!c(u.specVersion))throw new K(`Workflow run "${p}" has no "run_created" event`);let e=await t.runs.get(p,{resolveData:`all`});if(e.status!==`running`)return;f=e.input}U={...u,input:f,status:`running`,output:void 0,error:void 0,completedAt:void 0},Ce=l}else return}catch(e){let n=Hs(e);if(!n)throw e;await Ws({world:t,workflowRun:U,runId:p,workflowName:L,requestId:I,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!U&&k?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=k.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await Je(await t.runs.get(p,{resolveData:`none`}),async()=>({...await Le(),hookInput:k,...M?{hookResumeTiming:M}:{}}),Me)!==`continue`)return}let Ye=!1;if(!U&&k&&k.resumeId!==void 0&&k.payloadDigest!==void 0){let e=k,t;try{t=new Date(u(e.resumeId))}catch{t=void 0}try{r?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await _e(`hook_preload`,n=>ge({eventType:`hook_received`,specVersion:8,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:I,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0,replayEventObserver:n}));if(Ye=!0,n.run!==void 0&&n.run.startedAt!==void 0&&n.event!==void 0&&n.events!==void 0&&n.events.length>0&&n.cursor!=null&&n.hasMore===!1&&typeof n.maxEvents==`number`&&n.events.some(e=>e.eventType===`run_created`)&&n.events.some(e=>e.eventType===`run_started`)&&n.events.some(t=>t.eventType===`hook_received`&&t.resumeId===e.resumeId)&&n.run?.startedAt&&n.events){let e=n.events.find(e=>e.runId===p&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){r?.setAttributes({...w(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ue(`hook_received_stream`)}),W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:p,eventType:e.eventType});return}U=n.run,V(U),Se=zs(n.maxEvents),Te=Date.now(),P&&(P.setupSource=`hook_preload`),H={type:`ready`,events:n.events,cursor:n.cursor},Ce=+n.run.startedAt,r?.setAttributes({...w(n.run.status),...yt(Ce),...Ue(`hook_received_stream`)})}else r?.setAttributes(Ue(`hook_received_fallback`))}catch(e){if(Ht.is(e)||J.is(e)){W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:p,message:e.message});return}if(await Ne(e))return;throw e}}if(!U){let e={eventType:`run_started`,specVersion:O?.specVersion??8,...O?{eventData:{input:O.input,deploymentId:O.deploymentId,workflowName:O.workflowName,executionContext:O.executionContext,attributes:O.attributes,allowReservedAttributes:O.allowReservedAttributes,dynamicWorkflowCode:O.dynamicWorkflowCode,dynamicWorkflowCodeRef:O.dynamicWorkflowCodeRef}}:{}};if(ke&&O){r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=ge(e,{requestId:I,skipPreload:!0});Ae=t;try{V(O),fe(O)}catch(e){if(await Me(),!await Ne(e))throw e;return}t.then(e=>{let t=zs(e.maxEvents);t!==void 0&&(Se=t)}).catch(()=>{}),H={type:`ready`,events:[],cursor:null};let n=new Date;U={runId:p,status:`running`,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,...O.dynamicWorkflowCode?{dynamicWorkflowCode:O.dynamicWorkflowCode}:{},attributes:O.attributes??{},startedAt:n,createdAt:n,updatedAt:n},Ce=+n,Te=+n,r?.setAttributes({...w(`running`),...yt(Ce)})}else try{r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=_e(`run_started`,t=>ge(e,{requestId:I,replayEventObserver:t}));try{V(O),fe(O)}catch(e){try{await t}catch{}throw e}let n=await t;if(U=n.run,Se=zs(n.maxEvents),Te=Date.now(),P&&(P.setupSource=`run_started`),n.events?.length){let e={events:[...n.events],cursor:n.cursor??null};H=n.hasMore?Xs(e):{...e,type:`ready`}}if(Ce=+n.run.startedAt,r?.setAttributes({...w(n.run.status),...yt(Ce)}),n.run.status!==`running`){W.info(`Workflow already completed or failed, skipping`,{workflowRunId:p,status:n.run.status});return}V(U)}catch(e){if(X.is(e)||J.is(e)){W.info(`Run already finished during setup, skipping`,{workflowRunId:p,message:e.message});return}if(!await Ne(e))throw e;return}}if(oi(U,`Workflow run must be loaded before replay`),P&&P.setupSource===void 0&&(P.setupSource=`event_load`),await Je(U,async()=>({...await Le(),...k?{hookInput:k}:{},...M?{hookResumeTiming:M}:{}}),Me)!==`continue`)return;if(k&&!Ye&&!(k.resumeId!==void 0&&H.type!==`loadAll`&&H.events.some(e=>e.eventType===`hook_received`&&e.resumeId===k.resumeId))){let e;try{e=k.resumeId===void 0?void 0:new Date(u(k.resumeId))}catch{e=void 0}let n;try{let i=await t.events.create(p,{eventType:`hook_received`,specVersion:8,correlationId:k.hookId,eventData:{token:k.token,payload:k.payload}},{requestId:I,occurredAt:e,resumeId:k.resumeId,resumePayloadDigest:k.payloadDigest});r?.setAttributes(Ge(!0));let a=i.event;n=a?{...a,eventData:{token:k.token,payload:k.payload}}:void 0}catch(e){if(Ht.is(e)||J.is(e))return;throw e}H.type!==`loadAll`&&n?(dr(H.events,n),pe(n)):H={type:`loadAll`}}let Ze;try{Ze=await Qs(e,U,()=>le.value,t,Me)}catch(e){if(await Me(),!await Ne(e))throw e;return}let Qe=Ze.code,tt=Ze.dynamicWorkflow;tt&&(r?.setAttributes({...ye(!0),...se(tt.sourceHash)}),R.info(`Executing stored dynamic workflow code`,{sourceHash:tt.sourceHash}));let nt=tt&&!Hr(U)?Ms(Qe,U.workflowName):void 0,rt=null,it=new Set,at=new Set;for(;;){let e=l?.revision??0;if(g++,oe.isExhausted()){await sa({runId:p,workflowName:L,requestId:I,attempt:a.attempt,limitMs:oe.configuredLimitMs,slotSnapshot:ve()});return}if(Date.now()-s>=d){W.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:p,loopIteration:g,elapsedMs:Date.now()-s}),await cr(t,gr(L,n),{runId:p,traceCarrier:await re(),requestedAt:new Date});return}let i=0,o=!1;try{if(Hr(U)){W.debug(`Using QuickJS VM engine`,{workflowRunId:p,loopIteration:g}),await Me(),H.type===`loadAfter`&&(sr(H,await _r(p,H.cursor)),H={...H,type:`ready`});let{runWorkflowWithQuickJS:e}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),t=await e({workflowCode:Qe,workflowName:L,workflowRun:U,preloadedEvents:H.type===`ready`?H.events:void 0,preloadedEventsComplete:H.type===`ready`,preloadedCursor:H.type===`ready`?H.cursor:void 0,runInput:O,parentSpan:r,maxEventsLimit:Se,namespace:n,nextTraceCarrier:re,waitContinuation:N,deliveryAttempt:a.attempt,ownerMessageId:a.messageId,requestId:I});return t?.timeoutSeconds===void 0?void 0:await Re(t.timeoutSeconds)}if(H.type!==`ready`){m=!1;let e=await _r(p,H.type===`loadAfter`?H.cursor:void 0);H.type===`loadAfter`?(sr(H,e),H={...H,type:`ready`}):H={...e,type:`ready`}}if(oi(H.type===`ready`),He(H.events),Ks(H.events,p))return;let e=Date.now(),s=new Set(H.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),c=H.events.filter(t=>t.eventType===`wait_created`&&t.correlationId!==void 0&&!s.has(t.correlationId)&&e>=t.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:8,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of c)try{let t=await ge(e,{requestId:I});mr(H.events,t)}catch(t){if(X.is(t)){W.info(`Wait already completed, skipping`,{workflowRunId:p,correlationId:e.correlationId});continue}throw t}oi(H.type===`ready`);let l=new Set(H.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),u=c.filter(e=>!l.has(e.correlationId));if(u.length>0){if(m=!1,H.cursor){let e=await _r(p,H.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));u.every(e=>t.has(e.correlationId))?sr(H,e):H={...await _r(p),type:`ready`}}else H={...await _r(p),type:`ready`}}if(yr()){let e=await $n(p,{events:H.events,cursor:H.cursor});if(H={...e.log,type:`ready`},e.gap!==void 0)throw new Ut(`Event log for run ${p} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(Ks(H.events,p))return;if(Se!==void 0){let e=H.events.reduce((e,t)=>h(t)?e:e+1,0);if(e>=Se)throw new Ft(e,Se)}we??=H.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`||h(e)),W.debug(`Starting workflow execution`,{workflowRunId:p,loopIteration:g,eventCount:H.events.length,executionMode:rt?`retained`:`replay`}),i=Date.now(),P&&(P.replayStartedAtMs??=i);let d=fe(U);oi(d,`Node workflow replay requires payload preparation`);let f=d.prewarm(U,H.events),_=rt?await Ps(rt,H.events):{type:`replay`};if(o=rt!==null&&_.type!==`replay`,_.type===`replay`){rt=null;let e=V(U);oi(e||nt,`Node workflow replay requires compiled scripts`),_=await Ns({workflowCode:Qe,workflowRun:U,events:H.events,encryptionKey:await le.value,replayPayloadCache:d,...e??nt?{compiledWorkflowScripts:await(e??nt)}:{},runReadyBarrier:Ae,worldCapabilities:t.capabilities})}if(await f,_.type===`suspended`)throw rt=_.session,_.suspension;let v=_.output;W.debug(`Workflow execution completed`,{workflowRunId:p,loopIteration:g,replayMs:Date.now()-i,executionMode:rt?`retained`:`replay`}),ae.activate();try{await Me(),await ge({eventType:`run_completed`,specVersion:8,eventData:{output:v}},{requestId:I})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}throw e}Li(p,L),r?.setAttributes({...w(`completed`)});return}catch(c){if(qt.is(c)){ae.activate();let u=Date.now(),h=u-i;P&&c.stepCount>0&&(P.nextStepEncounteredAtMs??=u),W.debug(`Workflow suspended`,{workflowRunId:p,loopIteration:g,replayMs:h,steps:c.stepCount,hooks:c.hookCount,waits:c.waitCount});let _=un(c.stepCount,c.hookCount,c.waitCount);_&&W.debug(_);let y=Date.now();oi(H.type===`ready`,`Workflow suspended before its event log was loaded`);let b;try{b=await Ia({suspension:c,world:t,run:U,span:r,requestId:I,eventLog:H,runReadyBarrier:Ae,replayRecoveryReporter:ae,forceClaimVictimWakes:te,stepDispatch:{queueName:gr(L,n),getTraceCarrier:re},ownerMessageId:a.messageId,allowDeferredBatchWork:!0})}catch(e){if(zt.is(e)){if(We(`suspension-create`,e))continue;let t=await qe(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!Y.is(e))throw e;let t=Ur(e);W.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:p,errorCode:t,errorName:e.name,errorMessage:e.message});let n,i;try{await Me(),n=await le.value,i=await Sn(e,p,n,globalThis,(U?.specVersion??0)>=5),await ge({eventType:`run_failed`,specVersion:8,eventData:{error:i,errorCode:t}},{requestId:I})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}throw e}zi(p,L,i,n,t),r?.setAttributes({...w(`failed`),...v(t),...dt(e.name),...je(e.message),...ue(e.name)});return}let x=Jt(()=>(oi(H.type===`ready`),Ui(H.events))),S=rt?Js({suspension:c,serializationBlockerCount:b.serializationBlockerCount,hookContinuation:b.hasAwaitedHookCreation||b.hasHookConflict,invocationContinuation:l!==void 0}):void 0;S?.retain===!1&&(rt=null),b.hasAttributeEvents&&De===void 0&&(De=Ee),Ee+=b.hookCreationMs,W.debug(`Suspension handled`,{workflowRunId:p,suspensionMs:Date.now()-y,pendingSteps:b.pendingSteps.length,timeoutSeconds:b.waitTimeout?.seconds,hasHookConflict:b.hasHookConflict,hasAwaitedHookCreation:b.hasAwaitedHookCreation,hasAttributeEvents:b.hasAttributeEvents,...S?{workflowVmRetention:S.retain?`retained`:`replay`}:{},...S?.retain===!1?{workflowVmRetentionReason:S.reason}:{},...b.serializationBlockerCount>0?Ys(b.serializationBlockers,b.serializationBlockerCount):{}});let C=(e,t)=>{if(!rt)return!1;let n=e.filter(e=>!it.has(e));if(n.length===0)return!1;for(let e of n)it.add(e);let i=b.eventLogCarriedForward&&!x.value.openWait;return i||(oi(H.type===`ready`),H=Xs(H)),W.debug(`Continuing over a hook write in-process`,{workflowRunId:p,loopIteration:g,settles:t,hookIds:n,carriedForward:b.eventLogCarriedForward,readBeforeResume:!i}),r?.setAttributes({"workflow.hook_write_continuations":it.size}),!0};if(b.hasHookConflict){if(await b.deferredBatchWork,C(b.hookConflictCorrelationIds,`hook_conflict`))continue;if([...b.inlineClaims.values()].some(e=>e.owned)){H=Xs(H);continue}return await Re(0)}if(b.hasAttributeEvents){H=Xs(H);continue}if(b.failedStepCorrelationIds.size>0){await b.deferredBatchWork,rt=null,H=Xs(H);continue}let T=b.pendingSteps;if(m&&b.waitTimeout!==void 0&&T.length===0&&!b.hasAwaitedHookCreation&&x.value.openWait){W.debug(`Re-reading the event log before parking on a wait over an inline delta`,{workflowRunId:p,loopIteration:g,waitCorrelationId:b.waitTimeout.correlationId}),r?.setAttributes({"workflow.wait_park_reread":!0}),H=Xs(H);continue}let E=b.lazyInlineSteps,D=new Set(E.map(e=>e.correlationId)),O=await re(),k=[],A=Gn(),j=Date.now(),M=[],F=0,R=0;for(let e of b.queuedStepCorrelationIds)at.add(e);let ne=P!==void 0&&E.length===0&&!T.some(e=>!D.has(e.correlationId)&&A&&ka(e)&&e.ownerMessageId===a.messageId);for(let e of T){if(D.has(e.correlationId)||b.queuedStepCorrelationIds.has(e.correlationId))continue;let r=A&&ka(e);if(r&&e.ownerMessageId===a.messageId){M.push(e);continue}let i=r?Aa(e,j):0;if(i>0){F++,W.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:p,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),k.push(cr(t,gr(L,n),{runId:p,traceCarrier:O,requestedAt:new Date},{delaySeconds:i,idempotencyKey:ja(e)}));continue}if(at.has(e.correlationId)&&e.sawRetrying!==!0){R++;continue}at.add(e.correlationId);let o=ne?da(P):void 0;o&&(ne=!1,P=void 0),k.push(cr(t,gr(L,n),{runId:p,stepId:e.correlationId,stepName:e.stepName,traceCarrier:O,requestedAt:new Date,runContext:Cr(U),...o?{hookResumeTiming:o}:{}},{idempotencyKey:Rn(e.correlationId,e.stepName)}))}if(b.waitTimeout){let e=N?.correlationId===b.waitTimeout.correlationId?N.attempt+1:0;k.push(cr(t,gr(L,n),{runId:p,traceCarrier:O,requestedAt:new Date,waitContinuation:{correlationId:b.waitTimeout.correlationId,attempt:e}},Ba(b.waitTimeout.seconds,b.waitTimeout.correlationId,Date.now(),e)))}let ie=Promise.all(k);ie.catch(()=>{});let z=[...E.map(e=>{let t=b.inlineClaims.get(e.correlationId);return t?{correlationId:e.correlationId,stepName:e.stepName,preclaimedStart:t}:{correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput}}),...M.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((F>0||M.length>0||R>0)&&r?.setAttributes({...M.length>0?Oe(M.length):{},...F>0?he(F):{},...R>0?ee(R):{}}),R>0&&W.debug(`Skipped re-publishing step messages this invocation already published on an earlier replay pass`,{workflowRunId:p,loopIteration:g,republishesSkipped:R}),M.length>0&&W.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:p,stepIds:M.map(e=>e.correlationId)}),z.length===0){if(await Promise.all([ie,b.deferredBatchWork]),b.hasAwaitedHookCreation){if(C(b.awaitedHookCorrelationIds,`hook_created`))continue;return await Re(0)}if(l&&Date.now()-s<d&&await l.waitForActivity(e)){H=Xs(H);continue}return}let B=x.value,se=Gi(B,f)||b.waitTimeout!==void 0&&!(b.waitTimeout.resumeAtMs>f),ce=typeof H.cursor==`string`&&c.stepCount===1&&T.length===1&&E.length===1&&M.length===0&&!se;ce&&(B.openWait||b.waitTimeout!==void 0)&&r?.setAttributes({"workflow.inline_delta_over_pending_wait":!0});let V=B.openHook||c.hookCount>0||b.hasHookEvents,de=ke&&!b.hasAttributeEvents&&!b.waitTimeout&&!b.hasHookEvents&&!b.hasAwaitedHookCreation&&!B.openHook&&!B.openWait,fe=ya({events:H.events,invocationStartedClean:we===!0,runCreatedAtMs:ma(p)??(ke?void 0:+U.createdAt),runStartedReceivedAtMs:Te,replayMs:h,preStepBlockingMs:Ee,preStepBlockingBeforeAttrMs:De,suspensionHasWaits:c.waitCount>0||b.waitTimeout!==void 0,suspensionCreatedHooks:c.hookCount>0||b.hasHookEvents,turbo:ke,retained:o}),pe=P;P=void 0,oe.pause();let me,_e=z.map((e,n)=>{let r=()=>(oi(H.type===`ready`),Oa({world:t,workflowRunId:p,workflowDeploymentId:U.deploymentId,workflowName:L,workflowStartedAt:Ce,requestId:I,rootRunId:Ln(U.attributes,p),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:U.specVersion,authoritativeAttempt:e.lazyStepInput!==void 0||e.preclaimedStart!==void 0?1:xi(H.events,e.correlationId,{type:`ownedBy`,messageId:a.messageId})+1,lazyStepInput:e.lazyStepInput,preclaimedStart:e.preclaimedStart,ownerMessageId:a.messageId,forceOptimisticStart:de,suppressOptimisticStart:V,runReadyBarrier:Ae,...n===0&&(e.lazyStepInput!==void 0||e.preclaimedStart!==void 0)&&fe?{latencyTracking:fe}:{},...pe?{resumeTracking:pe}:{},...ce&&H.cursor?{inlineDeltaSinceCursor:H.cursor}:{},replayRecoveryReporter:ae}));Fe.add(e.correlationId);let i=e.lazyStepInput!==void 0||e.preclaimedStart!==void 0;return Pa(p,e.correlationId,r,i?`debug`:`warn`).finally(()=>Fe.delete(e.correlationId))});for(let e of _e)e.catch(()=>{});try{try{await Promise.all([ie,b.deferredBatchWork])}catch(e){throw await Promise.allSettled(_e),e}me=await Promise.all(_e)}catch(e){if(zt.is(e)){if(We(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(_e)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await qe(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{oe.resume()}let ve=[],ye=!1,be;for(let e=0;e<z.length;e++){let t=me[e],n=z[e];t.type===`retry`?ve.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?be=Math.max(be??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(ye=!0)}if(be!==void 0)return await Re(be);if(ve.length>0){let e=await re();await Promise.all(ve.map(({step:r,delaySeconds:i})=>cr(t,gr(L,n),{runId:p,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date,runContext:Cr(U)},{delaySeconds:i,idempotencyKey:Rn(r.correlationId,r.stepName)})))}if(ye){W.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:p,loopIteration:g}),await cr(t,gr(L,n),{runId:p,traceCarrier:await re(),requestedAt:new Date});return}if(ve.length>0)return;if(z.length===1){let e=me[0];if(e.type===`completed`&&e.inlineDelta){sr(H,e.inlineDelta),m=!e.inlineDelta.hasMore,H=e.inlineDelta.hasMore?Xs(H):{...H,type:`ready`};continue}}H=Xs(H)}else{let e=c;if(zt.is(c)){if(We(`replay-write`,c))continue;let t=await qe(`replay-write`,c);if(t.reinvoked)return t.result;e=t.error}if(Zr(c))throw R.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:c instanceof Error?c.name:`UnknownError`,errorMessage:c instanceof Error?c.message:String(c),deliveryAttempt:a.attempt}),c;let s,l={};if(Wt.is(c)){let r=(S?.count??0)+1,i=tr(),u=[...S?.eventIds??(S?[S.eventId]:[]),c.eventId].slice(-(i+1));if(l={errorCode:q.REPLAY_DIVERGENCE,divergenceEventId:c.eventId,priorDivergenceEventId:S?.eventId,divergenceEventIds:u,divergenceCount:r,deliveryAttempt:a.attempt,maxRecoveryReplays:i,loopIteration:g,servedByRetainedSession:o,eventLogState:H.type,eventLogLength:H.type===`loadAll`?void 0:H.events.length,eventLogLastEventId:H.type===`loadAll`?void 0:H.events.at(-1)?.eventId,cursor:H.type===`ready`?H.cursor??void 0:H.type===`loadAfter`?H.cursor:void 0,hasHookInput:k!==void 0,hasWaitContinuation:N!==void 0,isRecoveryReplay:S!==void 0,setupSource:P?.setupSource},r<=i){R.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{...l,errorMessage:c.message}),await cr(t,gr(L,n),{runId:p,traceCarrier:await re(),requestedAt:new Date,replayDivergence:{eventId:c.eventId,count:r,eventIds:u}});return}s=r,e=new Ut(`Workflow replay diverged ${r} times after ${i} recovery replays; latest divergent event was ${c.eventId}; divergent event ids: ${u.join(`, `)}. Last divergence: ${c.message}`,{cause:c})}else i>0&&ae.activate();e instanceof Error&&r?.recordException?.(e);let u=await Ni(e),d=u.name||Si(e),f=u.message,m=u.stack||wi(e);if(m){let e=Ve(L)?.moduleSpecifier||L;m=qo(m,e,Qe)}let h=Ur(e);W.error(`Error while running workflow`,{...l,workflowRunId:p,errorCode:h,errorName:d,errorMessage:f,errorStack:m,errorCause:Ei(e)||void 0}),ai.isNativeError(e)&&m&&ha(e,m);let _,y;try{await Me(),_=await le.value,y=await Sn(e,p,_,globalThis,(U?.specVersion??0)>=5),await ge({eventType:`run_failed`,specVersion:8,eventData:{error:y,errorCode:h}},{requestId:I,...s===void 0?{}:{replayDivergenceCount:s}})}catch(e){if(X.is(e)||J.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:p,message:e.message});return}if(Jr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:p,errorCode:q.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}zi(p,L,y,_,h),r?.setAttributes({...w(`failed`),...v(h),...dt(d),...je(f),...ue(d)});return}}}})}))})),d,f=0,p=Date.now(),m=typeof t?.routeModuleBodyStartedAt==`number`?p-t.routeModuleBodyStartedAt:void 0;return Yn(async e=>{f+=1;let t=d!==void 0,n=await ke(`SERVER`);return G(`workflow.route.flow`,{kind:n,attributes:{...gt(`flow`),...O(yi),...Re(t),...Ie(f),...Ye(Date.now()-p),...m===void 0?{}:xe(m),...oe(e.method),...P(`/.well-known/workflow/v1/flow`)}},async t=>{d||=await G(`workflow.route.init`,async()=>{let e=await G(`workflow.route.get_world_handlers`,async()=>na());return l(e)});let n=await d(e);return n instanceof Response&&t?.setAttributes(j(n.status)),n})})}export{ei as Run,qt as WorkflowSuspension,Qr as cancelRun,Kr as cancelRuns,ea as createWorld,Qi as createWorldFromModule,zr as getHookByToken,Yr as getRun,na as getWorld,ta as getWorldHandlers,ur as healthCheck,Br as listStreams,Xr as readStream,$r as recreateRunFromExisting,Vr as reenqueueRun,Fr as resumeHook,Lr as resumeWebhook,ra as setWorld,ti as start,qr as wakeUpRun,$s as workflowEntrypoint};
|