eve 0.38.0 → 0.38.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 +17 -0
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +5 -5
- package/dist/src/compiled/@workflow/core/events-consumer.d.ts +97 -0
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +35 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +127 -93
- package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +8 -9
- package/dist/src/compiled/@workflow/core/runtime/replay-budget.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/runtime/resume-latency.d.ts +143 -0
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +27 -12
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +39 -8
- package/dist/src/compiled/@workflow/core/runtime/world-compatibility.d.ts +6 -5
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +81 -0
- package/dist/src/compiled/@workflow/core/test-support/orchestrator-context.d.ts +25 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/errors/index.d.ts +18 -2
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/analytics.d.ts +9 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +76 -87
- package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +45 -45
- package/dist/src/compiled/@workflow/world/queue.d.ts +86 -0
- package/dist/src/compiled/@workflow/world/slot-identity.d.ts +15 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +30 -18
- package/dist/src/compiled/@workflow/world/test-support/duplicate-event-fixtures.d.ts +41 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +12 -12
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-DZtQkszH.js → attribute-changes-B8K0pwpH.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{dist-CPlyFOVo.js → dist-BRGbNjhD.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{dist-xQXN70ED.js → dist-CqvWKNQv.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/frames-DoexhtxJ.js +3 -0
- package/dist/src/compiled/_chunks/workflow/private-z_2Kcwee.js +1 -0
- package/dist/src/compiled/_chunks/workflow/resume-hook-DO_MuJlY.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-lq7-eG0l.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-7TgF3i-e.js +1 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-BPSgt1Wg.js +15 -0
- package/dist/src/compiled/_chunks/workflow/ws-transport-TYZ9zwoZ.js +1 -0
- package/dist/src/compiler/extension-compatibility.d.ts +5 -0
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/model-catalog.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-extension.d.ts +10 -1
- package/dist/src/compiler/normalize-extension.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +1 -0
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/discover-subagent.js +1 -1
- package/dist/src/execution/create-session-step.d.ts +1 -0
- package/dist/src/execution/create-session-step.js +1 -1
- package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +1 -1
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/session-callback-step.d.ts +8 -0
- package/dist/src/execution/session-callback-step.js +1 -1
- package/dist/src/execution/session.d.ts +2 -0
- package/dist/src/execution/session.js +1 -1
- package/dist/src/execution/task-event-callback.d.ts +5 -6
- package/dist/src/execution/task-event-callback.js +1 -1
- package/dist/src/execution/tasks/child/instructions.d.ts +3 -0
- package/dist/src/execution/tasks/child/instructions.js +1 -0
- package/dist/src/execution/tasks/child/steps.d.ts +7 -1
- package/dist/src/execution/tasks/child/steps.js +1 -1
- package/dist/src/execution/tasks/child/update.d.ts +10 -0
- package/dist/src/execution/tasks/child/update.js +1 -0
- package/dist/src/execution/tasks/child/workflow.d.ts +3 -3
- package/dist/src/execution/tasks/child/workflow.js +1 -1
- package/dist/src/execution/tasks/parent/agent-views.js +1 -1
- package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch-task-step.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
- package/dist/src/execution/tasks/parent/dispatch.d.ts +5 -3
- package/dist/src/execution/tasks/parent/dispatch.js +1 -1
- package/dist/src/execution/workflow-entry.js +1 -1
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/harness/advertised-tools.d.ts +3 -0
- package/dist/src/harness/advertised-tools.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/authored-module-map-loader.js +1 -1
- package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/public/channels/mcp.d.ts +2 -2
- package/dist/src/public/channels/mcp.js +1 -1
- package/dist/src/runtime/framework-tools/index.js +1 -1
- package/dist/src/runtime/framework-tools/tasks.d.ts +6 -7
- package/dist/src/runtime/framework-tools/tasks.js +1 -1
- package/dist/src/runtime/prompt/compose.js +1 -1
- package/dist/src/runtime/session-callback-route.js +1 -1
- package/dist/src/setup/scaffold/create/extension.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/tasks/task-id.d.ts +1 -2
- package/dist/src/tasks/task-id.js +1 -1
- package/dist/src/tasks/task-inbox-token.d.ts +2 -0
- package/dist/src/tasks/task-inbox-token.js +1 -0
- package/dist/src/tasks/types.d.ts +9 -1
- package/dist/src/tasks/wire.d.ts +2 -3
- package/docs/channels/custom.mdx +1 -0
- package/docs/channels/mcp.mdx +185 -0
- package/docs/channels/meta.json +1 -0
- package/docs/channels/overview.mdx +6 -1
- package/docs/extensions.md +14 -6
- package/docs/guides/auth-and-route-protection.md +1 -0
- package/docs/guides/dev-tui.md +1 -0
- package/docs/instructions.mdx +1 -0
- package/docs/subagents/index.mdx +3 -1
- package/package.json +6 -6
- package/dist/src/compiled/_chunks/workflow/frames-BBs-9k1d.js +0 -3
- package/dist/src/compiled/_chunks/workflow/private-UQtz8ZcW.js +0 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-CYtSorp6.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-Cjo0A3NO.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-C1P0OWBm.js +0 -1
- package/dist/src/compiled/_chunks/workflow/wait-until-CT1ve8qB.js +0 -15
- package/dist/src/compiled/_chunks/workflow/ws-transport-beXxD0s_.js +0 -1
- package/dist/src/execution/tasks/parent/send.d.ts +0 -25
- package/dist/src/execution/tasks/parent/send.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-8V8biNmG.js";import{$ as r,$t as i,A as a,An as o,At as s,B as c,Bn as l,Bt as u,C as d,Cn as f,Ct as p,D as m,Dn as h,Dt as g,E as _,En as v,Et as y,Fn as b,Ft as x,G as S,Gn as C,Gt as w,H as T,Ht as E,It as D,J as O,Jt as k,K as A,Kt as j,L as M,Ln as N,Lt as P,M as F,Mt as I,Nt as L,O as R,On as z,Ot as ee,Pt as B,Q as V,Qt as H,R as te,Rn as ne,Rt as U,S as re,Sn as ie,St as ae,Tn as oe,Tt as se,U as ce,Ut as le,Vt as ue,W as de,Wt as fe,X as pe,Xn as me,Xt as he,Y as ge,Yn as _e,Yt as W,Z as G,Zt as ve,_ as ye,_n as be,a as xe,an as Se,ar as Ce,at as we,bn as Te,bt as Ee,c as De,cn as Oe,ct as ke,d as Ae,dn as je,en as Me,et as Ne,f as Pe,fn as Fe,fr as Ie,ft as Le,g as Re,gn as ze,h as Be,hn as Ve,ht as He,i as Ue,in as We,ir as Ge,it as Ke,jt as qe,k as Je,kn as K,kt as Ye,l as Xe,ln as Ze,lt as Qe,m as $e,mn as et,mr as tt,mt as nt,nn as rt,nr as it,nt as at,o as ot,on as st,or as ct,p as lt,pn as ut,pr as dt,pt as ft,q as pt,qt as mt,r as ht,rn as gt,rr as _t,rt as vt,s as yt,sn as bt,sr as xt,t as St,tn as Ct,tt as wt,u as Tt,un as Et,ut as Dt,v as Ot,vn as kt,wn as At,wt as jt,x as Mt,xn as Nt,y as Pt,yn as Ft,yt as It,z as Lt,zt as Rt}from"../../_chunks/workflow/wait-until-CT1ve8qB.js";import{A as zt,D as q,O as Bt,S as Vt,_ as Ht,a as Ut,b as Wt,c as Gt,d as J,g as Kt,i as Y,k as X,l as Z,m as qt,n as Jt,o as Yt,r as Q,s as Xt,t as Zt,u as Qt}from"../../_chunks/workflow/dist-xQXN70ED.js";import{a as $t,c as en,i as tn,l as nn,n as rn,s as an,t as on}from"../../_chunks/workflow/private-UQtz8ZcW.js";import{n as sn,t as cn}from"../../_chunks/workflow/dist-DpYyXbJv.js";import{a as ln,n as un}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{d as dn,l as fn,n as pn,s as mn,u as hn}from"../../_chunks/workflow/attribute-changes-DZtQkszH.js";import{S as gn,W as _n,Y as vn,a as yn,b as bn,o as xn,q as Sn,s as Cn,y as wn}from"../../_chunks/workflow/dist-CPlyFOVo.js";import{t as Tn}from"../../_chunks/workflow/env-config-DxamfI7T.js";import{t as En}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{n as Dn,r as On,t as kn}from"../../_chunks/workflow/resume-hook-CYtSorp6.js";import{a as An,c as jn,d as Mn,i as Nn,l as Pn,n as Fn,o as In,r as Ln,s as Rn,t as zn,u as Bn}from"../../_chunks/workflow/run-Cjo0A3NO.js";import{t as Vn}from"../../_chunks/workflow/run-id-BdE0MZz9.js";import{createRequire as Hn}from"node:module";import{createHash as Un}from"node:crypto";import{types as Wn}from"node:util";import Gn from"node:assert/strict";import{pathToFileURL as Kn}from"node:url";import{Script as qn,createContext as Jn,runInContext as Yn}from"node:vm";function Xn(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function Zn(e){return e===`vercel`||e===`@workflow/world-vercel`}var Qn=e(sn(),1);function $n(e){return e instanceof hn||e instanceof fn||e instanceof dn||e instanceof pn}const er=`The workflow event log contains orphaned or mismatched events and cannot be replayed. This is an internal workflow SDK error; please report it with the runId.`;function tr(e,t){let n=t??Mt(e);return qt.is(e)?{attribution:`user`,errorCode:n,hint:`A value passed across a workflow/step boundary could not be serialized. See the error message for the offending path and the Learn More link for details.`}:$n(e)?{attribution:`user`,errorCode:n,hint:`A workflow-only or step-only API was called from the wrong context. The error message includes the exact API and how to move the call.`}:Zt.is(e)?{attribution:`sdk`,errorCode:n,hint:er}:n===X.DEPLOYMENT_MISMATCH?{attribution:`sdk`,errorCode:n,hint:`The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.`}:e instanceof q?{attribution:`sdk`,errorCode:n,hint:`This is an internal workflow SDK error, not a bug in your code. If it keeps happening, please report it with the stack trace and the runId.`}:n===X.REPLAY_TIMEOUT?{attribution:`sdk`,errorCode:n,hint:'The workflow replay between step boundaries took too long. This bounds workflow-VM and event-log replay time only — step bodies (`"use step"` functions) are excluded. This usually means the event log is unusually large or the workflow function is doing heavy synchronous work in workflow code outside of step bodies. Override the default budget via the WORKFLOW_REPLAY_TIMEOUT_MS env var if needed.'}:n===X.MAX_DELIVERIES_EXCEEDED?{attribution:`sdk`,errorCode:n,hint:`The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.`}:n===X.MAX_EVENTS_EXCEEDED?{attribution:`user`,errorCode:n,hint:`The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.`}:n===X.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:er}:n===X.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}const nr=4096;function rr(e){if(e===null)return!0;let t=typeof e;return t===`object`||t===`function`?!1:t===`string`?e.length<=nr:t!==`bigint`||e.toString().length<=nr}var ir=class{encryptionKey;preparer;preparedPayloads=new Map;primitiveStepResults=new Map;nextUnscannedEventIndex=0;constructor(e,t=T){this.encryptionKey=e,this.preparer=t}async prewarm(e,t){let n=[],r=(e,t)=>{t instanceof Uint8Array&&(this.preparedPayloads.has(e)||n.push(this.ensurePreparation(e,t)))};r(this.workflowInputKey(e.runId),e.input);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let n=t[e];switch(n.eventType){case`step_completed`:r(this.eventPayloadKey(n.eventId,`result`),n.eventData?.result);break;case`step_failed`:r(this.eventPayloadKey(n.eventId,`error`),n.eventData?.error);break;case`hook_received`:r(this.eventPayloadKey(n.eventId,`payload`),n.eventData?.payload);break}}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return rr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,this.encryptionKey)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const ar=`cinst_${Cn()}`;function or(){return Tn(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const sr=24e4,cr=3e4,lr=78e4,ur=new Set;function dr(e,t,n){ur.has(e)||(ur.add(e),G.warn(t,n))}function fr(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return sr;let t=Number(e);return!Number.isFinite(t)||t<=0?(dr(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:sr}),sr):t<3e4?(dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:cr,minMs:cr}),cr):t>78e4?(dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:lr,maxMs:lr}),lr):t}function pr(){return Tn(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}const mr=new Set;function hr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(mr.has(e)||(mr.add(e),G.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(mr.has(e)||(mr.add(e),G.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}const gr=new Set;function _r(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){gr.has(e)||(gr.add(e),G.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function vr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function yr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function br(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function xr(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Sr(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Cr(){return Tn(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function wr(){return Tn(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function Tr(){return Tn(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function Er(){return Tn(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function Dr(){return Tn(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function Or(){return Tn(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const kr=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function Ar(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=kr(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}const jr={outcome:`continue`};function Mr(e,t,n){return{outcome:e,spanAttributes:{...Nt(t),...Ct(n),...Me(e===`rerouted`)}}}async function Nr({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return jr;let s=await e.getDeploymentId();if(t.deploymentId===s)return jr;await o?.();let c=Or(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new Wt(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:X.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!Q.is(e)&&!J.is(e))throw e}return Mr(`failed`,t.deploymentId,r)};if(i&&r<c){let e=r+1,n=Math.min(2**r,8);try{return await i({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),G.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),Mr(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return G.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...l,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),u(0,t)}}return G.error(r>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,l),u(r)}function Pr(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function Fr(){try{return Hn(Kn(process.cwd()+`/package.json`).href)}catch{return Hn(import.meta.url)}}const Ir=Symbol.for(`@workflow/world//cache`),Lr=Symbol.for(`@workflow/world//stubbedCache`),Rr=Symbol.for(`@workflow/world//cachePromise`),zr=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function Br(e){if(typeof e.createWorld==`function`)return e.createWorld();if(typeof e.default==`function`)return e.default();if(e.default&&typeof e.default==`object`)return e.default;throw Error(`Invalid target world module: must export createWorld(), a default factory, or a default World instance.`)}function Vr(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return Kn(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return Kn(process.cwd()+`/`+e).href;try{return Kn(Fr().resolve(e)).href}catch{return e}}const Hr=async()=>{let e=Xn();if(Zn(e)){let e=[`WORKFLOW_VERCEL_PROJECT`,`WORKFLOW_VERCEL_TEAM`,`WORKFLOW_VERCEL_AUTH_TOKEN`,`WORKFLOW_VERCEL_ENV`].filter(e=>process.env[e]);return e.length>0&&process.env.VERCEL===`1`&&console.warn(`[workflow] Warning: ${e.join(`, `)} env var(s) are set but have no effect at runtime. These are only used by the Workflow CLI. Remove them from your Vercel project environment variables.`),Pr()}if(e===`local`)return Pr({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=Fr()(e)}catch{t=await import(Vr(e))}if(typeof t==`function`)return t();try{return await Br(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},Ur=async()=>{if($[Lr])return C($[Lr]),$[Lr];$[zr]||($[zr]=Hr().catch(e=>{throw $[zr]=void 0,e}));let e=await $[zr];return C(e),$[Lr]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},Wr=async()=>$[Ir]?(C($[Ir]),$[Ir]):($[Rr]||($[Rr]=Hr().catch(e=>{throw $[Rr]=void 0,e})),$[Ir]=await $[Rr],C($[Ir]),$[Ir]),Gr=e=>{$[Ir]=e,$[Lr]=e,$[Rr]=void 0,$[zr]=void 0},Kr=Symbol.for(`@workflow/world//getWorldFn`);globalThis[Kr]??=Wr;var qr=class{limitMs;elapsedMs=0;intervalStart;constructor(e=fr()){this.limitMs=e,this.intervalStart=Date.now()}get configuredLimitMs(){return this.limitMs}elapsed(){let e=this.intervalStart===null?0:Date.now()-this.intervalStart;return this.elapsedMs+e}pause(){this.intervalStart!==null&&(this.elapsedMs+=Date.now()-this.intervalStart,this.intervalStart=null)}resume(){this.intervalStart=Date.now()}isExhausted(){return this.elapsed()>=this.limitMs}},Jr=class extends Error{name=`ReplayTimeoutRetryError`};async function Yr(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a}=e,o=G.forRun(t,n),s=pr();if(i<=s)throw o.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:s}),new Jr(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let c=await Wr(),l=tr(void 0,X.REPLAY_TIMEOUT);o.error(`Workflow replay exceeded timeout and max retries exceeded. Failing the run`,{timeoutMs:a,attempt:i,maxRetries:s,errorCode:l.errorCode,errorAttribution:l.attribution});let u=Pe(c,t),d=new Y(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await c.events.create(t,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(d,t,await u()),errorCode:X.REPLAY_TIMEOUT}},{requestId:r})}var Xr=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new Zr}activate(){this.active=!0}async withEventCreate(e,t){if(!this.active||this.reported)return t(e);this.reported=!0;try{return await t({...e,replayDivergenceCount:this.divergenceCount})}catch(e){throw this.reported=!1,e}}},Zr=class extends Xr{constructor(){super(0)}activate(){}};function Qr(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return yn(Vn(t).ulid)}catch{return}}function $r(e){return Wn.isNativeError(e)?e.name:`Error`}function ei(e){return Wn.isNativeError(e)?e.stack??``:``}function ti(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function ni(e){if(!ti(e)||Y.is(e))return e;let t=new Y(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function ri(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function ii(e){if(Wn.isNativeError(e))return{name:e.name,message:e.message,stack:e.stack??``};if(typeof e==`string`)return{name:`Error`,message:e,stack:``};try{return{name:`Error`,message:JSON.stringify(e),stack:``}}catch{return{name:`Error`,message:String(e),stack:``}}}async function ai(e){if(ri(e))try{let t=await ai(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await ai(e);return{...t,message:`Promise rejection: ${t.message}`}}return ii(e)}let oi,si,ci;async function li(){if(si!==void 0)return si;if(ci)return ci;if(!oi)try{let e=[`@workflow/utils`,`get-port`].join(`/`);oi=Hn(Kn(process.cwd()+`/package.json`).href)(e).getPort}catch{oi=async()=>void 0}return ci=(oi??(async()=>void 0))().then(e=>(typeof e==`number`&&(si=e),e)).finally(()=>{ci=void 0}),ci}const ui=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function di(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(ui.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(!(!n&&i===void 0))return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs,replayMs:e.replayMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},turbo:e.turbo}}function fi(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}function pi(e,t){if(t&&!(!e.events||e.cursor===void 0))return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function mi(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:o,stepName:c}=e,l=!!process.env.VERCEL_URL,d=(e.runSpecVersion??0)>=5,f=e.replayRecoveryReporter??Xr.inert(),p=(e,r)=>f.withEventCreate(r,r=>t.events.create(n,e,r));return ke(`step.execute ${dt(c)}`,{},async f=>{f?.setAttributes({...ue(c),...Oe(r),...Te(n),...U(o)});let m=Pe(t,n),h=rn(c);if(!h||typeof h!=`function`){let t=`Step "${c}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(G.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:c,stepId:o}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},{computeInstanceId:ar})}catch(e){if(Q.is(e))return{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(new Y(t),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...D(!0)}),{type:`failed`}}let g=h.maxRetries??3;if(f?.setAttributes({...u(g)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>g+1){let t=g,r=`Step "${c}" exceeded max retries (${t} ${zt(`retry`,`retries`,t)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,stepId:o,attempt:e.authoritativeAttempt,maxRetries:g});try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(new Y(r),n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return G.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(J.is(e))return{type:`gone`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}let v=e=>{if(Kt.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return G.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(J.is(e))return G.info(`Workflow run "${n}" has already completed, skipping step "${o}": ${e.message}`),{type:`gone`};if(Q.is(e))return G.debug(`Step in terminal state, skipping`,{stepName:c,stepId:o,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),f?.setAttributes({...k(!0),...mt(`completed`)}),{type:`skipped`};if(Ht.is(e)){let t=Math.max(1,e.retryAfter??1);return G.debug(`Step retryAfter timestamp not yet reached`,{stepName:c,stepId:o,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},y=e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(vr()||e.forceOptimisticStart===!0&&!yr()),b,S={computeInstanceId:ar,...e.preconditionSnapshot},C,T,O=async()=>{if(!T)return;let e=await T;if(e.ok)return;let t=v(e.err);if(!t)throw e.err;return t};if(y){T=(e.runReadyBarrier??Promise.resolve()).then(()=>(C=Date.now(),p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},S))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;b={runId:n,stepId:o,stepName:c,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};C=Date.now(),b=(await p({eventType:`step_started`,specVersion:5,correlationId:o,eventData:e.lazyStepInput===void 0?{stepName:c,...t}:{stepName:c,workflowName:r,input:e.lazyStepInput,...t}},S)).step}catch(e){let t=v(e);if(t)return t;throw e}G.debug(`Step execution details`,{stepName:c,stepId:b.stepId,status:b.status,attempt:b.attempt}),f?.setAttributes({...W(b.status)});let A;if(b.attempt>g+1&&b.error){let e=b.attempt-1,t=`Step "${c}" exceeded max retries (${e} ${zt(`retry`,`retries`,e)})`;V.error(`Step exceeded max retries`,{workflowRunId:n,stepName:c,retryCount:e});let r=new Y(t);if(b.error!=null)try{r.cause=await te(b.error,n,await m())}catch{}try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(r,n,await m(),[],globalThis,d)}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}let N=[],F=[],R=!0,z,ee=()=>{if(!z||z.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t===void 0||C===void 0||(z.rsfs=Math.max(0,C-t),f&&f.setAttributes({...j(z.rsfs)}))};try{let t=b.attempt;if(!b.startedAt)throw new q(`Step "${o}" has no "startedAt" timestamp`);let u=b.startedAt,p=e.encryptionKey??await m(),g=await ke(`step.hydrate`,{},async t=>{let r=Date.now(),i=await M(b.input,n,p,F,globalThis,{},e.workflowDeploymentId),a=Date.now()-r;return t?.setAttributes({...I(i.args.length),...Ye(a)}),i}),v=g.args,x=g.thisVal??null,S=un(l?`https://${process.env.VERCEL_URL}`:`http://localhost:${await li()??3e3}`),w,T=!1,D=Date.now();z=fi({tracking:e.latencyTracking,stepCodeStartedAtMs:D,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:y,stepStartPostSentAtMs:C}),z&&f?.setAttributes({...z.ttfs===void 0?{}:ve(z.ttfs),...z.stso===void 0?{}:he(z.stso),...z.rsfs===void 0?{}:j(z.rsfs),...z.finalSchedulingReplay===void 0?{}:P(z.finalSchedulingReplay),...Rt(z.optimizations??[])});try{A=await ke(`step.execute`,{},async()=>await pe.run({stepMetadata:{stepName:c,stepId:o,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:S,features:{encryption:!!p}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:F,preCompletionOps:N,closureVars:g.closureVars,encryptionKey:p,runReadyBarrier:y?e.runReadyBarrier:void 0},()=>h.apply(x,v)))}catch(e){w=e,T=!0}let k=Date.now()-D;if(_(...v,x,g.closureVars),T)throw w;if(f?.setAttributes({...s(k)}),A=await ke(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await a(A,n,p,F,globalThis,!1,!1,d,y?e.runReadyBarrier:void 0),o=Date.now()-r;return t?.setAttributes({...qe(o),...E(typeof i)}),i}),F.length>0){let e=Promise.all(F);St(e,e=>{G.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:o,error:e instanceof Error?e.message:String(e)})}),R=await Promise.race([e.then(()=>!0,e=>{if(e?.name===`AbortError`||e?.name===`ResponseAborted`)return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))])}if(y){let e=await O();if(e)return e;ee()}N.length>0&&await Promise.all(N).catch(()=>{})}catch(e){if(y){let e=await O();if(e)return e;ee()}N.length>0&&await Promise.all(N).catch(()=>{});let t=ni(e),r=await ai(t),i=r.stack||ei(t)||``;t instanceof Error&&f?.recordException?.(t);let a=Y.is(t);if(f?.setAttributes({...x($r(t)),...B(r.message),...nt($r(t)),...Le(a?`fatal`:Qt.is(t)?`retryable`:`transient`),...ft(!a)}),J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};if(a){V.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:c,errorStack:i}),Wn.isNativeError(t)&&i&&(t.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(t,n,await m(),[],globalThis,d),...z}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...D(!0)}),{type:`failed`}}let s=b.attempt;if(f?.setAttributes({...L(s),...u(g)}),s>=g+1){let t=b.attempt-1;V.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:c,attempt:b.attempt,retryCount:t,errorStack:i});let a=new Y(`Step "${c}" failed after ${g} ${zt(`retry`,`retries`,g)}: ${r.message}`);a.cause=e,i&&(a.stack=i);try{await p({eventType:`step_failed`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(a,n,await m(),[],globalThis,d),...z}})}catch(e){if(Q.is(e))return G.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}return f?.setAttributes({...W(`failed`),...le(!0)}),{type:`failed`}}Qt.is(e)?V.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,message:e.message}):V.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:c,attempt:s,errorStack:i}),Wn.isNativeError(e)&&i&&(e.stack=i);try{await p({eventType:`step_retrying`,specVersion:5,correlationId:o,eventData:{stepName:c,error:await Je(e,n,await m(),[],globalThis,d),...Qt.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(Q.is(e))return G.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};throw e}let l=Math.max(1,Qt.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return f?.setAttributes({...fe(l),...w(!0)}),{type:`retry`,timeoutSeconds:l}}let H;try{H=await p({eventType:`step_completed`,specVersion:5,correlationId:o,eventData:{stepName:c,workflowName:r,result:A,...z}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(Q.is(e))return G.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:o,stepName:c,message:e.message}),{type:`skipped`};if(J.is(e))return V.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:o,message:e.message}),{type:`gone`};throw e}let ne=pi(H,e.inlineDeltaSinceCursor!==void 0);return f?.setAttributes({...W(`completed`),...E(typeof A)}),F.length>0&&V.debug(`Step has pending ops`,{workflowRunId:n,stepName:c,opsCount:F.length}),{type:`completed`,hasPendingOps:!R,inlineDelta:ne}})}function hi(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function gi(e,t){if(e.lastStartedAt===void 0)return 0;let n=Cr(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function _i(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function vi(e,t,n){let r=new Map,i=new Set;for(let t of e)if(t.correlationId!==void 0)if(t.eventType===`step_started`){let e=`eventData`in t&&t.eventData&&`ownerMessageId`in t.eventData&&typeof t.eventData.ownerMessageId==`string`?t.eventData.ownerMessageId:void 0;r.set(t.correlationId,e)}else t.eventType===`step_retrying`&&i.add(t.correlationId);for(let e of t)if(e!==void 0&&!i.has(e)&&r.get(e)===n)return!0;return!1}const yi=new Map;async function bi(e,t,n){let r=`${e}:${t}`,i=yi.get(r);if(i){G.warn(`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await i}catch{}return{type:`skipped`}}let a=n();yi.set(r,a);try{return await a}finally{yi.delete(r)}}async function xi({runId:e,hookEvent:t,queueItem:n,requestId:r,createEvent:i}){try{return(await i(t,{requestId:r})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(Q.is(t))return G.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(J.is(t))return G.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(Ci(t)){let e=new Y(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Si({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s}){let c=n.runId,l=async()=>{if(o)try{await o}catch{}},u=async e=>{let t=(await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(t.length!==0)throw t.find(e=>Gt.is(e))??t[0]},d=s??Xr.inert(),f=(e,n)=>d.withEventCreate(n,n=>t.events.create(c,e,n)),p=0,m=async(e,t)=>{if(!a)return f(e,t);let n=a,r=await f(e,{...t,...Re(n.events,n.cursor)});if(r.events?.length&&r.hasMore!==!0){let t=lt(n.events,r.events);p+=t,t>0&&G.debug(`Suspension write skipped occupied slots`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,reported:t})}else r.events?.length&&G.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:c,eventType:e.eventType,eventId:r.event?.eventId,offered:r.events.length});return r},h=e.steps.filter(e=>e.type===`step`),g=e.steps.filter(e=>e.type===`hook`),_=e.steps.filter(e=>e.type===`wait`),v=e.steps.filter(e=>e.type===`attribute`),y=g.filter(e=>!e.hasCreatedEvent),b=new Map;for(let e of g){if(e.hasCreatedEvent&&!e.disposed)continue;let t=b.get(e.token);t?t.push(e):b.set(e.token,[e])}let x=await t.getEncryptionKeyForRun?.(n),S=x?await xt(x):void 0,C=(n.specVersion??0)>=5;async function w(e){let t={eventType:`hook_disposed`,specVersion:5,correlationId:e.correlationId,eventData:{token:e.token}};try{await m(t,{requestId:i})}catch(t){if(Q.is(t))G.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(J.is(t))G.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(Yt.is(t))G.info(`Hook not found for disposal, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}}let T=!1,E=!1,D=0;if(b.size>0){let t=Date.now();await l(),await u([...b.values()].map(async t=>{for(let n of t){let t=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await R(n.metadata,c,S,e.globalThis,!1,C),a={eventType:`hook_created`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0}}},o=await xi({runId:c,hookEvent:a,queueItem:n,requestId:i,createEvent:m});T||=o.hasHookConflict,E||=o.hasAwaitedHookCreation,t=o.hasHookConflict}n.disposed&&!t&&await w(n)}})),D=Date.now()-t}let k=g.filter(e=>e.abortRequested&&!e.disposed);k.length>0&&(await l(),await u(k.map(async n=>{try{let r=await R({aborted:!0,reason:n.abortReason},c,S,e.globalThis,!1,C);await m({eventType:`hook_received`,specVersion:5,correlationId:n.correlationId,eventData:{token:n.token,payload:r}});try{let e=O(n.token);await t.streams.write(c,e,r),await t.streams.close(c,e)}catch{G.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:c,correlationId:n.correlationId})}}catch(e){if(Q.is(e)||J.is(e))G.info(`Workflow run already completed, skipping abort`,{workflowRunId:c,correlationId:n.correlationId,message:e.message});else throw e}})));let A=new Set(h.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),j=new Set,M={executions:[]},N=new Set(E===!1?h.filter(e=>A.has(e.correlationId)).slice(0,hr()).map(e=>e.correlationId):[]),P=new Map,F=[];for(let t of h)A.has(t.correlationId)&&F.push((async()=>{let r={executions:[]},a=await R({args:t.args,closureVars:t.closureVars,thisVal:t.thisVal},c,S,e.globalThis,!1,C,r);if(M.executions.push(...r.executions),N.has(t.correlationId)){P.set(t.correlationId,{correlationId:t.correlationId,stepName:t.stepName,dehydratedInput:a});return}let o={eventType:`step_created`,specVersion:5,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}};try{await l(),await m(o,{requestId:i}),j.add(t.correlationId)}catch(e){if(Q.is(e))G.info(`Step already exists, continuing`,{workflowRunId:c,correlationId:t.correlationId,message:e.message});else throw e}})());for(let e of _)e.hasCreatedEvent||F.push((async()=>{let t={eventType:`wait_created`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};try{await l(),await m(t,{requestId:i})}catch(t){if(Q.is(t))G.info(`Wait already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else throw t}})());for(let e of v)F.push((async()=>{try{await l(),await m({eventType:`attr_set`,specVersion:5,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(Q.is(t))G.info(`Workflow attribute event already exists, continuing`,{workflowRunId:c,correlationId:e.correlationId,message:t.message});else if(Ci(t)){let e=new Y(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await u(F);let I=M.executions.length===0;I||G.debug(`Serializing step inputs executed workflow code; falling back to replay instead of retaining the VM`,{workflowRunId:c,executions:M.executions.slice(0,5).map(e=>e.detail?`${e.kind}(${e.detail})`:e.kind)});let L=[];for(let e of N){let t=P.get(e);t&&L.push(t)}let ee=Date.now(),B;for(let e of _){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-ee),r=Math.ceil(n/1e3);(!B||r<B.seconds)&&(B={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...ie(`workflow_suspended`),...At(h.length),...bt(y.length),...z(_.length)}),{pendingSteps:h,createdStepCorrelationIds:j,lazyInlineSteps:L,waitTimeout:T?void 0:B,hasHookConflict:T,hasAwaitedHookCreation:E,hasAttributeEvents:v.length>0,hasHookEvents:y.length>0,hookCreationMs:D,retainedStepInputsSafe:I,reportedEventCount:p}}function Ci(e){return e instanceof Sn||e instanceof Error&&e.name===`AttributeValidationError`||Bt.is(e)&&e.status===400}const wi=()=>Tn(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),Ti=()=>Tn(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function Ei(e,t,n=Date.now()){let r=wi();if(e<=Math.min(Ti(),r))return{delaySeconds:e,idempotencyKey:`${t}:${Math.floor(n/1e3)}`};let i=Math.ceil(e/r);return{delaySeconds:Math.min(e,r),idempotencyKey:i===1?t:`${t}:hop-${i}`}}var Di=44,Oi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ki=new Uint8Array(64),Ai=new Uint8Array(128);for(let e=0;e<Oi.length;e++){let t=Oi.charCodeAt(e);ki[e]=t,Ai[t]=e}function ji(e,t){let n=0,r=0,i=0;do i=Ai[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function Mi(e,t){return e.pos>=t?!1:e.peek()!==Di}var Ni=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Pi(e){let{length:t}=e,n=new Ni(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=ji(n,i),i<u&&(l=!1),u=i,Mi(n,e)?(a=ji(n,a),o=ji(n,o),s=ji(n,s),Mi(n,e)?(c=ji(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Fi(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Fi(e){e.sort(Ii)}function Ii(e,t){return e[0]-t[0]}const Li=/^[\w+.-]+:\/\//,Ri=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,zi=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function Bi(e){return Li.test(e)}function Vi(e){return e.startsWith(`//`)}function Hi(e){return e.startsWith(`/`)}function Ui(e){return e.startsWith(`file:`)}function Wi(e){return/^[.?#]/.test(e)}function Gi(e){let t=Ri.exec(e);return qi(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function Ki(e){let t=zi.exec(e),n=t[2];return qi(`file:`,``,t[1]||``,``,Hi(n)?n:`/`+n,t[3]||``,t[4]||``)}function qi(e,t,n,r,i,a,o){return{scheme:e,user:t,host:n,port:r,path:i,query:a,hash:o,type:7}}function Ji(e){if(Vi(e)){let t=Gi(`http:`+e);return t.scheme=``,t.type=6,t}if(Hi(e)){let t=Gi(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(Ui(e))return Ki(e);if(Bi(e))return Gi(e);let t=Gi(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function Yi(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function Xi(e,t){Zi(t,t.type),e.path===`/`?e.path=t.path:e.path=Yi(t.path)+e.path}function Zi(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function Qi(e,t){if(!e&&!t)return``;let n=Ji(e),r=n.type;if(t&&r!==7){let e=Ji(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:Xi(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}Zi(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?Wi(t||e)&&!Wi(r)?`./`+r+i:r+i:i||`.`}case 5:return n.path+i;default:return n.scheme+`//`+n.user+n.host+n.port+n.path+i}}function $i(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function ea(e,t){let n=$i(e),r=t?t+`/`:``;return e=>Qi(r+(e||``),n)}var ta=0,na=1,ra=2,ia=3,aa=4;function oa(e,t){let n=sa(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=sa(e,r+1))e[r]=la(e[r],t);return e}function sa(e,t){for(let n=t;n<e.length;n++)if(!ca(e[n]))return n;return e.length}function ca(e){for(let t=1;t<e.length;t++)if(e[t][ta]<e[t-1][ta])return!1;return!0}function la(e,t){return t||(e=e.slice()),e.sort(ua)}function ua(e,t){return e[ta]-t[ta]}var da=!1;function fa(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][ta]-t;if(a===0)return da=!0,i;a<0?n=i+1:r=i-1}return da=!1,n-1}function pa(e,t,n){for(let r=n+1;r<e.length&&e[r][ta]===t;n=r++);return n}function ma(e,t,n){for(let r=n-1;r>=0&&e[r][ta]===t;n=r--);return n}function ha(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function ga(e,t,n,r){let{lastKey:i,lastNeedle:a,lastIndex:o}=n,s=0,c=e.length-1;if(r===i){if(t===a)return da=o!==-1&&e[o][ta]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=fa(e,t,s,c)}function _a(e){return typeof e==`string`?JSON.parse(e):e}var va="`line` must be greater than 0 (lines start at line 1)",ya="`column` must be greater than or equal to 0 (columns start at column 0)",ba=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=_a(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=r;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=r.ignoreList||r.x_google_ignoreList||void 0;let u=ea(t,s);this.resolvedSources=c.map(u);let{mappings:d}=r;if(typeof d==`string`)this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=oa(d,n);else if(r.sections)throw Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);else throw Error(`invalid source map: ${JSON.stringify(r)}`);this._decodedMemo=ha(),this._bySources=void 0,this._bySourceMemos=void 0}};function xa(e){return e}function Sa(e){var t;return(t=xa(e))._decoded||(t._decoded=Pi(xa(e)._encoded))}function Ca(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(va);if(r<0)throw Error(ya);let a=Sa(e);if(n>=a.length)return wa(null,null,null,null);let o=a[n],s=Ta(o,xa(e)._decodedMemo,n,r,i||1);if(s===-1)return wa(null,null,null,null);let c=o[s];if(c.length===1)return wa(null,null,null,null);let{names:l,resolvedSources:u}=e;return wa(u[c[na]],c[ra]+1,c[ia],c.length===5?l[c[aa]]:null)}function wa(e,t,n,r){return{source:e,line:t,column:n,name:r}}function Ta(e,t,n,r,i){let a=ga(e,r,t,n);return da?a=(i===-1?pa:ma)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function Ea(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Da(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&Ea(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Oa=new Map;function ka(e){let t=Oa.get(e);if(t!==void 0)return Oa.delete(e),Oa.set(e,t),t;let n=null,r=Da(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new ba(JSON.parse(e))}catch{n=null}for(Oa.set(e,n);Oa.size>8;){let e=Oa.keys().next().value;if(e===void 0)break;Oa.delete(e)}return n}function Aa(e,t,n){if(!e.includes(t))return e;let r=ka(n);if(!r)return e;try{return e.split(`
|
|
2
|
-
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=
|
|
3
|
-
`)}catch{return e}}function ja(e,t,n){let r=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*r*t/e.length);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(o+=e[t[s]&r]||``,o.length>=a)return o}}}function Ma(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:s}=nn(),c=`step_${e.generateUlid()}`,l={type:`step`,correlationId:c,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(l.thisVal=this);let u=n?.();return u&&(l.closureVars=u),e.invocationsQueue.set(c,l),V.debug(`Step consumer setup`,{correlationId:c,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n){let t=e.suspensionGeneration;return an(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed}if(V.debug(`Step consumer event processing`,{correlationId:c,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:c===n.correlationId,eventType:n.eventType}),n.correlationId!==c)return S.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: step event ${n.eventType} for ${c} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),S.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(c);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{s(new Z(`Replay divergence: step ${c} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),S.Finished):(r.hasCreatedEvent=!0,S.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),S.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),S.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=$t(e,t,`step`),i,a=on(e,t,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let t=await e.replayPayloadCache.prepareEventPayload(n.eventId,`error`,n.eventData.error);i=await te(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){V.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new Y(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),s(i)})}),S.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,o=$t(e,i,`step`),c,l=on(e,i,`step`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{c={ok:!0,value:await e.replayPayloadCache.getStepResult(t,async()=>{let n=await e.replayPayloadCache.prepareEventPayload(t,`result`,r);return await Lt(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{o.markDelivered(),c.ok?a(c.value):s(c.error)})}),S.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for step ${c} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),S.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(l(n),Object.defineProperty(r,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(r,"bind",{value:function(e,...r){let i=Function.prototype.bind.call(this,e,...r);return Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperty(i,"__boundThis",{value:e,writable:!1,enumerable:!1,configurable:!1}),r.length>0&&Object.defineProperty(i,"__boundArgs",{value:r,writable:!1,enumerable:!1,configurable:!1}),i},writable:!1,enumerable:!1,configurable:!1}),r}}var Na=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=o();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,o=n.next;return o.int32=function(){return n.next()*4294967296|0},o.double=function(){return o()+(o()*2097152|0)*11102230246251565e-32},o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}function o(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.alea=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Pa=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor128=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Fa=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=n.charCodeAt(r)|0,r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorwow=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ia=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.x,n=t.i,r=e[n],i;return r^=r>>>7,i=r^r<<24,r=e[n+1&7],i^=r^r>>>10,r=e[n+3&7],i^=r^r>>>3,r=e[n+4&7],i^=r^r<<7,r=e[n+7&7],r^=r<<13,i^=r^r<<9,e[n]=i,t.i=n+1&7,i};function n(e,t){var n,r=[];if(t===(t|0))r[0]=t;else for(t=``+t,n=0;n<t.length;++n)r[n&7]=r[n&7]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&r[n]===0;++n);for(n==8?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.x&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xorshift7=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),La=n(((e,t)=>{(function(e,t,n){function r(e){var t=this;t.next=function(){var e=t.w,n=t.X,r=t.i,i,a;return t.w=e=e+1640531527|0,a=n[r+34&127],i=n[r=r+1&127],a^=a<<13,i^=i<<17,a^=a>>>15,i^=i>>>12,a=n[r]=a^i,t.i=r,a+(e^e>>>16)|0};function n(e,t){var n,r,i,a,o,s=[],c=128;for(t===(t|0)?(r=t,t=null):(t+=`\0`,r=0,c=Math.max(c,t.length)),i=0,a=-32;a<c;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),a===0&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(o=o+1640531527|0,n=s[a&127]^=r+o,i=n==0?i+1:0);for(i>=128&&(s[(t&&t.length||0)&127]=-1),i=127,a=512;a>0;--a)r=s[i+34&127],n=s[i=i+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[i]=r^n;e.w=o,e.X=s,e.i=i}n(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){e??=+new Date;var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(a.X&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.xor4096=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),Ra=n(((e,t)=>{(function(e,t,n){function r(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,r=t.d,i=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var r=0;r<n.length+20;r++)t.b^=n.charCodeAt(r)|0,t.next()}function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},o.int32=n.next,o.quick=o,a&&(typeof a==`object`&&i(a,n),o.state=function(){return i(n,{})}),o}t&&t.exports?t.exports=a:n&&n.amd?n(function(){return a}):this.tychei=a})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),za=n(((e,n)=>{(function(e,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 t;return p&&(t=p.randomBytes)?t=t(a):(t=new Uint8Array(a),(e.crypto||e.msCrypto).getRandomValues(t)),b(t)}catch{var n=e.navigator,i=n&&n.plugins;return[+new Date,e,i,e.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=t(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:e,[],Math)})),Ba=e(n(((e,t)=>{var n=Na(),r=Pa(),i=Fa(),a=Ia(),o=La(),s=Ra(),c=za();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const Va=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Ha=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)Ha[Va.charCodeAt(e)]=e;function Ua(e){return e===9||e===10||e===12||e===13||e===32}function Wa(e,t){for(;t<e.length&&Ua(e.charCodeAt(t));)t++;return t}function Ga(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=Ha[r.charCodeAt(0)],a=Ha[r.charCodeAt(1)],o=Ha[r.charCodeAt(2)],s=Ha[r.charCodeAt(3)],c=i<<2|a>>4,l=(a&15)<<4|o>>2,u=(o&3)<<6|s;if(n===2){if(t&&l!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c]}if(n===3){if(t&&u!==0)throw SyntaxError(`Extra bits in base64 chunk`);return[c,l]}return[c,l,u]}function Ka(e,t,n,r){if(r===void 0&&(r=2**53-1),r===0)return{read:0,bytes:[],error:null};let i=0,a=[],o=``,s=0,c=0,l=e.length;for(;;){if(c=Wa(e,c),c===l){if(s>0){if(n===`stop-before-partial`)return{read:i,bytes:a,error:null};if(n===`loose`){if(s===1)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: lone character in final chunk`)};a.push(...Ga(o,!1))}else return{read:i,bytes:a,error:SyntaxError(`Invalid base64: incomplete chunk in strict mode`)}}return{read:l,bytes:a,error:null}}let u=e[c];if(c++,u===`=`){if(s<2)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: padding in unexpected place`)};if(c=Wa(e,c),s===2){if(c===l)return n===`stop-before-partial`?{read:i,bytes:a,error:null}:{read:i,bytes:a,error:SyntaxError(`Invalid base64: missing second padding character`)};u=e[c],u===`=`&&(c=Wa(e,c+1))}if(c<l)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected characters after padding`)};let t=n===`strict`;try{a.push(...Ga(o,t))}catch(e){return{read:i,bytes:a,error:e}}return{read:l,bytes:a,error:null}}if(t===`base64url`){if(u===`+`||u===`/`)return{read:i,bytes:a,error:SyntaxError(`Invalid base64url: unexpected character '${u}'`)};u===`-`?u=`+`:u===`_`&&(u=`/`)}let d=u.charCodeAt(0);if(d>=128||Ha[d]===255)return{read:i,bytes:a,error:SyntaxError(`Invalid base64: unexpected character '${e[c-1]}'`)};let f=r-a.length;if(f===1&&s===2||f===2&&s===3||(o+=u,s=o.length,s===4&&(a.push(...Ga(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function qa(e,t){t===void 0&&(t=2**53-1);let n=e.length,r=[],i=0;if(n%2!=0)return{read:0,bytes:[],error:SyntaxError(`Invalid hex: string length must be even`)};for(;i<n&&r.length<t;){let t=e.substring(i,i+2);if(!/^[0-9a-fA-F]{2}$/.test(t))return{read:i,bytes:r,error:SyntaxError(`Invalid hex: unexpected character at position ${i}`)};i+=2,r.push(Number.parseInt(t,16))}return{read:i,bytes:r,error:null}}function Ja(e,t){let n=t?.alphabet??`base64`;if(n!==`base64`&&n!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${n}"`);let r=!!t?.omitPadding,i=``,a=e.length;for(let t=0;t<a;t+=3){let n=e[t],o=t+1<a?e[t+1]:0,s=t+2<a?e[t+2]:0;i+=Va[n>>2&63],i+=Va[(n&3)<<4|o>>4&15],t+1<a?i+=Va[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=Va[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function Ya(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function Xa(e){let t=e.prototype,n=e;t.toBase64||Object.defineProperty(t,"toBase64",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return Ja(this,t)},writable:!0,enumerable:!1,configurable:!0}),t.toHex||Object.defineProperty(t,"toHex",{value:function(){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);return Ya(this)},writable:!0,enumerable:!1,configurable:!0}),t.setFromBase64||Object.defineProperty(t,"setFromBase64",{value:function(t,n){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Ka(t,r,i,this.length),o=a.bytes,s=o.length;for(let e=0;e<s;e++)this[e]=o[e];if(a.error)throw a.error;return{read:a.read,written:s}},writable:!0,enumerable:!1,configurable:!0}),t.setFromHex||Object.defineProperty(t,"setFromHex",{value:function(t){if(!(this instanceof e))throw TypeError(`this is not a Uint8Array`);if(typeof t!=`string`)throw TypeError(`expected a string`);let n=qa(t,this.length),r=n.bytes,i=r.length;for(let e=0;e<i;e++)this[e]=r[e];if(n.error)throw n.error;return{read:n.read,written:i}},writable:!0,enumerable:!1,configurable:!0}),n.fromBase64||Object.defineProperty(e,"fromBase64",{value:function(t,n){if(typeof t!=`string`)throw TypeError(`expected a string`);let r=n?.alphabet??`base64`;if(r!==`base64`&&r!==`base64url`)throw TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${r}"`);let i=n?.lastChunkHandling??`loose`;if(i!==`loose`&&i!==`strict`&&i!==`stop-before-partial`)throw TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${i}"`);let a=Ka(t,r,i);if(a.error)throw a.error;return new e(a.bytes)},writable:!0,enumerable:!1,configurable:!0}),n.fromHex||Object.defineProperty(e,"fromHex",{value:function(t){if(typeof t!=`string`)throw TypeError(`expected a string`);let n=qa(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function Za(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)r===8||r===13||r===18||r===23?n+=`-`:r===14?n+=`4`:r===19?n+=t[Math.floor(e()*4)+8]:n+=t[Math.floor(e()*16)];return n}}const Qa={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function $a(e){if(Wn.isTypedArray(e)||Wn.isDataView(e)){if(Wn.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Wn.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function eo(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,Ba.default)(n),i=Jn(),a=Yn(`globalThis`,i);a.Math.random=r;let o=a.Date;a.Date=function(...e){return new.target===void 0?new o(t).toString():Reflect.construct(o,e.length===0?[t]:e,new.target)},a.Date.prototype=o.prototype,Object.setPrototypeOf(a.Date,o),a.Date.now=()=>t;let s=globalThis.crypto,c=s.subtle;function l(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(r()*256);return e}let u=Za(r),d=a;delete d.Atomics.waitAsync,delete d.WebAssembly.compile,delete d.WebAssembly.instantiate,delete d.WebAssembly.compileStreaming,delete d.WebAssembly.instantiateStreaming,delete d.WeakRef,delete d.FinalizationRegistry;let f=async(e,t)=>{let n=typeof e==`string`?e:e.name,r=Qa[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=Un(r).update($a(t)).digest(),a=new ArrayBuffer(i.byteLength);return new Uint8Array(a).set(i),a};return a.crypto=new Proxy(s,{get(e,t){return t===`getRandomValues`?l:t===`randomUUID`?u:t===`subtle`?new Proxy(c,{get(e,t){if(t===`digest`)return f;let n=e[t];return typeof n==`function`?()=>{throw new q(`\`crypto.subtle.${String(t)}()\` is not available inside a workflow function. Move it to a step function where full Node.js crypto is available.`)}:n}}):e[t]}}),a.process={env:Object.freeze({...process.env})},a.DOMException=globalThis.DOMException,a.Headers=globalThis.Headers,a.TextEncoder=globalThis.TextEncoder,a.TextDecoder=globalThis.TextDecoder,a.console=globalThis.console,a.URL=globalThis.URL,a.URLSearchParams=globalThis.URLSearchParams,a.structuredClone=globalThis.structuredClone,a.atob=globalThis.atob,a.btoa=globalThis.btoa,Xa(a.Uint8Array),a.Symbol.dispose??=Symbol.for(`Symbol.dispose`),a.Symbol.asyncDispose??=Symbol.for(`Symbol.asyncDispose`),a.exports={},a.module={exports:a.exports},{context:i,globalThis:a,updateTimestamp:e=>{t=e}}}const to=new Map;function no(e){let t=to.get(e);if(t!==void 0)return to.delete(e),to.set(e,t),t}function ro(e,t){let n=no(e);if(n===void 0)for(n=new Map,to.set(e,n);to.size>8;){let e=to.keys().next().value;if(e===void 0)break;to.delete(e)}let r=n.get(t);return r===void 0&&(r=new qn(e,{filename:t}),n.set(t,r)),r}function io(e,t,n){return ro(e,t).runInContext(n)}function ao(e){return async function(t,n={}){let{promise:r,resolve:i}=nn(),a=`attr_${e.generateUlid()}`,s={type:`attribute`,correlationId:a,changes:t,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}};return e.invocationsQueue.set(a,s),e.eventsConsumer.subscribe(r=>r?r.correlationId===a?r.eventType!==`attr_set`||r.eventData.writer.type!==`workflow`||JSON.stringify(r.eventData.changes)!==JSON.stringify(t)||r.eventData.allowReservedAttributes===!0!=(n.allowReservedAttributes===!0)?(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),S.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),S.Finished):S.NotConsumed:(an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed)),r}}function oo(e,t){if(typeof t!=`string`)return null;let n=N(b,e.globalThis),r=n?.[ne];return typeof r==`function`?r.call(n,{runId:t}):null}function so(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a randomly generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new Y("The configured World does not support `experimental_minRetention` for Hooks.");let n=`hook_${e.generateUlid()}`,i=t.token??e.generateNanoid(),a=t.experimental_minRetention===void 0?void 0:cn(t.experimental_minRetention),s=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:i,tokenRetentionUntil:a,metadata:t.metadata,isWebhook:s});let c=[],l=[],u=[],d=!1,f=!1,p=!1,m=!1,h=null,g=null,_=new Set;r.debug(`Hook consumer setup`,{correlationId:n,token:i}),e.eventsConsumer.subscribe(t=>{if(!t)return d=!0,(l.length>0&&c.length===0||u.length>0&&!f&&!m)&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed;if(t.correlationId!==n)return S.NotConsumed;let r=`eventData`in t&&t.eventData&&`token`in t.eventData?t.eventData.token:void 0;if(typeof r==`string`&&r!==i)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${r}", but the current hook consumer expects "${i}"`,{eventId:t.eventId}))}),S.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),f=!0;let i=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),S.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new Ut(r.eventData.token,r.eventData.conflictingRunId);m=!0,h=i,g=oo(e,r.eventData.conflictingRunId);let a=l.slice();l.length=0;let o=u.slice();return u.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)g?e.resolve(g):e.reject(i)}),S.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(_.has(n))return S.Consumed;_.add(n)}let r=e.eventsConsumer.eventIndex,i=l.length>0,a=$t(e,r,`hook`,{armed:i});if(i){let n=on(e,r,`hook`),i=l.shift();if(i){e.pendingDeliveries++;let r;e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);r={ok:!0,value:await Lt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){r={ok:!1,error:e}}finally{e.pendingDeliveries--}n.then(()=>{a.markDelivered(),r.ok?i.resolve(r.value):i.reject(r.error)})})}}else{let n,i=nn();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let r=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);n={ok:!0,value:await Lt(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},r)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--,i.resolve()}}),c.push({claim:()=>(a.arm(),i.promise.then(()=>on(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return S.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),p=!0,S.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for hook ${n} (token: ${i}) "${t.eventType}"`,{eventId:t.eventId}))}),S.Finished)});let v=!1;function y(){let t=nn();if(m&&h)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(h)}),t.promise;if(c.length>0){let e=c.shift();if(e)return e.claim()}return d&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),l.push(t),t.promise}function b(){let t=nn();if(f)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(m)return e.promiseQueue=e.promiseQueue.then(()=>{g?t.resolve(g):t.reject(h)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),d&&an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),u.push(t),t.promise}function x(){if(v||(v=!0,p))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),l.length>0&&(l.length=0,an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))})),r.debug(`Hook disposed`,{correlationId:n,token:i})}let C={token:i,getConflict(){return b()},then(e,t){return y().then(e,t)},async*[Symbol.asyncIterator](){for(;!v;)yield await this},dispose:x,[Symbol.dispose]:x},w=e.globalThis.Symbol.dispose;return w&&w!==Symbol.dispose&&(C[w]=x),C}}function co(e){return async function(t){let{promise:n,resolve:r}=nn(),i=`wait_${e.generateUlid()}`,a=cn(t),s={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,s),e.eventsConsumer.subscribe(t=>{if(!t)return an(e,()=>{e.onWorkflowError(new o(e.invocationsQueue,e.globalThis))}),S.NotConsumed;if(t.correlationId!==i)return S.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),S.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),S.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=$t(e,o,`wait`),c=on(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),S.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),S.Finished}),n}}async function lo(e,t,n,r,i,a){if(t.size!==0){for(let e of t.values())e.type===`hook`&&e.isSystem&&!e.disposed&&!e.abortRequested&&(e.disposed=!0);try{let e=await Wr();await Si({suspension:new o(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){G.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function uo(e){return po(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await ho(e);return t?.setAttributes({...H(n.argumentCount)}),mo(await r,t)})}function fo(e,t){return po(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...H(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:mo(r,n)})}function po(e,t,n,r){return ke(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...Oe(t.workflowName),...Te(t.runId),...ie(t.status),...Se(n.length),...st(e)}),r(i)))}function mo(e,t){return e.type===`completed`?t?.setAttributes({...et(e.resultType)}):t&&(Ne(e.suspension,t),e.parked&&t.setAttributes({...ut(e.parked.count),...je(e.parked.eventId),...Fe(e.parked.eventType)})),e}async function ho({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,runReadyBarrier:a,worldCapabilities:s}){let l=t.startedAt;if(!l)throw new q(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let u=Qr(t.runId)??+t.createdAt,d=un(process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:${await li()??3e3}`),{context:f,globalThis:p,updateTimestamp:m}=eo({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:u}),h=nn(),g={type:`running`,interruption:h},_=e=>{switch(g.type){case`running`:{let{interruption:t}=g;g=o.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},E.suspensionGeneration++,t.reject(e);return}case`suspended`:g={type:`replay`};return;case`replay`:case`completed`:return}},v=xn(()=>p.Math.random()),y=()=>v(u),b=ja(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*p.Math.random())),x={current:Promise.resolve()},C={current:()=>!0},w=u,T=new A(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>w&&(w=t,m(t))},onUnconsumedEvent:e=>{_(new Z(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}.`,{eventId:e.eventId}))},getPromiseQueue:()=>x.current,isDeliveryIdle:()=>C.current()}),E={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:p,onWorkflowError:_,eventsConsumer:T,generateUlid:y,generateNanoid:b,invocationsQueue:new Map,get promiseQueue(){return x.current},set promiseQueue(e){x.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};C.current=()=>tn(E),E.eventsConsumer.subscribe(e=>e&&(e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`&&e.eventData.writer.type===`step`)?S.Consumed:S.NotConsumed);let D=Ma(E),O=so(E),k=co(E),j=ao(E);p[ct]=D,p[Ge]=j,p[it]=O,p[Ce]=k,p[_t]=e=>ge(t.runId,e),p[mn]={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new p.Date(+l),url:d,features:{encryption:!!r}},p[me]=y,p.fetch=()=>{throw new p.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Jt.FETCH_IN_WORKFLOW_FUNCTION}`)};let M=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;p.setTimeout=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setInterval=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearTimeout=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearInterval=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.setImmediate=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.clearImmediate=()=>{throw new q(M,{slug:Jt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},p.AbortController=de(E);let N=ce();p.AbortSignal={abort:N.abort,any:N.any,timeout:N.timeout};class P{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof p.URL){let t=String(e);try{new p.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new p.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new p.Headers(t.headers):(typeof e==`string`||e instanceof p.URL)&&(this.headers=new p.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);n==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[_e]:{value:n,writable:!1}})}clone(){K()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}p.Request=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class I{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new p.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);e==null?this.body=null:this.body=Object.create(p.ReadableStream.prototype,{[_e]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new p.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new I(n,{...t,headers:r})}static error(){K()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new p.Headers;n.set(`Location`,String(e));let r=Object.create(I.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}p.Response=I,Object.defineProperties(I.prototype,{arrayBuffer:{value:D(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:D(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:D(`__builtin_response_text`),writable:!0,configurable:!0}});class L{constructor(){K()}get locked(){return!1}cancel(){K()}getReader(){K()}pipeThrough(){K()}pipeTo(){K()}tee(){K()}values(){K()}static from(){K()}[Symbol.asyncIterator](){K()}}p.ReadableStream=L;class R{constructor(){K()}get locked(){return!1}abort(){K()}close(){K()}getWriter(){K()}}p.WritableStream=R;class z{readable;writable;constructor(){K()}}p.TransformStream=z,p.console=globalThis.console;let ee=Symbol.for(`@vercel/request-context`);p[ee]=globalThis[ee];let B=Ie(t.workflowName)?.moduleSpecifier||t.workflowName;io(e,B,f);let V=io(`globalThis.__private_workflows?.get(${JSON.stringify(t.workflowName)})`,B,f);if(typeof V!=`function`)throw new Vt(t.workflowName);let H=[];E.promiseQueue=E.promiseQueue.then(async()=>{let e=await i.prepareWorkflowInput(t);H=await c(t.input,t.runId,r,p,{},e)}),await E.promiseQueue;let te=(async()=>await V(...H))(),ne=async e=>{throw o.is(e)||Z.is(e)?(g.type===`running`&&(g={type:`replay`}),e):(g={type:`completed`},await lo(t.runId,E.invocationsQueue,p,t,`failed`,a),e)},U=async e=>{let n;try{n=await Promise.race([te,e.promise])}catch(e){return g.type===`suspended`&&e===g.suspension?{type:`suspended`,suspension:g.suspension,session:re,parked:T.parkedSummary}:ne(e)}g={type:`completed`};let i=T.strandedEvent;if(i)return ne(new Z(`Replay finished without consuming event: eventType=${i.eventType}, correlationId=${i.correlationId}, eventId=${i.eventId}.`,{eventId:i.eventId}));try{let e=await F(n,t.runId,r,p,!1,(t.specVersion??0)>=5);return await lo(t.runId,E.invocationsQueue,p,t,`completed`,a),{type:`completed`,output:e,resultType:typeof n}}catch(e){return ne(e)}},re={workflowRun:t,argumentCount:H.length,async resume(e){switch(g.type){case`suspended`:{let t=T.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return g={type:`replay`},{type:`replay`};let n=nn();return g={type:`running`,interruption:n},E.suspensionGeneration++,T.append(e.slice(t.length)),U(n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new q(`Cannot resume ${g.type} workflow "${t.runId}"`)}}};return{session:re,execution:U(h)}}function go(e){let t=_r();return t===void 0?e:e===void 0?t:Math.min(e,t)}function _o({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.environment;if(!i)return!1;let a=e.getEnvironment?.();return!a||a===i?!1:(r.error(`Refusing to run this workflow: it was created in the "${i}" environment but this deployment runs in "${a}". Executing it here would create a second copy of the same run id in both environments — one pending forever, one running — so the queue message is being discarded without executing and without retrying. The client that called start() wrote the run to its own environment but addressed the queue message to a deployment in another one. Check that the environment that client authenticates as (WORKFLOW_VERCEL_ENV for CLI and CI clients, or the OIDC token's environment inside a deployment) matches the environment of the deployment it targets. The run it created is still pending in "${i}" and will not run.`,{workflowRunId:n,creatorEnvironment:i,currentEnvironment:a,pinnedDeploymentId:t?.deploymentId}),!0)}async function vo({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}!a||a===i||r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function yo(e){return q.is(e)?X.RUNTIME_ERROR:d(e)?X.WORLD_CONTRACT_ERROR:null}async function bo({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){G.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=Pe(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(Q.is(e)||J.is(e))return;if(d(e)){G.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}}function xo(e,t){let n=e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));return n?(G.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function So(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function Co(e,t){return e?.[vn]??t}function wo(e){let t=new Set,n=new Set;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.add(r.correlationId);break;case`wait_completed`:n.delete(r.correlationId);break}return{openHook:t.size>0,openWait:n.size>0}}function To(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}function Eo(e,t){ht(e.events,t.events),e.cursor=t.cursor??e.cursor}function Do(e,t,n){if(!xr()||!t||e.steps.length===0||!e.steps.every(e=>e.type===`step`))return!1;let{openHook:r,openWait:i}=n.value;return!r&&!i}async function Oo(e,t){let n=process.env.WORKFLOW_V2_TIMEOUT_MS;if(n!==void 0&&n!==``){let e=Number(n);if(Number.isFinite(e)&&e>0)return e}let r=await e.getRuntimeDeadline?.();if(r!==void 0){let e=r.getTime();if(!Number.isNaN(e)){let n=Math.floor(e-t);if(n>=(0,Qn.default)(`25m`))return(0,Qn.default)(`10m`);if(n>=(0,Qn.default)(`10m`))return(0,Qn.default)(`5m`)}}return(0,Qn.default)(`2m`)}function ko(e,t){ln(t?.basePath);let n=gn(t?.namespace),r=bn(`workflow`,n),a=t=>t.createQueueHandler(r,async(a,s)=>{let c=$e(a);if(c){await ot(c,t.specVersion);return}let{runId:l,traceCarrier:u,requestedAt:p,stepId:_,stepName:b,replayDivergence:x,preconditionReinvocations:S,deploymentMismatchRetryCount:C,runInput:w,hookInput:T}=wn.parse(a),E=we(u)?u:void 0,{requestId:D}=s,O=s.queueName.slice(r.length),k=G.forRun(l,O),A=or();if(s.attempt>A){let e=tr(void 0,X.MAX_DELIVERIES_EXCEEDED);k.error(`Workflow handler exceeded max deliveries (${s.attempt}/${A})`,{attempt:s.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await Wr(),t=Pe(e,l),n=new Y(`Workflow exceeded maximum queue deliveries (${s.attempt}/${A})`);await e.events.create(l,{eventType:`run_failed`,specVersion:5,eventData:{error:await m(n,l,await t()),errorCode:X.MAX_DELIVERIES_EXCEEDED}},{requestId:D})}catch(e){if(Q.is(e)||J.is(e))return;k.error(`Failed to mark run as failed after ${s.attempt} delivery attempts. A persistent error is preventing the run from being terminated. The run will remain in its current state until manually resolved. This is most likely due to a persistent outage of the workflow backend or a bug in the workflow runtime and should be reported to the Workflow team.`,{attempt:s.attempt,errorName:e instanceof Error?e.name:`UnknownError`,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0})}return}let j=Ke(),M=()=>at(j,E),N=await wt(j,E),P=new qr,F=j===`continuous`?E:void 0,I=await vt(`CONSUMER`);return await Qe(F,async()=>await Dt({workflowRunId:l,workflowName:O},async()=>{let t=await ke(`workflow.route.get_world`,async()=>Wr());if(!_o({world:t,runInput:w,runId:l,runLogger:k}))return await vo({world:t,runInput:w,runId:l,runLogger:k}),ke(`workflow.execute ${tt(O)}`,{kind:I,links:N},async r=>{r?.setAttributes({...Oe(O),...Ze(`execute_v2`),...ee(`vercel-queue`),...se(s.queueName),...y(s.messageId),...g(`process`),...Ue({requestedAt:p}),...Te(l),...v(!!E),...oe(j)});let a=Date.now(),c=await Oo(t,a),u=0,A=x?new Xr(x.count):Xr.inert(),N=async(e,n)=>{let r=F(e,n),i=await A.withEventCreate(r===void 0?n:{...n,sinceCursor:r},n=>t.events.create(l,e,n));return r!==void 0&&I(r,i),i},F=(e,t)=>{if(!(U||L.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||_n(e.eventType)))return L.cursor??void 0},I=(e,t)=>{L.type!==`ready`||L.cursor!==e||t.events===void 0||t.hasMore===!0||Eo(L,{events:t.events,cursor:t.cursor})},L={type:`loadAll`},R,z,B=-1,V,H,te=0,ne,U=br()&&w!==void 0&&s.attempt===1&&_===void 0&&!x;r?.setAttributes(h(U));let ae,ce=async()=>{if(ae)try{await ae}catch{}},le=new Set,ue=e=>{le.size>0&&G.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:l,ackPath:e,stepIds:[...le]})},de=async()=>({runId:l,traceCarrier:await M(),requestedAt:new Date}),fe=async(e,r)=>{if(ue(`reinvoke`),!U)return{timeoutSeconds:e};await ye(t,xe(O,n),{...await de(),...r},e>0?{delaySeconds:e}:void 0)},pe=0,me=null,he=e=>{let t=me;if(!t)return;me=null;let n=new Set(e.map(e=>e.eventId)),r=So(n,t.ids),i=So(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;G.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:l,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:u})},ge=(e,t,{allowDelta:n=!0}={})=>{if(pe>=Tr())return!1;pe++,Ce=null;let i=n&&pe===1?Be(t,l):null,a=i!==null&&L.type!==`loadAll`;return me=L.type===`loadAll`?null:{ids:new Set(L.events.map(e=>e.eventId)),restart:pe,reason:e,source:a?`inline-delta`:`full-reload`},i&&L.type!==`loadAll`?(Eo(L,i),L={...L,type:`ready`}):(L={type:`loadAll`},Se.resetScan()),G.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:l,reason:e,loopIteration:u,preconditionRestarts:pe,source:a?`inline-delta`:`full-reload`}),r?.setAttributes({"workflow.precondition_restarts":pe}),!0},_e=async(e,t)=>{let n=(S??0)+1,i=Er();return n>i?{reinvoked:!1,error:new q(`Event creation was rejected as stale after ${i} re-invocations of ${Tr()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(G.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:l,reason:e,loopIteration:u,preconditionReinvocations:n,maxReinvocations:i}),r?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await fe(Dr(),{preconditionReinvocations:n})})},W=async(e,i,a)=>{let{outcome:o,spanAttributes:s}=await Nr({world:t,run:e,requestId:D,retryCount:C,beforeStop:a,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:r,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await ye(t,xe(O,n),{...await i(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:r,delaySeconds:o})}});return s&&r?.setAttributes(s),o};if(_&&b)try{let e=await t.runs.get(l,{resolveData:`none`});if(e.status!==`running`){G.debug(`Run already finished, skipping background step`,{workflowRunId:l,status:e.status});return}if(await W(e,async()=>({...await de(),stepId:_,stepName:b}))!==`continue`)return;let r=e.startedAt?+e.startedAt:Date.now(),i=s.attempt,a=rn(b)?.maxRetries??3;s.attempt>a+1&&(i=Ar((await Ae(l)).events,_,{type:`totalAttempts`})+1),P.pause();let o;try{o=await bi(l,_,()=>mi({world:t,workflowRunId:l,workflowDeploymentId:e.deploymentId,workflowName:O,workflowStartedAt:r,rootRunId:Co(e.attributes,l),stepId:_,stepName:b,runSpecVersion:e.specVersion,authoritativeAttempt:i}))}finally{P.resume()}if(o.type===`retry`||o.type===`throttled`)return{timeoutSeconds:o.timeoutSeconds};if(o.type===`completed`&&o.hasPendingOps){await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}if(o.type===`completed`||o.type===`failed`||o.type===`skipped`){let n=await Ae(l);L=To(n);let i=new Set,a=new Set;for(let e of n.events)e.eventType===`step_created`?i.add(e.correlationId):(e.eventType===`step_completed`||e.eventType===`step_failed`)&&a.add(e.correlationId);let o=new Set;for(let e of i)a.has(e)||o.add(e);if(o.size>0)if(Sr()&&vi(n.events,o,s.messageId))G.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:l});else{G.debug(`Background step done but other steps pending, returning`,{workflowRunId:l});return}G.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:l});let c=n.events.find(e=>e.eventType===`run_created`),u;if(c)u=c.eventData.input;else{if(!En(e.specVersion))throw new q(`Workflow run "${l}" has no "run_created" event`);let n=await t.runs.get(l,{resolveData:`all`});if(n.status!==`running`)return;u=n.input}R={...e,input:u,status:`running`,output:void 0,error:void 0,completedAt:void 0},B=r}else return}catch(e){let n=yo(e);if(!n)throw e;await bo({world:t,workflowRun:R,runId:l,requestId:D,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!R&&T?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=T.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await W(await t.runs.get(l,{resolveData:`none`}),async()=>({...await de(),hookInput:T}),ce)!==`continue`)return}let ve=!1;if(!R&&T&&T.resumeId!==void 0&&T.payloadDigest!==void 0){let e=T,t;try{t=new Date(yn(e.resumeId))}catch{t=void 0}try{r?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await N({eventType:`hook_received`,specVersion:5,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:D,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0});if(ve=!0,n.run!==void 0&&n.run.startedAt!==void 0&&n.event!==void 0&&n.events!==void 0&&n.events.length>0&&n.cursor!=null&&n.hasMore===!1&&typeof n.maxEvents==`number`&&n.events.some(e=>e.eventType===`run_created`)&&n.events.some(e=>e.eventType===`run_started`)&&n.events.some(t=>t.eventType===`hook_received`&&t.resumeId===e.resumeId)&&n.run?.startedAt&&n.events){let e=n.events.find(e=>e.runId===l&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){r?.setAttributes({...ie(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ee(`hook_received_stream`)}),G.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,eventType:e.eventType});return}R=n.run,z=go(n.maxEvents),H=Date.now(),L={type:`ready`,events:n.events,cursor:n.cursor},B=+n.run.startedAt,r?.setAttributes({...ie(n.run.status),...f(B),...Ee(`hook_received_stream`)})}else r?.setAttributes(Ee(`hook_received_fallback`))}catch(e){if(Yt.is(e)||J.is(e)){G.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:l,message:e.message});return}throw e}}if(!R){let e={eventType:`run_started`,specVersion:w?.specVersion??5,...w?{eventData:{input:w.input,deploymentId:w.deploymentId,workflowName:w.workflowName,executionContext:w.executionContext,attributes:w.attributes,allowReservedAttributes:w.allowReservedAttributes}}:{}};if(U&&w){r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=N(e,{requestId:D,skipPreload:!0});ae=t,t.then(e=>{let t=go(e.maxEvents);t!==void 0&&(z=t)}).catch(()=>{}),L={type:`ready`,events:[],cursor:null};let n=new Date;R={runId:l,status:`running`,deploymentId:w.deploymentId,workflowName:w.workflowName,specVersion:w.specVersion,executionContext:w.executionContext,input:w.input,attributes:w.attributes??{},startedAt:n,createdAt:n,updatedAt:n},B=+n,H=+n,r?.setAttributes({...ie(`running`),...f(B)})}else try{r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=await N(e,{requestId:D});if(R=t.run,z=go(t.maxEvents),H=Date.now(),t.events?.length){let e={events:[...t.events],cursor:t.cursor??null};L=t.hasMore?To(e):{...e,type:`ready`}}if(B=+t.run.startedAt,r?.setAttributes({...ie(t.run.status),...f(B)}),t.run.status!==`running`){G.info(`Workflow already completed or failed, skipping`,{workflowRunId:l,status:t.run.status});return}}catch(e){if(Q.is(e)||J.is(e)){G.info(`Run already finished during setup, skipping`,{workflowRunId:l,message:e.message});return}else{let n=yo(e);if(!n)throw e;await bo({world:t,workflowRun:R,runId:l,requestId:D,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`});return}}}if(Gn(R,`Workflow run must be loaded before replay`),await W(R,async()=>({...await de(),...T?{hookInput:T}:{}}),ce)!==`continue`)return;if(T&&!ve&&!(T.resumeId!==void 0&&L.type!==`loadAll`&&L.events.some(e=>e.eventType===`hook_received`&&e.resumeId===T.resumeId))){let e;try{e=T.resumeId===void 0?void 0:new Date(yn(T.resumeId))}catch{e=void 0}let n;try{let i=await t.events.create(l,{eventType:`hook_received`,specVersion:5,correlationId:T.hookId,eventData:{token:T.token,payload:T.payload}},{requestId:D,occurredAt:e,resumeId:T.resumeId,resumePayloadDigest:T.payloadDigest});r?.setAttributes(It(!0));let a=i.event;n=a?{...a,eventData:{token:T.token,payload:T.payload}}:void 0}catch(e){if(Yt.is(e)||J.is(e))return;throw e}L.type!==`loadAll`&&n?De(L.events,n):L={type:`loadAll`}}let be=await Pe(t,R)(),Se=new ir(be),Ce=null;for(;;){if(u++,P.isExhausted()){await Yr({runId:l,workflowName:O,requestId:D,attempt:s.attempt,limitMs:P.configuredLimitMs});return}if(Date.now()-a>=c){G.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:l,loopIteration:u,elapsedMs:Date.now()-a}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}let f=0;try{if(Mn(R)){G.debug(`Using QuickJS VM engine`,{workflowRunId:l,loopIteration:u}),await ce(),L.type===`loadAfter`&&(Eo(L,await Ae(l,L.cursor)),L={...L,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),i=await t({workflowCode:e,workflowName:O,workflowRun:R,preloadedEvents:L.type===`ready`?L.events:void 0,preloadedEventsComplete:L.type===`ready`,runInput:w,parentSpan:r,maxEventsLimit:z,namespace:n,nextTraceCarrier:M,deliveryAttempt:s.attempt,ownerMessageId:s.messageId});return i?.timeoutSeconds===void 0?void 0:await fe(i.timeoutSeconds)}if(L.type!==`ready`){let e=await Ae(l,L.type===`loadAfter`?L.cursor:void 0);L.type===`loadAfter`?(Eo(L,e),L={...L,type:`ready`}):L={...e,type:`ready`}}if(Gn(L.type===`ready`),he(L.events),xo(L.events,l))return;let i=Date.now(),a=new Set(L.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),o=L.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!a.has(e.correlationId)&&i>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:5,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of o)try{let t=await N(e,{requestId:D,...Re(L.events,L.cursor)});t.events?.length&&t.hasMore!==!0&<(L.events,t.events)}catch(t){if(Q.is(t)){G.info(`Wait already completed, skipping`,{workflowRunId:l,correlationId:e.correlationId});continue}throw t}Gn(L.type===`ready`);let c=new Set(L.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),d=o.filter(e=>!c.has(e.correlationId));if(d.length>0)if(L.cursor){let e=await Ae(l,L.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));d.every(e=>t.has(e.correlationId))?Eo(L,e):L={...await Ae(l),type:`ready`}}else L={...await Ae(l),type:`ready`};if(Tt()){let e=await Ot(l,{events:L.events,cursor:L.cursor});if(L={...e.log,type:`ready`},e.gap!==void 0)throw new Zt(`Event log for run ${l} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(xo(L.events,l))return;if(z!==void 0&&L.events.length>=z)throw new Xt(L.events.length,z);V??=L.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`),G.debug(`Starting workflow execution`,{workflowRunId:l,loopIteration:u,eventCount:L.events.length,executionMode:Ce?`retained`:`replay`}),f=Date.now();let p=Se.prewarm(R,L.events),m=Ce?await fo(Ce,L.events):{type:`replay`};if(m.type===`replay`&&(Ce=null,m=await uo({workflowCode:e,workflowRun:R,events:L.events,encryptionKey:be,replayPayloadCache:Se,runReadyBarrier:ae,worldCapabilities:t.capabilities})),await p,m.type===`suspended`)throw Ce=m.session,m.suspension;let h=m.output;G.debug(`Workflow execution completed`,{workflowRunId:l,loopIteration:u,replayMs:Date.now()-f,executionMode:Ce?`retained`:`replay`}),A.activate();try{await ce(),await N({eventType:`run_completed`,specVersion:5,eventData:{output:h}},{requestId:D,...Re(L.events,L.cursor)})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...ie(`completed`)});return}catch(a){if(o.is(a)){A.activate();let e=Date.now()-f;G.debug(`Workflow suspended`,{workflowRunId:l,loopIteration:u,replayMs:e,steps:a.stepCount,hooks:a.hookCount,waits:a.waitCount});let o=pt(a.stepCount,a.hookCount,a.waitCount);o&&G.debug(o);let c=Date.now();Gn(L.type===`ready`,`Workflow suspended before its event log was loaded`);let d;try{d=await Si({suspension:a,world:t,run:R,span:r,requestId:D,eventLog:L,runReadyBarrier:ae,replayRecoveryReporter:A})}catch(e){if(Gt.is(e)){if(ge(`suspension-create`,e))continue;let t=await _e(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!Y.is(e))throw e;let t=Mt(e);G.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:l,errorCode:t,errorName:e.name,errorMessage:e.message});try{await ce(),await N({eventType:`run_failed`,specVersion:5,eventData:{error:await m(e,l,be,globalThis,(R?.specVersion??0)>=5),errorCode:t}},{requestId:D})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}throw e}r?.setAttributes({...ie(`failed`),...rt(t),...We(e.name),...gt(e.message),...nt(e.name)});return}d.reportedEventCount>0&&Se.resetScan();let p=en(()=>(Gn(L.type===`ready`),wo(L.events)));if(Ce&&!Do(a,d.retainedStepInputsSafe,p)&&(Ce=null),te+=d.hookCreationMs,d.hasAttributeEvents&&ne===void 0&&(ne=te),G.debug(`Suspension handled`,{workflowRunId:l,suspensionMs:Date.now()-c,pendingSteps:d.pendingSteps.length,timeoutSeconds:d.waitTimeout?.seconds,hasHookConflict:d.hasHookConflict,hasAwaitedHookCreation:d.hasAwaitedHookCreation,hasAttributeEvents:d.hasAttributeEvents}),d.hasHookConflict)return await fe(0);if(d.hasAttributeEvents){L=To(L);continue}let h=d.pendingSteps,g=d.lazyInlineSteps,_=new Set(g.map(e=>e.correlationId)),v=await M(),y=[],b=Sr(),x=Date.now(),S=[],C=0;for(let e of h){if(_.has(e.correlationId))continue;let r=b&&hi(e);if(r&&e.ownerMessageId===s.messageId){S.push(e);continue}let i=r?gi(e,x):0;if(i>0){C++,G.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:l,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),y.push(ye(t,xe(O,n),{runId:l,traceCarrier:v,requestedAt:new Date},{delaySeconds:i,idempotencyKey:_i(e)}));continue}y.push(ye(t,xe(O,n),{runId:l,stepId:e.correlationId,stepName:e.stepName,traceCarrier:v,requestedAt:new Date},{idempotencyKey:e.correlationId}))}d.waitTimeout&&y.push(ye(t,xe(O,n),{runId:l,traceCarrier:v,requestedAt:new Date},Ei(d.waitTimeout.seconds,d.waitTimeout.correlationId))),await Promise.all(y);let w=[...g.map(e=>({correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput})),...S.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((C>0||S.length>0)&&r?.setAttributes({...S.length>0?Et(S.length):{},...C>0?i(C):{}}),S.length>0&&G.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:l,stepIds:S.map(e=>e.correlationId)}),w.length===0)return d.hasAwaitedHookCreation?await fe(0):void 0;let T=p.value,E=Xe()&&t.capabilities?.preconditionGuard===!0,k=typeof L.cursor==`string`&&a.stepCount===1&&a.waitCount===0&&h.length===1&&g.length===1&&S.length===0&&!d.waitTimeout&&!T.openWait&&(E||a.hookCount===0&&!T.openHook),j=E&&(T.openHook||a.hookCount>0||d.hasHookEvents),F=U&&!d.hasAttributeEvents&&!d.waitTimeout&&!d.hasHookEvents&&!d.hasAwaitedHookCreation&&!T.openHook&&!T.openWait,I=di({events:L.events,invocationStartedClean:V===!0,runCreatedAtMs:Qr(l)??(U?void 0:+R.createdAt),runStartedReceivedAtMs:H,replayMs:e,preStepBlockingMs:te,preStepBlockingBeforeAttrMs:ne,suspensionHasWaits:a.waitCount>0||d.waitTimeout!==void 0,suspensionCreatedHooks:a.hookCount>0||d.hasHookEvents,turbo:U}),z=Re(L.events,L.cursor);P.pause();let ee,re=w.map((e,n)=>{let r=()=>(Gn(L.type===`ready`),mi({world:t,workflowRunId:l,workflowDeploymentId:R.deploymentId,workflowName:O,workflowStartedAt:B,rootRunId:Co(R.attributes,l),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:R.specVersion,authoritativeAttempt:e.lazyStepInput===void 0?Ar(L.events,e.correlationId,{type:`ownedBy`,messageId:s.messageId})+1:1,lazyStepInput:e.lazyStepInput,ownerMessageId:s.messageId,forceOptimisticStart:F,suppressOptimisticStart:j,runReadyBarrier:ae,preconditionSnapshot:z,...n===0&&e.lazyStepInput!==void 0&&I?{latencyTracking:I}:{},...k&&L.cursor?{inlineDeltaSinceCursor:L.cursor}:{},replayRecoveryReporter:A}));return le.add(e.correlationId),(e.lazyStepInput===void 0?bi(l,e.correlationId,r):r()).finally(()=>le.delete(e.correlationId))});try{ee=await Promise.all(re)}catch(e){if(Gt.is(e)){if(ge(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(re)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await _e(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{P.resume()}let oe=[],se=!1,ue;for(let e=0;e<w.length;e++){let t=ee[e],n=w[e];t.type===`retry`?oe.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?ue=Math.max(ue??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(se=!0)}if(ue!==void 0)return await fe(ue);if(oe.length>0){let e=await M();await Promise.all(oe.map(({step:r,delaySeconds:i})=>ye(t,xe(O,n),{runId:l,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date},{delaySeconds:i,idempotencyKey:r.correlationId})))}if(se){G.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:l,loopIteration:u}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date});return}if(oe.length>0)return;if(w.length===1){let e=ee[0];if(e.type===`completed`&&e.inlineDelta){Eo(L,e.inlineDelta),L=e.inlineDelta.hasMore?To(L):{...L,type:`ready`};continue}}L=To(L)}else{let i=a;if(Gt.is(a)){if(ge(`replay-write`,a))continue;let e=await _e(`replay-write`,a);if(e.reinvoked)return e.result;i=e.error}if(re(a))throw k.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:a instanceof Error?a.name:`UnknownError`,errorMessage:a instanceof Error?a.message:String(a),deliveryAttempt:s.attempt}),a;let o;if(Z.is(a)){let e=(x?.count??0)+1,r=wr();if(e<=r){k.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{errorCode:X.REPLAY_DIVERGENCE,divergenceEventId:a.eventId,priorDivergenceEventId:x?.eventId,divergenceCount:e,deliveryAttempt:s.attempt,maxRecoveryReplays:r,errorMessage:a.message}),await ye(t,xe(O,n),{runId:l,traceCarrier:await M(),requestedAt:new Date,replayDivergence:{eventId:a.eventId,count:e}});return}o=e,i=new Zt(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${a.eventId}. Last divergence: ${a.message}`,{cause:a})}else f>0&&A.activate();i instanceof Error&&r?.recordException?.(i);let c=await ai(i),u=c.name||$r(i),p=c.message,h=c.stack||ei(i);if(h){let t=Ie(O)?.moduleSpecifier||O;h=Aa(h,t,e)}let g=Mt(i);G.error(`Error while running workflow`,{workflowRunId:l,errorCode:g,errorName:u,errorStack:h}),Wn.isNativeError(i)&&h&&(i.stack=h);try{await ce(),await N({eventType:`run_failed`,specVersion:5,eventData:{error:await m(i,l,be,globalThis,(R?.specVersion??0)>=5),errorCode:g}},{requestId:D,...o===void 0?{}:{replayDivergenceCount:o}})}catch(e){if(Q.is(e)||J.is(e)){G.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:l,message:e.message});return}if(d(e)){G.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:l,errorCode:X.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}r?.setAttributes({...ie(`failed`),...rt(g),...We(u),...gt(p),...nt(u)});return}}}})}))}),s,c=0,l=Date.now(),u=typeof t?.routeModuleBodyStartedAt==`number`?l-t.routeModuleBodyStartedAt:void 0;return Pt(async e=>{c+=1;let t=s!==void 0;return ke(`workflow.route.flow`,{kind:await vt(`SERVER`),attributes:{...Ft(`flow`),...He(ar),...ze(t),...be(c),...Ve(Date.now()-l),...u===void 0?{}:kt(u),...ae(e.method),...jt(`/.well-known/workflow/v1/flow`)}},async t=>{s||=await ke(`workflow.route.init`,async()=>{let e=await ke(`workflow.route.get_world_handlers`,async()=>Ur());return a(e)});let n=await s(e);return n instanceof Response&&t?.setAttributes(p(n.status)),n})})}export{zn as Run,o as WorkflowSuspension,Ln as cancelRun,Nn as cancelRuns,Hr as createWorld,Br as createWorldFromModule,kn as getHookByToken,Fn as getRun,Wr as getWorld,Ur as getWorldHandlers,yt as healthCheck,An as listStreams,In as readStream,Rn as recreateRunFromExisting,jn as reenqueueRun,Dn as resumeHook,On as resumeWebhook,Gr as setWorld,Bn as start,Pn as wakeUpRun,ko as workflowEntrypoint};
|
|
1
|
+
import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-8V8biNmG.js";import{$ as r,$n as i,$t as a,A as o,An as s,At as c,B as l,Bn as u,Bt as d,C as f,Cn as p,Ct as m,D as h,Dn as g,Dr as _,Dt as v,En as y,Et as b,Fn as x,Ft as S,G as C,Gn as w,Gt as T,Hn as E,Ht as D,In as O,It as k,J as ee,Jt as te,K as A,Kt as j,Ln as M,Lt as N,Mn as P,Mt as F,N as I,Nn as ne,Nt as L,O as re,On as R,Or as ie,Ot as ae,Pn as z,Pt as B,Q as V,Qn as H,Qt as U,R as oe,Rn as se,Rt as ce,S as le,Sn as ue,Sr as de,Tn as fe,Tt as pe,U as me,Un as he,Ut as ge,V as _e,Vn as ve,Vt as ye,W as be,Wn as W,Wt as xe,X as Se,Xn as Ce,Xt as we,Y as Te,Yt as Ee,Z as De,Zt as Oe,_ as ke,_n as Ae,_r as je,a as Me,an as Ne,at as Pe,b as Fe,bn as Ie,br as Le,bt as Re,c as ze,cn as Be,d as Ve,dn as He,dr as Ue,dt as We,en as Ge,et as Ke,f as qe,fn as Je,g as G,gn as Ye,gt as Xe,h as Ze,hn as Qe,ht as $e,i as et,in as tt,it as nt,j as rt,jn as it,jt as at,k as ot,kn as st,kr as ct,kt as lt,l as ut,ln as dt,lt as ft,m as pt,mn as mt,mt as ht,nn as gt,nt as _t,o as K,on as vt,or as yt,ot as bt,p as xt,pn as St,pt as Ct,q as wt,qt as Tt,r as Et,rn as Dt,rt as Ot,s as kt,sn as At,t as jt,tn as Mt,tr as Nt,tt as Pt,u as Ft,un as It,ur as Lt,ut as Rt,v as zt,vn as Bt,vr as Vt,w as Ht,wn as Ut,wt as Wt,xn as Gt,xr as Kt,xt as qt,y as Jt,yn as Yt,yr as Xt,z as Zt,zn as Qt,zt as $t}from"../../_chunks/workflow/wait-until-BPSgt1Wg.js";import{A as q,C as en,O as J,_ as tn,a as nn,c as rn,d as Y,i as X,j as an,k as on,l as Z,m as sn,n as cn,o as ln,r as Q,s as un,t as dn,u as fn,v as pn,x as mn}from"../../_chunks/workflow/dist-CqvWKNQv.js";import{a as hn,c as gn,i as _n,l as vn,n as yn,s as bn,t as xn}from"../../_chunks/workflow/private-z_2Kcwee.js";import{n as Sn,t as Cn}from"../../_chunks/workflow/dist-DpYyXbJv.js";import{a as wn,n as Tn}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{d as En,l as Dn,n as On,s as kn,u as An}from"../../_chunks/workflow/attribute-changes-B8K0pwpH.js";import{C as jn,K as Mn,Y as Nn,Z as Pn,a as Fn,b as In,o as Ln,s as Rn,u as zn,x as Bn}from"../../_chunks/workflow/dist-BRGbNjhD.js";import{t as Vn}from"../../_chunks/workflow/env-config-DxamfI7T.js";import{t as Hn}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{n as Un,r as Wn,t as Gn}from"../../_chunks/workflow/resume-hook-DO_MuJlY.js";import{a as Kn,c as qn,d as Jn,i as Yn,l as Xn,n as Zn,o as Qn,r as $n,s as er,t as tr,u as nr}from"../../_chunks/workflow/run-lq7-eG0l.js";import{t as rr}from"../../_chunks/workflow/run-id-BdE0MZz9.js";import{createRequire as ir}from"node:module";import{createHash as ar}from"node:crypto";import{types as or}from"node:util";import sr from"node:assert/strict";import{pathToFileURL as cr}from"node:url";import{Script as lr,createContext as ur,runInContext as dr}from"node:vm";function fr(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function pr(e){return e===`vercel`||e===`@workflow/world-vercel`}var mr=e(Sn(),1);function hr(e){return e instanceof An||e instanceof Dn||e instanceof En||e instanceof On}const gr=`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 _r(e,t){let n=t??le(e);return sn.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.`}:dn.is(e)?{attribution:`sdk`,errorCode:n,hint:gr}: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 J?{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:gr}: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}}const vr=4096;function yr(e){if(e===null)return!0;let t=typeof e;return t===`object`||t===`function`?!1:t===`string`?e.length<=vr:t!==`bigint`||e.toString().length<=vr}var br=class{encryptionKey;preparer;preparedPayloads=new Map;primitiveStepResults=new Map;nextUnscannedEventIndex=0;constructor(e,t=me){this.encryptionKey=e,this.preparer=t}async prewarm(e,t){let n=[],r=(e,t)=>{t instanceof Uint8Array&&(this.preparedPayloads.has(e)||n.push(this.ensurePreparation(e,t)))};r(this.workflowInputKey(e.runId),e.input);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let n=t[e];switch(n.eventType){case`step_completed`:r(this.eventPayloadKey(n.eventId,`result`),n.eventData?.result);break;case`step_failed`:r(this.eventPayloadKey(n.eventId,`error`),n.eventData?.error);break;case`hook_received`:r(this.eventPayloadKey(n.eventId,`payload`),n.eventData?.payload);break}}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return yr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,this.encryptionKey)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const xr=`cinst_${Rn()}`;function Sr(){return Vn(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const Cr=24e4,wr=3e4,Tr=78e4,Er=new Set;function Dr(e,t,n){Er.has(e)||(Er.add(e),V.warn(t,n))}function Or(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return Cr;let t=Number(e);return!Number.isFinite(t)||t<=0?(Dr(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:Cr}),Cr):t<3e4?(Dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:wr,minMs:wr}),wr):t>78e4?(Dr(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:Tr,maxMs:Tr}),Tr):t}function kr(){return Vn(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}const Ar=new Set;function jr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(Ar.has(e)||(Ar.add(e),V.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(Ar.has(e)||(Ar.add(e),V.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}function Mr(){return process.env.WORKFLOW_RESILIENT_STEP_DISPATCH===`1`}const Nr=new Set;function Pr(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){Nr.has(e)||(Nr.add(e),V.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function Fr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function Ir(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function Lr(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Rr(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function zr(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||!(e===`0`||e.toLowerCase()===`false`)}function Br(){return Vn(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function Vr(){return Vn(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function Hr(){return Vn(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function Ur(){return Vn(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function Wr(){return Vn(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function Gr(){return Vn(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const Kr=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function qr(e,t,n){if(!e)return 0;let r=0,i=new Map;for(let n of e){if(n.eventType!==`step_started`||n.correlationId!==t)continue;let e=Kr(n);e===void 0?r++:i.set(e,(i.get(e)??0)+1)}if(n===void 0){let e=r;for(let t of i.values())e+=t;return e}if(n.type===`ownedBy`)return i.get(n.messageId)??0;let a=0;for(let e of i.values())e>a&&(a=e);return r+a}const Jr={outcome:`continue`};function Yr(e,t,n){return{outcome:e,spanAttributes:{...O(t),...Ye(n),...Qe(e===`rerouted`)}}}async function Xr({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return Jr;let s=await e.getDeploymentId();if(t.deploymentId===s)return Jr;await o?.();let c=Gr(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new mn(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:6,eventData:{error:await re(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:q.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!Q.is(e)&&!Y.is(e))throw e}return Yr(`failed`,t.deploymentId,r)};if(i&&r<c){let e=r+1,n=Math.min(2**r,8);try{return await i({deploymentId:t.deploymentId,specVersion:t.specVersion,deploymentMismatchRetryCount:e,delaySeconds:n}),V.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),Yr(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return V.error(`Cannot re-route a misrouted workflow run to its own deployment; failing the run`,{...l,attempt:e,errorMessage:t instanceof Error?t.message:String(t)}),u(0,t)}}return V.error(r>0?`Workflow run kept arriving at a deployment it is not pinned to after re-routing; failing the run`:`Workflow run received by a deployment it is not pinned to; failing the run`,l),u(r)}function Zr(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function Qr(){try{return ir(cr(process.cwd()+`/package.json`).href)}catch{return ir(import.meta.url)}}const $r=Symbol.for(`@workflow/world//cache`),ei=Symbol.for(`@workflow/world//stubbedCache`),ti=Symbol.for(`@workflow/world//cachePromise`),ni=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function ri(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 ii(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return cr(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return cr(process.cwd()+`/`+e).href;try{return cr(Qr().resolve(e)).href}catch{return e}}const ai=async()=>{let e=fr();if(pr(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.`),Zr()}if(e===`local`)return Zr({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=Qr()(e)}catch{t=await import(ii(e))}if(typeof t==`function`)return t();try{return await ri(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},oi=async()=>{if($[ei])return yt($[ei]),$[ei];$[ni]||($[ni]=ai().catch(e=>{throw $[ni]=void 0,e}));let e=await $[ni];return yt(e),$[ei]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},si=async()=>$[$r]?(yt($[$r]),$[$r]):($[ti]||($[ti]=ai().catch(e=>{throw $[ti]=void 0,e})),$[$r]=await $[ti],yt($[$r]),$[$r]),ci=e=>{$[$r]=e,$[ei]=e,$[ti]=void 0,$[ni]=void 0},li=Symbol.for(`@workflow/world//getWorldFn`);globalThis[li]??=si;var ui=class{limitMs;elapsedMs=0;intervalStart;constructor(e=Or()){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}},di=class extends Error{name=`ReplayTimeoutRetryError`};async function fi(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a,slotSnapshot:o}=e,s=V.forRun(t,n),c=kr();if(i<=c)throw s.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:c}),new di(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let l=await si(),u=_r(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=xt(l,t),f=new X(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await l.events.create(t,{eventType:`run_failed`,specVersion:6,eventData:{error:await re(f,t,await d()),errorCode:q.REPLAY_TIMEOUT}},{requestId:r,...o})}var pi=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new mi}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}}},mi=class extends pi{constructor(){super(0)}activate(){}};function hi(e,t){if(e&&!(!Number.isFinite(e.resumeRequestedAtMs)||!Number.isFinite(e.queuePublishRequestedAtMs)))return{trigger:`hook`,...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 gi(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 _i(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 vi(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(!_i(n))return;let{resumeRequestedAtMs:r,queuePublishRequestedAtMs:i,consumerStartedAtMs:a,replayStartedAtMs:o,nextStepEncounteredAtMs:s,stepClaimStartedAtMs:c,stepClaimCompletedAtMs:l,stepCodeStartedAtMs:u}=n;return{...ge(u-r),...L(i-r),...B(a-i),...k(o-a),...S(s-o),...$t(c-s),...l===void 0?{}:ce(l-c),...ye(u-(l??c)),...xe(t.trigger),...t.strategy===void 0?{}:D(t.strategy),...t.setupSource===void 0?{}:N(t.setupSource),...d(t.stepExecution)}}function yi(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return Fn(rr(t).ulid)}catch{return}}function bi(e){return or.isNativeError(e)?e.name:`Error`}function xi(e){return or.isNativeError(e)?e.stack??``:``}function Si(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`&&`message`in e&&typeof e.message==`string`&&(!(`stack`in e)||e.stack===void 0||typeof e.stack==`string`)}function Ci(e){if(!Si(e)||X.is(e))return e;let t=new X(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function wi(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function Ti(e){if(or.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 Ei(e){if(wi(e))try{let t=await Ei(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await Ei(e);return{...t,message:`Promise rejection: ${t.message}`}}return Ti(e)}let Di,Oi,ki;async function Ai(){if(Oi!==void 0)return Oi;if(ki)return ki;if(!Di)try{let e=[`@workflow/utils`,`get-port`].join(`/`);Di=ir(cr(process.cwd()+`/package.json`).href)(e).getPort}catch{Di=async()=>void 0}return ki=(Di??(async()=>void 0))().then(e=>(typeof e==`number`&&(Oi=e),e)).finally(()=>{ki=void 0}),ki}const ji=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function Mi(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(ji.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(!(!n&&i===void 0))return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs,replayMs:e.replayMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},turbo:e.turbo}}function Ni(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}function Pi(e,t){if(t&&!(!e.events||e.cursor===void 0))return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function Fi(e){let{world:t,workflowRunId:n,workflowName:i,workflowStartedAt:s,stepId:l,stepName:u}=e,d=!!process.env.VERCEL_URL,f=(e.runSpecVersion??0)>=5,m=e.replayRecoveryReporter??pi.inert(),g=e.slotSnapshot?.eventCount,_=e=>{if(g===void 0)return;let t=[];e.event&&t.push(zn(e.event.eventId));let n=qe(e.events??[]);n!==void 0&&t.push(n);for(let e of t)e>g&&(g=e)},v=async(e,r)=>{let i=await m.withEventCreate(g===void 0?r:{eventCount:g,...r},r=>t.events.create(n,e,r));return _(i),i};return ft(`step.execute ${ie(u)}`,{},async m=>{m?.setAttributes({...Ge(u),...p(i),...x(n),...Oe(l)});let g=xt(t,n),_=yn(u);if(!_||typeof _!=`function`){let t=`Step "${u}" 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(V.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:u,stepId:l}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await v({eventType:`step_started`,specVersion:6,correlationId:l,eventData:{stepName:u,workflowName:i,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},{computeInstanceId:xr})}catch(e){if(Q.is(e))return{type:`skipped`};if(Y.is(e))return{type:`gone`};throw e}try{await v({eventType:`step_failed`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(new X(t),n,await g(),[],globalThis,f)}})}catch(e){if(Q.is(e))return{type:`skipped`};throw e}return m?.setAttributes({...It(`failed`),...Ee(!0)}),{type:`failed`}}let y=_.maxRetries??3;if(m?.setAttributes({...a(y)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>y+1){let t=y,i=`Step "${u}" exceeded max retries (${t} ${an(`retry`,`retries`,t)})`;r.error(`Step exceeded max retries`,{workflowRunId:n,stepName:u,stepId:l,attempt:e.authoritativeAttempt,maxRetries:y});try{await v({eventType:`step_failed`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(new X(i),n,await g(),[],globalThis,f)}})}catch(e){if(Q.is(e))return V.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(Y.is(e))return{type:`gone`};throw e}return m?.setAttributes({...It(`failed`),...tt(!0)}),{type:`failed`}}let b=e=>{if(tn.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return V.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(Y.is(e))return V.info(`Workflow run "${n}" has already completed, skipping step "${l}": ${e.message}`),{type:`gone`};if(Q.is(e))return V.debug(`Step in terminal state, skipping`,{stepName:u,stepId:l,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),m?.setAttributes({...dt(!0),...Be(`completed`)}),{type:`skipped`};if(pn.is(e)){let t=Math.max(1,e.retryAfter??1);return V.debug(`Step retryAfter timestamp not yet reached`,{stepName:u,stepId:l,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},S=e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(Fr()||e.forceOptimisticStart===!0&&!Ir()),C,w={computeInstanceId:xr},E,D,O,k=async()=>{if(!O)return;let e=await O;if(e.ok)return;let t=b(e.err);if(!t)throw e.err;return t};if(S){O=(e.runReadyBarrier??Promise.resolve()).then(()=>(E=Date.now(),v({eventType:`step_started`,specVersion:6,correlationId:l,eventData:{stepName:u,workflowName:i,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},w))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;C={runId:n,stepId:l,stepName:u,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};E=Date.now();let n=await v({eventType:`step_started`,specVersion:6,correlationId:l,eventData:e.lazyStepInput===void 0?{stepName:u,...t}:{stepName:u,workflowName:i,input:e.lazyStepInput,...t}},w);D=Date.now(),C=n.step}catch(e){let t=b(e);if(t)return t;throw e}V.debug(`Step execution details`,{stepName:u,stepId:C.stepId,status:C.status,attempt:C.attempt}),m?.setAttributes({...It(C.status)});let ee;if(C.attempt>y+1&&C.error){let e=C.attempt-1,t=`Step "${u}" exceeded max retries (${e} ${an(`retry`,`retries`,e)})`;r.error(`Step exceeded max retries`,{workflowRunId:n,stepName:u,retryCount:e});let i=new X(t);if(C.error!=null)try{i.cause=await Zt(C.error,n,await g())}catch{}try{await v({eventType:`step_failed`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(i,n,await g(),[],globalThis,f)}})}catch(e){if(Q.is(e))return V.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e.message}),{type:`skipped`};throw e}return m?.setAttributes({...It(`failed`),...tt(!0)}),{type:`failed`}}let A=[],M=[],N=!0,P,I=()=>{if(!P||P.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t===void 0||E===void 0||(P.rsfs=Math.max(0,E-t),m&&m.setAttributes({...At(P.rsfs)}))};try{let t=C.attempt;if(!C.startedAt)throw new J(`Step "${l}" has no "startedAt" timestamp`);let r=C.startedAt,a=e.encryptionKey??await g(),o=await ft(`step.hydrate`,{},async t=>{let r=Date.now(),i=await oe(C.input,n,a,M,globalThis,{},e.workflowDeploymentId),o=Date.now()-r;return t?.setAttributes({...T(i.args.length),...c(o)}),i}),p=o.args,v=o.thisVal??null,y=Tn(d?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Ai()??3e3}`),b,x=!1,w=Date.now();P=Ni({tracking:e.latencyTracking,stepCodeStartedAtMs:w,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:S,stepStartPostSentAtMs:E}),P&&m?.setAttributes({...P.ttfs===void 0?{}:Je(P.ttfs),...P.stso===void 0?{}:He(P.stso),...P.rsfs===void 0?{}:At(P.rsfs),...P.finalSchedulingReplay===void 0?{}:we(P.finalSchedulingReplay),...U(P.optimizations??[])});let O=()=>{let n=e.resumeTracking;if(!n||n.reported)return;let r=vi({tracking:n,attempt:t,stepClaimStartedAtMs:E,stepClaimCompletedAtMs:D,stepCodeStartedAtMs:Date.now()});r&&(n.reported=!0,m?.setAttributes(r))};try{ee=await ft(`step.execute`,{},async()=>await De.run({stepMetadata:{stepName:u,stepId:l,stepStartedAt:new Date(+r),attempt:t},workflowMetadata:{workflowName:i,workflowRunId:n,workflowStartedAt:new Date(+s),url:y,features:{encryption:!!a}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:M,preCompletionOps:A,closureVars:o.closureVars,encryptionKey:a,runReadyBarrier:S?e.runReadyBarrier:void 0},()=>(O(),_.apply(v,p))))}catch(e){b=e,x=!0}let te=Date.now()-w;if(h(...p,v,o.closureVars),x)throw b;if(m?.setAttributes({...at(te)}),ee=await ft(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await rt(ee,n,a,M,globalThis,!1,!1,f,S?e.runReadyBarrier:void 0),o=Date.now()-r;return t?.setAttributes({...F(o),...Dt(typeof i)}),i}),M.length>0){let e=Promise.all(M);jt(e,e=>{V.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:l,error:e instanceof Error?e.message:String(e)})}),N=await Promise.race([e.then(()=>!0,e=>{if(e?.name===`AbortError`||e?.name===`ResponseAborted`)return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))])}if(S){let e=await k();if(e)return e;I()}A.length>0&&await Promise.all(A).catch(()=>{})}catch(e){if(S){let e=await k();if(e)return e;I()}A.length>0&&await Promise.all(A).catch(()=>{});let t=Ci(e),i=await Ei(t),s=i.stack||xi(t)||``;t instanceof Error&&m?.recordException?.(t);let c=X.is(t);if(m?.setAttributes({...te(bi(t)),...Tt(i.message),...$e(bi(t)),...Ct(c?`fatal`:fn.is(t)?`retryable`:`transient`),...ht(!c)}),Y.is(e))return r.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:l,message:e.message}),{type:`gone`};if(c){r.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:u,errorStack:s}),or.isNativeError(t)&&s&&(t.stack=s);try{await v({eventType:`step_failed`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(t,n,await g(),[],globalThis,f),...P}})}catch(e){if(Q.is(e))return V.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e.message}),{type:`skipped`};throw e}return m?.setAttributes({...It(`failed`),...Ee(!0)}),{type:`failed`}}let d=C.attempt;if(m?.setAttributes({...j(d),...a(y)}),d>=y+1){let t=C.attempt-1;r.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:u,attempt:C.attempt,retryCount:t,errorStack:s});let a=new X(`Step "${u}" failed after ${y} ${an(`retry`,`retries`,y)}: ${i.message}`);a.cause=e,s&&(a.stack=s);try{await v({eventType:`step_failed`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(a,n,await g(),[],globalThis,f),...P}})}catch(e){if(Q.is(e))return V.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e.message}),{type:`skipped`};throw e}return m?.setAttributes({...It(`failed`),...tt(!0)}),{type:`failed`}}fn.is(e)?r.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:u,attempt:d,message:e.message}):r.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:u,attempt:d,errorStack:s}),or.isNativeError(e)&&s&&(e.stack=s);try{await v({eventType:`step_retrying`,specVersion:6,correlationId:l,eventData:{stepName:u,error:await o(e,n,await g(),[],globalThis,f),...fn.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(Q.is(e))return V.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e.message}),{type:`skipped`};throw e}let p=Math.max(1,fn.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return m?.setAttributes({...Ne(p),...vt(!0)}),{type:`retry`,timeoutSeconds:p}}let ne;try{ne=await v({eventType:`step_completed`,specVersion:6,correlationId:l,eventData:{stepName:u,workflowName:i,result:ee,...P}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(Q.is(e))return V.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:l,stepName:u,message:e.message}),{type:`skipped`};if(Y.is(e))return r.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:l,message:e.message}),{type:`gone`};throw e}let L=Pi(ne,e.inlineDeltaSinceCursor!==void 0);return m?.setAttributes({...It(`completed`),...Dt(typeof ee)}),M.length>0&&r.debug(`Step has pending ops`,{workflowRunId:n,stepName:u,opsCount:M.length}),{type:`completed`,hasPendingOps:!N,inlineDelta:L}})}function Ii(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function Li(e,t){if(e.lastStartedAt===void 0)return 0;let n=Br(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function Ri(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function zi(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 Bi=new Map;async function Vi(e,t,n){let r=`${e}:${t}`,i=Bi.get(r);if(i){V.warn(`Step execution already in flight in this process; awaiting its settlement instead of executing again`,{workflowRunId:e,stepId:t});try{await i}catch{}return{type:`skipped`}}let a=n();Bi.set(r,a);try{return await a}finally{Bi.delete(r)}}async function Hi({runId:e,hookEvent:t,queueItem:n,requestId:r,createEvent:i}){try{return(await i(t,{requestId:r})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(Q.is(t))return V.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(Y.is(t))return V.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(Wi(t)){let e=new X(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function Ui({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s,stepDispatch:c}){let l=n.runId,u=async()=>{if(o)try{await o}catch{}},d=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=>rn.is(e))??t[0]},p=s??pi.inert(),m=(e,n)=>p.withEventCreate(n,n=>t.events.create(l,e,n)),h=0,g=async(e,t)=>{if(!a)return m(e,t);let n=a,r=await m(e,{...t,...zt(n.events)}),i=Et(n.events,r);return h+=i.added,i.truncated?V.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:l,eventType:e.eventType,eventId:r.event?.eventId,offered:i.offered}):i.added>0&&V.debug(`Suspension write skipped occupied slots`,{workflowRunId:l,eventType:e.eventType,eventId:r.event?.eventId,reported:i.added}),r},_=e.steps.filter(e=>e.type===`step`),v=e.steps.filter(e=>e.type===`hook`),y=e.steps.filter(e=>e.type===`wait`),b=e.steps.filter(e=>e.type===`attribute`),x=v.filter(e=>!e.hasCreatedEvent),S=new Map;for(let e of v){if(e.hasCreatedEvent&&!e.disposed)continue;let t=S.get(e.token);t?t.push(e):S.set(e.token,[e])}let C=await t.getEncryptionKeyForRun?.(n),w=C?await de(C):void 0,T=(n.specVersion??0)>=5;async function E(e){let t={eventType:`hook_disposed`,specVersion:6,correlationId:e.correlationId,eventData:{token:e.token}};try{await g(t,{requestId:i})}catch(t){if(Q.is(t))V.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:l,correlationId:e.correlationId,message:t.message});else if(Y.is(t))V.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:l,correlationId:e.correlationId,message:t.message});else if(ln.is(t))V.info(`Hook not found for disposal, continuing`,{workflowRunId:l,correlationId:e.correlationId,message:t.message});else throw t}}let D=!1,O=!1,k=0;if(S.size>0){let t=Date.now();await u(),await d([...S.values()].map(async t=>{for(let n of t){let t=!1;if(!n.hasCreatedEvent){let r=n.metadata===void 0?void 0:await ot(n.metadata,l,w,e.globalThis,!1,T),a={eventType:`hook_created`,specVersion:6,correlationId:n.correlationId,eventData:{token:n.token,tokenRetentionUntil:n.tokenRetentionUntil,metadata:r,isWebhook:n.isWebhook??!1,...n.isSystem&&{isSystem:!0}}},o=await Hi({runId:l,hookEvent:a,queueItem:n,requestId:i,createEvent:g});D||=o.hasHookConflict,O||=o.hasAwaitedHookCreation,t=o.hasHookConflict}n.disposed&&!t&&await E(n)}})),k=Date.now()-t}let ee=v.filter(e=>e.abortRequested&&!e.disposed);ee.length>0&&(await u(),await d(ee.map(async n=>{try{let r=await ot({aborted:!0,reason:n.abortReason},l,w,e.globalThis,!1,T);await g({eventType:`hook_received`,specVersion:6,correlationId:n.correlationId,eventData:{token:n.token,payload:r}});try{let e=Te(n.token);await t.streams.write(l,e,r),await t.streams.close(l,e)}catch{V.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:l,correlationId:n.correlationId})}}catch(e){if(Q.is(e)||Y.is(e))V.info(`Workflow run already completed, skipping abort`,{workflowRunId:l,correlationId:n.correlationId,message:e.message});else throw e}})));let te=new Set(_.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),A=new Set,j={executions:[]},N=new Set(O===!1?_.filter(e=>te.has(e.correlationId)).slice(0,jr()).map(e=>e.correlationId):[]),P=new Map,F=[],I=new Set,ne=c!==void 0&&Mr()&&(n.specVersion??0)>=3,L,re=()=>(L??=c?.getTraceCarrier()??Promise.resolve({}),L),R=0;for(let r of _)te.has(r.correlationId)&&F.push((async()=>{let a={executions:[]},o=await ot({args:r.args,closureVars:r.closureVars,thisVal:r.thisVal},l,w,e.globalThis,!1,T,a);if(j.executions.push(...a.executions),N.has(r.correlationId)){P.set(r.correlationId,{correlationId:r.correlationId,stepName:r.stepName,dehydratedInput:o});return}let s={eventType:`step_created`,specVersion:6,correlationId:r.correlationId,eventData:{stepName:r.stepName,workflowName:n.workflowName,input:o}};if(ne&&o instanceof Uint8Array&&o.byteLength<=131072){await u();let e=await re(),[n,a]=await Promise.allSettled([g(s,{requestId:i}),G(t,c.queueName,{runId:l,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date,stepInput:{input:o}},{idempotencyKey:Jt(r.correlationId,r.stepName)})]);if(a.status===`rejected`)throw a.reason;if(I.add(r.correlationId),n.status===`rejected`){let e=n.reason;if(Q.is(e))V.info(`Step already exists, continuing`,{workflowRunId:l,correlationId:r.correlationId,message:e.message});else if(f(e))R++,V.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:l,correlationId:r.correlationId,stepName:r.stepName,error:e instanceof Error?e.message:String(e)});else throw e}else A.add(r.correlationId);return}try{await u(),await g(s,{requestId:i}),A.add(r.correlationId)}catch(e){if(Q.is(e))V.info(`Step already exists, continuing`,{workflowRunId:l,correlationId:r.correlationId,message:e.message});else throw e}})());for(let e of y)e.hasCreatedEvent||F.push((async()=>{let t={eventType:`wait_created`,specVersion:6,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};try{await u(),await g(t,{requestId:i})}catch(t){if(Q.is(t))V.info(`Wait already exists, continuing`,{workflowRunId:l,correlationId:e.correlationId,message:t.message});else throw t}})());for(let e of b)F.push((async()=>{try{await u(),await g({eventType:`attr_set`,specVersion:6,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(Q.is(t))V.info(`Workflow attribute event already exists, continuing`,{workflowRunId:l,correlationId:e.correlationId,message:t.message});else if(Wi(t)){let e=new X(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await d(F);let ie=j.executions.length===0;ie||V.debug(`Serializing step inputs executed workflow code; falling back to replay instead of retaining the VM`,{workflowRunId:l,executions:j.executions.slice(0,5).map(e=>e.detail?`${e.kind}(${e.detail})`:e.kind)});let ae=[];for(let e of N){let t=P.get(e);t&&ae.push(t)}let z=Date.now(),B;for(let e of y){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-z),r=Math.ceil(n/1e3);(!B||r<B.seconds)&&(B={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...M(`workflow_suspended`),...Qt(_.length),...ue(x.length),...he(y.length),...R>0?gt(R):{}}),{pendingSteps:_,createdStepCorrelationIds:A,queuedStepCorrelationIds:I,lazyInlineSteps:ae,waitTimeout:D?void 0:B,hasHookConflict:D,hasAwaitedHookCreation:O,hasAttributeEvents:b.length>0,hasHookEvents:x.length>0,hookCreationMs:k,retainedStepInputsSafe:ie,reportedEventCount:h}}function Wi(e){return e instanceof Nn||e instanceof Error&&e.name===`AttributeValidationError`||on.is(e)&&e.status===400}const Gi=()=>Vn(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),Ki=()=>Vn(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function qi(e,t,n=Date.now()){let r=Gi();if(e<=Math.min(Ki(),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 Ji=44,Yi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Xi=new Uint8Array(64),Zi=new Uint8Array(128);for(let e=0;e<Yi.length;e++){let t=Yi.charCodeAt(e);Xi[e]=t,Zi[t]=e}function Qi(e,t){let n=0,r=0,i=0;do i=Zi[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function $i(e,t){return e.pos>=t?!1:e.peek()!==Ji}var ea=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 ta(e){let{length:t}=e,n=new ea(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=Qi(n,i),i<u&&(l=!1),u=i,$i(n,e)?(a=Qi(n,a),o=Qi(n,o),s=Qi(n,s),$i(n,e)?(c=Qi(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||na(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function na(e){e.sort(ra)}function ra(e,t){return e[0]-t[0]}const ia=/^[\w+.-]+:\/\//,aa=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,oa=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function sa(e){return ia.test(e)}function ca(e){return e.startsWith(`//`)}function la(e){return e.startsWith(`/`)}function ua(e){return e.startsWith(`file:`)}function da(e){return/^[.?#]/.test(e)}function fa(e){let t=aa.exec(e);return ma(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function pa(e){let t=oa.exec(e),n=t[2];return ma(`file:`,``,t[1]||``,``,la(n)?n:`/`+n,t[3]||``,t[4]||``)}function ma(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 ha(e){if(ca(e)){let t=fa(`http:`+e);return t.scheme=``,t.type=6,t}if(la(e)){let t=fa(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(ua(e))return pa(e);if(sa(e))return fa(e);let t=fa(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function ga(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function _a(e,t){va(t,t.type),e.path===`/`?e.path=t.path:e.path=ga(t.path)+e.path}function va(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 ya(e,t){if(!e&&!t)return``;let n=ha(e),r=n.type;if(t&&r!==7){let e=ha(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:_a(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)}va(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?da(t||e)&&!da(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 ba(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function xa(e,t){let n=ba(e),r=t?t+`/`:``;return e=>ya(r+(e||``),n)}var Sa=0,Ca=1,wa=2,Ta=3,Ea=4;function Da(e,t){let n=Oa(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=Oa(e,r+1))e[r]=Aa(e[r],t);return e}function Oa(e,t){for(let n=t;n<e.length;n++)if(!ka(e[n]))return n;return e.length}function ka(e){for(let t=1;t<e.length;t++)if(e[t][Sa]<e[t-1][Sa])return!1;return!0}function Aa(e,t){return t||(e=e.slice()),e.sort(ja)}function ja(e,t){return e[Sa]-t[Sa]}var Ma=!1;function Na(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][Sa]-t;if(a===0)return Ma=!0,i;a<0?n=i+1:r=i-1}return Ma=!1,n-1}function Pa(e,t,n){for(let r=n+1;r<e.length&&e[r][Sa]===t;n=r++);return n}function Fa(e,t,n){for(let r=n-1;r>=0&&e[r][Sa]===t;n=r--);return n}function Ia(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function La(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 Ma=o!==-1&&e[o][Sa]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=Na(e,t,s,c)}function Ra(e){return typeof e==`string`?JSON.parse(e):e}var za="`line` must be greater than 0 (lines start at line 1)",Ba="`column` must be greater than or equal to 0 (columns start at column 0)",Va=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=Ra(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=xa(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=Da(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=Ia(),this._bySources=void 0,this._bySourceMemos=void 0}};function Ha(e){return e}function Ua(e){var t;return(t=Ha(e))._decoded||(t._decoded=ta(Ha(e)._encoded))}function Wa(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(za);if(r<0)throw Error(Ba);let a=Ua(e);if(n>=a.length)return Ga(null,null,null,null);let o=a[n],s=Ka(o,Ha(e)._decodedMemo,n,r,i||1);if(s===-1)return Ga(null,null,null,null);let c=o[s];if(c.length===1)return Ga(null,null,null,null);let{names:l,resolvedSources:u}=e;return Ga(u[c[Ca]],c[wa]+1,c[Ta],c.length===5?l[c[Ea]]:null)}function Ga(e,t,n,r){return{source:e,line:t,column:n,name:r}}function Ka(e,t,n,r,i){let a=La(e,r,t,n);return Ma?a=(i===-1?Pa:Fa)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function qa(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function Ja(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&&qa(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const Ya=new Map;function Xa(e){let t=Ya.get(e);if(t!==void 0)return Ya.delete(e),Ya.set(e,t),t;let n=null,r=Ja(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new Va(JSON.parse(e))}catch{n=null}for(Ya.set(e,n);Ya.size>8;){let e=Ya.keys().next().value;if(e===void 0)break;Ya.delete(e)}return n}function Za(e,t,n){if(!e.includes(t))return e;let r=Xa(n);if(!r)return e;try{return e.split(`
|
|
2
|
+
`).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=Wa(r,{line:c,column:l});if(u.source&&u.line!==null){let e=i||u.name||`anonymous`,t=u.column===null?l:u.column;return` at ${e} (${u.source}:${u.line}:${t})`}return e}).join(`
|
|
3
|
+
`)}catch{return e}}function Qa(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 $a(e){return function(t,n){let i=function(...i){let{promise:a,resolve:o,reject:s}=vn(),c=`step_${e.generateUlid()}`,u={type:`step`,correlationId:c,stepName:t,args:i};this!==void 0&&this!==null&&this!==globalThis&&(u.thisVal=this);let d=n?.();return d&&(u.closureVars=d),e.invocationsQueue.set(c,u),r.debug(`Step consumer setup`,{correlationId:c,stepName:t,args:i}),e.eventsConsumer.subscribe(n=>{if(!n){let t=e.suspensionGeneration;return bn(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),A.NotConsumed}if(r.debug(`Step consumer event processing`,{correlationId:c,stepName:t,args:i.join(`, `),incomingCorrelationId:n.correlationId,isMatch:c===n.correlationId,eventType:n.eventType}),n.correlationId!==c)return A.NotConsumed;let a=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof a==`string`&&a!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: step event ${n.eventType} for ${c} belongs to "${a}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),A.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(c);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{s(new Z(`Replay divergence: step ${c} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),A.Finished):(r.hasCreatedEvent=!0,A.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),A.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(c);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),A.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,i=hn(e,t,`step`),a,o=xn(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);a=await Zt(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){r.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),a=new X(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}o.then(()=>{i.markDelivered(),s(a)})}),A.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,a=hn(e,i,`step`),c,u=xn(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 l(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}u.then(()=>{a.markDelivered(),c.ok?o(c.value):s(c.error)})}),A.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for step ${c} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),A.Finished}),a},a=t.split(`//`).pop();return Object.defineProperty(i,"name",{value:a}),Object.defineProperty(i,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(Nt(n),Object.defineProperty(i,"__closureVarsFn",{value:n,writable:!1,enumerable:!1,configurable:!1})),Object.defineProperty(i,"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}),i}}var eo=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)})),to=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)})),no=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)})),ro=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)})),io=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)})),ao=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)})),oo=n(((e,n)=>{(function(e,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 t;return p&&(t=p.randomBytes)?t=t(a):(t=new Uint8Array(a),(e.crypto||e.msCrypto).getRandomValues(t)),b(t)}catch{var n=e.navigator,i=n&&n.plugins;return[+new Date,e,i,e.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=t(`crypto`)}catch{}}else typeof define==`function`&&define.amd?define(function(){return m}):i[`seed`+c]=m})(typeof self<`u`?self:e,[],Math)})),so=e(n(((e,t)=>{var n=eo(),r=to(),i=no(),a=ro(),o=io(),s=ao(),c=oo();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const co=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,lo=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)lo[co.charCodeAt(e)]=e;function uo(e){return e===9||e===10||e===12||e===13||e===32}function fo(e,t){for(;t<e.length&&uo(e.charCodeAt(t));)t++;return t}function po(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=lo[r.charCodeAt(0)],a=lo[r.charCodeAt(1)],o=lo[r.charCodeAt(2)],s=lo[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 mo(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=fo(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(...po(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=fo(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=fo(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(...po(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||lo[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(...po(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function ho(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 go(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+=co[n>>2&63],i+=co[(n&3)<<4|o>>4&15],t+1<a?i+=co[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=co[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function _o(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function vo(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 go(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 _o(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=mo(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=ho(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=mo(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=ho(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function yo(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)r===8||r===13||r===18||r===23?n+=`-`:r===14?n+=`4`:r===19?n+=t[Math.floor(e()*4)+8]:n+=t[Math.floor(e()*16)];return n}}const bo={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function xo(e){if(or.isTypedArray(e)||or.isDataView(e)){if(or.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!or.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function So(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,so.default)(n),i=ur(),a=dr(`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=yo(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=bo[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=ar(r).update(xo(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 J(`\`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,vo(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 Co=new Map;function wo(e){let t=Co.get(e);if(t!==void 0)return Co.delete(e),Co.set(e,t),t}function To(e,t){let n=wo(e);if(n===void 0)for(n=new Map,Co.set(e,n);Co.size>8;){let e=Co.keys().next().value;if(e===void 0)break;Co.delete(e)}let r=n.get(t);return r===void 0&&(r=new lr(e,{filename:t}),n.set(t,r)),r}function Eo(e,t,n){return To(e,t).runInContext(n)}function Do(e){return async function(t,n={}){let{promise:r,resolve:i}=vn(),a=`attr_${e.generateUlid()}`,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 Z(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),A.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),A.Finished):A.NotConsumed:(bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),A.NotConsumed)),r}}function Oo(e,t){if(typeof t!=`string`)return null;let n=H(Ce,e.globalThis),r=n?.[i];return typeof r==`function`?r.call(n,{runId:t}):null}function ko(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a randomly generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new X("The configured World does not support `experimental_minRetention` for Hooks.");let n=`hook_${e.generateUlid()}`,r=t.token??e.generateNanoid(),i=t.experimental_minRetention===void 0?void 0:Cn(t.experimental_minRetention),a=t.isWebhook??!1;e.invocationsQueue.set(n,{type:`hook`,correlationId:n,token:r,tokenRetentionUntil:i,metadata:t.metadata,isWebhook:a});let o=[],s=[],c=[],u=!1,d=!1,f=!1,p=!1,m=null,h=null,g=new Set;Ke.debug(`Hook consumer setup`,{correlationId:n,token:r}),e.eventsConsumer.subscribe(t=>{if(!t)return u=!0,(s.length>0&&o.length===0||c.length>0&&!d&&!p)&&bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),A.NotConsumed;if(t.correlationId!==n)return A.NotConsumed;let i=`eventData`in t&&t.eventData&&`token`in t.eventData?t.eventData.token:void 0;if(typeof i==`string`&&i!==r)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${i}", but the current hook consumer expects "${r}"`,{eventId:t.eventId}))}),A.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),d=!0;let i=c.slice();return c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),A.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new nn(r.eventData.token,r.eventData.conflictingRunId);p=!0,m=i,h=Oo(e,r.eventData.conflictingRunId);let a=s.slice();s.length=0;let o=c.slice();return c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of a)e.reject(i);for(let e of o)h?e.resolve(h):e.reject(i)}),A.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(g.has(n))return A.Consumed;g.add(n)}let r=e.eventsConsumer.eventIndex,i=s.length>0,a=hn(e,r,`hook`,{armed:i});if(i){let n=xn(e,r,`hook`),i=s.shift();if(i){e.pendingDeliveries++;let r;e.promiseQueue=e.promiseQueue.then(async()=>{try{let n=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);r={ok:!0,value:await l(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},n)}}catch(e){r={ok:!1,error:e}}finally{e.pendingDeliveries--}n.then(()=>{a.markDelivered(),r.ok?i.resolve(r.value):i.reject(r.error)})})}}else{let n,i=vn();e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{try{let r=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,t.eventData.payload);n={ok:!0,value:await l(t.eventData.payload,e.runId,e.encryptionKey,e.globalThis,{},r)}}catch(e){n={ok:!1,error:e}}finally{e.pendingDeliveries--,i.resolve()}}),o.push({claim:()=>(a.arm(),i.promise.then(()=>xn(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return A.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),f=!0,A.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for hook ${n} (token: ${r}) "${t.eventType}"`,{eventId:t.eventId}))}),A.Finished)});let _=!1;function v(){let t=vn();if(p&&m)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(m)}),t.promise;if(o.length>0){let e=o.shift();if(e)return e.claim()}return u&&bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),s.push(t),t.promise}function y(){let t=vn();if(d)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(p)return e.promiseQueue=e.promiseQueue.then(()=>{h?t.resolve(h):t.reject(m)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),u&&bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),c.push(t),t.promise}function b(){if(_||(_=!0,f))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),s.length>0&&(s.length=0,bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))})),Ke.debug(`Hook disposed`,{correlationId:n,token:r})}let x={token:r,getConflict(){return y()},then(e,t){return v().then(e,t)},async*[Symbol.asyncIterator](){for(;!_;)yield await this},dispose:b,[Symbol.dispose]:b},S=e.globalThis.Symbol.dispose;return S&&S!==Symbol.dispose&&(x[S]=b),x}}function Ao(e){return async function(t){let{promise:n,resolve:r}=vn(),i=`wait_${e.generateUlid()}`,a=Cn(t),o={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,o),e.eventsConsumer.subscribe(t=>{if(!t)return bn(e,()=>{e.onWorkflowError(new w(e.invocationsQueue,e.globalThis))}),A.NotConsumed;if(t.correlationId!==i)return A.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),A.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),A.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=hn(e,o,`wait`),c=xn(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),A.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new Z(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),A.Finished}),n}}async function jo(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 si();await Ui({suspension:new w(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){V.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function Mo(e){return Po(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await Io(e);return t?.setAttributes({...St(n.argumentCount)}),Fo(await r,t)})}function No(e,t){return Po(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...St(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:Fo(r,n)})}function Po(e,t,n,r){return ft(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({...p(t.workflowName),...x(t.runId),...M(t.status),...Ie(n.length),...Gt(e)}),r(i)))}function Fo(e,t){return e.type===`completed`?t?.setAttributes({...st(e.resultType)}):t&&(Pt(e.suspension,t),e.parked&&t.setAttributes({...R(e.parked.count),...y(e.parked.eventId),...g(e.parked.eventType)})),e}async function Io({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,runReadyBarrier:a,worldCapabilities:o}){let s=t.startedAt;if(!s)throw new J(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let c=yi(t.runId)??+t.createdAt,l=Tn(process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Ai()??3e3}`),{context:u,globalThis:d,updateTimestamp:f}=So({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:c}),p=vn(),m={type:`running`,interruption:p},h=e=>{switch(m.type){case`running`:{let{interruption:t}=m;m=w.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},E.suspensionGeneration++,t.reject(e);return}case`suspended`:m={type:`replay`};return;case`replay`:case`completed`:return}},g=Ln(()=>d.Math.random()),v=()=>g(c),y=Qa(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*d.Math.random())),b={current:Promise.resolve()},x={current:()=>!0},S=c,T=new wt(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>S&&(S=t,f(t))},onUnconsumedEvent:e=>{h(new Z(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}.`,{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){V.error(`Ignoring event that decides an already-decided outcome differently`,r);return}V.info(`Ignoring event that repeats a class already in the event log`,r)},getPromiseQueue:()=>b.current,isDeliveryIdle:()=>x.current()}),E={runId:t.runId,encryptionKey:r,worldCapabilities:o,globalThis:d,onWorkflowError:h,eventsConsumer:T,generateUlid:v,generateNanoid:y,invocationsQueue:new Map,get promiseQueue(){return b.current},set promiseQueue(e){b.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};x.current=()=>_n(E);let D=!1;E.eventsConsumer.subscribe(e=>e?e.eventType===`run_created`?A.Consumed:e.eventType===`run_started`?D?A.NotConsumed:(D=!0,A.Consumed):e.eventType===`attr_set`&&e.eventData.writer.type===`step`?A.Consumed:A.NotConsumed:A.NotConsumed);let O=$a(E),k=ko(E),ee=Ao(E),te=Do(E);d[Kt]=O,d[Xt]=te,d[je]=k,d[Le]=ee,d[Vt]=e=>Se(t.runId,e),d[kn]={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new d.Date(+s),url:l,features:{encryption:!!r}},d[Ue]=v,d.fetch=()=>{throw new d.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/${cn.FETCH_IN_WORKFLOW_FUNCTION}`)};let j=`Timeout functions like "setTimeout" and "setInterval" are not supported in workflow functions. Use the "sleep" function from "workflow" for time-based delays.`;d.setTimeout=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.setInterval=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.clearTimeout=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.clearInterval=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.setImmediate=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.clearImmediate=()=>{throw new J(j,{slug:cn.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},d.AbortController=C(E);let M=be();d.AbortSignal={abort:M.abort,any:M.any,timeout:M.timeout};class N{cache;credentials;destination;headers;integrity;method;mode;redirect;referrer;referrerPolicy;url;keepalive;signal;duplex;body;constructor(e,t){if(typeof e==`string`||e instanceof d.URL){let t=String(e);try{new d.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 d.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 d.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 d.Headers(t.headers):(typeof e==`string`||e instanceof d.URL)&&(this.headers=new d.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);n==null?this.body=null:this.body=Object.create(d.ReadableStream.prototype,{[Lt]:{value:n,writable:!1}})}clone(){W()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}d.Request=N,Object.defineProperties(N.prototype,{arrayBuffer:{value:O(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:O(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:O(`__builtin_response_text`),writable:!0,configurable:!0}});class P{type;url;status;statusText;body;headers;redirected;constructor(e,t){if(this.status=t?.status??200,this.statusText=t?.statusText??``,this.headers=new d.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);e==null?this.body=null:this.body=Object.create(d.ReadableStream.prototype,{[Lt]:{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 d.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new P(n,{...t,headers:r})}static error(){W()}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 d.Headers;n.set(`Location`,String(e));let r=Object.create(P.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}d.Response=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:O(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:O(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:O(`__builtin_response_text`),writable:!0,configurable:!0}});class F{constructor(){W()}get locked(){return!1}cancel(){W()}getReader(){W()}pipeThrough(){W()}pipeTo(){W()}tee(){W()}values(){W()}static from(){W()}[Symbol.asyncIterator](){W()}}d.ReadableStream=F;class ne{constructor(){W()}get locked(){return!1}abort(){W()}close(){W()}getWriter(){W()}}d.WritableStream=ne;class L{readable;writable;constructor(){W()}}d.TransformStream=L,d.console=globalThis.console;let re=Symbol.for(`@vercel/request-context`);d[re]=globalThis[re];let R=_(t.workflowName)?.moduleSpecifier||t.workflowName;Eo(e,R,u);let ie=Eo(`globalThis.__private_workflows?.get(${JSON.stringify(t.workflowName)})`,R,u);if(typeof ie!=`function`)throw new en(t.workflowName);let ae=[];E.promiseQueue=E.promiseQueue.then(async()=>{let e=await i.prepareWorkflowInput(t);ae=await _e(t.input,t.runId,r,d,{},e)}),await E.promiseQueue;let z=(async()=>await ie(...ae))(),B=async e=>{throw w.is(e)||Z.is(e)?(m.type===`running`&&(m={type:`replay`}),e):(m={type:`completed`},await jo(t.runId,E.invocationsQueue,d,t,`failed`,a),e)},H=async e=>{let n;try{n=await Promise.race([z,e.promise])}catch(e){return m.type===`suspended`&&e===m.suspension?{type:`suspended`,suspension:m.suspension,session:U,parked:T.parkedSummary}:B(e)}m={type:`completed`};let i=T.strandedEvent;if(i)return B(new Z(`Replay finished without consuming event: eventType=${i.eventType}, correlationId=${i.correlationId}, eventId=${i.eventId}.`,{eventId:i.eventId}));try{let e=await I(n,t.runId,r,d,!1,(t.specVersion??0)>=5);return await jo(t.runId,E.invocationsQueue,d,t,`completed`,a),{type:`completed`,output:e,resultType:typeof n}}catch(e){return B(e)}},U={workflowRun:t,argumentCount:ae.length,async resume(e){switch(m.type){case`suspended`:{let t=T.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return m={type:`replay`},{type:`replay`};let n=vn();return m={type:`running`,interruption:n},E.suspensionGeneration++,T.append(e.slice(t.length)),H(n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new J(`Cannot resume ${m.type} workflow "${t.runId}"`)}}};return{session:U,execution:H(p)}}function Lo(e){let t=Pr();return t===void 0?e:e===void 0?t:Math.min(e,t)}function Ro({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 zo({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 Bo(e){return J.is(e)?q.RUNTIME_ERROR:Ht(e)?q.WORLD_CONTRACT_ERROR:null}function Vo(e){return!on.is(e)||e.status!==void 0&&e.status!==404?!1:/step/i.test(e.message)&&/not found/i.test(e.message)}async function Ho({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){V.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=xt(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:6,eventData:{error:await re(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(Q.is(e)||Y.is(e))return;if(Ht(e)){V.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}}function Uo(e,t){let n=e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));return n?(V.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function Wo(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function Go(e,t){return e?.[Pn]??t}function Ko(e){let t=new Set,n=new Set;for(let r of e)switch(r.eventType){case`hook_created`:t.add(r.correlationId);break;case`hook_disposed`:t.delete(r.correlationId);break;case`wait_created`:n.add(r.correlationId);break;case`wait_completed`:n.delete(r.correlationId);break}return{openHook:t.size>0,openWait:n.size>0}}function qo(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}function Jo(e,t){et(e.events,t.events),e.cursor=t.cursor??e.cursor}function Yo(e,t,n){if(!Rr()||!t||e.steps.length===0||!e.steps.every(e=>e.type===`step`))return!1;let{openHook:r,openWait:i}=n.value;return!r&&!i}async function Xo(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,mr.default)(`25m`))return(0,mr.default)(`10m`);if(n>=(0,mr.default)(`10m`))return(0,mr.default)(`5m`)}}return(0,mr.default)(`2m`)}function Zo(e,t){wn(t?.basePath);let n=jn(t?.namespace),r=Bn(`workflow`,n),i=t=>t.createQueueHandler(r,async(i,a)=>{let o=Date.now(),s=pt(i);if(s){await kt(s,t.specVersion);return}let{runId:c,traceCarrier:l,requestedAt:d,stepId:m,stepName:h,replayDivergence:g,preconditionReinvocations:y,deploymentMismatchRetryCount:S,runInput:C,hookInput:T,stepInput:D,hookResumeTiming:O}=In.parse(i),k=hi(O,m===void 0?`inline`:`dispatched`);k&&m===void 0&&(k.consumerStartedAtMs=o),k&&!Number.isFinite(k.consumerStartedAtMs)&&(k=void 0);let te=bt(l)?l:void 0,{requestId:A}=a,j=a.queueName.slice(r.length),N=V.forRun(c,j),P=Sr();if(a.attempt>P){let e=_r(void 0,q.MAX_DELIVERIES_EXCEEDED);N.error(`Workflow handler exceeded max deliveries (${a.attempt}/${P})`,{attempt:a.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await si(),t=xt(e,c),n=new X(`Workflow exceeded maximum queue deliveries (${a.attempt}/${P})`);await e.events.create(c,{eventType:`run_failed`,specVersion:6,eventData:{error:await re(n,c,await t()),errorCode:q.MAX_DELIVERIES_EXCEEDED}},{requestId:A})}catch(e){if(Q.is(e)||Y.is(e))return;N.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}let F=Pe(),I=()=>Ot(F,te),ne=await _t(F,te),L=new ui,R=F===`continuous`?te:void 0,ie=await nt(`CONSUMER`);return await Rt(R,async()=>await We({workflowRunId:c,workflowName:j},async()=>{let t=await ft(`workflow.route.get_world`,async()=>si());if(!Ro({world:t,runInput:C,runId:c,runLogger:N}))return await zo({world:t,runInput:C,runId:c,runLogger:N}),ft(`workflow.execute ${ct(j)}`,{kind:ie,links:ne},async r=>{r?.setAttributes({...p(j),...Ut(`execute_v2`),...lt(`vercel-queue`),...b(a.queueName),...v(a.messageId),...ae(`process`),...Me({requestedAt:d}),...x(c),...ve(!!te),...u(F)});let i=Date.now(),o=await Xo(t,i),s=0,l=g?new pi(g.count):pi.inert(),P=async(e,n)=>{let r=R(e,n),i={...ne(),...n},a=await l.withEventCreate(r===void 0?i:{...i,sinceCursor:r},n=>t.events.create(c,e,n));return r!==void 0&&ie(r,a),a},ne=()=>z.type===`loadAll`?{}:zt(z.events),R=(e,t)=>{if(!(pe||z.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||Mn(e.eventType)))return z.cursor??void 0},ie=(e,t)=>{z.type!==`ready`||z.cursor!==e||t.events===void 0||t.hasMore===!0||Jo(z,{events:t.events,cursor:t.cursor})},z={type:`loadAll`},B,H,U=-1,oe,ce,ue=0,de,pe=Lr()&&C!==void 0&&a.attempt===1&&m===void 0&&!g;r?.setAttributes(E(pe));let me,he=async()=>{if(me)try{await me}catch{}},ge=new Set,_e=e=>{ge.size>0&&V.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:c,ackPath:e,stepIds:[...ge]})},ye=async()=>({runId:c,traceCarrier:await I(),requestedAt:new Date}),be=async(e,r)=>{if(_e(`reinvoke`),!pe)return{timeoutSeconds:e};await G(t,K(j,n),{...await ye(),...r},e>0?{delaySeconds:e}:void 0)},W=0,xe=null,Se=e=>{let t=xe;if(!t)return;xe=null;let n=new Set(e.map(e=>e.eventId)),r=Wo(n,t.ids),i=Wo(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;V.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:c,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:s})},Ce=(e,t,{allowDelta:n=!0}={})=>{if(W>=Hr())return!1;W++,je=null;let i=n&&W===1?Ze(t,c):null,a=i!==null&&z.type!==`loadAll`;return xe=z.type===`loadAll`?null:{ids:new Set(z.events.map(e=>e.eventId)),restart:W,reason:e,source:a?`inline-delta`:`full-reload`},i&&z.type!==`loadAll`?(Jo(z,i),z={...z,type:`ready`}):(z={type:`loadAll`},Oe.resetScan()),V.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:c,reason:e,loopIteration:s,preconditionRestarts:W,source:a?`inline-delta`:`full-reload`}),r?.setAttributes({"workflow.precondition_restarts":W}),!0},we=async(e,t)=>{let n=(y??0)+1,i=Ur();return n>i?{reinvoked:!1,error:new J(`Event creation was rejected as stale after ${i} re-invocations of ${Hr()} 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})}:(V.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:c,reason:e,loopIteration:s,preconditionReinvocations:n,maxReinvocations:i}),r?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await be(Wr(),{preconditionReinvocations:n})})},Te=async(e,i,a)=>{let{outcome:o,spanAttributes:s}=await Xr({world:t,run:e,requestId:A,retryCount:S,beforeStop:a,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:r,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await G(t,K(j,n),{...await i(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:r,delaySeconds:o})}});return s&&r?.setAttributes(s),o};if(m&&h)try{let e=async()=>{if(!D)return`ok`;try{await t.events.create(c,{eventType:`step_created`,specVersion:6,correlationId:m,eventData:{stepName:h,workflowName:j,input:D.input}},{requestId:A,viaStepDispatch:!0}),r?.setAttributes(Mt(!0)),V.warn(`Materialized step_created from the queue message — the producer’s direct write did not land`,{workflowRunId:c,stepId:m,stepName:h})}catch(e){if(Q.is(e))return`ok`;if(Y.is(e))return`gone`;throw e}return`ok`},[i,o]=await Promise.all([t.runs.get(c,{resolveData:`none`}),D&&a.attempt>1?e():`ok`]);if(o===`gone`){V.debug(`Run already finished, skipping background step`,{workflowRunId:c});return}if(i.status!==`running`){V.debug(`Run already finished, skipping background step`,{workflowRunId:c,status:i.status});return}if(await Te(i,async()=>({...await ye(),stepId:m,stepName:h,...O?{hookResumeTiming:O}:{}}))!==`continue`)return;let s=i.startedAt?+i.startedAt:Date.now(),l=a.attempt,u=yn(h)?.maxRetries??3;a.attempt>u+1&&(l=qr((await Ve(c)).events,m,{type:`totalAttempts`})+1);let d=k;k=void 0,L.pause();let f;try{let n=()=>Fi({world:t,workflowRunId:c,workflowDeploymentId:i.deploymentId,workflowName:j,workflowStartedAt:s,rootRunId:Go(i.attributes,c),stepId:m,stepName:h,runSpecVersion:i.specVersion,authoritativeAttempt:l,...d?{resumeTracking:d}:{}});f=await Vi(c,m,async()=>{try{return await n()}catch(t){if(!D||!Vo(t))throw t;return await e()===`gone`?{type:`gone`}:await n()}})}finally{L.resume()}if(f.type===`retry`||f.type===`throttled`)return{timeoutSeconds:f.timeoutSeconds};if(f.type===`completed`&&f.hasPendingOps){await G(t,K(j,n),{runId:c,traceCarrier:await I(),requestedAt:new Date});return}if(f.type===`completed`||f.type===`failed`||f.type===`skipped`){let e=await Ve(c);z=qo(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 o=new Set;for(let e of n)r.has(e)||o.add(e);if(o.size>0)if(zr()&&zi(e.events,o,a.messageId))V.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:c});else{V.debug(`Background step done but other steps pending, returning`,{workflowRunId:c});return}V.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:c});let l=e.events.find(e=>e.eventType===`run_created`),u;if(l)u=l.eventData.input;else{if(!Hn(i.specVersion))throw new J(`Workflow run "${c}" has no "run_created" event`);let e=await t.runs.get(c,{resolveData:`all`});if(e.status!==`running`)return;u=e.input}B={...i,input:u,status:`running`,output:void 0,error:void 0,completedAt:void 0},U=s}else return}catch(e){let n=Bo(e);if(!n)throw e;await Ho({world:t,workflowRun:B,runId:c,requestId:A,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!B&&T?.deploymentId!==void 0&&t.capabilities?.deploymentAffinity===!0){let e=T.deploymentId,n;try{n=await t.getDeploymentId()}catch{n=void 0}if(n!==void 0&&n!==e&&await Te(await t.runs.get(c,{resolveData:`none`}),async()=>({...await ye(),hookInput:T,...O?{hookResumeTiming:O}:{}}),he)!==`continue`)return}let Ee=!1;if(!B&&T&&T.resumeId!==void 0&&T.payloadDigest!==void 0){let e=T,t;try{t=new Date(Fn(e.resumeId))}catch{t=void 0}try{r?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await P({eventType:`hook_received`,specVersion:6,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:A,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0});if(Ee=!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===c&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){r?.setAttributes({...M(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...qt(`hook_received_stream`)}),V.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:c,eventType:e.eventType});return}B=n.run,H=Lo(n.maxEvents),ce=Date.now(),k&&(k.setupSource=`hook_preload`),z={type:`ready`,events:n.events,cursor:n.cursor},U=+n.run.startedAt,r?.setAttributes({...M(n.run.status),...se(U),...qt(`hook_received_stream`)})}else r?.setAttributes(qt(`hook_received_fallback`))}catch(e){if(ln.is(e)||Y.is(e)){V.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:c,message:e.message});return}throw e}}if(!B){let e={eventType:`run_started`,specVersion:C?.specVersion??6,...C?{eventData:{input:C.input,deploymentId:C.deploymentId,workflowName:C.workflowName,executionContext:C.executionContext,attributes:C.attributes,allowReservedAttributes:C.allowReservedAttributes}}:{}};if(pe&&C){r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=P(e,{requestId:A,skipPreload:!0});me=t,t.then(e=>{let t=Lo(e.maxEvents);t!==void 0&&(H=t)}).catch(()=>{}),z={type:`ready`,events:[],cursor:null};let n=new Date;B={runId:c,status:`running`,deploymentId:C.deploymentId,workflowName:C.workflowName,specVersion:C.specVersion,executionContext:C.executionContext,input:C.input,attributes:C.attributes??{},startedAt:n,createdAt:n,updatedAt:n},U=+n,ce=+n,r?.setAttributes({...M(`running`),...se(U)})}else try{r?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=await P(e,{requestId:A});if(B=t.run,H=Lo(t.maxEvents),ce=Date.now(),k&&(k.setupSource=`run_started`),t.events?.length){let e={events:[...t.events],cursor:t.cursor??null};z=t.hasMore?qo(e):{...e,type:`ready`}}if(U=+t.run.startedAt,r?.setAttributes({...M(t.run.status),...se(U)}),t.run.status!==`running`){V.info(`Workflow already completed or failed, skipping`,{workflowRunId:c,status:t.run.status});return}}catch(e){if(Q.is(e)||Y.is(e)){V.info(`Run already finished during setup, skipping`,{workflowRunId:c,message:e.message});return}else{let n=Bo(e);if(!n)throw e;await Ho({world:t,workflowRun:B,runId:c,requestId:A,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`});return}}}if(sr(B,`Workflow run must be loaded before replay`),k&&k.setupSource===void 0&&(k.setupSource=`event_load`),await Te(B,async()=>({...await ye(),...T?{hookInput:T}:{},...O?{hookResumeTiming:O}:{}}),he)!==`continue`)return;if(T&&!Ee&&!(T.resumeId!==void 0&&z.type!==`loadAll`&&z.events.some(e=>e.eventType===`hook_received`&&e.resumeId===T.resumeId))){let e;try{e=T.resumeId===void 0?void 0:new Date(Fn(T.resumeId))}catch{e=void 0}let n;try{let i=await t.events.create(c,{eventType:`hook_received`,specVersion:6,correlationId:T.hookId,eventData:{token:T.token,payload:T.payload}},{requestId:A,occurredAt:e,resumeId:T.resumeId,resumePayloadDigest:T.payloadDigest});r?.setAttributes(Re(!0));let a=i.event;n=a?{...a,eventData:{token:T.token,payload:T.payload}}:void 0}catch(e){if(ln.is(e)||Y.is(e))return;throw e}z.type!==`loadAll`&&n?ut(z.events,n):z={type:`loadAll`}}let De=await xt(t,B)(),Oe=new br(De),je=null;for(;;){if(s++,L.isExhausted()){await fi({runId:c,workflowName:j,requestId:A,attempt:a.attempt,limitMs:L.configuredLimitMs,slotSnapshot:ne()});return}if(Date.now()-i>=o){V.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:c,loopIteration:s,elapsedMs:Date.now()-i}),await G(t,K(j,n),{runId:c,traceCarrier:await I(),requestedAt:new Date});return}let u=0;try{if(Jn(B)){V.debug(`Using QuickJS VM engine`,{workflowRunId:c,loopIteration:s}),await he(),z.type===`loadAfter`&&(Jo(z,await Ve(c,z.cursor)),z={...z,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),i=await t({workflowCode:e,workflowName:j,workflowRun:B,preloadedEvents:z.type===`ready`?z.events:void 0,preloadedEventsComplete:z.type===`ready`,runInput:C,parentSpan:r,maxEventsLimit:H,namespace:n,nextTraceCarrier:I,deliveryAttempt:a.attempt,ownerMessageId:a.messageId});return i?.timeoutSeconds===void 0?void 0:await be(i.timeoutSeconds)}if(z.type!==`ready`){let e=await Ve(c,z.type===`loadAfter`?z.cursor:void 0);z.type===`loadAfter`?(Jo(z,e),z={...z,type:`ready`}):z={...e,type:`ready`}}if(sr(z.type===`ready`),Se(z.events),Uo(z.events,c))return;let i=Date.now(),o=new Set(z.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),d=z.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:6,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of d)try{let t=await P(e,{requestId:A});Et(z.events,t)}catch(t){if(Q.is(t)){V.info(`Wait already completed, skipping`,{workflowRunId:c,correlationId:e.correlationId});continue}throw t}sr(z.type===`ready`);let f=new Set(z.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),p=d.filter(e=>!f.has(e.correlationId));if(p.length>0)if(z.cursor){let e=await Ve(c,z.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));p.every(e=>t.has(e.correlationId))?Jo(z,e):z={...await Ve(c),type:`ready`}}else z={...await Ve(c),type:`ready`};if(Ft()){let e=await ke(c,{events:z.events,cursor:z.cursor});if(z={...e.log,type:`ready`},e.gap!==void 0)throw new dn(`Event log for run ${c} 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(Uo(z.events,c))return;if(H!==void 0&&z.events.length>=H)throw new un(z.events.length,H);oe??=z.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`),V.debug(`Starting workflow execution`,{workflowRunId:c,loopIteration:s,eventCount:z.events.length,executionMode:je?`retained`:`replay`}),u=Date.now(),k&&(k.replayStartedAtMs??=u);let m=Oe.prewarm(B,z.events),h=je?await No(je,z.events):{type:`replay`};if(h.type===`replay`&&(je=null,h=await Mo({workflowCode:e,workflowRun:B,events:z.events,encryptionKey:De,replayPayloadCache:Oe,runReadyBarrier:me,worldCapabilities:t.capabilities})),await m,h.type===`suspended`)throw je=h.session,h.suspension;let g=h.output;V.debug(`Workflow execution completed`,{workflowRunId:c,loopIteration:s,replayMs:Date.now()-u,executionMode:je?`retained`:`replay`}),l.activate();try{await he(),await P({eventType:`run_completed`,specVersion:6,eventData:{output:g}},{requestId:A})}catch(e){if(Q.is(e)||Y.is(e)){V.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:c,message:e.message});return}throw e}r?.setAttributes({...M(`completed`)});return}catch(i){if(w.is(i)){l.activate();let e=Date.now(),o=e-u;k&&i.stepCount>0&&(k.nextStepEncounteredAtMs??=e),V.debug(`Workflow suspended`,{workflowRunId:c,loopIteration:s,replayMs:o,steps:i.stepCount,hooks:i.hookCount,waits:i.waitCount});let d=ee(i.stepCount,i.hookCount,i.waitCount);d&&V.debug(d);let f=Date.now();sr(z.type===`ready`,`Workflow suspended before its event log was loaded`);let p;try{p=await Ui({suspension:i,world:t,run:B,span:r,requestId:A,eventLog:z,runReadyBarrier:me,replayRecoveryReporter:l,stepDispatch:{queueName:K(j,n),getTraceCarrier:I}})}catch(e){if(rn.is(e)){if(Ce(`suspension-create`,e))continue;let t=await we(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!X.is(e))throw e;let t=le(e);V.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:c,errorCode:t,errorName:e.name,errorMessage:e.message});try{await he(),await P({eventType:`run_failed`,specVersion:6,eventData:{error:await re(e,c,De,globalThis,(B?.specVersion??0)>=5),errorCode:t}},{requestId:A})}catch(e){if(Q.is(e)||Y.is(e)){V.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:c,message:e.message});return}throw e}r?.setAttributes({...M(`failed`),...Ae(t),...Yt(e.name),...Bt(e.message),...$e(e.name)});return}p.reportedEventCount>0&&Oe.resetScan();let m=gn(()=>(sr(z.type===`ready`),Ko(z.events)));if(je&&!Yo(i,p.retainedStepInputsSafe,m)&&(je=null),ue+=p.hookCreationMs,p.hasAttributeEvents&&de===void 0&&(de=ue),V.debug(`Suspension handled`,{workflowRunId:c,suspensionMs:Date.now()-f,pendingSteps:p.pendingSteps.length,timeoutSeconds:p.waitTimeout?.seconds,hasHookConflict:p.hasHookConflict,hasAwaitedHookCreation:p.hasAwaitedHookCreation,hasAttributeEvents:p.hasAttributeEvents}),p.hasHookConflict)return await be(0);if(p.hasAttributeEvents){z=qo(z);continue}let h=p.pendingSteps,g=p.lazyInlineSteps,_=new Set(g.map(e=>e.correlationId)),v=await I(),y=[],b=zr(),x=Date.now(),S=[],C=0,w=k!==void 0&&g.length===0&&!h.some(e=>!_.has(e.correlationId)&&b&&Ii(e)&&e.ownerMessageId===a.messageId);for(let e of h){if(_.has(e.correlationId)||p.queuedStepCorrelationIds.has(e.correlationId))continue;let r=b&&Ii(e);if(r&&e.ownerMessageId===a.messageId){S.push(e);continue}let i=r?Li(e,x):0;if(i>0){C++,V.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:c,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),y.push(G(t,K(j,n),{runId:c,traceCarrier:v,requestedAt:new Date},{delaySeconds:i,idempotencyKey:Ri(e)}));continue}let o=w?gi(k):void 0;o&&(w=!1,k=void 0),y.push(G(t,K(j,n),{runId:c,stepId:e.correlationId,stepName:e.stepName,traceCarrier:v,requestedAt:new Date,...o?{hookResumeTiming:o}:{}},{idempotencyKey:Jt(e.correlationId,e.stepName)}))}p.waitTimeout&&y.push(G(t,K(j,n),{runId:c,traceCarrier:v,requestedAt:new Date},qi(p.waitTimeout.seconds,p.waitTimeout.correlationId))),await Promise.all(y);let T=[...g.map(e=>({correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput})),...S.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((C>0||S.length>0)&&r?.setAttributes({...S.length>0?fe(S.length):{},...C>0?mt(C):{}}),S.length>0&&V.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:c,stepIds:S.map(e=>e.correlationId)}),T.length===0)return p.hasAwaitedHookCreation?await be(0):void 0;let E=m.value,D=typeof z.cursor==`string`&&i.stepCount===1&&i.waitCount===0&&h.length===1&&g.length===1&&S.length===0&&!p.waitTimeout&&!E.openWait,O=E.openHook||i.hookCount>0||p.hasHookEvents,te=pe&&!p.hasAttributeEvents&&!p.waitTimeout&&!p.hasHookEvents&&!p.hasAwaitedHookCreation&&!E.openHook&&!E.openWait,N=Mi({events:z.events,invocationStartedClean:oe===!0,runCreatedAtMs:yi(c)??(pe?void 0:+B.createdAt),runStartedReceivedAtMs:ce,replayMs:o,preStepBlockingMs:ue,preStepBlockingBeforeAttrMs:de,suspensionHasWaits:i.waitCount>0||p.waitTimeout!==void 0,suspensionCreatedHooks:i.hookCount>0||p.hasHookEvents,turbo:pe}),F=zt(z.events),ne=k;k=void 0,L.pause();let R,ie=T.map((e,n)=>{let r=()=>(sr(z.type===`ready`),Fi({world:t,workflowRunId:c,workflowDeploymentId:B.deploymentId,workflowName:j,workflowStartedAt:U,rootRunId:Go(B.attributes,c),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:B.specVersion,authoritativeAttempt:e.lazyStepInput===void 0?qr(z.events,e.correlationId,{type:`ownedBy`,messageId:a.messageId})+1:1,lazyStepInput:e.lazyStepInput,ownerMessageId:a.messageId,forceOptimisticStart:te,suppressOptimisticStart:O,runReadyBarrier:me,slotSnapshot:F,...n===0&&e.lazyStepInput!==void 0&&N?{latencyTracking:N}:{},...ne?{resumeTracking:ne}:{},...D&&z.cursor?{inlineDeltaSinceCursor:z.cursor}:{},replayRecoveryReporter:l}));return ge.add(e.correlationId),(e.lazyStepInput===void 0?Vi(c,e.correlationId,r):r()).finally(()=>ge.delete(e.correlationId))});try{R=await Promise.all(ie)}catch(e){if(rn.is(e)){if(Ce(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(ie)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await we(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{L.resume()}let ae=[],H=!1,se;for(let e=0;e<T.length;e++){let t=R[e],n=T[e];t.type===`retry`?ae.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?se=Math.max(se??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(H=!0)}if(se!==void 0)return await be(se);if(ae.length>0){let e=await I();await Promise.all(ae.map(({step:r,delaySeconds:i})=>G(t,K(j,n),{runId:c,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date},{delaySeconds:i,idempotencyKey:Jt(r.correlationId,r.stepName)})))}if(H){V.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:c,loopIteration:s}),await G(t,K(j,n),{runId:c,traceCarrier:await I(),requestedAt:new Date});return}if(ae.length>0)return;if(T.length===1){let e=R[0];if(e.type===`completed`&&e.inlineDelta){Jo(z,e.inlineDelta),z=e.inlineDelta.hasMore?qo(z):{...z,type:`ready`};continue}}z=qo(z)}else{let o=i;if(rn.is(i)){if(Ce(`replay-write`,i))continue;let e=await we(`replay-write`,i);if(e.reinvoked)return e.result;o=e.error}if(f(i))throw N.warn(`Transient world error during replay; redelivering via queue instead of failing the run`,{errorName:i instanceof Error?i.name:`UnknownError`,errorMessage:i instanceof Error?i.message:String(i),deliveryAttempt:a.attempt}),i;let s;if(Z.is(i)){let e=(g?.count??0)+1,r=Vr();if(e<=r){N.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{errorCode:q.REPLAY_DIVERGENCE,divergenceEventId:i.eventId,priorDivergenceEventId:g?.eventId,divergenceCount:e,deliveryAttempt:a.attempt,maxRecoveryReplays:r,errorMessage:i.message}),await G(t,K(j,n),{runId:c,traceCarrier:await I(),requestedAt:new Date,replayDivergence:{eventId:i.eventId,count:e}});return}s=e,o=new dn(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${i.eventId}. Last divergence: ${i.message}`,{cause:i})}else u>0&&l.activate();o instanceof Error&&r?.recordException?.(o);let d=await Ei(o),p=d.name||bi(o),m=d.message,h=d.stack||xi(o);if(h){let t=_(j)?.moduleSpecifier||j;h=Za(h,t,e)}let v=le(o);V.error(`Error while running workflow`,{workflowRunId:c,errorCode:v,errorName:p,errorStack:h}),or.isNativeError(o)&&h&&(o.stack=h);try{await he(),await P({eventType:`run_failed`,specVersion:6,eventData:{error:await re(o,c,De,globalThis,(B?.specVersion??0)>=5),errorCode:v}},{requestId:A,...s===void 0?{}:{replayDivergenceCount:s}})}catch(e){if(Q.is(e)||Y.is(e)){V.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:c,message:e.message});return}if(Ht(e)){V.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:c,errorCode:q.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}r?.setAttributes({...M(`failed`),...Ae(v),...Yt(p),...Bt(m),...$e(p)});return}}}})}))}),a,o=0,c=Date.now(),l=typeof t?.routeModuleBodyStartedAt==`number`?c-t.routeModuleBodyStartedAt:void 0;return Fe(async e=>{o+=1;let t=a!==void 0;return ft(`workflow.route.flow`,{kind:await nt(`SERVER`),attributes:{...z(`flow`),...Xe(xr),...it(t),...P(o),...s(Date.now()-c),...l===void 0?{}:ne(l),...m(e.method),...pe(`/.well-known/workflow/v1/flow`)}},async t=>{a||=await ft(`workflow.route.init`,async()=>{let e=await ft(`workflow.route.get_world_handlers`,async()=>oi());return i(e)});let n=await a(e);return n instanceof Response&&t?.setAttributes(Wt(n.status)),n})})}export{tr as Run,w as WorkflowSuspension,$n as cancelRun,Yn as cancelRuns,ai as createWorld,ri as createWorldFromModule,Gn as getHookByToken,Zn as getRun,si as getWorld,oi as getWorldHandlers,ze as healthCheck,Kn as listStreams,Qn as readStream,er as recreateRunFromExisting,qn as reenqueueRun,Un as resumeHook,Wn as resumeWebhook,ci as setWorld,nr as start,Xn as wakeUpRun,Zo as workflowEntrypoint};
|