eve 0.60.0 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/src/chunks/{use-eve-agent-Dmc6sX4d.js → use-eve-agent-C5-yqRuq.js} +177 -85
  3. package/dist/src/chunks/{use-eve-agent-jSR8P4nK.js → use-eve-agent-CVWk5KKy.js} +177 -85
  4. package/dist/src/cli/agent-command.js +1 -1
  5. package/dist/src/cli/dev/local-server-child.js +1 -1
  6. package/dist/src/cli/dev/tui/runner.js +1 -1
  7. package/dist/src/client/client.d.ts +3 -1
  8. package/dist/src/client/client.js +1 -1
  9. package/dist/src/client/eve-agent-projection.d.ts +1 -0
  10. package/dist/src/client/eve-agent-projection.js +1 -1
  11. package/dist/src/client/eve-agent-store-helpers.js +1 -1
  12. package/dist/src/client/eve-agent-store-state.d.ts +4 -1
  13. package/dist/src/client/eve-agent-store.js +1 -1
  14. package/dist/src/client/message-reducer.js +1 -1
  15. package/dist/src/client/message-response.d.ts +5 -0
  16. package/dist/src/client/message-response.js +1 -1
  17. package/dist/src/client/optimistic-message-submissions.d.ts +22 -0
  18. package/dist/src/client/optimistic-message-submissions.js +1 -0
  19. package/dist/src/client/session.js +1 -1
  20. package/dist/src/compiled/.vendor-stamp.json +6 -6
  21. package/dist/src/compiled/@workflow/core/index.js +1 -1
  22. package/dist/src/compiled/@workflow/core/log-format.d.ts +4 -0
  23. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  24. package/dist/src/compiled/@workflow/core/runtime.js +5 -3
  25. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  26. package/dist/src/compiled/@workflow/core/types.d.ts +22 -0
  27. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  28. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  29. package/dist/src/compiled/@workflow/world/runs.d.ts +12 -1
  30. package/dist/src/compiled/@workflow/world-local/index.js +3 -3
  31. package/dist/src/compiled/@workflow/world-vercel/index.js +7 -7
  32. package/dist/src/compiled/_chunks/workflow/{attribute-changes-3SKHZsSX.js → attribute-changes-A6HfMNG3.js} +1 -1
  33. package/dist/src/compiled/_chunks/workflow/{dist-DearXsdS.js → dist-D38gP7YF.js} +1 -1
  34. package/dist/src/compiled/_chunks/workflow/frames-QcJfYHmh.js +3 -0
  35. package/dist/src/compiled/_chunks/workflow/helpers-6kObVbfS.js +1 -0
  36. package/dist/src/compiled/_chunks/workflow/{logger-CxBCNokg.js → logger-NN5YHpYy.js} +6 -5
  37. package/dist/src/compiled/_chunks/workflow/{resume-hook-B7_MC7FC.js → resume-hook-CAqlhwic.js} +1 -1
  38. package/dist/src/compiled/_chunks/workflow/{run-jGFog1uQ.js → run-DJevv8zz.js} +1 -1
  39. package/dist/src/compiled/_chunks/workflow/{serialization-VRHEKI6l.js → serialization-C5KgPESk.js} +3 -3
  40. package/dist/src/compiled/_chunks/workflow/sleep-CbUwdv6O.js +1 -0
  41. package/dist/src/compiled/_chunks/workflow/{wait-until-DDJySKt-.js → wait-until-BMY_tOr-.js} +1 -1
  42. package/dist/src/compiled/_chunks/workflow/{ws-transport-CEFNBXPC.js → ws-transport-DSDcKH08.js} +1 -1
  43. package/dist/src/compiler/default-tool-policy.js +1 -1
  44. package/dist/src/compiler/extension-compatibility.d.ts +18 -18
  45. package/dist/src/compiler/extension-compatibility.js +1 -1
  46. package/dist/src/compiler/manifest.d.ts +5 -2
  47. package/dist/src/compiler/manifest.js +1 -1
  48. package/dist/src/compiler/normalize-tool.js +1 -1
  49. package/dist/src/compiler/project-sources.js +1 -1
  50. package/dist/src/compiler/validate-artifact.js +1 -1
  51. package/dist/src/context/build-dynamic-tools.js +1 -1
  52. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  53. package/dist/src/context/dynamic-tool-metadata.d.ts +1 -0
  54. package/dist/src/evals/cli/eval.js +1 -1
  55. package/dist/src/execution/coordination-dispatch-shared.d.ts +2 -0
  56. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  57. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  58. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  59. package/dist/src/execution/node-step.js +1 -1
  60. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  61. package/dist/src/execution/tools/agent-router-workflow.d.ts +5 -0
  62. package/dist/src/execution/tools/agent-router-workflow.js +1 -0
  63. package/dist/src/execution/tools/agent-router.d.ts +9 -0
  64. package/dist/src/execution/tools/agent-router.js +1 -0
  65. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  66. package/dist/src/execution/tools/subagent/metadata.d.ts +4 -0
  67. package/dist/src/execution/tools/subagent/metadata.js +1 -0
  68. package/dist/src/execution/tools/workflow/body.d.ts +3 -0
  69. package/dist/src/execution/tools/workflow/body.js +1 -1
  70. package/dist/src/execution/tools/workflow/start.d.ts +1 -0
  71. package/dist/src/execution/tools/workflow/start.js +1 -1
  72. package/dist/src/execution/tools/workflow/types.d.ts +2 -0
  73. package/dist/src/harness/advertised-tools.js +1 -1
  74. package/dist/src/harness/emission.js +1 -1
  75. package/dist/src/harness/execute-tool.d.ts +1 -0
  76. package/dist/src/internal/application/package.js +1 -1
  77. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  78. package/dist/src/internal/authored-runtime-modules.js +1 -1
  79. package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +1 -0
  80. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  81. package/dist/src/internal/nitro/development-generation.js +1 -1
  82. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  83. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  84. package/dist/src/internal/nitro/host/extension-distribution.js +1 -1
  85. package/dist/src/internal/nitro/host.js +1 -1
  86. package/dist/src/internal/node-esm-compat-banner.js +3 -3
  87. package/dist/src/internal/workflow-bundle/authored-workflow-directives.js +1 -1
  88. package/dist/src/internal/workflow-bundle/builder-support.d.ts +1 -0
  89. package/dist/src/internal/workflow-bundle/builder-support.js +1 -1
  90. package/dist/src/internal/workflow-bundle/builder.js +1 -1
  91. package/dist/src/internal/workflow-bundle/nitro-step-entry.d.ts +1 -0
  92. package/dist/src/internal/workflow-bundle/nitro-step-entry.js +1 -1
  93. package/dist/src/internal/workflow-bundle/workflow-directive-ast.d.ts +1 -0
  94. package/dist/src/internal/workflow-bundle/workflow-directive-ast.js +1 -1
  95. package/dist/src/internal/workflow-bundle/workflow-transformer.js +1 -1
  96. package/dist/src/protocol/message.d.ts +4 -0
  97. package/dist/src/protocol/message.js +1 -1
  98. package/dist/src/public/tools/agent-router.d.ts +1 -0
  99. package/dist/src/public/tools/agent-router.js +1 -0
  100. package/dist/src/public/tools/index.d.ts +1 -1
  101. package/dist/src/runtime/resolve-agent.js +1 -1
  102. package/dist/src/runtime/resolve-tool.js +1 -1
  103. package/dist/src/runtime/tools/registry.js +1 -1
  104. package/dist/src/services/dev-client/agent-info-probe.d.ts +1 -0
  105. package/dist/src/services/dev-client/agent-info-probe.js +1 -1
  106. package/dist/src/setup/primitives/pm/pnpm.js +1 -1
  107. package/dist/src/setup/scaffold/create/project.js +1 -1
  108. package/dist/src/shared/map-concurrent.d.ts +2 -0
  109. package/dist/src/shared/map-concurrent.js +1 -0
  110. package/dist/src/svelte/index.js +1 -1
  111. package/dist/src/svelte/use-eve-agent.js +1 -1
  112. package/dist/src/tools/definition.d.ts +2 -0
  113. package/dist/src/tools/dynamic.d.ts +1 -0
  114. package/dist/src/tools/provided/agent-router.d.ts +7 -0
  115. package/dist/src/tools/provided/agent-router.js +1 -0
  116. package/dist/src/tools/workflow-definition.d.ts +6 -1
  117. package/dist/src/vue/index.js +1 -1
  118. package/dist/src/vue/use-eve-agent.js +1 -1
  119. package/docs/concepts/built-in-tools.md +1 -1
  120. package/docs/concepts/sessions-runs-and-streaming.md +32 -32
  121. package/docs/guides/client/overview.mdx +2 -0
  122. package/docs/guides/evaluate.md +1 -1
  123. package/docs/guides/frontend/overview.mdx +7 -3
  124. package/docs/reference/typescript-api.md +3 -1
  125. package/docs/subagents/index.mdx +3 -3
  126. package/docs/tools/overview.mdx +17 -0
  127. package/docs/tools/workflows.mdx +99 -5
  128. package/package.json +12 -7
  129. package/dist/src/compiled/_chunks/workflow/frames-Bm_yZi8X.js +0 -3
  130. package/dist/src/compiled/_chunks/workflow/helpers-K7otPd_U.js +0 -1
  131. package/dist/src/compiled/_chunks/workflow/sleep-60eDbac6.js +0 -1
@@ -1,3 +1,5 @@
1
- import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DPpTSio4.js";import{K as r,Q as i,S as a,a as o,ct as s,dt as c,lt as l,pt as u,tt as d,ut as f,w as p,x as m,z as h}from"../../_chunks/workflow/dist-DearXsdS.js";import{$ as g,$t as _,At as v,B as y,Bt as b,C as x,Ct as ee,Dt as S,E as C,Et as w,F as T,Ft as E,Gt as D,Ht as O,I as k,It as te,J as A,Jn as ne,Jt as re,K as j,Kt as M,Lt as N,Mt as P,Nt as ie,Ot as ae,P as F,Pt as I,Q as oe,Qt as se,R as ce,Rt as L,St as R,T as le,Tt as ue,U as z,Ut as B,V as de,Vt as fe,W as pe,Wt as me,X as he,Xn as V,Y as H,Yn as ge,Yt as _e,Z as ve,Zn as ye,Zt as be,_n as xe,_t as Se,a as Ce,an as we,b as Te,bn as Ee,bt as De,c as Oe,cn as ke,d as Ae,dn as je,en as Me,et as Ne,f as Pe,fn as Fe,g as Ie,gn as Le,gt as Re,hn as ze,i as Be,in as Ve,it as He,j as Ue,jt as We,k as Ge,kt as U,ln as Ke,mn as qe,n as W,nn as Je,nt as Ye,o as Xe,on as Ze,p as Qe,pn as $e,q as et,qn as tt,qt as nt,r as rt,rn as it,rt as at,s as ot,sn as st,tn as ct,tt as lt,u as ut,un as dt,v as ft,vn as pt,vt as mt,w as ht,wt as gt,x as _t,xn as vt,xt as yt,y as G,yn as bt,yt as xt,z as St,zt as Ct}from"../../_chunks/workflow/logger-CxBCNokg.js";import{A as wt,M as Tt,N as Et,P as Dt,S as Ot,a as kt,c as At,d as K,i as q,j as J,k as Y,l as jt,m as Mt,n as Nt,o as Pt,r as X,s as Ft,t as It,u as Lt,v as Rt,w as zt,y as Bt}from"../../_chunks/workflow/dist-xTushGCp.js";import{i as Vt,n as Ht,r as Ut,t as Z}from"../../_chunks/workflow/global-DFW-hO6M.js";import{a as Wt,n as Gt}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{A as Kt,B as Q,G as qt,H as Jt,I as Yt,K as Xt,M as Zt,Q as Qt,R as $t,U as en,V as tn,W as nn,Y as rn,Z as an,a as on,at as sn,c as cn,d as ln,et as un,ft as dn,gt as fn,ht as pn,j as mn,k as hn,l as gn,mt as _n,ot as vn,p as yn,pt as bn,u as xn,z as Sn}from"../../_chunks/workflow/serialization-VRHEKI6l.js";import{awaitEarlierDeliveries as Cn,getStepFunction as wn,isDeliveryIdle as Tn,registerDeliveryBarrier as En,scheduleWorkflowSuspension as Dn}from"./private.js";import{C as On,E as kn,S as An,T as jn,_ as Mn,b as Nn,c as Pn,d as Fn,f as In,g as Ln,l as Rn,m as zn,n as Bn,o as Vn,p as Hn,r as Un,s as Wn,u as Gn,v as Kn,w as qn,x as Jn,y as Yn}from"../../_chunks/workflow/helpers-K7otPd_U.js";import{d as Xn,l as Zn,n as Qn,s as $n,u as er}from"../../_chunks/workflow/attribute-changes-3SKHZsSX.js";import{t as tr}from"../../_chunks/workflow/wait-until-DDJySKt-.js";import{n as nr,r as rr,t as ir}from"../../_chunks/workflow/resume-hook-B7_MC7FC.js";import{a as ar,c as or,d as sr,f as cr,i as lr,l as ur,m as dr,n as fr,o as pr,p as mr,r as hr,s as gr,t as _r,u as vr}from"../../_chunks/workflow/run-jGFog1uQ.js";import{t as yr}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{createRequire as br}from"node:module";import{createHash as xr}from"node:crypto";import{types as Sr}from"node:util";import Cr from"node:assert/strict";import{pathToFileURL as wr}from"node:url";import{Script as Tr,createContext as Er,runInContext as Dr}from"node:vm";function Or(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function kr(e){return e===`vercel`||e===`@workflow/world-vercel`}var Ar=e(Et(),1);function jr(e){return e instanceof er||e instanceof Zn||e instanceof Xn||e instanceof Qn}const Mr=`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 Nr(e,t){let n=t??cr(e);return Mt.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.`}:jr(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.`}:It.is(e)?{attribution:`sdk`,errorCode:n,hint:Mr}:n===J.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 Y?{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===J.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===J.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===J.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===J.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:Mr}:n===J.STREAM_ERROR?{attribution:`sdk`,errorCode:n,hint:`Workflow stream infrastructure failed while reading or writing data. This is an SDK or backend failure, not an error in your workflow code; please retry the run and report persistent failures with the runId.`}:n===J.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}function Pr(e){if(e===null)return!0;let t=typeof e;return t!==`object`&&t!==`function`}var Fr=class{preparer;preparedPayloads=new Map;primitiveStepResults=new Map;encryptionKey;nextUnscannedEventIndex=0;constructor(e,t=Yt){this.preparer=t,this.encryptionKey=Promise.resolve(e)}prepareEvent(e){this.prepareEventIfMissing(e)?.catch(()=>{})}async prewarm(e,t){let n=[],r=this.startPreparation(this.workflowInputKey(e.runId),e.input);r&&n.push(r);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let r=t[e],i=this.prepareEventIfMissing(r);i&&n.push(i)}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return Pr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,await this.encryptionKey)}prepareEventIfMissing(e){let t,n;switch(e.eventType){case`run_created`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData.input);case`run_started`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData?.input);case`step_completed`:t=`result`,n=e.eventData?.result;break;case`step_failed`:t=`error`,n=e.eventData?.error;break;case`hook_received`:t=`payload`,n=e.eventData?.payload;break;default:return}return this.startPreparation(this.eventPayloadKey(e.eventId,t),n)}startPreparation(e,t){if(t instanceof Uint8Array&&!this.preparedPayloads.has(e))return this.ensurePreparation(e,t)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const Ir=`cinst_${f()}`;function Lr(){return c(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const Rr=24e4,zr=3e4,Br=78e4,Vr=u(`@workflow/core//envWarnings`,1,()=>({replayTimeoutValues:new Set,maxInlineStepsValues:new Set,maxEventsValues:new Set}));function Hr(e,t,n){Vr.replayTimeoutValues.has(e)||(Vr.replayTimeoutValues.add(e),W.warn(t,n))}function Ur(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return Rr;let t=Number(e);return!Number.isFinite(t)||t<=0?(Hr(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:Rr}),Rr):t<3e4?(Hr(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:zr,minMs:zr}),zr):t>78e4?(Hr(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:Br,maxMs:Br}),Br):t}function Wr(){return c(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}function Gr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(Vr.maxInlineStepsValues.has(e)||(Vr.maxInlineStepsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(Vr.maxInlineStepsValues.has(e)||(Vr.maxInlineStepsValues.add(e),W.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}function Kr(){return process.env.WORKFLOW_RESILIENT_STEP_DISPATCH===`1`}function qr(){let e=process.env.WORKFLOW_BATCH_TRANSITIONS;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function Jr(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){Vr.maxEventsValues.has(e)||(Vr.maxEventsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function Yr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function Xr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function Zr(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function Qr(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function $r(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function ei(){return c(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function ti(){return c(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function ni(){return c(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function ri(){return c(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function ii(){return c(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function ai(){return c(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const oi=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function si(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=oi(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 ci={outcome:`continue`};function li(e,t,n){return{outcome:e,spanAttributes:{...$e(t),...me(n),...B(e===`rerouted`)}}}async function ui({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return ci;let s=await e.getDeploymentId();if(t.deploymentId===s)return ci;await o?.();let c=ai(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new Ot(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:J.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!X.is(e)&&!K.is(e))throw e}return li(`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}),W.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),li(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return W.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 W.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 di(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function fi(){try{return br(wr(process.cwd()+`/package.json`).href)}catch{return br(import.meta.url)}}const pi=Symbol.for(`@workflow/world//cache`),mi=Symbol.for(`@workflow/world//stubbedCache`),hi=Symbol.for(`@workflow/world//cachePromise`),gi=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function _i(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 vi(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return wr(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return wr(process.cwd()+`/`+e).href;try{return wr(fi().resolve(e)).href}catch{return e}}const yi=async()=>{let e=Or();if(kr(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.`),di()}if(e===`local`)return di({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=fi()(e)}catch{t=await import(vi(e))}if(typeof t==`function`)return t();try{return await _i(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},bi=async()=>{if($[mi])return tt($[mi]),$[mi];$[gi]||($[gi]=yi().catch(e=>{throw $[gi]=void 0,e}));let e=await $[gi];return tt(e),$[mi]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},xi=async()=>$[pi]?(tt($[pi]),$[pi]):($[hi]||($[hi]=yi().catch(e=>{throw $[hi]=void 0,e})),$[pi]=await $[hi],tt($[pi]),$[pi]),Si=e=>{$[pi]=e,$[mi]=e,$[hi]=void 0,$[gi]=void 0},Ci=Symbol.for(`@workflow/world//getWorldFn`);globalThis[Ci]??=xi;var wi=class{limitMs;elapsedMs=0;intervalStart;constructor(e=Ur()){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}},Ti=class extends Error{name=`ReplayTimeoutRetryError`};async function Ei(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a,slotSnapshot:o}=e,s=W.forRun(t,n),c=Wr();if(i<=c)throw s.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:c}),new Ti(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let l=await xi(),u=Nr(void 0,J.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=zn(l,t),f=new q(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await l.events.create(t,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(f,t,await d()),errorCode:J.REPLAY_TIMEOUT}},{requestId:r,...o})}var Di=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new Oi}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}}},Oi=class extends Di{constructor(){super(0)}activate(){}};function ki(e,t){if(e&&Number.isFinite(e.resumeRequestedAtMs)&&Number.isFinite(e.queuePublishRequestedAtMs))return{trigger:`hook`,...e.strategy===`lazy`||e.strategy===`parallel`||e.strategy===`sequential`?{strategy:e.strategy}:{},resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,consumerStartedAtMs:e.consumerStartedAtMs??NaN,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===`hook_preload`||e.setupSource===`run_started`||e.setupSource===`event_load`?{setupSource:e.setupSource}:{},stepExecution:t}}function Ai(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 ji(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 Mi(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(!ji(n))return;let{resumeRequestedAtMs:r,queuePublishRequestedAtMs:i,consumerStartedAtMs:a,replayStartedAtMs:o,nextStepEncounteredAtMs:s,stepClaimStartedAtMs:c,stepClaimCompletedAtMs:l,stepCodeStartedAtMs:u}=n;return{...at(u-r),...et(i-r),...A(a-i),...he(o-a),...H(s-o),...g(c-s),...l===void 0?{}:oe(l-c),...lt(u-(l??c)),...He(t.trigger),...t.strategy===void 0?{}:Ye(t.strategy),...t.setupSource===void 0?{}:ve(t.setupSource),...Ne(t.stepExecution)}}function Ni(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return s(yr(t).ulid)}catch{return}}function Pi(e){return Sr.isNativeError(e)?e.name:`Error`}function Fi(e){return Sr.isNativeError(e)?e.stack??``:``}function Ii(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 Li(e){if(!Ii(e)||q.is(e))return e;let t=new q(`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 zi(e){if(Sr.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 Bi(e){if(Ri(e))try{let t=await Bi(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await Bi(e);return{...t,message:`Promise rejection: ${t.message}`}}return zi(e)}const Vi=u(`@workflow/core//devServerPort`,1,()=>({getPort:void 0,cachedPort:void 0,inFlight:void 0}));async function Hi(){if(Vi.cachedPort!==void 0)return Vi.cachedPort;if(Vi.inFlight)return Vi.inFlight;if(!Vi.getPort)try{let e=[`@workflow/utils`,`get-port`].join(`/`),t=br(wr(process.cwd()+`/package.json`).href)(e);Vi.getPort=t.getPort}catch{Vi.getPort=async()=>void 0}let e=Vi.getPort??(async()=>void 0);return Vi.inFlight=e().then(e=>(typeof e==`number`&&(Vi.cachedPort=e),e)).finally(()=>{Vi.inFlight=void 0}),Vi.inFlight}const Ui=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function Wi(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}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},replayMs:e.replayMs,turbo:e.turbo,retained:e.retained}}function Gi(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),e.preclaimedStart&&l.push(`preclaimedStart`),t.retained&&l.push(`retained`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}const Ki=`__workflowUnserializableStepInput`;function qi(){return{args:[`[input unavailable: step argument serialization failed]`],closureVars:[],thisVal:void 0,[Ki]:!0}}function Ji(e){return typeof e==`object`&&!!e&&e[Ki]===!0}function Yi(){return c(`WORKFLOW_STEP_STREAM_DRAIN_TIMEOUT_MS`,3e4,{integer:!0,min:1})}function Xi(e){let t=e?.name;return t===`AbortError`||t===`ResponseAborted`}async function Zi(e){if(e.length===0)return;let t=Yi(),n;try{await Promise.race([Promise.all(e.map(e=>(e.settleReleasedWrites?.()??Promise.resolve(!1)).catch(e=>{if(!Xi(e))throw e;return!1}))),new Promise((e,r)=>{n=setTimeout(()=>r(new Y(`Timed out draining step stream writes after ${t}ms`)),t)})])}catch(e){if(!Xi(e))throw e}finally{n!==void 0&&clearTimeout(n)}}function Qi(e,t){if(t&&e.events&&e.cursor!==void 0)return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function $i(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:a,stepName:o}=e,s=!!process.env.VERCEL_URL,c=(e.runSpecVersion??0)>=5,l=e.replayRecoveryReporter??Di.inert(),u=async(e,r)=>l.withEventCreate(r,r=>t.events.create(n,e,r)),d={computeInstanceId:Ir,...e.requestId?{requestId:e.requestId}:{}},f=`step.execute ${V(o)}`;return G(f,{},async l=>{if(l?.setAttributes({...w(o),..._(r),...Fe(n),...ee(a)}),Cr(!(e.lazyStepInput!==void 0&&e.preclaimedStart),`executeStep: lazyStepInput and preclaimedStart are mutually exclusive`),e.preclaimedStart&&e.preclaimedStart.owned===!1)return W.debug(`Pre-claimed step start lost, skipping`,{stepName:o,stepId:a,workflowRunId:n}),l?.setAttributes({...E(!0),...I(`running`)}),{type:`skipped`};let f=zn(t,n),p=wn(o);if(!p||typeof p!=`function`){let t=`Step "${o}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(W.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:o,stepId:a}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},d)}catch(e){if(X.is(e))return{type:`skipped`};if(K.is(e))return{type:`gone`};throw e}try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(new q(t),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...yt(!0)}),{type:`failed`}}let m=p.maxRetries??3;if(l?.setAttributes({...ue(m)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>m+1){let t=m,r=`Step "${o}" exceeded max retries (${t} ${Dt(`retry`,`retries`,t)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,stepId:a,attempt:e.authoritativeAttempt,maxRetries:m});try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(new q(r),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(K.is(e))return{type:`gone`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}let h=e=>{if(Rt.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return W.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(K.is(e))return W.info(`Workflow run "${n}" has already completed, skipping step "${a}": ${e.message}`),{type:`gone`};if(X.is(e))return W.debug(`Step in terminal state, skipping`,{stepName:o,stepId:a,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),l?.setAttributes({...E(!0),...I(`completed`)}),{type:`skipped`};if(Bt.is(e)){let t=Math.max(1,e.retryAfter??1);return W.debug(`Step retryAfter timestamp not yet reached`,{stepName:o,stepId:a,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},g=e.preclaimedStart===void 0&&e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(Yr()||e.forceOptimisticStart===!0&&!Xr());e.preclaimedStart?l?.setAttributes(te(`batch_preclaimed`)):e.lazyStepInput!==void 0&&l?.setAttributes(te(g?`optimistic`:`awaited`));let y,b=d,S,C,T,D=async()=>{if(!T)return;let e=await T;if(e.ok)return;let t=h(e.err);if(!t)throw e.err;return t};if(e.preclaimedStart?.owned)y=e.preclaimedStart.step,S=e.preclaimedStart.batchPostSentAtMs,C=e.preclaimedStart.claimCompletedAtMs;else if(g){T=(e.runReadyBarrier??Promise.resolve()).then(()=>(S=Date.now(),u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},b))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;y={runId:n,stepId:a,stepName:o,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};S=Date.now();let n=await u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:e.lazyStepInput===void 0?{stepName:o,...t}:{stepName:o,workflowName:r,input:e.lazyStepInput,...t}},b);C=Date.now(),y=n.step}catch(e){let t=h(e);if(t)return t;throw e}W.debug(`Step execution details`,{stepName:o,stepId:y.stepId,status:y.status,attempt:y.attempt}),l?.setAttributes({...N(y.status)});let O;if(y.attempt>m+1&&y.error){let e=y.attempt-1,t=`Step "${o}" exceeded max retries (${e} ${Dt(`retry`,`retries`,e)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,retryCount:e});let r=new q(t);if(y.error!=null)try{r.cause=await Kt(y.error,n,await f())}catch{}try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(r,n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}let k=[],A=[],ne=[],re=!0,M,ae=()=>{if(!M||M.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t!==void 0&&S!==void 0&&(M.rsfs=Math.max(0,S-t),l&&l.setAttributes({...ie(M.rsfs)}))};try{let t=y.attempt;if(!y.startedAt)throw new Y(`Step "${a}" has no "startedAt" timestamp`);let u=y.startedAt,d=e.encryptionKey??await f(),m=await G(`step.hydrate`,{},async t=>{let r=Date.now(),i=await hn(y.input,n,d,A,globalThis,{},e.workflowDeploymentId,ne),a=Date.now()-r;return t?.setAttributes({...Re(i.args.length),...z(a)}),i});if(Ji(m)){let{message:e,hint:t}=Xt(`step arguments`,void 0);throw new Mt(e,{hint:t})}let h=m.args,_=m.thisVal??null,v=Gt(s?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Hi()??3e3}`),b,x=!1,ee=Date.now();M=Gi({tracking:e.latencyTracking,stepCodeStartedAtMs:ee,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:g,preclaimedStart:e.preclaimedStart!==void 0,stepStartPostSentAtMs:S}),M&&l?.setAttributes({...M.ttfs===void 0?{}:Ct(M.ttfs),...M.stso===void 0?{}:L(M.stso),...M.rsfs===void 0?{}:ie(M.rsfs),...M.finalSchedulingReplay===void 0?{}:R(M.finalSchedulingReplay),...gt(M.optimizations??[])});let w=()=>{let n=e.resumeTracking;if(!n||n.reported)return;let r=Mi({tracking:n,attempt:t,stepClaimStartedAtMs:S,stepClaimCompletedAtMs:C,stepCodeStartedAtMs:Date.now()});r&&(n.reported=!0,l?.setAttributes(r))},T=`ok`,E=performance.now();try{O=await G(`step.execute`,{},async()=>await qt.run({stepMetadata:{stepName:o,stepId:a,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:v,features:{encryption:!!d}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:A,preCompletionOps:k,streamStates:ne,closureVars:m.closureVars,encryptionKey:d,runReadyBarrier:g?e.runReadyBarrier:void 0},()=>(w(),p.apply(_,h))))}catch(e){T=`error`,b=e,x=!0}finally{Ie(performance.now()-E,T)}let te=Date.now()-ee;if(on(...h,_,m.closureVars),x)throw b;if(l?.setAttributes({...pe(te)}),O=await G(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await ln(O,n,d,A,globalThis,!1,!1,c,g?e.runReadyBarrier:void 0),a=Date.now()-r;return t?.setAttributes({...j(a),...U(typeof i)}),i}),A.length>0){let e=Promise.all(A);tr(e,e=>{W.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:a,error:e instanceof Error?e.message:String(e)})});let t=Promise.race([e.then(()=>!0,e=>{if(Xi(e))return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))]);t.catch(()=>{}),await Zi(ne),re=await t}if(g){let e=await D();if(e)return e;ae()}k.length>0&&await Promise.all(k).catch(()=>{})}catch(e){if(g){let e=await D();if(e)return e;ae()}k.length>0&&await Promise.all(k).catch(()=>{});let t=Li(e),r=await Bi(t),i=r.stack||Fi(t)||``;t instanceof Error&&l?.recordException?.(t);let s=q.is(t);if(l?.setAttributes({...De(Pi(t)),...xt(r.message),...le(Pi(t)),...x(s?`fatal`:Lt.is(t)?`retryable`:`transient`),...ht(!s)}),K.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};if(s){rt.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:o,errorStack:i}),Sr.isNativeError(t)&&i&&(t.stack=i);try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(t,n,await f(),[],globalThis,c),...M}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...yt(!0)}),{type:`failed`}}let d=y.attempt;if(l?.setAttributes({...Se(d),...ue(m)}),d>=m+1){let t=y.attempt-1;rt.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:o,attempt:y.attempt,retryCount:t,errorStack:i});let s=`Step "${o}" failed after ${m} ${Dt(`retry`,`retries`,m)}: ${r.message}`,d=new q(s);d.cause=e,i&&(d.stack=i);try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(d,n,await f(),[],globalThis,c),...M}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}Lt.is(e)?rt.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,message:e.message}):rt.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,errorStack:i}),Sr.isNativeError(e)&&i&&(e.stack=i);try{await u({eventType:`step_retrying`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(e,n,await f(),[],globalThis,c),...Lt.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(X.is(e))return W.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}let p=Math.max(1,Lt.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return l?.setAttributes({...We(p),...P(!0)}),{type:`retry`,timeoutSeconds:p}}let F;try{F=await u({eventType:`step_completed`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,result:O,...M}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(X.is(e))return W.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};if(K.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};throw e}let oe=Qi(F,e.inlineDeltaSinceCursor!==void 0);return l?.setAttributes({...N(`completed`),...U(typeof O)}),A.length>0&&rt.debug(`Step has pending ops`,{workflowRunId:n,stepName:o,opsCount:A.length}),{type:`completed`,hasPendingOps:!re,inlineDelta:oe}})}function ea(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function ta(e,t){if(e.lastStartedAt===void 0)return 0;let n=ei(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function na(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function ra(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 ia=u(`@workflow/core//stepSingleFlight`,1,()=>({inFlight:new Map}));async function aa(e,t,n){let r=`${e}:${t}`,i=ia.inFlight.get(r);if(i){W.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();ia.inFlight.set(r,a);try{return await a}finally{ia.inFlight.delete(r)}}async function oa({runId:e,hookEvent:t,queueItem:n,requestId:r,sinceCursor:i,createEvent:a}){try{return(await a(t,{requestId:r,...i===void 0?{}:{sinceCursor:i}})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(X.is(t))return W.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(K.is(t))return W.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(ca(t)){let e=new q(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function sa({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s,stepDispatch:c,ownerMessageId:l,allowDeferredBatchWork:u}){let d=n.runId,f=async()=>{if(o)try{await o}catch{}},p=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=>At.is(e))??t[0]},m=s??Di.inert(),h=(e,n)=>m.withEventCreate(n,n=>t.events.create(d,e,n)),g=0,_=0,v=!1,y=async(e,t)=>{if(_++,!a)return h(e,t);let n=a,r=await h(e,{...t,...qn(n.events)});if(typeof t?.sinceCursor==`string`)return n.cursor===t.sinceCursor&&r.events!==void 0&&r.hasMore!==!0&&(Un(n,{events:r.events,cursor:r.cursor}),v=!0),r;let i=Bn(n.events,r);return g+=i.added,i.truncated?W.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:d,eventType:e.eventType,eventId:r.event?.eventId,offered:i.offered}):i.added>0&&W.debug(`Suspension write skipped occupied slots`,{workflowRunId:d,eventType:e.eventType,eventId:r.event?.eventId,reported:i.added}),r},b=e.items.filter(e=>e.type===`step`),x=e.items.filter(e=>e.type===`hook`),ee=e.items.filter(e=>e.type===`wait`),S=e.items.filter(e=>e.type===`attribute`),C=x.filter(e=>!e.hasCreatedEvent),w=new Map;for(let e of x){if(e.hasCreatedEvent&&!e.disposed)continue;let t=w.get(e.token);t?t.push(e):w.set(e.token,[e])}let T=await t.getEncryptionKeyForRun?.(n),E=T?await ne(T):void 0,D=(n.specVersion??0)>=5,O=0,k=[];async function te(t,n){let r={executions:[]};try{return await gn(t,d,E,e.globalThis,!1,D,r)}finally{O+=r.totalExecutions??r.executions.length,k.push(...r.executions.slice(0,5-k.length).map(e=>({...n,...e})))}}async function A(e){let t={eventType:`hook_disposed`,specVersion:7,correlationId:e.correlationId,eventData:{token:e.token}};try{await y(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(K.is(t))W.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(Pt.is(t))W.info(`Hook not found for disposal, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}}let re=[],j=[],M=0,N=C.length===1&&typeof a?.cursor==`string`?a.cursor:void 0;if(w.size>0){let e=Date.now();await f(),await p([...w.values()].map(async e=>{for(let t of e){let e=!1;if(!t.hasCreatedEvent){let n=t.metadata===void 0?void 0:await te(t.metadata,{source:`hook_metadata`,correlationId:t.correlationId}),r={eventType:`hook_created`,specVersion:7,correlationId:t.correlationId,eventData:{token:t.token,tokenRetentionUntil:t.tokenRetentionUntil,metadata:n,isWebhook:t.isWebhook??!1,...t.isSystem&&{isSystem:!0}}},a=await oa({runId:d,hookEvent:r,queueItem:t,requestId:i,sinceCursor:N,createEvent:y});a.hasHookConflict&&re.push(t.correlationId),a.hasAwaitedHookCreation&&j.push(t.correlationId),e=a.hasHookConflict}t.disposed&&!e&&await A(t)}})),M=Date.now()-e}let P=x.filter(e=>e.abortRequested&&!e.disposed);P.length>0&&(await f(),await p(P.map(async e=>{try{let n=await te({aborted:!0,reason:e.abortReason},{source:`hook_abort`,correlationId:e.correlationId});await y({eventType:`hook_received`,specVersion:7,correlationId:e.correlationId,eventData:{token:e.token,payload:n}});try{let r=en(e.token);await t.streams.write(d,r,n),await t.streams.close(d,r)}catch{W.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:d,correlationId:e.correlationId})}}catch(t){if(X.is(t)||K.is(t))W.info(`Workflow run already completed, skipping abort`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})));let ie=new Set(b.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),F=new Set,I=new Set,oe=async(t,r)=>{W.warn(`Step arguments failed to serialize; failing the step so the workflow can observe the error`,{workflowRunId:d,correlationId:t.correlationId,stepName:t.stepName,error:r.message}),await f();let a=await gn(qi(),d,E,e.globalThis,!1,D);try{await y({eventType:`step_created`,specVersion:7,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}},{requestId:i})}catch(e){if(X.is(e))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:t.correlationId,message:e.message});else if(K.is(e))return;else throw e}try{await y({eventType:`step_failed`,specVersion:7,correlationId:t.correlationId,eventData:{stepName:t.stepName,error:await xn(r,d,E,[],e.globalThis,D)}},{requestId:i})}catch(e){if(X.is(e)||K.is(e))W.info(`Tried failing step, but step or run has already finished.`,{workflowRunId:d,correlationId:t.correlationId,message:e.message});else throw e}I.add(t.correlationId),ce.delete(t.correlationId)},ce=new Set(j.length===0?b.filter(e=>ie.has(e.correlationId)).slice(0,Gr()).map(e=>e.correlationId):[]),L=new Map,R=[],le=new Set,ue=c!==void 0&&Kr()&&(n.specVersion??0)>=3,z=qr()&&typeof t.events.createBatch==`function`&&(n.specVersion??0)>=6&&!ue&&x.length===0&&S.length===0,B=[],de=[],fe=z&&l!==void 0&&ce.size>=2,pe=new Map,me,he=()=>(me??=c?.getTraceCarrier()??Promise.resolve({}),me),V=0,H=0;for(let e of b)if(ie.has(e.correlationId)){let r=fe&&ce.has(e.correlationId),a=H;H+=r?2:1;let o=(async()=>{let o;try{o=await te({args:e.args,closureVars:e.closureVars,thisVal:e.thisVal},{source:`step_input`,correlationId:e.correlationId})}catch(t){if(!Mt.is(t)||!c)throw t;await oe(e,t);return}if(ce.has(e.correlationId)){L.set(e.correlationId,{correlationId:e.correlationId,stepName:e.stepName,dehydratedInput:o}),r&&(B.push({order:a,kind:`inline-created`,correlationId:e.correlationId,event:{eventType:`step_created`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}}}),B.push({order:a+1,kind:`inline-started`,correlationId:e.correlationId,event:{eventType:`step_started`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,...l===void 0?{}:{ownerMessageId:l}}}}));return}let s={eventType:`step_created`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}};if(ue&&o instanceof Uint8Array&&o.byteLength<=131072){await f();let r=await he(),[a,l]=await Promise.allSettled([y(s,{requestId:i}),Kn(t,c.queueName,{runId:d,stepId:e.correlationId,stepName:e.stepName,traceCarrier:r,requestedAt:new Date,stepInput:{input:o},runContext:An(n)},{idempotencyKey:jn(e.correlationId,e.stepName)})]);if(l.status===`rejected`)throw l.reason;if(le.add(e.correlationId),a.status===`rejected`){let t=a.reason;if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(mr(t))V++,W.warn(`Step creation event write failed, but the step was dispatched via the queue. The step_created event will be ensured by the queue consumer.`,{workflowRunId:d,correlationId:e.correlationId,stepName:e.stepName,error:t instanceof Error?t.message:String(t)});else throw t}else F.add(e.correlationId);return}if(z){B.push({order:a,kind:`step`,correlationId:e.correlationId,stepName:e.stepName,event:s});return}try{await f(),await y(s,{requestId:i}),F.add(e.correlationId)}catch(t){if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})();R.push(o),z&&de.push(o.catch(()=>{}))}for(let e of ee)if(!e.hasCreatedEvent){let t={eventType:`wait_created`,specVersion:7,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};if(z){B.push({order:H++,kind:`wait`,correlationId:e.correlationId,event:t});continue}R.push((async()=>{try{await f(),await y(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Wait already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})())}let ge;z&&R.push((async()=>{if(await Promise.all(de),B.length===0)return;let e=[...B].sort((e,t)=>e.order-t.order);await f();let r=async e=>{try{await y(e.event,{requestId:i}),e.kind===`step`&&F.add(e.correlationId)}catch(t){if(X.is(t))W.info(e.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}};if(e.length===1){await r(e[0]);return}let o=a?(Hn(a.events)??0)+1:void 0,s=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1],o=i.kind===`inline-created`&&a?.kind===`inline-started`&&a.correlationId===i.correlationId,s=o?2:1;n.length>0&&n.length+s>32&&(t.push(n),n=[]),n.push(i),o&&(n.push(a),r++)}return n.length>0&&t.push(n),t},l=e=>e.kind===`inline-created`||e.kind===`inline-started`,p=s(e.filter(e=>l(e))),m=e.filter(e=>!l(e)),h=m.length===1?[m]:s(m),g=m.length===1?h[0]:void 0,_=[...p,...h],v=c!==void 0;if(v)for(let t of e)t.kind===`step`&&le.add(t.correlationId);let b=0,x,ee=async e=>{let n=Date.now(),{results:r}=await t.events.createBatch(d,e.map(e=>({event:e.event,...e.kind===`inline-started`?{computeInstanceId:Ir}:{}})),{requestId:i}),a=Date.now();for(let[t,i]of r.entries()){let r=e[t];if(i.error===void 0){if(r.kind===`step`)F.add(r.correlationId);else if(r.kind===`inline-started`){let e=L.get(r.correlationId);if(e===void 0)throw new wt(`no dehydrated input for pre-claimed step ${r.correlationId}`,{status:500});let t=new Date,o=i.step?.startedAt?{...i.step,startedAt:i.step.startedAt}:{runId:d,stepId:r.correlationId,stepName:e.stepName,status:`running`,attempt:1,createdAt:t,updatedAt:t,startedAt:t};pe.set(r.correlationId,{owned:!0,step:{...o,input:e.dehydratedInput},batchPostSentAtMs:n,claimCompletedAtMs:a})}continue}if(i.status===409){if(r.kind===`inline-created`||r.kind===`inline-started`){pe.set(r.correlationId,{owned:!1}),W.info(`Inline step pre-claim lost, continuing`,{workflowRunId:d,correlationId:r.correlationId,message:i.message});continue}W.info(r.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:d,correlationId:r.correlationId,message:i.message});continue}throw new wt(`batched ${r.event.eventType} for ${r.correlationId} failed: ${i.error}: ${i.message}`,{status:i.status})}let o=Hn(r.flatMap(e=>e.error===void 0&&e.event?[e.event]:[]));b+=r.filter(e=>e.error===void 0).length,o!==void 0&&(x===void 0||o>x)&&(x=o)},S=async e=>{if(!v)return;let r=e.filter(e=>e.kind===`step`);if(r.length===0)return;let i=await he();await Yn(t,c.queueName,r.map(e=>({message:{runId:d,stepId:e.correlationId,stepName:e.stepName,traceCarrier:i,requestedAt:new Date,runContext:An(n)},opts:{idempotencyKey:jn(e.correlationId,e.stepName)}})))},C=_.map(e=>e===g?r(e[0]):ee(e)),w=_.map(async(e,t)=>{await C[t],await S(e)}),T=(async()=>{let e=await Promise.allSettled([...C,...w]);if(o!==void 0&&x!==void 0){let e=x-o+1-b;e>0&&W.debug(`Batched fan-out committed above snapshot`,{workflowRunId:d,expectedFirstSlot:o,maxCommittedSlot:x,committedCount:b,interleaved:e})}let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason})(),E=_.flatMap((e,t)=>e.some(e=>e.kind===`inline-started`)?[C[t]]:[]);if(u){if(T.catch(()=>{}),ge=T,E.length>0)try{await Promise.all(E)}catch(e){throw await T.catch(()=>{}),e}}else await T})());for(let e of S)R.push((async()=>{try{await f(),await y({eventType:`attr_set`,specVersion:7,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(X.is(t))W.info(`Workflow attribute event already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(ca(t)){let e=new q(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await p(R);let _e=[];for(let e of ce){let t=L.get(e);t&&_e.push(t)}let ve=Date.now(),ye;for(let e of ee){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-ve),r=Math.ceil(n/1e3);(!ye||r<ye.seconds)&&(ye={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...qe(`workflow_suspended`),...Le(b.length),...se(C.length),...vt(ee.length),...I.size>0?xe(I.size):{},...V>0?ae(V):{}}),{pendingSteps:b,createdStepCorrelationIds:F,failedStepCorrelationIds:I,queuedStepCorrelationIds:le,lazyInlineSteps:_e,inlineClaims:pe,deferredBatchWork:ge,waitTimeout:re.length>0?void 0:ye,hasHookConflict:re.length>0,hookConflictCorrelationIds:re,hasAwaitedHookCreation:j.length>0,awaitedHookCorrelationIds:j,eventLogCarriedForward:v&&_===1,hasAttributeEvents:S.length>0,hasHookEvents:C.length>0,hookCreationMs:M,serializationBlockerCount:O,serializationBlockers:k,reportedEventCount:g}}function ca(e){return e instanceof d||e instanceof Error&&e.name===`AttributeValidationError`||wt.is(e)&&e.status===400}const la=()=>c(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),ua=()=>c(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function da(e,t,n=Date.now(),r=0){let i=fa(e,t,n);return r<=0?i:{delaySeconds:i.delaySeconds,idempotencyKey:`${i.idempotencyKey}:a${r}`}}function fa(e,t,n){let r=la();if(e<=Math.min(ua(),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 pa=44,ma=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ha=new Uint8Array(64),ga=new Uint8Array(128);for(let e=0;e<ma.length;e++){let t=ma.charCodeAt(e);ha[e]=t,ga[t]=e}function _a(e){let t=0,n=0,r=0;do r=ga[e.next()],t|=(r&31)<<n,n+=5;while(r&32);return t}function va(e){return e&1?-2147483648|-(e>>>1):e>>>1}function ya(e,t){return e.pos>=t?!1:e.peek()!==pa}var ba=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function xa(e){let{length:t}=e,n=new ba(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+=va(_a(n)),i<u&&(l=!1),u=i,ya(n,e)?(a+=va(_a(n)),o+=va(_a(n)),s+=va(_a(n)),ya(n,e)?(c+=va(_a(n)),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Sa(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Sa(e){e.sort(Ca)}function Ca(e,t){return e[0]-t[0]}const wa=/^[\w+.-]+:\/\//,Ta=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,Ea=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function Da(e){return wa.test(e)}function Oa(e){return e.startsWith(`//`)}function ka(e){return e.startsWith(`/`)}function Aa(e){return e.startsWith(`file:`)}function ja(e){return/^[.?#]/.test(e)}function Ma(e){let t=Ta.exec(e);return Pa(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function Na(e){let t=Ea.exec(e),n=t[2];return Pa(`file:`,``,t[1]||``,``,ka(n)?n:`/`+n,t[3]||``,t[4]||``)}function Pa(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 Fa(e){if(Oa(e)){let t=Ma(`http:`+e);return t.scheme=``,t.type=6,t}if(ka(e)){let t=Ma(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(Aa(e))return Na(e);if(Da(e))return Ma(e);let t=Ma(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function Ia(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function La(e,t){Ra(t,t.type),e.path=e.path===`/`?t.path:Ia(t.path)+e.path}function Ra(e,t){let n=t<=4,r=e.path.split(`/`),i=1,a=0,o=!1;for(let e=1;e<r.length;e++){let t=r[e];if(!t){o=!0;continue}if(o=!1,t!==`.`){if(t===`..`){a?(o=!0,a--,i--):n&&(r[i++]=t);continue}r[i++]=t,a++}}let s=``;for(let e=1;e<i;e++)s+=`/`+r[e];(!s||o&&!s.endsWith(`/..`))&&(s+=`/`),e.path=s}function za(e,t){if(!e&&!t)return``;let n=Fa(e),r=n.type;if(t&&r!==7){let e=Fa(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:La(n,e);case 5:n.user=e.user,n.host=e.host,n.port=e.port;case 6:n.scheme=e.scheme}i>r&&(r=i)}Ra(n,r);let i=n.query+n.hash;switch(r){case 2:case 3:return i;case 4:{let r=n.path.slice(1);return r?ja(t||e)&&!ja(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 Va(e,t){let n=Ba(e),r=t?t+`/`:``;return e=>za(r+(e||``),n)}var Ha=0,Ua=1,Wa=2,Ga=3,Ka=4;function qa(e,t){let n=Ja(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=Ja(e,r+1))e[r]=Xa(e[r],t);return e}function Ja(e,t){for(let n=t;n<e.length;n++)if(!Ya(e[n]))return n;return e.length}function Ya(e){for(let t=1;t<e.length;t++)if(e[t][Ha]<e[t-1][Ha])return!1;return!0}function Xa(e,t){return t||(e=e.slice()),e.sort(Za)}function Za(e,t){return e[Ha]-t[Ha]}var Qa=!1;function $a(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][Ha]-t;if(a===0)return Qa=!0,i;a<0?n=i+1:r=i-1}return Qa=!1,n-1}function eo(e,t,n){for(let r=n+1;r<e.length&&e[r][Ha]===t;n=r++);return n}function to(e,t,n){for(let r=n-1;r>=0&&e[r][Ha]===t;n=r--);return n}function no(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function ro(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 Qa=o!==-1&&e[o][Ha]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=$a(e,t,s,c)}function io(e){return typeof e==`string`?JSON.parse(e):e}var ao="`line` must be greater than 0 (lines start at line 1)",oo="`column` must be greater than or equal to 0 (columns start at column 0)",so=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=io(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=Va(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=qa(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=no(),this._bySources=void 0,this._bySourceMemos=void 0}};function co(e){return e}function lo(e){var t;return(t=co(e))._decoded||(t._decoded=xa(co(e)._encoded))}function uo(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(ao);if(r<0)throw Error(oo);let a=lo(e);if(n>=a.length)return fo(null,null,null,null);let o=a[n],s=po(o,co(e)._decodedMemo,n,r,i||1);if(s===-1)return fo(null,null,null,null);let c=o[s];if(c.length===1)return fo(null,null,null,null);let{names:l,resolvedSources:u}=e;return fo(u[c[Ua]],c[Wa]+1,c[Ga],c.length===5?l[c[Ka]]:null)}function fo(e,t,n,r){return{source:e,line:t,column:n,name:r}}function po(e,t,n,r,i){let a=ro(e,r,t,n);return Qa?a=(i===-1?eo:to)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function mo(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function ho(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&mo(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const go=u(`@workflow/core//sourceMapTracers`,1,()=>({byCode:new Map}));function _o(e){let t=go.byCode.get(e);if(t!==void 0)return go.byCode.delete(e),go.byCode.set(e,t),t;let n=null,r=ho(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new so(JSON.parse(e))}catch{n=null}for(go.byCode.set(e,n);go.byCode.size>8;){let e=go.byCode.keys().next().value;if(e===void 0)break;go.byCode.delete(e)}return n}function vo(e,t,n){if(!e.includes(t))return e;let r=_o(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=uo(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 yo(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 bo(e,t){let n=e.get(t);if(n)return n;let r=xo(t);if(r){for(let[t,n]of e)if(xo(t)===r)return n}}function xo(e){let t=e.indexOf(`_`);return t===-1?void 0:e.slice(t+1)}function So(e){switch(e.type){case`step`:return`step ${e.stepName} (${e.correlationId})`;case`hook`:return`hook (${e.correlationId})`;case`wait`:return`wait (${e.correlationId})`;case`attribute`:return`attribute (${e.correlationId})`}return`unknown`}function Co(e,t,n){let r=e.correlationId?bo(t,e.correlationId):void 0,i=n.describe();return[`pending at this id: ${r?So(r):`none`}.`,`consumer: index=${i.index}, length=${i.length}, parked=${i.parked}, lastConsumed=${i.lastConsumedEventId??`none`}`].join(` `)}function wo(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:o}=Vt(),s=`step_${e.generateUlid()}`,c={type:`step`,correlationId:s,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(c.thisVal=this);let l=n?.();return l&&(c.closureVars=l),e.invocationsQueue.set(s,c),rt.debug(`Step consumer setup`,{correlationId:s,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n)return Dn(e),Q.NotConsumed;if(rt.debug(`Step consumer event processing`,{correlationId:s,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:s===n.correlationId,eventType:n.eventType}),n.correlationId!==s)return Q.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: step event ${n.eventType} for ${s} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),Q.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(s);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{o(new jt(`Replay divergence: step ${s} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),Q.Finished):(r.hasCreatedEvent=!0,Q.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),Q.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),Q.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=En(e,t,`step`),i,a=Cn(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 Kt(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){rt.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new q(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),o(i)})}),Q.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,s=En(e,i,`step`),c,l=Cn(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 mn(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{s.markDelivered(),c.ok?a(c.value):o(c.error)})}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for step ${s} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),Q.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(un(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 To=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)})),Eo=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)})),Do=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)})),Oo=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)})),ko=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)})),jo=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)})),Mo=e(n(((e,t)=>{var n=To(),r=Eo(),i=Do(),a=Oo(),o=ko(),s=Ao(),c=jo();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const No=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Po=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)Po[No.charCodeAt(e)]=e;function Fo(e){return e===9||e===10||e===12||e===13||e===32}function Io(e,t){for(;t<e.length&&Fo(e.charCodeAt(t));)t++;return t}function Lo(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=Po[r.charCodeAt(0)],a=Po[r.charCodeAt(1)],o=Po[r.charCodeAt(2)],s=Po[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 Ro(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=Io(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(...Lo(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=Io(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=Io(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(...Lo(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||Po[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(...Lo(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function zo(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 Bo(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+=No[n>>2&63],i+=No[(n&3)<<4|o>>4&15],t+1<a?i+=No[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=No[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function Vo(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function Ho(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 Bo(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 Vo(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=Ro(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=zo(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=Ro(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=zo(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function Uo(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)n+=r===8||r===13||r===18||r===23?`-`:r===14?`4`:r===19?t[Math.floor(e()*4)+8]:t[Math.floor(e()*16)];return n}}const Wo={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function Go(e){if(Sr.isTypedArray(e)||Sr.isDataView(e)){if(Sr.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Sr.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function Ko(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,Mo.default)(n),i=Er(),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=Uo(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=Wo[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=xr(r).update(Go(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 Y(`\`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,Ho(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 qo=u(`@workflow/core//vmScriptCache`,1,()=>({byCode:new Map}));function Jo(e){let t=qo.byCode.get(e);if(t!==void 0)return qo.byCode.delete(e),qo.byCode.set(e,t),t}function Yo(e,t){let n=Jo(e);if(n===void 0)for(n=new Map,qo.byCode.set(e,n);qo.byCode.size>8;){let e=qo.byCode.keys().next().value;if(e===void 0)break;qo.byCode.delete(e)}let r=n.get(t),i=r!==void 0;return r===void 0&&(r=new Tr(e,{filename:t}),n.set(t,r)),{script:r,cacheHit:i}}function Xo(e){return async function(t,n={}){let{promise:r,resolve:i}=Vt(),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 jt(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),Q.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),Q.Finished):Q.NotConsumed:(Dn(e),Q.NotConsumed)),r}}function Zo(e,t){if(typeof t!=`string`)return null;let n=an(rn,e.globalThis),r=n?.[Qt];return typeof r==`function`?r.call(n,{runId:t}):null}function Qo(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new q("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:Tt(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=[],l=!1,u=!1,d=!1,f=!1,p=null,m=null,h=new Set;Be.debug(`Hook consumer setup`,{correlationId:n,token:r}),e.eventsConsumer.subscribe(t=>{if(!t)return l=!0,(s.length>0&&o.length===0||c.length>0&&!u&&!f)&&Dn(e),Q.NotConsumed;if(t.correlationId!==n)return Q.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 jt(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${i}", but the current hook consumer expects "${r}"`,{eventId:t.eventId}))}),Q.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),u=!0;let i=c.slice();return c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),Q.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new kt(r.eventData.token,r.eventData.conflictingRunId);f=!0,p=i,m=Zo(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)m?e.resolve(m):e.reject(i)}),Q.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(h.has(n))return Q.Consumed;h.add(n)}let r=e.eventsConsumer.eventIndex,i=s.length>0,a=En(e,r,`hook`,{armed:i});if(i){let n=Cn(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 mn(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=Vt();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 mn(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(()=>Cn(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return Q.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),d=!0,Q.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for hook ${n} (token: ${r}) "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished)});let g=!1;function _(){let t=Vt();if(f&&p)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(p)}),t.promise;if(o.length>0){let e=o.shift();if(e)return e.claim()}return l&&Dn(e),s.push(t),t.promise}function v(){let t=Vt();if(u)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(f)return e.promiseQueue=e.promiseQueue.then(()=>{m?t.resolve(m):t.reject(p)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),l&&Dn(e),c.push(t),t.promise}function y(){if(g||(g=!0,d))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),s.length>0&&(s.length=0,Dn(e)),Be.debug(`Hook disposed`,{correlationId:n,token:r})}let b={token:r,getConflict(){return v()},then(e,t){return _().then(e,t)},async*[Symbol.asyncIterator](){for(;!g;)yield await this},dispose:y,[Symbol.dispose]:y},x=e.globalThis.Symbol.dispose;return x&&x!==Symbol.dispose&&(b[x]=y),b}}function $o(e){return async function(t){let{promise:n,resolve:r}=Vt(),i=`wait_${e.generateUlid()}`,a=Tt(t),o={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,o),e.eventsConsumer.subscribe(t=>{if(!t)return Dn(e),Q.NotConsumed;if(t.correlationId!==i)return Q.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),Q.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),Q.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=En(e,o,`wait`),c=Cn(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished}),n}}async function es(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 xi();await sa({suspension:new Ht(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){W.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function ts(e,t){let n=ge(t)?.moduleSpecifier||t,r=`globalThis.__private_workflows?.get(${JSON.stringify(t)})`;return G(`workflow.bundle.compile`,async t=>{let i=Yo(e,n),a=Yo(r,n);return t?.setAttributes({...O(i.cacheHit)}),{bundleScript:i.script,workflowLookupScript:a.script}})}function ns(e){return is(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await os(e);return t?.setAttributes({...b(n.argumentCount)}),as(await r,t)})}function rs(e,t){return is(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...b(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:as(r,n)})}function is(e,t,n,r){return G(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({..._(t.workflowName),...Fe(t.runId),...qe(t.status),..._e(n.length),...be(e)}),r(i)))}function as(e,t){return e.type===`completed`?t?.setAttributes({...Ze(e.resultType)}):t&&(Ce(e.suspension,t),e.parked&&t.setAttributes({...Ve(e.parked.count),...Je(e.parked.eventId),...it(e.parked.eventType)})),e}async function os(e){let t=await ft(`workflow.vm.create_context`);return ss(e,t.end).catch(e=>{throw t.fail(e),e})}async function ss({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,compiledWorkflowScripts:a,runReadyBarrier:o,worldCapabilities:s},c){let u=t.startedAt;if(!u)throw new Y(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let d=Ni(t.runId)??+t.createdAt,f=!!process.env.VERCEL_URL,p=Gt(f?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Hi()??3e3}`),{context:m,globalThis:h,updateTimestamp:g}=Ko({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:d}),_=Vt(),v={type:`running`,interruption:_},y=e=>{switch(v.type){case`running`:{let{interruption:t}=v;v=Ht.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},D.suspensionGeneration++,t.reject(e);return}case`suspended`:v={type:`replay`};return;case`replay`:case`completed`:return}},b=l(()=>h.Math.random()),x=0,ee=()=>(x+=1,b(d)),S=yo(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*h.Math.random())),C={current:Promise.resolve()},w={current:()=>!0},T=d,E=new tn(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>T&&(T=t,g(t))},onUnconsumedEvent:e=>{y(new jt(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}. ${Co(e,D.invocationsQueue,E)}`,{eventId:e.eventId}))},onDuplicateEvent:(e,n)=>{let r={workflowRunId:t.runId,eventId:e.eventId,eventType:e.eventType,firstEventType:n,correlationId:e.correlationId};if(n!==e.eventType){W.debug(`Ignoring inert event that decides an already-decided outcome differently`,r);return}W.debug(`Ignoring inert event that repeats a class already in the event log`,r)},getPromiseQueue:()=>C.current,isDeliveryIdle:()=>w.current()}),D={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:h,onWorkflowError:y,eventsConsumer:E,generateUlid:ee,generateNanoid:S,get mintCount(){return x},invocationsQueue:new Map,get promiseQueue(){return C.current},set promiseQueue(e){C.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};w.current=()=>Tn(D);let O=!1;D.eventsConsumer.subscribe(e=>e?e.eventType===`run_created`?Q.Consumed:e.eventType===`run_started`?O?Q.NotConsumed:(O=!0,Q.Consumed):e.eventType===`attr_set`&&e.eventData.writer.type===`step`?Q.Consumed:Q.NotConsumed:Q.NotConsumed);let k=wo(D),te=Qo(D),A=$o(D),ne=Xo(D);h[fn]=k,h[_n]=ne,h[dn]=te,h[pn]=A,h[bn]=e=>nn(t.runId,e);let re={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new h.Date(+u),url:p,features:{encryption:!!r}};h[$n]=re,h[vn]=ee,h.fetch=()=>{throw new h.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Nt.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.`;h.setTimeout=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setInterval=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearTimeout=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearInterval=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setImmediate=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearImmediate=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.AbortController=Sn(D);let M=$t();h.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 h.URL){let t=String(e);try{new h.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new h.Headers(t.headers):(typeof e==`string`||e instanceof h.URL)&&(this.headers=new h.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);this.body=n==null?null:Object.create(h.ReadableStream.prototype,{[sn]:{value:n,writable:!1}})}clone(){Z()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}h.Request=N,Object.defineProperties(N.prototype,{arrayBuffer:{value:k(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:k(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:k(`__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 h.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);this.body=e==null?null:Object.create(h.ReadableStream.prototype,{[sn]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new h.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new P(n,{...t,headers:r})}static error(){Z()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new h.Headers;n.set(`Location`,String(e));let r=Object.create(P.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}h.Response=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:k(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:k(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:k(`__builtin_response_text`),writable:!0,configurable:!0}});class ie{constructor(){Z()}get locked(){return!1}cancel(){Z()}getReader(){Z()}pipeThrough(){Z()}pipeTo(){Z()}tee(){Z()}values(){Z()}static from(){Z()}[Symbol.asyncIterator](){Z()}}h.ReadableStream=ie;class ae{constructor(){Z()}get locked(){return!1}abort(){Z()}close(){Z()}getWriter(){Z()}}h.WritableStream=ae;class F{readable;writable;constructor(){Z()}}h.TransformStream=F,h.console=globalThis.console;let I=Symbol.for(`@vercel/request-context`);h[I]=globalThis[I],c();let{bundleScript:oe,workflowLookupScript:se}=a??await ts(e,t.workflowName),ce=await G(`workflow.bundle.evaluate`,async()=>(oe.runInContext(m),se.runInContext(m)));if(typeof ce!=`function`)throw new zt(t.workflowName);let L=[];D.promiseQueue=D.promiseQueue.then(async()=>{L=await G(`workflow.input.hydrate`,async()=>{let e=await i.prepareWorkflowInput(t);return Zt(t.input,t.runId,r,h,{},e)})}),await D.promiseQueue;let R=async e=>{throw Ht.is(e)||jt.is(e)?(v.type===`running`&&(v={type:`replay`}),e):(v={type:`completed`},await es(t.runId,D.invocationsQueue,h,t,`failed`,o),e)},le=async(e,n)=>{let i;try{i=await Promise.race([e,n.promise])}catch(e){return v.type===`suspended`&&e===v.suspension?{type:`suspended`,suspension:v.suspension,session:de,parked:E.parkedSummary}:R(e)}v={type:`completed`};let a=E.strandedEvent;if(a)return R(new jt(`Replay finished without consuming event: eventType=${a.eventType}, correlationId=${a.correlationId}, eventId=${a.eventId}. ${Co(a,D.invocationsQueue,E)}`,{eventId:a.eventId}));try{let e=await yn(i,t.runId,r,h,!1,(t.specVersion??0)>=5);return await es(t.runId,D.invocationsQueue,h,t,`completed`,o),{type:`completed`,output:e,resultType:typeof i}}catch(e){return R(e)}},ue=await Oe(),z=await ft(`workflow.replay.execute`),B=ue.run(async()=>ce(...L)),de={workflowRun:t,argumentCount:L.length,async resume(e){switch(v.type){case`suspended`:{let t=E.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return v={type:`replay`},{type:`replay`};let n=Vt();return v={type:`running`,interruption:n},D.suspensionGeneration++,ue.refresh(),E.append(e.slice(t.length)),le(B,n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new Y(`Cannot resume ${v.type} workflow "${t.runId}"`)}}},fe=le(B,_);return fe.then(z.end,z.fail),{session:de,execution:fe}}function cs(e){let t=Jr();return t===void 0?e:e===void 0?t:Math.min(e,t)}function ls({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 us({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 ds(e){return Y.is(e)?J.RUNTIME_ERROR:dr(e)?J.WORLD_CONTRACT_ERROR:null}function fs(e){return!wt.is(e)||e.status!==void 0&&e.status!==404?!1:/step/i.test(e.message)&&/not found/i.test(e.message)}async function ps({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){W.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=zn(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(X.is(e)||K.is(e))return;if(dr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:J.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}}function ms(e,t){return e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`))}function hs(e,t){let n=ms(e,t);return n?(W.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function gs(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function _s(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)}return{openHook:t.size>0,openWait:n.size>0}}function vs({suspension:e,serializationBlockerCount:t,hookContinuation:n=!1}){return Qr()?t>0?{retain:!1,reason:`serialization_executed_workflow_code`}:n?{retain:!0}:e.stepCount===0&&e.attributeCount===0?{retain:!1,reason:`no_replay_driver`}:{retain:!0}:{retain:!1,reason:`disabled`}}function ys(e,t){return{serializationBlockerCount:t,serializationBlockers:e.map(({source:e,correlationId:t,kind:n,detail:r})=>({source:e,correlationId:t,kind:n,detail:r&&r.length>160?`${r.slice(0,160)}…`:r})),serializationBlockersTruncated:t>e.length}}function bs(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}async function xs(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,Ar.default)(`25m`))return(0,Ar.default)(`10m`);if(n>=(0,Ar.default)(`10m`))return(0,Ar.default)(`5m`)}}return(0,Ar.default)(`2m`)}function Ss(e,t){Wt(t?.basePath);let n=p(t?.namespace),c=a(`workflow`,n),l=t=>t.createQueueHandler(c,async(a,l)=>{let u=Date.now(),d=Ln(a);if(d){await Pn(d,t.specVersion);return}let{runId:f,traceCarrier:p,requestedAt:g,stepId:v,stepName:b,replayDivergence:x,preconditionReinvocations:ee,deploymentMismatchRetryCount:C,runInput:w,hookInput:T,stepInput:E,runContext:O,hookResumeTiming:k,waitContinuation:te}=m.parse(a),A=ki(k,v===void 0?`inline`:`dispatched`);A&&v===void 0&&(A.consumerStartedAtMs=u),A&&!Number.isFinite(A.consumerStartedAtMs)&&(A=void 0);let ne=Qe(p)?p:void 0,{requestId:j}=l,N=l.queueName.slice(c.length),P=W.forRun(f,N),ie=Lr();if(l.attempt>ie){let e=Nr(void 0,J.MAX_DELIVERIES_EXCEEDED);P.error(`Workflow handler exceeded max deliveries (${l.attempt}/${ie})`,{attempt:l.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await xi(),t=zn(e,f),n=new q(`Workflow exceeded maximum queue deliveries (${l.attempt}/${ie})`);await e.events.create(f,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(n,f,await t()),errorCode:J.MAX_DELIVERIES_EXCEEDED}},{requestId:j})}catch(e){if(X.is(e)||K.is(e))return;P.error(`Failed to mark run as failed after ${l.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:l.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 ae=Pe(),F=()=>ut(ae,ne),I=await ot(ae,ne),oe=new wi,se=ae===`continuous`?ne:void 0,L=await Ae(`CONSUMER`);return await Te(se,async()=>await _t({workflowRunId:f,workflowName:N},async()=>{let t=await G(`workflow.route.get_world`,async()=>xi());if(!ls({world:t,runInput:w,runId:f,runLogger:P}))return await us({world:t,runInput:w,runId:f,runLogger:P}),G(`workflow.execute ${ye(N)}`,{kind:L,links:I},async a=>{a?.setAttributes({..._(N),...Me(`execute_v2`),...de(`vercel-queue`),...ce(l.queueName),...St(l.messageId),...y(`process`),...Vn({requestedAt:g}),...Fe(f),...bt(!!ne),...pt(ae)});let c=Date.now(),u=await xs(t,c),d=0,p=x?new Di(x.count):Di.inert(),m,ie,I=await Xe(t=>{if(t&&!sr(t))return ie!==t.workflowName&&(ie=t.workflowName,m=ts(e,t.workflowName),m.catch(()=>{})),m}),se=Ut(()=>{let e=Nn(t,f);return e.catch(()=>{}),e}),L,R=e=>{if(e&&!sr(e))return L||=new Fr(se.value),L},ue=e=>{e.eventType===`run_created`&&(R(e.eventData),I(e.eventData)),L?.prepareEvent(e)},z=async(e,n)=>{let r=me(e,n),i={...pe(),...n},a=await p.withEventCreate(r===void 0?i:{...i,sinceCursor:r},n=>t.events.create(f,e,n));return r!==void 0&&he(r,a),a},B=(e,t)=>G(`workflow.replay.load`,async n=>{let r=0;n?.setAttributes({...Fe(f),...we(e)});try{let e=await t(e=>{r++,ue(e)});return r=e.events?.length??r,e}finally{n?.setAttributes(_e(r))}}),pe=()=>V.type===`loadAll`?{}:qn(V.events),me=(e,t)=>{if(!(Te||V.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||r(e.eventType)))return V.cursor??void 0},he=(e,t)=>{V.type===`ready`&&V.cursor===e&&t.events!==void 0&&t.hasMore!==!0&&Un(V,{events:t.events,cursor:t.cursor})},V={type:`loadAll`},H,ve,ye=-1,be,xe,Se=0,Ce,Te=Zr()&&w!==void 0&&l.attempt===1&&v===void 0&&!x;a?.setAttributes(Ee(Te));let De,Oe=async()=>{if(De)try{await De}catch{}},ke=async e=>{let n=ds(e);return n?(await ps({world:t,workflowRun:H,runId:f,requestId:j,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`}),!0):!1},Ae=new Set,je=e=>{Ae.size>0&&W.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:f,ackPath:e,stepIds:[...Ae]})},Ne=async()=>({runId:f,traceCarrier:await F(),requestedAt:new Date}),Pe=async(e,r)=>{if(je(`reinvoke`),!Te)return{timeoutSeconds:e};await Kn(t,Wn(N,n),{...await Ne(),...r},e>0?{delaySeconds:e}:void 0)},Ie=0,Le=null,Re=e=>{let t=Le;if(!t)return;Le=null;let n=new Set(e.map(e=>e.eventId)),r=gs(n,t.ids),i=gs(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;W.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:f,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:d})},Be=(e,t,{allowDelta:n=!0}={})=>{if(Ie>=ni())return!1;Ie++,U=null;let r=n&&Ie===1?Mn(t,f):null,i=r!==null&&V.type!==`loadAll`;return Le=V.type===`loadAll`?null:{ids:new Set(V.events.map(e=>e.eventId)),restart:Ie,reason:e,source:i?`inline-delta`:`full-reload`},r&&V.type!==`loadAll`?(Un(V,r),V={...V,type:`ready`}):(V={type:`loadAll`},L?.resetScan()),W.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:f,reason:e,loopIteration:d,preconditionRestarts:Ie,source:i?`inline-delta`:`full-reload`}),a?.setAttributes({"workflow.precondition_restarts":Ie}),!0},Ve=async(e,t)=>{let n=(ee??0)+1,r=ri();return n>r?{reinvoked:!1,error:new Y(`Event creation was rejected as stale after ${r} re-invocations of ${ni()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(W.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:f,reason:e,loopIteration:d,preconditionReinvocations:n,maxReinvocations:r}),a?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await Pe(ii(),{preconditionReinvocations:n})})},He=async(e,r,i)=>{let{outcome:o,spanAttributes:s}=await ui({world:t,run:e,requestId:j,retryCount:C,beforeStop:i,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:i,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await Kn(t,Wn(N,n),{...await r(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:i,delaySeconds:o})}});return s&&a?.setAttributes(s),o};if(v&&b)try{let e=async()=>{if(!E)return`ok`;try{await t.events.create(f,{eventType:`step_created`,specVersion:7,correlationId:v,eventData:{stepName:b,workflowName:N,input:E.input}},{requestId:j,viaStepDispatch:!0}),a?.setAttributes(S(!0)),W.warn(`Materialized step_created from the queue message — the producer’s direct write did not land`,{workflowRunId:f,stepId:v,stepName:b})}catch(e){if(X.is(e))return`ok`;if(K.is(e))return`gone`;throw e}return`ok`},r,i;if(a?.setAttributes(mt(O?`run_context`:`runs_get`)),O){if((E&&l.attempt>1?await e():`ok`)===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f});return}i=O}else{let[n,a]=await Promise.all([t.runs.get(f,{resolveData:`none`}),E&&l.attempt>1?e():`ok`]);if(a===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f});return}if(n.status!==`running`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f,status:n.status});return}r=n,i={deploymentId:n.deploymentId,specVersion:n.specVersion??0,...n.startedAt?{startedAt:+n.startedAt}:{},rootRunId:Jn(n.attributes,f)}}if(await He({runId:f,deploymentId:i.deploymentId,specVersion:i.specVersion},async()=>({...await Ne(),stepId:v,stepName:b,...E?{stepInput:E}:{},...O?{runContext:O}:{},...k?{hookResumeTiming:k}:{}}))!==`continue`)return;let s=i.startedAt??Date.now(),c=l.attempt,u=wn(b)?.maxRetries??3;l.attempt>u+1&&(c=si((await In(f)).events,v,{type:`totalAttempts`})+1);let d=A;A=void 0,oe.pause();let p;try{let n=()=>$i({world:t,workflowRunId:f,workflowDeploymentId:i.deploymentId,workflowName:N,workflowStartedAt:s,rootRunId:i.rootRunId??f,requestId:j,stepId:v,stepName:b,runSpecVersion:i.specVersion,authoritativeAttempt:c,...d?{resumeTracking:d}:{}});p=await aa(f,v,async()=>{try{return await n()}catch(t){if(!E||!fs(t))throw t;return await e()===`gone`?{type:`gone`}:await n()}})}finally{oe.resume()}if(p.type===`retry`||p.type===`throttled`)return{timeoutSeconds:p.timeoutSeconds};if(p.type===`completed`&&p.hasPendingOps){await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}if(p.type===`completed`||p.type===`failed`||p.type===`skipped`){let e=await In(f);V=bs(e);let n=new Set,i=new Set;for(let t of e.events)t.eventType===`step_created`?n.add(t.correlationId):(t.eventType===`step_completed`||t.eventType===`step_failed`)&&i.add(t.correlationId);let a=new Set;for(let e of n)i.has(e)||a.add(e);if(a.size>0){if($r()&&ra(e.events,a,l.messageId))W.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:f});else{W.debug(`Background step done but other steps pending, returning`,{workflowRunId:f});return}}W.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:f});let c=r??await t.runs.get(f,{resolveData:`none`});if(h(c.status)){W.debug(`Run already finished, skipping inline replay after background step`,{workflowRunId:f,status:c.status});return}I(c);let u=e.events.find(e=>e.eventType===`run_created`),d;if(u)d=u.eventData.input;else{if(!o(c.specVersion))throw new Y(`Workflow run "${f}" has no "run_created" event`);let e=await t.runs.get(f,{resolveData:`all`});if(e.status!==`running`)return;d=e.input}H={...c,input:d,status:`running`,output:void 0,error:void 0,completedAt:void 0},ye=s}else return}catch(e){let n=ds(e);if(!n)throw e;await ps({world:t,workflowRun:H,runId:f,requestId:j,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!H&&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 He(await t.runs.get(f,{resolveData:`none`}),async()=>({...await Ne(),hookInput:T,...k?{hookResumeTiming:k}:{}}),Oe)!==`continue`)return}let We=!1;if(!H&&T&&T.resumeId!==void 0&&T.payloadDigest!==void 0){let e=T,t;try{t=new Date(s(e.resumeId))}catch{t=void 0}try{a?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await B(`hook_preload`,n=>z({eventType:`hook_received`,specVersion:7,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:j,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0,replayEventObserver:n}));if(We=!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===f&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){a?.setAttributes({...qe(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ue(`hook_received_stream`)}),W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:f,eventType:e.eventType});return}H=n.run,I(H),ve=cs(n.maxEvents),xe=Date.now(),A&&(A.setupSource=`hook_preload`),V={type:`ready`,events:n.events,cursor:n.cursor},ye=+n.run.startedAt,a?.setAttributes({...qe(n.run.status),...ze(ye),...Ue(`hook_received_stream`)})}else a?.setAttributes(Ue(`hook_received_fallback`))}catch(e){if(Pt.is(e)||K.is(e)){W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:f,message:e.message});return}if(await ke(e))return;throw e}}if(!H){let e={eventType:`run_started`,specVersion:w?.specVersion??7,...w?{eventData:{input:w.input,deploymentId:w.deploymentId,workflowName:w.workflowName,executionContext:w.executionContext,attributes:w.attributes,allowReservedAttributes:w.allowReservedAttributes}}:{}};if(Te&&w){a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=z(e,{requestId:j,skipPreload:!0});De=t;try{I(w),R(w)}catch(e){if(await Oe(),!await ke(e))throw e;return}t.then(e=>{let t=cs(e.maxEvents);t!==void 0&&(ve=t)}).catch(()=>{}),V={type:`ready`,events:[],cursor:null};let n=new Date;H={runId:f,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},ye=+n,xe=+n,a?.setAttributes({...qe(`running`),...ze(ye)})}else try{a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=B(`run_started`,t=>z(e,{requestId:j,replayEventObserver:t}));try{I(w),R(w)}catch(e){try{await t}catch{}throw e}let n=await t;if(H=n.run,ve=cs(n.maxEvents),xe=Date.now(),A&&(A.setupSource=`run_started`),n.events?.length){let e={events:[...n.events],cursor:n.cursor??null};V=n.hasMore?bs(e):{...e,type:`ready`}}if(ye=+n.run.startedAt,a?.setAttributes({...qe(n.run.status),...ze(ye)}),n.run.status!==`running`){W.info(`Workflow already completed or failed, skipping`,{workflowRunId:f,status:n.run.status});return}I(H)}catch(e){if(X.is(e)||K.is(e)){W.info(`Run already finished during setup, skipping`,{workflowRunId:f,message:e.message});return}if(!await ke(e))throw e;return}}if(Cr(H,`Workflow run must be loaded before replay`),A&&A.setupSource===void 0&&(A.setupSource=`event_load`),await He(H,async()=>({...await Ne(),...T?{hookInput:T}:{},...k?{hookResumeTiming:k}:{}}),Oe)!==`continue`)return;if(T&&!We&&!(T.resumeId!==void 0&&V.type!==`loadAll`&&V.events.some(e=>e.eventType===`hook_received`&&e.resumeId===T.resumeId))){let e;try{e=T.resumeId===void 0?void 0:new Date(s(T.resumeId))}catch{e=void 0}let n;try{let r=await t.events.create(f,{eventType:`hook_received`,specVersion:7,correlationId:T.hookId,eventData:{token:T.token,payload:T.payload}},{requestId:j,occurredAt:e,resumeId:T.resumeId,resumePayloadDigest:T.payloadDigest});a?.setAttributes(Ge(!0));let i=r.event;n=i?{...i,eventData:{token:T.token,payload:T.payload}}:void 0}catch(e){if(Pt.is(e)||K.is(e))return;throw e}V.type!==`loadAll`&&n?(Gn(V.events,n),ue(n)):V={type:`loadAll`}}let U=null,Ke=new Set,Je=new Set;for(;;){if(d++,oe.isExhausted()){await Ei({runId:f,workflowName:N,requestId:j,attempt:l.attempt,limitMs:oe.configuredLimitMs,slotSnapshot:pe()});return}if(Date.now()-c>=u){W.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:f,loopIteration:d,elapsedMs:Date.now()-c}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}let r=0,o=!1;try{if(sr(H)){W.debug(`Using QuickJS VM engine`,{workflowRunId:f,loopIteration:d}),await Oe(),V.type===`loadAfter`&&(Un(V,await In(f,V.cursor)),V={...V,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),r=await t({workflowCode:e,workflowName:N,workflowRun:H,preloadedEvents:V.type===`ready`?V.events:void 0,preloadedEventsComplete:V.type===`ready`,preloadedCursor:V.type===`ready`?V.cursor:void 0,runInput:w,parentSpan:a,maxEventsLimit:ve,namespace:n,nextTraceCarrier:F,waitContinuation:te,deliveryAttempt:l.attempt,ownerMessageId:l.messageId,requestId:j});return r?.timeoutSeconds===void 0?void 0:await Pe(r.timeoutSeconds)}if(V.type!==`ready`){let e=await In(f,V.type===`loadAfter`?V.cursor:void 0);V.type===`loadAfter`?(Un(V,e),V={...V,type:`ready`}):V={...e,type:`ready`}}if(Cr(V.type===`ready`),Re(V.events),hs(V.events,f))return;let s=Date.now(),c=new Set(V.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),u=V.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!c.has(e.correlationId)&&s>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:7,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of u)try{let t=await z(e,{requestId:j});Bn(V.events,t)}catch(t){if(X.is(t)){W.info(`Wait already completed, skipping`,{workflowRunId:f,correlationId:e.correlationId});continue}throw t}Cr(V.type===`ready`);let m=new Set(V.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),h=u.filter(e=>!m.has(e.correlationId));if(h.length>0){if(V.cursor){let e=await In(f,V.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));h.every(e=>t.has(e.correlationId))?Un(V,e):V={...await In(f),type:`ready`}}else V={...await In(f),type:`ready`}}if(Fn()){let e=await On(f,{events:V.events,cursor:V.cursor});if(V={...e.log,type:`ready`},e.gap!==void 0)throw new It(`Event log for run ${f} has a hole at slot ${e.gap.firstMissingSlot}: ${e.gap.missingCount} of the ${e.gap.maxSlot} slots up to the log's maximum hold no event.`)}if(hs(V.events,f))return;if(ve!==void 0){let e=V.events.reduce((e,t)=>i(t)?e:e+1,0);if(e>=ve)throw new Ft(e,ve)}be??=V.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`||i(e)),W.debug(`Starting workflow execution`,{workflowRunId:f,loopIteration:d,eventCount:V.events.length,executionMode:U?`retained`:`replay`}),r=Date.now(),A&&(A.replayStartedAtMs??=r);let g=R(H);Cr(g,`Node workflow replay requires payload preparation`);let _=g.prewarm(H,V.events),v=U?await rs(U,V.events):{type:`replay`};if(o=U!==null&&v.type!==`replay`,v.type===`replay`){U=null;let n=I(H);Cr(n,`Node workflow replay requires compiled scripts`),v=await ns({workflowCode:e,workflowRun:H,events:V.events,encryptionKey:await se.value,replayPayloadCache:g,compiledWorkflowScripts:await n,runReadyBarrier:De,worldCapabilities:t.capabilities})}if(await _,v.type===`suspended`)throw U=v.session,v.suspension;let y=v.output;W.debug(`Workflow execution completed`,{workflowRunId:f,loopIteration:d,replayMs:Date.now()-r,executionMode:U?`retained`:`replay`}),p.activate();try{await Oe(),await z({eventType:`run_completed`,specVersion:7,eventData:{output:y}},{requestId:j})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}throw e}a?.setAttributes({...qe(`completed`)});return}catch(i){if(Ht.is(i)){p.activate();let e=Date.now(),s=e-r;A&&i.stepCount>0&&(A.nextStepEncounteredAtMs??=e),W.debug(`Workflow suspended`,{workflowRunId:f,loopIteration:d,replayMs:s,steps:i.stepCount,hooks:i.hookCount,waits:i.waitCount});let c=Jt(i.stepCount,i.hookCount,i.waitCount);c&&W.debug(c);let u=Date.now();Cr(V.type===`ready`,`Workflow suspended before its event log was loaded`);let m;try{m=await sa({suspension:i,world:t,run:H,span:a,requestId:j,eventLog:V,runReadyBarrier:De,replayRecoveryReporter:p,stepDispatch:{queueName:Wn(N,n),getTraceCarrier:F},ownerMessageId:l.messageId,allowDeferredBatchWork:!0})}catch(e){if(At.is(e)){if(Be(`suspension-create`,e))continue;let t=await Ve(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!q.is(e))throw e;let t=cr(e);W.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:f,errorCode:t,errorName:e.name,errorMessage:e.message});try{await Oe(),await z({eventType:`run_failed`,specVersion:7,eventData:{error:await cn(e,f,await se.value,globalThis,(H?.specVersion??0)>=5),errorCode:t}},{requestId:j})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}throw e}a?.setAttributes({...qe(`failed`),...M(t),...re(e.name),...nt(e.message),...le(e.name)});return}let h=Ut(()=>(Cr(V.type===`ready`),_s(V.events))),g=U?vs({suspension:i,serializationBlockerCount:m.serializationBlockerCount,hookContinuation:m.hasAwaitedHookCreation||m.hasHookConflict}):void 0;g?.retain===!1&&(U=null),Se+=m.hookCreationMs,m.hasAttributeEvents&&Ce===void 0&&(Ce=Se),W.debug(`Suspension handled`,{workflowRunId:f,suspensionMs:Date.now()-u,pendingSteps:m.pendingSteps.length,timeoutSeconds:m.waitTimeout?.seconds,hasHookConflict:m.hasHookConflict,hasAwaitedHookCreation:m.hasAwaitedHookCreation,hasAttributeEvents:m.hasAttributeEvents,...g?{workflowVmRetention:g.retain?`retained`:`replay`}:{},...g?.retain===!1?{workflowVmRetentionReason:g.reason}:{},...m.serializationBlockerCount>0?ys(m.serializationBlockers,m.serializationBlockerCount):{}});let _=(e,t)=>{if(!U)return!1;let n=e.filter(e=>!Ke.has(e));if(n.length===0)return!1;for(let e of n)Ke.add(e);let r=m.eventLogCarriedForward&&!h.value.openWait;return r||(Cr(V.type===`ready`),V=bs(V)),W.debug(`Continuing over a hook write in-process`,{workflowRunId:f,loopIteration:d,settles:t,hookIds:n,carriedForward:m.eventLogCarriedForward,readBeforeResume:!r}),a?.setAttributes({"workflow.hook_write_continuations":Ke.size}),!0};if(m.hasHookConflict){if(_(m.hookConflictCorrelationIds,`hook_conflict`))continue;return await Pe(0)}if(m.hasAttributeEvents){V=bs(V);continue}if(m.failedStepCorrelationIds.size>0){await m.deferredBatchWork,U=null,V=bs(V);continue}let v=m.pendingSteps,y=m.lazyInlineSteps,b=new Set(y.map(e=>e.correlationId)),x=await F(),ee=[],S=$r(),C=Date.now(),w=[],T=0,E=0;for(let e of m.queuedStepCorrelationIds)Je.add(e);let O=A!==void 0&&y.length===0&&!v.some(e=>!b.has(e.correlationId)&&S&&ea(e)&&e.ownerMessageId===l.messageId);for(let e of v){if(b.has(e.correlationId)||m.queuedStepCorrelationIds.has(e.correlationId))continue;let r=S&&ea(e);if(r&&e.ownerMessageId===l.messageId){w.push(e);continue}let i=r?ta(e,C):0;if(i>0){T++,W.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:f,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),ee.push(Kn(t,Wn(N,n),{runId:f,traceCarrier:x,requestedAt:new Date},{delaySeconds:i,idempotencyKey:na(e)}));continue}if(Je.has(e.correlationId)&&e.sawRetrying!==!0){E++;continue}Je.add(e.correlationId);let a=O?Ai(A):void 0;a&&(O=!1,A=void 0),ee.push(Kn(t,Wn(N,n),{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:x,requestedAt:new Date,runContext:An(H),...a?{hookResumeTiming:a}:{}},{idempotencyKey:jn(e.correlationId,e.stepName)}))}if(m.waitTimeout){let e=te?.correlationId===m.waitTimeout.correlationId?te.attempt+1:0;ee.push(Kn(t,Wn(N,n),{runId:f,traceCarrier:x,requestedAt:new Date,waitContinuation:{correlationId:m.waitTimeout.correlationId,attempt:e}},da(m.waitTimeout.seconds,m.waitTimeout.correlationId,Date.now(),e)))}let k=Promise.all(ee);k.catch(()=>{});let ne=[...y.map(e=>{let t=m.inlineClaims.get(e.correlationId);return t?{correlationId:e.correlationId,stepName:e.stepName,preclaimedStart:t}:{correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput}}),...w.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((T>0||w.length>0||E>0)&&a?.setAttributes({...w.length>0?ct(w.length):{},...T>0?fe(T):{},...E>0?D(E):{}}),E>0&&W.debug(`Skipped re-publishing step messages this invocation already published on an earlier replay pass`,{workflowRunId:f,loopIteration:d,republishesSkipped:E}),w.length>0&&W.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:f,stepIds:w.map(e=>e.correlationId)}),ne.length===0){if(await Promise.all([k,m.deferredBatchWork]),m.hasAwaitedHookCreation){if(_(m.awaitedHookCorrelationIds,`hook_created`))continue;return await Pe(0)}return}let P=h.value,ie=typeof V.cursor==`string`&&i.stepCount===1&&i.waitCount===0&&v.length===1&&y.length===1&&w.length===0&&!m.waitTimeout&&!P.openWait,ae=P.openHook||i.hookCount>0||m.hasHookEvents,I=Te&&!m.hasAttributeEvents&&!m.waitTimeout&&!m.hasHookEvents&&!m.hasAwaitedHookCreation&&!P.openHook&&!P.openWait,ce=Wi({events:V.events,invocationStartedClean:be===!0,runCreatedAtMs:Ni(f)??(Te?void 0:+H.createdAt),runStartedReceivedAtMs:xe,replayMs:s,preStepBlockingMs:Se,preStepBlockingBeforeAttrMs:Ce,suspensionHasWaits:i.waitCount>0||m.waitTimeout!==void 0,suspensionCreatedHooks:i.hookCount>0||m.hasHookEvents,turbo:Te,retained:o}),L=A;A=void 0,oe.pause();let R,ue=ne.map((e,n)=>(Ae.add(e.correlationId),aa(f,e.correlationId,()=>(Cr(V.type===`ready`),$i({world:t,workflowRunId:f,workflowDeploymentId:H.deploymentId,workflowName:N,workflowStartedAt:ye,requestId:j,rootRunId:Jn(H.attributes,f),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:H.specVersion,authoritativeAttempt:e.lazyStepInput!==void 0||e.preclaimedStart!==void 0?1:si(V.events,e.correlationId,{type:`ownedBy`,messageId:l.messageId})+1,lazyStepInput:e.lazyStepInput,preclaimedStart:e.preclaimedStart,ownerMessageId:l.messageId,forceOptimisticStart:I,suppressOptimisticStart:ae,runReadyBarrier:De,...n===0&&(e.lazyStepInput!==void 0||e.preclaimedStart!==void 0)&&ce?{latencyTracking:ce}:{},...L?{resumeTracking:L}:{},...ie&&V.cursor?{inlineDeltaSinceCursor:V.cursor}:{},replayRecoveryReporter:p}))).finally(()=>Ae.delete(e.correlationId))));for(let e of ue)e.catch(()=>{});try{try{await Promise.all([k,m.deferredBatchWork])}catch(e){throw await Promise.allSettled(ue),e}R=await Promise.all(ue)}catch(e){if(At.is(e)){if(Be(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(ue)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await Ve(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{oe.resume()}let B=[],de=!1,pe;for(let e=0;e<ne.length;e++){let t=R[e],n=ne[e];t.type===`retry`?B.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?pe=Math.max(pe??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(de=!0)}if(pe!==void 0)return await Pe(pe);if(B.length>0){let e=await F();await Promise.all(B.map(({step:r,delaySeconds:i})=>Kn(t,Wn(N,n),{runId:f,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date,runContext:An(H)},{delaySeconds:i,idempotencyKey:jn(r.correlationId,r.stepName)})))}if(de){W.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:f,loopIteration:d}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}if(B.length>0)return;if(ne.length===1){let e=R[0];if(e.type===`completed`&&e.inlineDelta){Un(V,e.inlineDelta),V=e.inlineDelta.hasMore?bs(V):{...V,type:`ready`};continue}}V=bs(V)}else{let s=i;if(At.is(i)){if(Be(`replay-write`,i))continue;let e=await Ve(`replay-write`,i);if(e.reinvoked)return e.result;s=e.error}if(mr(i))throw P.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:l.attempt}),i;let c,u={};if(jt.is(i)){let e=(x?.count??0)+1,r=ti(),a=[...x?.eventIds??(x?[x.eventId]:[]),i.eventId].slice(-(r+1));if(u={errorCode:J.REPLAY_DIVERGENCE,divergenceEventId:i.eventId,priorDivergenceEventId:x?.eventId,divergenceEventIds:a,divergenceCount:e,deliveryAttempt:l.attempt,maxRecoveryReplays:r,loopIteration:d,servedByRetainedSession:o,eventLogState:V.type,eventLogLength:V.type===`loadAll`?void 0:V.events.length,eventLogLastEventId:V.type===`loadAll`?void 0:V.events.at(-1)?.eventId,cursor:V.type===`ready`?V.cursor??void 0:V.type===`loadAfter`?V.cursor:void 0,hasHookInput:T!==void 0,hasWaitContinuation:te!==void 0,isRecoveryReplay:x!==void 0,setupSource:A?.setupSource},e<=r){P.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{...u,errorMessage:i.message}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date,replayDivergence:{eventId:i.eventId,count:e,eventIds:a}});return}c=e,s=new It(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${i.eventId}; divergent event ids: ${a.join(`, `)}. Last divergence: ${i.message}`,{cause:i})}else r>0&&p.activate();s instanceof Error&&a?.recordException?.(s);let m=await Bi(s),h=m.name||Pi(s),g=m.message,_=m.stack||Fi(s);if(_){let t=ge(N)?.moduleSpecifier||N;_=vo(_,t,e)}let v=cr(s);W.error(`Error while running workflow`,{...u,workflowRunId:f,errorCode:v,errorName:h,errorMessage:g,errorStack:_}),Sr.isNativeError(s)&&_&&(s.stack=_);try{await Oe(),await z({eventType:`run_failed`,specVersion:7,eventData:{error:await cn(s,f,await se.value,globalThis,(H?.specVersion??0)>=5),errorCode:v}},{requestId:j,...c===void 0?{}:{replayDivergenceCount:c}})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}if(dr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:f,errorCode:J.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}a?.setAttributes({...qe(`failed`),...M(v),...re(h),...nt(g),...le(h)});return}}}})}))}),u,d=0,f=Date.now(),g=typeof t?.routeModuleBodyStartedAt==`number`?f-t.routeModuleBodyStartedAt:void 0;return kn(async e=>{d+=1;let t=u!==void 0,n=await Ae(`SERVER`);return G(`workflow.route.flow`,{kind:n,attributes:{...je(`flow`),...C(Ir),...ke(t),...Ke(d),...st(Date.now()-f),...g===void 0?{}:dt(g),...F(e.method),...k(`/.well-known/workflow/v1/flow`)}},async t=>{u||=await G(`workflow.route.init`,async()=>{let e=await G(`workflow.route.get_world_handlers`,async()=>xi());return l(e)});let n=await u(e);return n instanceof Response&&t?.setAttributes(T(n.status)),n})})}export{_r as Run,Ht as WorkflowSuspension,hr as cancelRun,lr as cancelRuns,yi as createWorld,_i as createWorldFromModule,ir as getHookByToken,fr as getRun,xi as getWorld,bi as getWorldHandlers,Rn as healthCheck,ar as listStreams,pr as readStream,gr as recreateRunFromExisting,or as reenqueueRun,nr as resumeHook,rr as resumeWebhook,Si as setWorld,vr as start,ur as wakeUpRun,Ss as workflowEntrypoint};
1
+ import{a as e,i as t,t as n}from"../../_chunks/workflow/rolldown-runtime-DPpTSio4.js";import{K as r,Q as i,S as a,a as o,ct as s,dt as c,lt as l,pt as u,tt as d,ut as f,w as p,x as m,z as h}from"../../_chunks/workflow/dist-D38gP7YF.js";import{$ as g,$t as _,At as v,B as y,Bt as b,C as x,Ct as ee,Dt as S,E as C,Et as w,F as T,Ft as E,Gt as D,Ht as O,I as k,It as te,J as A,Jn as ne,Jt as re,K as j,Kt as M,Lt as N,Mt as P,Nt as ie,Ot as ae,P as F,Pt as I,Q as oe,Qt as se,R as ce,Rt as L,St as R,T as le,Tt as ue,U as z,Ut as B,V as de,Vt as fe,W as pe,Wt as me,X as he,Xn as V,Y as H,Yn as ge,Yt as _e,Z as ve,Zn as ye,Zt as be,_n as xe,_t as Se,a as Ce,an as we,b as Te,bn as Ee,bt as De,c as Oe,cn as ke,d as Ae,dn as je,en as Me,et as Ne,f as Pe,fn as Fe,g as Ie,gn as Le,gt as Re,hn as ze,i as Be,in as Ve,it as He,j as Ue,jt as We,k as Ge,kt as U,ln as Ke,mn as qe,n as W,nn as Je,nt as Ye,o as Xe,on as Ze,p as Qe,pn as $e,q as et,qn as tt,qt as nt,r as rt,rn as it,rt as at,s as ot,sn as st,tn as ct,tt as lt,u as ut,un as dt,v as ft,vn as pt,vt as mt,w as ht,wt as gt,x as _t,xn as vt,xt as yt,y as G,yn as bt,yt as xt,z as St,zt as Ct}from"../../_chunks/workflow/logger-NN5YHpYy.js";import{A as wt,M as Tt,N as Et,P as Dt,S as Ot,a as kt,c as At,d as K,i as q,j as J,k as Y,l as jt,m as Mt,n as Nt,o as Pt,r as X,s as Ft,t as It,u as Lt,v as Rt,w as zt,y as Bt}from"../../_chunks/workflow/dist-xTushGCp.js";import{i as Vt,n as Ht,r as Ut,t as Z}from"../../_chunks/workflow/global-DFW-hO6M.js";import{a as Wt,n as Gt}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{A as Kt,B as Q,G as qt,H as Jt,I as Yt,K as Xt,M as Zt,Q as Qt,R as $t,U as en,V as tn,W as nn,Y as rn,Z as an,a as on,at as sn,c as cn,d as ln,et as un,ft as dn,gt as fn,ht as pn,j as mn,k as hn,l as gn,mt as _n,ot as vn,p as yn,pt as bn,u as xn,z as Sn}from"../../_chunks/workflow/serialization-C5KgPESk.js";import{awaitEarlierDeliveries as Cn,getStepFunction as wn,isDeliveryIdle as Tn,registerDeliveryBarrier as En,scheduleWorkflowSuspension as Dn}from"./private.js";import{C as On,E as kn,S as An,T as jn,_ as Mn,b as Nn,c as Pn,d as Fn,f as In,g as Ln,l as Rn,m as zn,n as Bn,o as Vn,p as Hn,r as Un,s as Wn,u as Gn,v as Kn,w as qn,x as Jn,y as Yn}from"../../_chunks/workflow/helpers-6kObVbfS.js";import{d as Xn,l as Zn,n as Qn,s as $n,u as er}from"../../_chunks/workflow/attribute-changes-A6HfMNG3.js";import{t as tr}from"../../_chunks/workflow/wait-until-BMY_tOr-.js";import{n as nr,r as rr,t as ir}from"../../_chunks/workflow/resume-hook-CAqlhwic.js";import{a as ar,c as or,d as sr,f as cr,i as lr,l as ur,m as dr,n as fr,o as pr,p as mr,r as hr,s as gr,t as _r,u as vr}from"../../_chunks/workflow/run-DJevv8zz.js";import{t as yr}from"../../_chunks/workflow/run-id-Ct9AjQDR.js";import{createRequire as br}from"node:module";import{createHash as xr}from"node:crypto";import{types as Sr}from"node:util";import Cr from"node:assert/strict";import{pathToFileURL as wr}from"node:url";import{Script as Tr,createContext as Er,runInContext as Dr}from"node:vm";function Or(e=process.env){return e.WORKFLOW_TARGET_WORLD||(e.VERCEL_DEPLOYMENT_ID?`vercel`:`local`)}function kr(e){return e===`vercel`||e===`@workflow/world-vercel`}var Ar=e(Et(),1);function jr(e){return e instanceof er||e instanceof Zn||e instanceof Xn||e instanceof Qn}const Mr=`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 Nr(e,t){let n=t??cr(e);return Mt.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.`}:jr(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.`}:It.is(e)?{attribution:`sdk`,errorCode:n,hint:Mr}:n===J.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 Y?{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===J.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===J.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===J.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===J.CORRUPTED_EVENT_LOG?{attribution:`sdk`,errorCode:n,hint:Mr}:n===J.STREAM_ERROR?{attribution:`sdk`,errorCode:n,hint:`Workflow stream infrastructure failed while reading or writing data. This is an SDK or backend failure, not an error in your workflow code; please retry the run and report persistent failures with the runId.`}:n===J.WORLD_CONTRACT_ERROR?{attribution:`sdk`,errorCode:n,hint:`The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.`}:{attribution:`user`,errorCode:n}}function Pr(e){if(e===null)return!0;let t=typeof e;return t!==`object`&&t!==`function`}var Fr=class{preparer;preparedPayloads=new Map;primitiveStepResults=new Map;encryptionKey;nextUnscannedEventIndex=0;constructor(e,t=Yt){this.preparer=t,this.encryptionKey=Promise.resolve(e)}prepareEvent(e){this.prepareEventIfMissing(e)?.catch(()=>{})}async prewarm(e,t){let n=[],r=this.startPreparation(this.workflowInputKey(e.runId),e.input);r&&n.push(r);for(let e=this.nextUnscannedEventIndex;e<t.length;e++){let r=t[e],i=this.prepareEventIfMissing(r);i&&n.push(i)}this.nextUnscannedEventIndex=t.length,await Promise.allSettled(n)}resetScan(){this.nextUnscannedEventIndex=0}prepareWorkflowInput(e){return this.consumePreparation(this.workflowInputKey(e.runId),e.input)}prepareEventPayload(e,t,n){return this.consumePreparation(this.eventPayloadKey(e,t),n)}async getStepResult(e,t){if(this.primitiveStepResults.has(e))return this.primitiveStepResults.get(e);let n=await t();return Pr(n)&&this.primitiveStepResults.set(e,n),n}consumePreparation(e,t){if(!(t instanceof Uint8Array))return this.runPreparation(t);let n=this.ensurePreparation(e,t);return n.catch(()=>{this.preparedPayloads.get(e)===n&&this.preparedPayloads.delete(e)}),n}ensurePreparation(e,t){let n=this.preparedPayloads.get(e);if(n)return n;let r=this.runPreparation(t);return this.preparedPayloads.set(e,r),r}async runPreparation(e){return this.preparer(e,await this.encryptionKey)}prepareEventIfMissing(e){let t,n;switch(e.eventType){case`run_created`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData.input);case`run_started`:return this.startPreparation(this.workflowInputKey(e.runId),e.eventData?.input);case`step_completed`:t=`result`,n=e.eventData?.result;break;case`step_failed`:t=`error`,n=e.eventData?.error;break;case`hook_received`:t=`payload`,n=e.eventData?.payload;break;default:return}return this.startPreparation(this.eventPayloadKey(e.eventId,t),n)}startPreparation(e,t){if(t instanceof Uint8Array&&!this.preparedPayloads.has(e))return this.ensurePreparation(e,t)}workflowInputKey(e){return`run:${e}:input`}eventPayloadKey(e,t){return`event:${e}:${t}`}};const Ir=`cinst_${f()}`;function Lr(){return c(`WORKFLOW_MAX_QUEUE_DELIVERIES`,48,{integer:!0,min:1,max:48})}const Rr=24e4,zr=3e4,Br=78e4,Vr=u(`@workflow/core//envWarnings`,1,()=>({replayTimeoutValues:new Set,maxInlineStepsValues:new Set,maxEventsValues:new Set}));function Hr(e,t,n){Vr.replayTimeoutValues.has(e)||(Vr.replayTimeoutValues.add(e),W.warn(t,n))}function Ur(){let e=process.env.WORKFLOW_REPLAY_TIMEOUT_MS;if(!e)return Rr;let t=Number(e);return!Number.isFinite(t)||t<=0?(Hr(e,`Ignoring WORKFLOW_REPLAY_TIMEOUT_MS: not a positive finite number; using default`,{raw:e,defaultMs:Rr}),Rr):t<3e4?(Hr(e,`WORKFLOW_REPLAY_TIMEOUT_MS below minimum; clamped`,{raw:e,clampedMs:zr,minMs:zr}),zr):t>78e4?(Hr(e,`WORKFLOW_REPLAY_TIMEOUT_MS above maximum; clamped`,{raw:e,clampedMs:Br,maxMs:Br}),Br):t}function Wr(){return c(`WORKFLOW_REPLAY_TIMEOUT_MAX_RETRIES`,3,{integer:!0})}function Gr(){let e=process.env.WORKFLOW_MAX_INLINE_STEPS;if(!e)return 3;let t=Number(e);return!Number.isInteger(t)||t<=0?(Vr.maxInlineStepsValues.has(e)||(Vr.maxInlineStepsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_INLINE_STEPS: not a positive integer; using default`,{raw:e,defaultValue:3})),3):t<1?1:t>16?(Vr.maxInlineStepsValues.has(e)||(Vr.maxInlineStepsValues.add(e),W.warn(`WORKFLOW_MAX_INLINE_STEPS above maximum; clamped`,{raw:e,clampedValue:16,maxValue:16})),16):t}function Kr(){return process.env.WORKFLOW_RESILIENT_STEP_DISPATCH===`1`}function qr(){let e=process.env.WORKFLOW_BATCH_TRANSITIONS;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function Jr(){let e=process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;if(!e)return;let t=Number(e);if(!Number.isInteger(t)||t<=0){Vr.maxEventsValues.has(e)||(Vr.maxEventsValues.add(e),W.warn(`Ignoring WORKFLOW_MAX_EVENTS_OVERRIDE: not a positive integer; using server limit`,{raw:e}));return}return t}function Yr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`1`||e.toLowerCase()===`true`}function Xr(){let e=process.env.WORKFLOW_OPTIMISTIC_INLINE_START;return e===void 0||e===``?!1:e===`0`||e.toLowerCase()===`false`}function Zr(){let e=process.env.WORKFLOW_TURBO;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function Qr(){let e=process.env.WORKFLOW_RETAINED_VM;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function $r(){let e=process.env.WORKFLOW_INLINE_OWNERSHIP;return e===void 0||e===``||e!==`0`&&e.toLowerCase()!==`false`}function ei(){return c(`WORKFLOW_INLINE_OWNERSHIP_LEASE_SECONDS`,860,{integer:!0,min:1,max:900})}function ti(){return c(`WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`,3,{integer:!0})}function ni(){return c(`WORKFLOW_PRECONDITION_MAX_INPROCESS_RESTARTS`,3,{integer:!0})}function ri(){return c(`WORKFLOW_PRECONDITION_MAX_REINVOCATIONS`,5,{integer:!0})}function ii(){return c(`WORKFLOW_PRECONDITION_REINVOKE_DELAY_SECONDS`,2,{integer:!0})}function ai(){return c(`WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES`,3,{integer:!0,min:0})}const oi=e=>`eventData`in e&&e.eventData&&`ownerMessageId`in e.eventData&&typeof e.eventData.ownerMessageId==`string`?e.eventData.ownerMessageId:void 0;function si(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=oi(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 ci={outcome:`continue`};function li(e,t,n){return{outcome:e,spanAttributes:{...$e(t),...me(n),...B(e===`rerouted`)}}}async function ui({world:e,run:t,requestId:n,retryCount:r=0,reenqueue:i,isDeploymentUnavailableError:a,beforeStop:o}){if(e.capabilities?.deploymentAffinity!==!0)return ci;let s=await e.getDeploymentId();if(t.deploymentId===s)return ci;await o?.();let c=ai(),l={workflowRunId:t.runId,pinnedDeploymentId:t.deploymentId,actualDeploymentId:s,retryCount:r,maxRetries:c},u=async(r,i)=>{let a=new Ot(t.runId,t.deploymentId,s,{recoveryAttempts:r,cause:i});try{await e.events.create(t.runId,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(a,t.runId,void 0,void 0,(t.specVersion??0)>=5),errorCode:J.DEPLOYMENT_MISMATCH}},{requestId:n})}catch(e){if(!X.is(e)&&!K.is(e))throw e}return li(`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}),W.warn(`Workflow run received by a deployment it is not pinned to; re-routing to its own deployment`,{...l,attempt:e,delaySeconds:n}),li(`rerouted`,t.deploymentId,e)}catch(t){if(!a?.(t))throw t;return W.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 W.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 di(){throw Error(`Unsupported in eve: @workflow/core createWorld(). eve selects and wires the workflow world explicitly at build time.`)}function fi(){try{return br(wr(process.cwd()+`/package.json`).href)}catch{return br(import.meta.url)}}const pi=Symbol.for(`@workflow/world//cache`),mi=Symbol.for(`@workflow/world//stubbedCache`),hi=Symbol.for(`@workflow/world//cachePromise`),gi=Symbol.for(`@workflow/world//stubbedCachePromise`),$=globalThis;function _i(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 vi(e){if(e.startsWith(`file://`))return e;if(e.startsWith(`/`))return wr(e).href;if(e.startsWith(`./`)||e.startsWith(`../`))return wr(process.cwd()+`/`+e).href;try{return wr(fi().resolve(e)).href}catch{return e}}const yi=async()=>{let e=Or();if(kr(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.`),di()}if(e===`local`)return di({dataDir:process.env.WORKFLOW_LOCAL_DATA_DIR});let t;try{t=fi()(e)}catch{t=await import(vi(e))}if(typeof t==`function`)return t();try{return await _i(t)}catch{throw Error(`Invalid target world module: ${e}, must export a createWorld function or a default function that returns a World instance.`)}},bi=async()=>{if($[mi])return tt($[mi]),$[mi];$[gi]||($[gi]=yi().catch(e=>{throw $[gi]=void 0,e}));let e=await $[gi];return tt(e),$[mi]=e,{createQueueHandler:e.createQueueHandler,specVersion:e.specVersion}},xi=async()=>$[pi]?(tt($[pi]),$[pi]):($[hi]||($[hi]=yi().catch(e=>{throw $[hi]=void 0,e})),$[pi]=await $[hi],tt($[pi]),$[pi]),Si=e=>{$[pi]=e,$[mi]=e,$[hi]=void 0,$[gi]=void 0},Ci=Symbol.for(`@workflow/world//getWorldFn`);globalThis[Ci]??=xi;var wi=class{limitMs;elapsedMs=0;intervalStart;constructor(e=Ur()){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}},Ti=class extends Error{name=`ReplayTimeoutRetryError`};async function Ei(e){let{runId:t,workflowName:n,requestId:r,attempt:i,limitMs:a,slotSnapshot:o}=e,s=W.forRun(t,n),c=Wr();if(i<=c)throw s.warn(`Workflow replay exceeded timeout; retrying delivery`,{timeoutMs:a,attempt:i,maxRetries:c}),new Ti(`Workflow replay exceeded maximum duration (${a/1e3}s)`);let l=await xi(),u=Nr(void 0,J.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=zn(l,t),f=new q(`Workflow replay exceeded maximum duration (${a/1e3}s) after ${i} attempts`);await l.events.create(t,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(f,t,await d()),errorCode:J.REPLAY_TIMEOUT}},{requestId:r,...o})}var Di=class{divergenceCount;active=!1;reported=!1;constructor(e){this.divergenceCount=e}static inert(){return new Oi}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}}},Oi=class extends Di{constructor(){super(0)}activate(){}};function ki(e,t){if(e&&Number.isFinite(e.resumeRequestedAtMs)&&Number.isFinite(e.queuePublishRequestedAtMs))return{trigger:`hook`,...e.strategy===`lazy`||e.strategy===`parallel`||e.strategy===`sequential`?{strategy:e.strategy}:{},resumeRequestedAtMs:e.resumeRequestedAtMs,queuePublishRequestedAtMs:e.queuePublishRequestedAtMs,consumerStartedAtMs:e.consumerStartedAtMs??NaN,...e.replayStartedAtMs===void 0?{}:{replayStartedAtMs:e.replayStartedAtMs},...e.nextStepEncounteredAtMs===void 0?{}:{nextStepEncounteredAtMs:e.nextStepEncounteredAtMs},...e.setupSource===`hook_preload`||e.setupSource===`run_started`||e.setupSource===`event_load`?{setupSource:e.setupSource}:{},stepExecution:t}}function Ai(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 ji(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 Mi(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(!ji(n))return;let{resumeRequestedAtMs:r,queuePublishRequestedAtMs:i,consumerStartedAtMs:a,replayStartedAtMs:o,nextStepEncounteredAtMs:s,stepClaimStartedAtMs:c,stepClaimCompletedAtMs:l,stepCodeStartedAtMs:u}=n;return{...at(u-r),...et(i-r),...A(a-i),...he(o-a),...H(s-o),...g(c-s),...l===void 0?{}:oe(l-c),...lt(u-(l??c)),...He(t.trigger),...t.strategy===void 0?{}:Ye(t.strategy),...t.setupSource===void 0?{}:ve(t.setupSource),...Ne(t.stepExecution)}}function Ni(e){let t=e.startsWith(`wrun_`)?e.slice(5):e;try{return s(yr(t).ulid)}catch{return}}function Pi(e){return Sr.isNativeError(e)?e.name:`Error`}function Fi(e){return Sr.isNativeError(e)?e.stack??``:``}function Ii(e){if(typeof e!=`object`||!e)return String(e);let{name:t,message:n,code:r}=e,i=typeof t==`string`&&t?t:`Error`,a=typeof n==`string`&&n?`${i}: ${n}`:i;return typeof r==`string`&&r&&!a.includes(r)?`${a} (${r})`:a}function Li(e){let t=[],n=new Set;try{for(let r=Ri(e);r!=null&&t.length<=4;r=Ri(r)){if(typeof r!=`object`){t.push(String(r));break}if(n.has(r))break;n.add(r),t.push(Ii(r),...zi(r))}}catch{t.push(`[unavailable cause]`)}return t.length>4?[...t.slice(0,4),`…`].join(`
2
+ `):t.join(`
3
+ `)}function Ri(e){return typeof e==`object`&&e?e.cause:void 0}function zi(e){let t=e.errors;return Array.isArray(t)?t.slice(0,4).map(Ii):[]}function Bi(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 Vi(e){if(!Bi(e)||q.is(e))return e;let t=new q(`Aborted: ${e.message}`);return e.stack&&(t.stack=e.stack),t}function Hi(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function Ui(e){if(Sr.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 Wi(e){if(Hi(e))try{let t=await Wi(await e);return{...t,message:`Promise rejection: ${t.message}`}}catch(e){let t=await Wi(e);return{...t,message:`Promise rejection: ${t.message}`}}return Ui(e)}const Gi=u(`@workflow/core//devServerPort`,1,()=>({getPort:void 0,cachedPort:void 0,inFlight:void 0}));async function Ki(){if(Gi.cachedPort!==void 0)return Gi.cachedPort;if(Gi.inFlight)return Gi.inFlight;if(!Gi.getPort)try{let e=[`@workflow/utils`,`get-port`].join(`/`),t=br(wr(process.cwd()+`/package.json`).href)(e);Gi.getPort=t.getPort}catch{Gi.getPort=async()=>void 0}let e=Gi.getPort??(async()=>void 0);return Gi.inFlight=e().then(e=>(typeof e==`number`&&(Gi.cachedPort=e),e)).finally(()=>{Gi.inFlight=void 0}),Gi.inFlight}const qi=new Set([`step_created`,`step_started`,`step_completed`,`step_failed`,`step_retrying`,`hook_received`,`wait_created`,`wait_completed`]);function Ji(e){let{events:t}=e,n=e.invocationStartedClean&&e.runCreatedAtMs!==void 0&&!e.suspensionHasWaits,r;if(n)for(let e of t){if(qi.has(e.eventType)){n=!1;break}if(e.eventType===`attr_set`){let t=+(e.occurredAt??e.createdAt);r=r===void 0?t:Math.min(r,t)}}let i,a,o,s=t[t.length-1];if(!e.suspensionHasWaits&&!e.suspensionCreatedHooks&&s&&(s.eventType===`step_completed`||s.eventType===`step_failed`)){i=+(s.occurredAt??s.createdAt);let e=new Set;for(let n of t)(n.eventType===`step_completed`||n.eventType===`step_failed`)&&n.correlationId!==void 0&&e.add(n.correlationId);a=e.size,o=t.length}let c=n&&e.runStartedReceivedAtMs!==void 0;if(n||i!==void 0)return{...n?{ttfsAnchorMs:e.runCreatedAtMs,preStepBlockingMs:r===void 0?e.preStepBlockingMs:e.preStepBlockingBeforeAttrMs??0,...r===void 0?{}:{preStepAttrStartMs:r}}:{},...c?{rsfsAnchorMs:e.runStartedReceivedAtMs}:{},...i===void 0?{}:{prevStepEndMs:i,stepCount:a,eventCount:o},replayMs:e.replayMs,turbo:e.turbo,retained:e.retained}}function Yi(e){let{tracking:t}=e;if(!t||e.attempt!==1)return;let n=t.preStepAttrStartMs??e.stepCodeStartedAtMs,r=t.ttfsAnchorMs===void 0?void 0:n-t.ttfsAnchorMs-(t.preStepBlockingMs??0),i=r!==void 0&&r>=-6e4?Math.max(0,r):void 0,a=t.prevStepEndMs===void 0?void 0:e.stepCodeStartedAtMs-t.prevStepEndMs,o=a!==void 0&&a>=-6e4?Math.max(0,a):void 0,s=t.rsfsAnchorMs!==void 0&&e.stepStartPostSentAtMs!==void 0?Math.max(0,e.stepStartPostSentAtMs-t.rsfsAnchorMs):void 0,c=t.replayMs===void 0?void 0:Math.max(0,t.replayMs);if(i===void 0&&o===void 0)return;let l=[];return t.turbo&&l.push(`turbo`),e.lazyStepStart&&l.push(`lazyStepStart`),e.optimisticStart&&l.push(`optimisticStart`),e.preclaimedStart&&l.push(`preclaimedStart`),t.retained&&l.push(`retained`),{...i===void 0?{}:{ttfs:i},...o===void 0?{}:{stso:o},...o!==void 0&&t.stepCount!==void 0?{stepCount:t.stepCount}:{},...o!==void 0&&t.eventCount!==void 0?{eventCount:t.eventCount}:{},...s===void 0?{}:{rsfs:s},...c===void 0?{}:{finalSchedulingReplay:c},optimizations:l}}const Xi=`__workflowUnserializableStepInput`;function Zi(){return{args:[`[input unavailable: step argument serialization failed]`],closureVars:[],thisVal:void 0,[Xi]:!0}}function Qi(e){return typeof e==`object`&&!!e&&e[Xi]===!0}function $i(){return c(`WORKFLOW_STEP_STREAM_DRAIN_TIMEOUT_MS`,3e4,{integer:!0,min:1})}function ea(e){let t=e?.name;return t===`AbortError`||t===`ResponseAborted`}async function ta(e){if(e.length===0)return;let t=$i(),n;try{await Promise.race([Promise.all(e.map(e=>(e.settleReleasedWrites?.()??Promise.resolve(!1)).catch(e=>{if(!ea(e))throw e;return!1}))),new Promise((e,r)=>{n=setTimeout(()=>r(new Y(`Timed out draining step stream writes after ${t}ms`)),t)})])}catch(e){if(!ea(e))throw e}finally{n!==void 0&&clearTimeout(n)}}function na(e,t){if(t&&e.events&&e.cursor!==void 0)return{events:e.events,cursor:e.cursor,hasMore:e.hasMore??!1}}async function ra(e){let{world:t,workflowRunId:n,workflowName:r,workflowStartedAt:i,stepId:a,stepName:o}=e,s=!!process.env.VERCEL_URL,c=(e.runSpecVersion??0)>=5,l=e.replayRecoveryReporter??Di.inert(),u=async(e,r)=>l.withEventCreate(r,r=>t.events.create(n,e,r)),d={computeInstanceId:Ir,...e.requestId?{requestId:e.requestId}:{}},f=`step.execute ${V(o)}`;return G(f,{},async l=>{if(l?.setAttributes({...w(o),..._(r),...Fe(n),...ee(a)}),Cr(!(e.lazyStepInput!==void 0&&e.preclaimedStart),`executeStep: lazyStepInput and preclaimedStart are mutually exclusive`),e.preclaimedStart&&e.preclaimedStart.owned===!1)return W.debug(`Pre-claimed step start lost, skipping`,{stepName:o,stepId:a,workflowRunId:n}),l?.setAttributes({...E(!0),...I(`running`)}),{type:`skipped`};let f=zn(t,n),p=wn(o);if(!p||typeof p!=`function`){let t=`Step "${o}" is not registered in the current deployment. This usually indicates a build or bundling issue that caused the step to not be included in the deployment.`;if(W.error(`Step function not registered, failing step`,{workflowRunId:n,stepName:o,stepId:a}),e.lazyStepInput!==void 0)try{e.runReadyBarrier&&await e.runReadyBarrier.catch(()=>{}),await u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},d)}catch(e){if(X.is(e))return{type:`skipped`};if(K.is(e))return{type:`gone`};throw e}try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(new q(t),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...yt(!0)}),{type:`failed`}}let m=p.maxRetries??3;if(l?.setAttributes({...ue(m)}),e.authoritativeAttempt!==void 0&&e.authoritativeAttempt>m+1){let t=m,r=`Step "${o}" exceeded max retries (${t} ${Dt(`retry`,`retries`,t)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,stepId:a,attempt:e.authoritativeAttempt,maxRetries:m});try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(new q(r),n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step for exceeded retries, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e instanceof Error?e.message:String(e)}),{type:`skipped`};if(K.is(e))return{type:`gone`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}let h=e=>{if(Rt.is(e)){let t=Math.max(1,typeof e.retryAfter==`number`?e.retryAfter:1);return W.info(`Throttled on step_started, deferring`,{retryAfterSeconds:t}),{type:`throttled`,timeoutSeconds:t}}if(K.is(e))return W.info(`Workflow run "${n}" has already completed, skipping step "${a}": ${e.message}`),{type:`gone`};if(X.is(e))return W.debug(`Step in terminal state, skipping`,{stepName:o,stepId:a,workflowRunId:n,error:e instanceof Error?e.message:String(e)}),l?.setAttributes({...E(!0),...I(`completed`)}),{type:`skipped`};if(Bt.is(e)){let t=Math.max(1,e.retryAfter??1);return W.debug(`Step retryAfter timestamp not yet reached`,{stepName:o,stepId:a,timeoutSeconds:t}),{type:`retry`,timeoutSeconds:t}}},g=e.preclaimedStart===void 0&&e.lazyStepInput!==void 0&&e.suppressOptimisticStart!==!0&&(Yr()||e.forceOptimisticStart===!0&&!Xr());e.preclaimedStart?l?.setAttributes(te(`batch_preclaimed`)):e.lazyStepInput!==void 0&&l?.setAttributes(te(g?`optimistic`:`awaited`));let y,b=d,S,C,T,D=async()=>{if(!T)return;let e=await T;if(e.ok)return;let t=h(e.err);if(!t)throw e.err;return t};if(e.preclaimedStart?.owned)y=e.preclaimedStart.step,S=e.preclaimedStart.batchPostSentAtMs,C=e.preclaimedStart.claimCompletedAtMs;else if(g){T=(e.runReadyBarrier??Promise.resolve()).then(()=>(S=Date.now(),u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,input:e.lazyStepInput,...e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId}}},b))).then(()=>({ok:!0}),e=>({ok:!1,err:e}));let t=new Date;y={runId:n,stepId:a,stepName:o,status:`running`,input:e.lazyStepInput,attempt:1,startedAt:t,createdAt:t,updatedAt:t}}else try{let t=e.ownerMessageId===void 0?{}:{ownerMessageId:e.ownerMessageId};S=Date.now();let n=await u({eventType:`step_started`,specVersion:7,correlationId:a,eventData:e.lazyStepInput===void 0?{stepName:o,...t}:{stepName:o,workflowName:r,input:e.lazyStepInput,...t}},b);C=Date.now(),y=n.step}catch(e){let t=h(e);if(t)return t;throw e}W.debug(`Step execution details`,{stepName:o,stepId:y.stepId,status:y.status,attempt:y.attempt}),l?.setAttributes({...N(y.status)});let O;if(y.attempt>m+1&&y.error){let e=y.attempt-1,t=`Step "${o}" exceeded max retries (${e} ${Dt(`retry`,`retries`,e)})`;rt.error(`Step exceeded max retries`,{workflowRunId:n,stepName:o,retryCount:e});let r=new q(t);if(y.error!=null)try{r.cause=await Kt(y.error,n,await f())}catch{}try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(r,n,await f(),[],globalThis,c)}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}let k=[],A=[],ne=[],re=!0,M,ae=()=>{if(!M||M.rsfs!==void 0)return;let t=e.latencyTracking?.rsfsAnchorMs;t!==void 0&&S!==void 0&&(M.rsfs=Math.max(0,S-t),l&&l.setAttributes({...ie(M.rsfs)}))};try{let t=y.attempt;if(!y.startedAt)throw new Y(`Step "${a}" has no "startedAt" timestamp`);let u=y.startedAt,d=e.encryptionKey??await f(),m=await G(`step.hydrate`,{},async t=>{let r=Date.now(),i=await hn(y.input,n,d,A,globalThis,{},e.workflowDeploymentId,ne),a=Date.now()-r;return t?.setAttributes({...Re(i.args.length),...z(a)}),i});if(Qi(m)){let{message:e,hint:t}=Xt(`step arguments`,void 0);throw new Mt(e,{hint:t})}let h=m.args,_=m.thisVal??null,v=Gt(s?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Ki()??3e3}`),b,x=!1,ee=Date.now();M=Yi({tracking:e.latencyTracking,stepCodeStartedAtMs:ee,attempt:t,lazyStepStart:e.lazyStepInput!==void 0,optimisticStart:g,preclaimedStart:e.preclaimedStart!==void 0,stepStartPostSentAtMs:S}),M&&l?.setAttributes({...M.ttfs===void 0?{}:Ct(M.ttfs),...M.stso===void 0?{}:L(M.stso),...M.rsfs===void 0?{}:ie(M.rsfs),...M.finalSchedulingReplay===void 0?{}:R(M.finalSchedulingReplay),...gt(M.optimizations??[])});let w=()=>{let n=e.resumeTracking;if(!n||n.reported)return;let r=Mi({tracking:n,attempt:t,stepClaimStartedAtMs:S,stepClaimCompletedAtMs:C,stepCodeStartedAtMs:Date.now()});r&&(n.reported=!0,l?.setAttributes(r))},T=`ok`,E=performance.now();try{O=await G(`step.execute`,{},async()=>await qt.run({stepMetadata:{stepName:o,stepId:a,stepStartedAt:new Date(+u),attempt:t},workflowMetadata:{workflowName:r,workflowRunId:n,workflowStartedAt:new Date(+i),url:v,features:{encryption:!!d}},workflowDeploymentId:e.workflowDeploymentId,rootRunId:e.rootRunId,ops:A,preCompletionOps:k,streamStates:ne,closureVars:m.closureVars,encryptionKey:d,runReadyBarrier:g?e.runReadyBarrier:void 0},()=>(w(),p.apply(_,h))))}catch(e){T=`error`,b=e,x=!0}finally{Ie(performance.now()-E,T)}let te=Date.now()-ee;if(on(...h,_,m.closureVars),x)throw b;if(l?.setAttributes({...pe(te)}),O=await G(`step.dehydrate`,{},async t=>{let r=Date.now(),i=await ln(O,n,d,A,globalThis,!1,!1,c,g?e.runReadyBarrier:void 0),a=Date.now()-r;return t?.setAttributes({...j(a),...U(typeof i)}),i}),A.length>0){let e=Promise.all(A);tr(e,e=>{W.warn(`Background flush of step stream ops failed`,{workflowRunId:n,stepId:a,error:e instanceof Error?e.message:String(e)})});let t=Promise.race([e.then(()=>!0,e=>{if(ea(e))return!0;throw e}),new Promise(e=>setTimeout(()=>e(!1),500))]);t.catch(()=>{}),await ta(ne),re=await t}if(g){let e=await D();if(e)return e;ae()}k.length>0&&await Promise.all(k).catch(()=>{})}catch(e){if(g){let e=await D();if(e)return e;ae()}k.length>0&&await Promise.all(k).catch(()=>{});let t=Vi(e),r=await Wi(t),i=r.stack||Fi(t)||``;t instanceof Error&&l?.recordException?.(t);let s=q.is(t);if(l?.setAttributes({...De(Pi(t)),...xt(r.message),...le(Pi(t)),...x(s?`fatal`:Lt.is(t)?`retryable`:`transient`),...ht(!s)}),K.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};if(s){rt.error(`Encountered FatalError while executing step, bubbling up to parent workflow`,{workflowRunId:n,stepName:o,errorStack:i}),Sr.isNativeError(t)&&i&&(t.stack=i);try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(t,n,await f(),[],globalThis,c),...M}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...yt(!0)}),{type:`failed`}}let d=y.attempt;if(l?.setAttributes({...Se(d),...ue(m)}),d>=m+1){let t=y.attempt-1;rt.error(`Max retries reached, bubbling error to parent workflow`,{workflowRunId:n,stepName:o,attempt:y.attempt,retryCount:t,errorStack:i});let s=`Step "${o}" failed after ${m} ${Dt(`retry`,`retries`,m)}: ${r.message}`,d=new q(s);d.cause=e,i&&(d.stack=i);try{await u({eventType:`step_failed`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(d,n,await f(),[],globalThis,c),...M}})}catch(e){if(X.is(e))return W.info(`Tried failing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}return l?.setAttributes({...N(`failed`),...v(!0)}),{type:`failed`}}Lt.is(e)?rt.info(`Encountered RetryableError, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,message:e.message}):rt.info(`Encountered Error, step will be retried`,{workflowRunId:n,stepName:o,attempt:d,errorStack:i}),Sr.isNativeError(e)&&i&&(e.stack=i);try{await u({eventType:`step_retrying`,specVersion:7,correlationId:a,eventData:{stepName:o,error:await xn(e,n,await f(),[],globalThis,c),...Lt.is(e)&&{retryAfter:e.retryAfter}}})}catch(e){if(X.is(e))return W.info(`Tried retrying step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};throw e}let p=Math.max(1,Lt.is(e)?Math.ceil((+e.retryAfter.getTime()-Date.now())/1e3):1);return l?.setAttributes({...We(p),...P(!0)}),{type:`retry`,timeoutSeconds:p}}let F;try{F=await u({eventType:`step_completed`,specVersion:7,correlationId:a,eventData:{stepName:o,workflowName:r,result:O,...M}},e.inlineDeltaSinceCursor===void 0?void 0:{sinceCursor:e.inlineDeltaSinceCursor})}catch(e){if(X.is(e))return W.info(`Tried completing step, but step has already finished.`,{workflowRunId:n,stepId:a,stepName:o,message:e.message}),{type:`skipped`};if(K.is(e))return rt.info(`Workflow run already completed, skipping step`,{workflowRunId:n,stepId:a,message:e.message}),{type:`gone`};throw e}let oe=na(F,e.inlineDeltaSinceCursor!==void 0);return l?.setAttributes({...N(`completed`),...U(typeof O)}),A.length>0&&rt.debug(`Step has pending ops`,{workflowRunId:n,stepName:o,opsCount:A.length}),{type:`completed`,hasPendingOps:!re,inlineDelta:oe}})}function ia(e){return e.hasCreatedEvent===!0&&e.ownerMessageId!==void 0&&e.sawRetrying!==!0}function aa(e,t){if(e.lastStartedAt===void 0)return 0;let n=ei(),r=e.lastStartedAt+n*1e3-t;return Math.min(n,Math.max(0,Math.ceil(r/1e3)))}function oa(e){return`${e.correlationId}:backstop:${e.lastStartedAt}`}function sa(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 ca=u(`@workflow/core//stepSingleFlight`,1,()=>({inFlight:new Map}));async function la(e,t,n){let r=`${e}:${t}`,i=ca.inFlight.get(r);if(i){W.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();ca.inFlight.set(r,a);try{return await a}finally{ca.inFlight.delete(r)}}async function ua({runId:e,hookEvent:t,queueItem:n,requestId:r,sinceCursor:i,createEvent:a}){try{return(await a(t,{requestId:r,...i===void 0?{}:{sinceCursor:i}})).event?.eventType===`hook_conflict`?{hasHookConflict:!0,hasAwaitedHookCreation:!1}:{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0}}catch(t){if(X.is(t))return W.info(`Hook already exists, continuing`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:n.hasConflictAwaiter===!0};if(K.is(t))return W.info(`Workflow run already completed, skipping hook`,{workflowRunId:e,message:t.message}),{hasHookConflict:!1,hasAwaitedHookCreation:!1};if(fa(t)){let e=new q(`createHook failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}throw t}}async function da({suspension:e,world:t,run:n,span:r,requestId:i,eventLog:a,runReadyBarrier:o,replayRecoveryReporter:s,stepDispatch:c,ownerMessageId:l,allowDeferredBatchWork:u}){let d=n.runId,f=async()=>{if(o)try{await o}catch{}},p=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=>At.is(e))??t[0]},m=s??Di.inert(),h=(e,n)=>m.withEventCreate(n,n=>t.events.create(d,e,n)),g=0,_=0,v=!1,y=async(e,t)=>{if(_++,!a)return h(e,t);let n=a,r=await h(e,{...t,...qn(n.events)});if(typeof t?.sinceCursor==`string`)return n.cursor===t.sinceCursor&&r.events!==void 0&&r.hasMore!==!0&&(Un(n,{events:r.events,cursor:r.cursor}),v=!0),r;let i=Bn(n.events,r);return g+=i.added,i.truncated?W.debug(`Dropped a truncated skipped-slot report`,{workflowRunId:d,eventType:e.eventType,eventId:r.event?.eventId,offered:i.offered}):i.added>0&&W.debug(`Suspension write skipped occupied slots`,{workflowRunId:d,eventType:e.eventType,eventId:r.event?.eventId,reported:i.added}),r},b=e.items.filter(e=>e.type===`step`),x=e.items.filter(e=>e.type===`hook`),ee=e.items.filter(e=>e.type===`wait`),S=e.items.filter(e=>e.type===`attribute`),C=x.filter(e=>!e.hasCreatedEvent),w=new Map;for(let e of x){if(e.hasCreatedEvent&&!e.disposed)continue;let t=w.get(e.token);t?t.push(e):w.set(e.token,[e])}let T=await t.getEncryptionKeyForRun?.(n),E=T?await ne(T):void 0,D=(n.specVersion??0)>=5,O=0,k=[];async function te(t,n){let r={executions:[]};try{return await gn(t,d,E,e.globalThis,!1,D,r)}finally{O+=r.totalExecutions??r.executions.length,k.push(...r.executions.slice(0,5-k.length).map(e=>({...n,...e})))}}async function A(e){let t={eventType:`hook_disposed`,specVersion:7,correlationId:e.correlationId,eventData:{token:e.token}};try{await y(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Hook already disposed, skipping duplicate disposal`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(K.is(t))W.info(`Workflow run already completed, skipping hook disposal`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(Pt.is(t))W.info(`Hook not found for disposal, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}}let re=[],j=[],M=0,N=C.length===1&&typeof a?.cursor==`string`?a.cursor:void 0;if(w.size>0){let e=Date.now();await f(),await p([...w.values()].map(async e=>{for(let t of e){let e=!1;if(!t.hasCreatedEvent){let n=t.metadata===void 0?void 0:await te(t.metadata,{source:`hook_metadata`,correlationId:t.correlationId}),r={eventType:`hook_created`,specVersion:7,correlationId:t.correlationId,eventData:{token:t.token,tokenRetentionUntil:t.tokenRetentionUntil,metadata:n,isWebhook:t.isWebhook??!1,...t.isSystem&&{isSystem:!0}}},a=await ua({runId:d,hookEvent:r,queueItem:t,requestId:i,sinceCursor:N,createEvent:y});a.hasHookConflict&&re.push(t.correlationId),a.hasAwaitedHookCreation&&j.push(t.correlationId),e=a.hasHookConflict}t.disposed&&!e&&await A(t)}})),M=Date.now()-e}let P=x.filter(e=>e.abortRequested&&!e.disposed);P.length>0&&(await f(),await p(P.map(async e=>{try{let n=await te({aborted:!0,reason:e.abortReason},{source:`hook_abort`,correlationId:e.correlationId});await y({eventType:`hook_received`,specVersion:7,correlationId:e.correlationId,eventData:{token:e.token,payload:n}});try{let r=en(e.token);await t.streams.write(d,r,n),await t.streams.close(d,r)}catch{W.debug(`Failed to write abort stream packet, hook event will provide fallback`,{workflowRunId:d,correlationId:e.correlationId})}}catch(t){if(X.is(t)||K.is(t))W.info(`Workflow run already completed, skipping abort`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})));let ie=new Set(b.filter(e=>!e.hasCreatedEvent).map(e=>e.correlationId)),F=new Set,I=new Set,oe=async(t,r)=>{W.warn(`Step arguments failed to serialize; failing the step so the workflow can observe the error`,{workflowRunId:d,correlationId:t.correlationId,stepName:t.stepName,error:r.message}),await f();let a=await gn(Zi(),d,E,e.globalThis,!1,D);try{await y({eventType:`step_created`,specVersion:7,correlationId:t.correlationId,eventData:{stepName:t.stepName,workflowName:n.workflowName,input:a}},{requestId:i})}catch(e){if(X.is(e))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:t.correlationId,message:e.message});else if(K.is(e))return;else throw e}try{await y({eventType:`step_failed`,specVersion:7,correlationId:t.correlationId,eventData:{stepName:t.stepName,error:await xn(r,d,E,[],e.globalThis,D)}},{requestId:i})}catch(e){if(X.is(e)||K.is(e))W.info(`Tried failing step, but step or run has already finished.`,{workflowRunId:d,correlationId:t.correlationId,message:e.message});else throw e}I.add(t.correlationId),ce.delete(t.correlationId)},ce=new Set(j.length===0?b.filter(e=>ie.has(e.correlationId)).slice(0,Gr()).map(e=>e.correlationId):[]),L=new Map,R=[],le=new Set,ue=c!==void 0&&Kr()&&(n.specVersion??0)>=3,z=qr()&&typeof t.events.createBatch==`function`&&(n.specVersion??0)>=6&&!ue&&x.length===0&&S.length===0,B=[],de=[],fe=z&&l!==void 0&&ce.size>=2,pe=new Map,me,he=()=>(me??=c?.getTraceCarrier()??Promise.resolve({}),me),V=0,H=0;for(let e of b)if(ie.has(e.correlationId)){let r=fe&&ce.has(e.correlationId),a=H;H+=r?2:1;let o=(async()=>{let o;try{o=await te({args:e.args,closureVars:e.closureVars,thisVal:e.thisVal},{source:`step_input`,correlationId:e.correlationId})}catch(t){if(!Mt.is(t)||!c)throw t;await oe(e,t);return}if(ce.has(e.correlationId)){L.set(e.correlationId,{correlationId:e.correlationId,stepName:e.stepName,dehydratedInput:o}),r&&(B.push({order:a,kind:`inline-created`,correlationId:e.correlationId,event:{eventType:`step_created`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}}}),B.push({order:a+1,kind:`inline-started`,correlationId:e.correlationId,event:{eventType:`step_started`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,...l===void 0?{}:{ownerMessageId:l}}}}));return}let s={eventType:`step_created`,specVersion:7,correlationId:e.correlationId,eventData:{stepName:e.stepName,workflowName:n.workflowName,input:o}};if(ue&&o instanceof Uint8Array&&o.byteLength<=131072){await f();let r=await he(),[a,l]=await Promise.allSettled([y(s,{requestId:i}),Kn(t,c.queueName,{runId:d,stepId:e.correlationId,stepName:e.stepName,traceCarrier:r,requestedAt:new Date,stepInput:{input:o},runContext:An(n)},{idempotencyKey:jn(e.correlationId,e.stepName)})]);if(l.status===`rejected`)throw l.reason;if(le.add(e.correlationId),a.status===`rejected`){let t=a.reason;if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(mr(t))V++,W.warn(`Step creation event write failed, but the step was dispatched via the queue. The step_created event will be ensured by the queue consumer.`,{workflowRunId:d,correlationId:e.correlationId,stepName:e.stepName,error:t instanceof Error?t.message:String(t)});else throw t}else F.add(e.correlationId);return}if(z){B.push({order:a,kind:`step`,correlationId:e.correlationId,stepName:e.stepName,event:s});return}try{await f(),await y(s,{requestId:i}),F.add(e.correlationId)}catch(t){if(X.is(t))W.info(`Step already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})();R.push(o),z&&de.push(o.catch(()=>{}))}for(let e of ee)if(!e.hasCreatedEvent){let t={eventType:`wait_created`,specVersion:7,correlationId:e.correlationId,eventData:{resumeAt:e.resumeAt}};if(z){B.push({order:H++,kind:`wait`,correlationId:e.correlationId,event:t});continue}R.push((async()=>{try{await f(),await y(t,{requestId:i})}catch(t){if(X.is(t))W.info(`Wait already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}})())}let ge;z&&R.push((async()=>{if(await Promise.all(de),B.length===0)return;let e=[...B].sort((e,t)=>e.order-t.order);await f();let r=async e=>{try{await y(e.event,{requestId:i}),e.kind===`step`&&F.add(e.correlationId)}catch(t){if(X.is(t))W.info(e.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else throw t}};if(e.length===1){await r(e[0]);return}let o=a?(Hn(a.events)??0)+1:void 0,s=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1],o=i.kind===`inline-created`&&a?.kind===`inline-started`&&a.correlationId===i.correlationId,s=o?2:1;n.length>0&&n.length+s>32&&(t.push(n),n=[]),n.push(i),o&&(n.push(a),r++)}return n.length>0&&t.push(n),t},l=e=>e.kind===`inline-created`||e.kind===`inline-started`,p=s(e.filter(e=>l(e))),m=e.filter(e=>!l(e)),h=m.length===1?[m]:s(m),g=m.length===1?h[0]:void 0,_=[...p,...h],v=c!==void 0;if(v)for(let t of e)t.kind===`step`&&le.add(t.correlationId);let b=0,x,ee=async e=>{let n=Date.now(),{results:r}=await t.events.createBatch(d,e.map(e=>({event:e.event,...e.kind===`inline-started`?{computeInstanceId:Ir}:{}})),{requestId:i}),a=Date.now();for(let[t,i]of r.entries()){let r=e[t];if(i.error===void 0){if(r.kind===`step`)F.add(r.correlationId);else if(r.kind===`inline-started`){let e=L.get(r.correlationId);if(e===void 0)throw new wt(`no dehydrated input for pre-claimed step ${r.correlationId}`,{status:500});let t=new Date,o=i.step?.startedAt?{...i.step,startedAt:i.step.startedAt}:{runId:d,stepId:r.correlationId,stepName:e.stepName,status:`running`,attempt:1,createdAt:t,updatedAt:t,startedAt:t};pe.set(r.correlationId,{owned:!0,step:{...o,input:e.dehydratedInput},batchPostSentAtMs:n,claimCompletedAtMs:a})}continue}if(i.status===409){if(r.kind===`inline-created`||r.kind===`inline-started`){pe.set(r.correlationId,{owned:!1}),W.info(`Inline step pre-claim lost, continuing`,{workflowRunId:d,correlationId:r.correlationId,message:i.message});continue}W.info(r.kind===`step`?`Step already exists, continuing`:`Wait already exists, continuing`,{workflowRunId:d,correlationId:r.correlationId,message:i.message});continue}throw new wt(`batched ${r.event.eventType} for ${r.correlationId} failed: ${i.error}: ${i.message}`,{status:i.status})}let o=Hn(r.flatMap(e=>e.error===void 0&&e.event?[e.event]:[]));b+=r.filter(e=>e.error===void 0).length,o!==void 0&&(x===void 0||o>x)&&(x=o)},S=async e=>{if(!v)return;let r=e.filter(e=>e.kind===`step`);if(r.length===0)return;let i=await he();await Yn(t,c.queueName,r.map(e=>({message:{runId:d,stepId:e.correlationId,stepName:e.stepName,traceCarrier:i,requestedAt:new Date,runContext:An(n)},opts:{idempotencyKey:jn(e.correlationId,e.stepName)}})))},C=_.map(e=>e===g?r(e[0]):ee(e)),w=_.map(async(e,t)=>{await C[t],await S(e)}),T=(async()=>{let e=await Promise.allSettled([...C,...w]);if(o!==void 0&&x!==void 0){let e=x-o+1-b;e>0&&W.debug(`Batched fan-out committed above snapshot`,{workflowRunId:d,expectedFirstSlot:o,maxCommittedSlot:x,committedCount:b,interleaved:e})}let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason})(),E=_.flatMap((e,t)=>e.some(e=>e.kind===`inline-started`)?[C[t]]:[]);if(u){if(T.catch(()=>{}),ge=T,E.length>0)try{await Promise.all(E)}catch(e){throw await T.catch(()=>{}),e}}else await T})());for(let e of S)R.push((async()=>{try{await f(),await y({eventType:`attr_set`,specVersion:7,correlationId:e.correlationId,eventData:{changes:e.changes,writer:{type:`workflow`},...e.allowReservedAttributes?{allowReservedAttributes:!0}:{}}},{requestId:i})}catch(t){if(X.is(t))W.info(`Workflow attribute event already exists, continuing`,{workflowRunId:d,correlationId:e.correlationId,message:t.message});else if(fa(t)){let e=new q(`setAttributes failed World validation: ${t instanceof Error?t.message:String(t)}`);throw e.cause=t,e}else throw t}})());await p(R);let _e=[];for(let e of ce){let t=L.get(e);t&&_e.push(t)}let ve=Date.now(),ye;for(let e of ee){let t=e.resumeAt.getTime(),n=Math.max(1e3,t-ve),r=Math.ceil(n/1e3);(!ye||r<ye.seconds)&&(ye={seconds:r,correlationId:e.correlationId})}return r?.setAttributes({...qe(`workflow_suspended`),...Le(b.length),...se(C.length),...vt(ee.length),...I.size>0?xe(I.size):{},...V>0?ae(V):{}}),{pendingSteps:b,createdStepCorrelationIds:F,failedStepCorrelationIds:I,queuedStepCorrelationIds:le,lazyInlineSteps:_e,inlineClaims:pe,deferredBatchWork:ge,waitTimeout:re.length>0?void 0:ye,hasHookConflict:re.length>0,hookConflictCorrelationIds:re,hasAwaitedHookCreation:j.length>0,awaitedHookCorrelationIds:j,eventLogCarriedForward:v&&_===1,hasAttributeEvents:S.length>0,hasHookEvents:C.length>0,hookCreationMs:M,serializationBlockerCount:O,serializationBlockers:k,reportedEventCount:g}}function fa(e){return e instanceof d||e instanceof Error&&e.name===`AttributeValidationError`||wt.is(e)&&e.status===400}const pa=()=>c(`WORKFLOW_WAIT_CONTINUATION_MAX_DELAY_SECONDS`,82800,{integer:!0,min:1}),ma=()=>c(`WORKFLOW_NEAR_ELAPSED_WAIT_THRESHOLD_SECONDS`,2);function ha(e,t,n=Date.now(),r=0){let i=ga(e,t,n);return r<=0?i:{delaySeconds:i.delaySeconds,idempotencyKey:`${i.idempotencyKey}:a${r}`}}function ga(e,t,n){let r=pa();if(e<=Math.min(ma(),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 _a=44,va=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ya=new Uint8Array(64),ba=new Uint8Array(128);for(let e=0;e<va.length;e++){let t=va.charCodeAt(e);ya[e]=t,ba[t]=e}function xa(e){let t=0,n=0,r=0;do r=ba[e.next()],t|=(r&31)<<n,n+=5;while(r&32);return t}function Sa(e){return e&1?-2147483648|-(e>>>1):e>>>1}function Ca(e,t){return e.pos>=t?!1:e.peek()!==_a}var wa=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 wa(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+=Sa(xa(n)),i<u&&(l=!1),u=i,Ca(n,e)?(a+=Sa(xa(n)),o+=Sa(xa(n)),s+=Sa(xa(n)),Ca(n,e)?(c+=Sa(xa(n)),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Ea(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Ea(e){e.sort(Da)}function Da(e,t){return e[0]-t[0]}const Oa=/^[\w+.-]+:\/\//,ka=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,Aa=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function ja(e){return Oa.test(e)}function Ma(e){return e.startsWith(`//`)}function Na(e){return e.startsWith(`/`)}function Pa(e){return e.startsWith(`file:`)}function Fa(e){return/^[.?#]/.test(e)}function Ia(e){let t=ka.exec(e);return Ra(t[1],t[2]||``,t[3],t[4]||``,t[5]||`/`,t[6]||``,t[7]||``)}function La(e){let t=Aa.exec(e),n=t[2];return Ra(`file:`,``,t[1]||``,``,Na(n)?n:`/`+n,t[3]||``,t[4]||``)}function Ra(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 za(e){if(Ma(e)){let t=Ia(`http:`+e);return t.scheme=``,t.type=6,t}if(Na(e)){let t=Ia(`http://foo.com`+e);return t.scheme=``,t.host=``,t.type=5,t}if(Pa(e))return La(e);if(ja(e))return Ia(e);let t=Ia(`http://foo.com/`+e);return t.scheme=``,t.host=``,t.type=e?e.startsWith(`?`)?3:e.startsWith(`#`)?2:4:1,t}function Ba(e){if(e.endsWith(`/..`))return e;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function Va(e,t){Ha(t,t.type),e.path=e.path===`/`?t.path:Ba(t.path)+e.path}function Ha(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 Ua(e,t){if(!e&&!t)return``;let n=za(e),r=n.type;if(t&&r!==7){let e=za(t),i=e.type;switch(r){case 1:n.hash=e.hash;case 2:n.query=e.query;case 3:case 4:Va(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)}Ha(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?Fa(t||e)&&!Fa(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 Wa(e){if(!e)return``;let t=e.lastIndexOf(`/`);return e.slice(0,t+1)}function Ga(e,t){let n=Wa(e),r=t?t+`/`:``;return e=>Ua(r+(e||``),n)}var Ka=0,qa=1,Ja=2,Ya=3,Xa=4;function Za(e,t){let n=Qa(e,0);if(n===e.length)return e;t||(e=e.slice());for(let r=n;r<e.length;r=Qa(e,r+1))e[r]=eo(e[r],t);return e}function Qa(e,t){for(let n=t;n<e.length;n++)if(!$a(e[n]))return n;return e.length}function $a(e){for(let t=1;t<e.length;t++)if(e[t][Ka]<e[t-1][Ka])return!1;return!0}function eo(e,t){return t||(e=e.slice()),e.sort(to)}function to(e,t){return e[Ka]-t[Ka]}var no=!1;function ro(e,t,n,r){for(;n<=r;){let i=n+(r-n>>1),a=e[i][Ka]-t;if(a===0)return no=!0,i;a<0?n=i+1:r=i-1}return no=!1,n-1}function io(e,t,n){for(let r=n+1;r<e.length&&e[r][Ka]===t;n=r++);return n}function ao(e,t,n){for(let r=n-1;r>=0&&e[r][Ka]===t;n=r--);return n}function oo(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function so(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 no=o!==-1&&e[o][Ka]===t,o;t>=a?s=o===-1?0:o:c=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=ro(e,t,s,c)}function co(e){return typeof e==`string`?JSON.parse(e):e}var lo="`line` must be greater than 0 (lines start at line 1)",uo="`column` must be greater than or equal to 0 (columns start at column 0)",fo=class{constructor(e,t){let n=typeof e==`string`;if(!n&&e._decodedMemo)return e;let r=co(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=Ga(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=Za(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=oo(),this._bySources=void 0,this._bySourceMemos=void 0}};function po(e){return e}function mo(e){var t;return(t=po(e))._decoded||(t._decoded=Ta(po(e)._encoded))}function ho(e,t){let{line:n,column:r,bias:i}=t;if(n--,n<0)throw Error(lo);if(r<0)throw Error(uo);let a=mo(e);if(n>=a.length)return go(null,null,null,null);let o=a[n],s=_o(o,po(e)._decodedMemo,n,r,i||1);if(s===-1)return go(null,null,null,null);let c=o[s];if(c.length===1)return go(null,null,null,null);let{names:l,resolvedSources:u}=e;return go(u[c[qa]],c[Ja]+1,c[Ya],c.length===5?l[c[Xa]]:null)}function go(e,t,n,r){return{source:e,line:t,column:n,name:r}}function _o(e,t,n,r,i){let a=so(e,r,t,n);return no?a=(i===-1?io:ao)(e,r,a):i===-1&&a++,a===-1||a===e.length?-1:a}function vo(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===61}function yo(e){let t=0;for(;t<e.length;){let n=e.indexOf(`//# sourceMappingURL=data:application/json`,t);if(n===-1)return;let r=e.indexOf(`;base64,`,n+42);if(r===-1){t=n+42;continue}let i=e.indexOf(`,`,n);if(i!==-1&&i<r){t=r+8;continue}let a=r+8,o=a;for(;o<e.length&&vo(e.charCodeAt(o));)o++;if(o>a)return e.slice(a,o);t=o}}const bo=u(`@workflow/core//sourceMapTracers`,1,()=>({byCode:new Map}));function xo(e){let t=bo.byCode.get(e);if(t!==void 0)return bo.byCode.delete(e),bo.byCode.set(e,t),t;let n=null,r=yo(e);if(r)try{let e=Buffer.from(r,`base64`).toString(`utf-8`);n=new fo(JSON.parse(e))}catch{n=null}for(bo.byCode.set(e,n);bo.byCode.size>8;){let e=bo.byCode.keys().next().value;if(e===void 0)break;bo.byCode.delete(e)}return n}function So(e,t,n){if(!e.includes(t))return e;let r=xo(n);if(!r)return e;try{return e.split(`
4
+ `).map(e=>{let n=e.match(/^\s*at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/);if(!n)return e;let[,i,a,o,s]=n;if(!a.includes(t))return e;let c=parseInt(o,10),l=parseInt(s,10),u=ho(r,{line:c,column:l});if(u.source&&u.line!==null){let e=i||u.name||`anonymous`,t=u.column===null?l:u.column;return` at ${e} (${u.source}:${u.line}:${t})`}return e}).join(`
5
+ `)}catch{return e}}function Co(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 wo(e,t){let n=e.get(t);if(n)return n;let r=To(t);if(r){for(let[t,n]of e)if(To(t)===r)return n}}function To(e){let t=e.indexOf(`_`);return t===-1?void 0:e.slice(t+1)}function Eo(e){switch(e.type){case`step`:return`step ${e.stepName} (${e.correlationId})`;case`hook`:return`hook (${e.correlationId})`;case`wait`:return`wait (${e.correlationId})`;case`attribute`:return`attribute (${e.correlationId})`}return`unknown`}function Do(e,t,n){let r=e.correlationId?wo(t,e.correlationId):void 0,i=n.describe();return[`pending at this id: ${r?Eo(r):`none`}.`,`consumer: index=${i.index}, length=${i.length}, parked=${i.parked}, lastConsumed=${i.lastConsumedEventId??`none`}`].join(` `)}function Oo(e){return function(t,n){let r=function(...r){let{promise:i,resolve:a,reject:o}=Vt(),s=`step_${e.generateUlid()}`,c={type:`step`,correlationId:s,stepName:t,args:r};this!==void 0&&this!==null&&this!==globalThis&&(c.thisVal=this);let l=n?.();return l&&(c.closureVars=l),e.invocationsQueue.set(s,c),rt.debug(`Step consumer setup`,{correlationId:s,stepName:t,args:r}),e.eventsConsumer.subscribe(n=>{if(!n)return Dn(e),Q.NotConsumed;if(rt.debug(`Step consumer event processing`,{correlationId:s,stepName:t,args:r.join(`, `),incomingCorrelationId:n.correlationId,isMatch:s===n.correlationId,eventType:n.eventType}),n.correlationId!==s)return Q.NotConsumed;let i=`eventData`in n&&n.eventData&&`stepName`in n.eventData?n.eventData.stepName:void 0;if(typeof i==`string`&&i!==t)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: step event ${n.eventType} for ${s} belongs to "${i}", but the current step consumer is "${t}"`,{eventId:n.eventId}))}),Q.Finished;if(n.eventType===`step_created`){let r=e.invocationsQueue.get(s);return!r||r.type!==`step`?(e.promiseQueue=e.promiseQueue.then(()=>{o(new jt(`Replay divergence: step ${s} (${t}) created but not found in invocation queue`,{eventId:n.eventId}))}),Q.Finished):(r.hasCreatedEvent=!0,Q.Consumed)}if(n.eventType===`step_started`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.ownerMessageId=`eventData`in n&&n.eventData&&`ownerMessageId`in n.eventData&&typeof n.eventData.ownerMessageId==`string`?n.eventData.ownerMessageId:void 0,t.lastStartedAt=+n.createdAt),Q.Consumed}if(n.eventType===`step_retrying`){let t=e.invocationsQueue.get(s);return t&&t.type===`step`&&(t.sawRetrying=!0,t.ownerMessageId=void 0),Q.Consumed}if(n.eventType===`step_failed`){e.invocationsQueue.delete(n.correlationId);let t=e.eventsConsumer.eventIndex,r=En(e,t,`step`),i,a=Cn(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 Kt(n.eventData.error,e.runId,e.encryptionKey,e.globalThis,{},t)}catch(e){rt.error(`Failed to hydrate step_failed error`,{correlationId:n.correlationId,error:e instanceof Error?e.message:String(e)}),i=new q(`Failed to hydrate step error: ${e instanceof Error?e.message:String(e)}`)}finally{e.pendingDeliveries--}a.then(()=>{r.markDelivered(),o(i)})}),Q.Finished}if(n.eventType===`step_completed`){e.invocationsQueue.delete(n.correlationId);let t=n.eventId,r=n.eventData.result,i=e.eventsConsumer.eventIndex,s=En(e,i,`step`),c,l=Cn(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 mn(r,e.runId,e.encryptionKey,e.globalThis,{},n)})}}catch(e){c={ok:!1,error:e}}finally{e.pendingDeliveries--}l.then(()=>{s.markDelivered(),c.ok?a(c.value):o(c.error)})}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for step ${s} (name: ${t}) "${n.eventType}"`,{eventId:n.eventId}))}),Q.Finished}),i},i=t.split(`//`).pop();return Object.defineProperty(r,"name",{value:i}),Object.defineProperty(r,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),n&&(un(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 ko=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)})),Ao=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)})),jo=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)})),Mo=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)})),No=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)})),Po=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)})),Fo=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)})),Io=e(n(((e,t)=>{var n=ko(),r=Ao(),i=jo(),a=Mo(),o=No(),s=Po(),c=Fo();c.alea=n,c.xor128=r,c.xorwow=i,c.xorshift7=a,c.xor4096=o,c.tychei=s,t.exports=c}))(),1);const Lo=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Ro=new Uint8Array(128).fill(255);for(let e=0;e<64;e++)Ro[Lo.charCodeAt(e)]=e;function zo(e){return e===9||e===10||e===12||e===13||e===32}function Bo(e,t){for(;t<e.length&&zo(e.charCodeAt(t));)t++;return t}function Vo(e,t){let n=e.length,r=e;n===2?r=e+`AA`:n===3&&(r=e+`A`);let i=Ro[r.charCodeAt(0)],a=Ro[r.charCodeAt(1)],o=Ro[r.charCodeAt(2)],s=Ro[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 Ho(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=Bo(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(...Vo(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=Bo(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=Bo(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(...Vo(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||Ro[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(...Vo(o)),o=``,s=0,i=c,a.length===r)))return{read:i,bytes:a,error:null}}}function Uo(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 Wo(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+=Lo[n>>2&63],i+=Lo[(n&3)<<4|o>>4&15],t+1<a?i+=Lo[(o&15)<<2|s>>6&3]:r||(i+=`=`),t+2<a?i+=Lo[s&63]:r||(i+=`=`)}return n===`base64url`&&(i=i.replace(/\+/g,`-`).replace(/\//g,`_`)),i}function Go(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function Ko(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 Wo(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 Go(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=Ho(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=Uo(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=Ho(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=Uo(t);if(n.error)throw n.error;return new e(n.bytes)},writable:!0,enumerable:!1,configurable:!0})}function qo(e){return function(){let t=`0123456789abcdef`,n=``;for(let r=0;r<36;r++)n+=r===8||r===13||r===18||r===23?`-`:r===14?`4`:r===19?t[Math.floor(e()*4)+8]:t[Math.floor(e()*16)];return n}}const Jo={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function Yo(e){if(Sr.isTypedArray(e)||Sr.isDataView(e)){if(Sr.isSharedArrayBuffer(e.buffer))throw TypeError(`crypto.subtle.digest does not accept SharedArrayBuffer-backed views`);return e}if(!Sr.isArrayBuffer(e))throw TypeError(`data must be an ArrayBuffer or ArrayBufferView`);return new Uint8Array(e)}function Xo(e){let{fixedTimestamp:t}=e,{seed:n}=e,r=(0,Io.default)(n),i=Er(),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=qo(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=Jo[n.toUpperCase()];if(!r)throw new DOMException(`Unrecognized algorithm name: ${n}`,`NotSupportedError`);let i=xr(r).update(Yo(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 Y(`\`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,Ko(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 Zo=u(`@workflow/core//vmScriptCache`,1,()=>({byCode:new Map}));function Qo(e){let t=Zo.byCode.get(e);if(t!==void 0)return Zo.byCode.delete(e),Zo.byCode.set(e,t),t}function $o(e,t){let n=Qo(e);if(n===void 0)for(n=new Map,Zo.byCode.set(e,n);Zo.byCode.size>8;){let e=Zo.byCode.keys().next().value;if(e===void 0)break;Zo.byCode.delete(e)}let r=n.get(t),i=r!==void 0;return r===void 0&&(r=new Tr(e,{filename:t}),n.set(t,r)),{script:r,cacheHit:i}}function es(e){return async function(t,n={}){let{promise:r,resolve:i}=Vt(),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 jt(`Replay divergence: Unexpected attribute event for ${a}`,{eventId:r.eventId}))}),Q.Finished):(e.invocationsQueue.delete(a),e.promiseQueue=e.promiseQueue.then(()=>{i()}),Q.Finished):Q.NotConsumed:(Dn(e),Q.NotConsumed)),r}}function ts(e,t){if(typeof t!=`string`)return null;let n=an(rn,e.globalThis),r=n?.[Qt];return typeof r==`function`?r.call(n,{runId:t}):null}function ns(e){return function(t={}){if(t.token===``)throw Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a generated one.");if(t.isWebhook===!0&&t.experimental_minRetention!==void 0)throw Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");if(t.experimental_minRetention!==void 0&&e.worldCapabilities?.hookRetention?.active!==!0)throw new q("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:Tt(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=[],l=!1,u=!1,d=!1,f=!1,p=null,m=null,h=new Set;Be.debug(`Hook consumer setup`,{correlationId:n,token:r}),e.eventsConsumer.subscribe(t=>{if(!t)return l=!0,(s.length>0&&o.length===0||c.length>0&&!u&&!f)&&Dn(e),Q.NotConsumed;if(t.correlationId!==n)return Q.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 jt(`Replay divergence: hook event ${t.eventType} for ${n} belongs to token "${i}", but the current hook consumer expects "${r}"`,{eventId:t.eventId}))}),Q.Finished;if(t.eventType===`hook_created`){let r=e.invocationsQueue.get(n);r&&r.type===`hook`&&(r.hasCreatedEvent=!0,r.tokenRetentionUntil=t.eventData.tokenRetentionUntil),u=!0;let i=c.slice();return c.length=0,e.promiseQueue=e.promiseQueue.then(()=>{for(let e of i)e.resolve(null)}),Q.Consumed}if(t.eventType===`hook_conflict`){e.invocationsQueue.delete(n);let r=t,i=new kt(r.eventData.token,r.eventData.conflictingRunId);f=!0,p=i,m=ts(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)m?e.resolve(m):e.reject(i)}),Q.Consumed}if(t.eventType===`hook_received`){let n=t.resumeId;if(typeof n==`string`){if(h.has(n))return Q.Consumed;h.add(n)}let r=e.eventsConsumer.eventIndex,i=s.length>0,a=En(e,r,`hook`,{armed:i});if(i){let n=Cn(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 mn(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=Vt();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 mn(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(()=>Cn(e,r,`hook`)).then(()=>{if(a.markDelivered(),n&&!n.ok)throw n.error;return n.value}))})}return Q.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(n),d=!0,Q.Finished):(e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for hook ${n} (token: ${r}) "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished)});let g=!1;function _(){let t=Vt();if(f&&p)return e.promiseQueue=e.promiseQueue.then(()=>{t.reject(p)}),t.promise;if(o.length>0){let e=o.shift();if(e)return e.claim()}return l&&Dn(e),s.push(t),t.promise}function v(){let t=Vt();if(u)return e.promiseQueue=e.promiseQueue.then(()=>{t.resolve(null)}),t.promise;if(f)return e.promiseQueue=e.promiseQueue.then(()=>{m?t.resolve(m):t.reject(p)}),t.promise;let r=e.invocationsQueue.get(n);return r&&r.type===`hook`&&(r.hasConflictAwaiter=!0),l&&Dn(e),c.push(t),t.promise}function y(){if(g||(g=!0,d))return;let t=e.invocationsQueue.get(n);t&&t.type===`hook`&&(t.disposed=!0),s.length>0&&(s.length=0,Dn(e)),Be.debug(`Hook disposed`,{correlationId:n,token:r})}let b={token:r,getConflict(){return v()},then(e,t){return _().then(e,t)},async*[Symbol.asyncIterator](){for(;!g;)yield await this},dispose:y,[Symbol.dispose]:y},x=e.globalThis.Symbol.dispose;return x&&x!==Symbol.dispose&&(b[x]=y),b}}function rs(e){return async function(t){let{promise:n,resolve:r}=Vt(),i=`wait_${e.generateUlid()}`,a=Tt(t),o={type:`wait`,correlationId:i,resumeAt:a};return e.invocationsQueue.set(i,o),e.eventsConsumer.subscribe(t=>{if(!t)return Dn(e),Q.NotConsumed;if(t.correlationId!==i)return Q.NotConsumed;if(t.eventType===`wait_created`){let n=e.invocationsQueue.get(i);return n&&n.type===`wait`&&(n.hasCreatedEvent=!0,n.resumeAt=t.eventData.resumeAt),Q.Consumed}if(t.eventType===`wait_completed`){let n=t.eventData?.resumeAt;if(n!==void 0){let r=e.invocationsQueue.get(i),o=r&&r.type===`wait`?r.resumeAt:a,s=new Date(n),c=s.getTime(),l=o.getTime(),u=Number.isFinite(c)?s.toISOString():String(n);if(c!==l)return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: wait_completed event for ${i} has resumeAt "${u}", but the current wait consumer expects "${o.toISOString()}"`,{eventId:t.eventId}))}),Q.Finished}e.invocationsQueue.delete(i);let o=e.eventsConsumer.eventIndex,s=En(e,o,`wait`),c=Cn(e,o,`wait`);return e.promiseQueue.then(()=>c).then(()=>{s.markDelivered(),r()}),Q.Finished}return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new jt(`Replay divergence: Unexpected event type for wait ${i} "${t.eventType}"`,{eventId:t.eventId}))}),Q.Finished}),n}}async function is(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 xi();await da({suspension:new Ht(t,n),world:e,run:r,runReadyBarrier:a})}catch(t){W.warn(`Failed to drain pending queue items for ${i} workflow run`,{workflowRunId:e,message:t instanceof Error?t.message:String(t)})}}}function as(e,t){let n=ge(t)?.moduleSpecifier||t,r=`globalThis.__private_workflows?.get(${JSON.stringify(t)})`;return G(`workflow.bundle.compile`,async t=>{let i=$o(e,n),a=$o(r,n);return t?.setAttributes({...O(i.cacheHit)}),{bundleScript:i.script,workflowLookupScript:a.script}})}function os(e){return cs(`replay`,e.workflowRun,e.events,async t=>{let{session:n,execution:r}=await us(e);return t?.setAttributes({...b(n.argumentCount)}),ls(await r,t)})}function ss(e,t){return cs(`retained`,e.workflowRun,t,async n=>{n?.setAttributes({...b(e.argumentCount)});let r=await e.resume(t);return r.type===`replay`?r:ls(r,n)})}function cs(e,t,n,r){return G(`workflow.run ${t.workflowName}`,i=>(i?.setAttributes({..._(t.workflowName),...Fe(t.runId),...qe(t.status),..._e(n.length),...be(e)}),r(i)))}function ls(e,t){return e.type===`completed`?t?.setAttributes({...Ze(e.resultType)}):t&&(Ce(e.suspension,t),e.parked&&t.setAttributes({...Ve(e.parked.count),...Je(e.parked.eventId),...it(e.parked.eventType)})),e}async function us(e){let t=await ft(`workflow.vm.create_context`);return ds(e,t.end).catch(e=>{throw t.fail(e),e})}async function ds({workflowCode:e,workflowRun:t,events:n,encryptionKey:r,replayPayloadCache:i,compiledWorkflowScripts:a,runReadyBarrier:o,worldCapabilities:s},c){let u=t.startedAt;if(!u)throw new Y(`Workflow run "${t.runId}" has no "startedAt" timestamp (should not happen)`);let d=Ni(t.runId)??+t.createdAt,f=!!process.env.VERCEL_URL,p=Gt(f?`https://${process.env.VERCEL_URL}`:`http://localhost:${await Ki()??3e3}`),{context:m,globalThis:h,updateTimestamp:g}=Xo({seed:`${t.runId}:${t.workflowName}:${t.deploymentId}`,fixedTimestamp:d}),_=Vt(),v={type:`running`,interruption:_},y=e=>{switch(v.type){case`running`:{let{interruption:t}=v;v=Ht.is(e)?{type:`suspended`,suspension:e}:{type:`replay`},D.suspensionGeneration++,t.reject(e);return}case`suspended`:v={type:`replay`};return;case`replay`:case`completed`:return}},b=l(()=>h.Math.random()),x=0,ee=()=>(x+=1,b(d)),S=Co(`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,21,e=>new Uint8Array(e).map(()=>256*h.Math.random())),C={current:Promise.resolve()},w={current:()=>!0},T=d,E=new tn(n,{onConsumedEvent:e=>{let t=+e.createdAt;t>T&&(T=t,g(t))},onUnconsumedEvent:e=>{y(new jt(`Replay could not consume event: eventType=${e.eventType}, correlationId=${e.correlationId}, eventId=${e.eventId}. ${Do(e,D.invocationsQueue,E)}`,{eventId:e.eventId}))},onDuplicateEvent:(e,n)=>{let r={workflowRunId:t.runId,eventId:e.eventId,eventType:e.eventType,firstEventType:n,correlationId:e.correlationId};if(n!==e.eventType){W.debug(`Ignoring inert event that decides an already-decided outcome differently`,r);return}W.debug(`Ignoring inert event that repeats a class already in the event log`,r)},getPromiseQueue:()=>C.current,isDeliveryIdle:()=>w.current()}),D={runId:t.runId,encryptionKey:r,worldCapabilities:s,globalThis:h,onWorkflowError:y,eventsConsumer:E,generateUlid:ee,generateNanoid:S,get mintCount(){return x},invocationsQueue:new Map,get promiseQueue(){return C.current},set promiseQueue(e){C.current=e},pendingDeliveries:0,suspensionGeneration:0,pendingDeliveryBarriers:new Map,replayPayloadCache:i};w.current=()=>Tn(D);let O=!1;D.eventsConsumer.subscribe(e=>e?e.eventType===`run_created`?Q.Consumed:e.eventType===`run_started`?O?Q.NotConsumed:(O=!0,Q.Consumed):e.eventType===`attr_set`&&e.eventData.writer.type===`step`?Q.Consumed:Q.NotConsumed:Q.NotConsumed);let k=Oo(D),te=ns(D),A=rs(D),ne=es(D);h[fn]=k,h[_n]=ne,h[dn]=te,h[pn]=A,h[bn]=e=>nn(t.runId,e);let re={workflowName:t.workflowName,workflowRunId:t.runId,workflowStartedAt:new h.Date(+u),url:p,features:{encryption:!!r}};h[$n]=re,h[vn]=ee,h.fetch=()=>{throw new h.Error(`Global "fetch" is unavailable in workflow functions. Use the "fetch" step function from "workflow" to make HTTP requests.\n\nLearn more: https://workflow-sdk.dev/err/${Nt.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.`;h.setTimeout=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setInterval=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearTimeout=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearInterval=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.setImmediate=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.clearImmediate=()=>{throw new Y(j,{slug:Nt.TIMEOUT_FUNCTIONS_IN_WORKFLOW})},h.AbortController=Sn(D);let M=$t();h.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 h.URL){let t=String(e);try{new h.URL(t),this.url=t}catch(e){throw TypeError(`Failed to parse URL from ${t}`,{cause:e})}}else{if(this.url=e.url,!t){this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination;return}this.method=e.method,this.headers=new h.Headers(e.headers),this.body=e.body,this.mode=e.mode,this.credentials=e.credentials,this.cache=e.cache,this.redirect=e.redirect,this.referrer=e.referrer,this.referrerPolicy=e.referrerPolicy,this.integrity=e.integrity,this.keepalive=e.keepalive,this.signal=e.signal,this.duplex=e.duplex,this.destination=e.destination}t?.method?this.method=t.method.toUpperCase():typeof this.method!=`string`&&(this.method=`GET`),t?.headers?this.headers=new h.Headers(t.headers):(typeof e==`string`||e instanceof h.URL)&&(this.headers=new h.Headers),t?.mode===void 0?typeof this.mode!=`string`&&(this.mode=`cors`):this.mode=t.mode,t?.credentials===void 0?typeof this.credentials!=`string`&&(this.credentials=`same-origin`):this.credentials=t.credentials,t?.cache===void 0?typeof this.cache!=`string`&&(this.cache=`default`):this.cache=t.cache,t?.redirect===void 0?typeof this.redirect!=`string`&&(this.redirect=`follow`):this.redirect=t.redirect,t?.referrer===void 0?typeof this.referrer!=`string`&&(this.referrer=`about:client`):this.referrer=t.referrer,t?.referrerPolicy===void 0?typeof this.referrerPolicy!=`string`&&(this.referrerPolicy=``):this.referrerPolicy=t.referrerPolicy,t?.integrity===void 0?typeof this.integrity!=`string`&&(this.integrity=``):this.integrity=t.integrity,t?.keepalive===void 0?typeof this.keepalive!=`boolean`&&(this.keepalive=!1):this.keepalive=t.keepalive,t?.signal===void 0?this.signal||={aborted:!1}:this.signal=t.signal,this.duplex||=`half`,this.destination||=`document`;let n=t?.body;if(n!=null&&(this.method===`GET`||this.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);this.body=n==null?null:Object.create(h.ReadableStream.prototype,{[sn]:{value:n,writable:!1}})}clone(){Z()}get bodyUsed(){return!1}blob;formData;arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}}h.Request=N,Object.defineProperties(N.prototype,{arrayBuffer:{value:k(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:k(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:k(`__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 h.Headers(t?.headers),this.type=`default`,this.url=``,this.redirected=!1,e!=null&&(this.status===204||this.status===205||this.status===304))throw TypeError(`Response constructor: Invalid response status code ${this.status}`);this.body=e==null?null:Object.create(h.ReadableStream.prototype,{[sn]:{value:e,writable:!1}})}clone;blob;formData;get ok(){return this.status>=200&&this.status<300}get bodyUsed(){return!1}arrayBuffer;json;text;async bytes(){return new Uint8Array(await this.arrayBuffer())}static json(e,t){let n=JSON.stringify(e),r=new h.Headers(t?.headers);return r.has(`content-type`)||r.set(`content-type`,`application/json`),new P(n,{...t,headers:r})}static error(){Z()}static redirect(e,t=302){if(![301,302,303,307,308].includes(t))throw RangeError(`Invalid redirect status code: ${t}. Must be one of: 301, 302, 303, 307, 308`);let n=new h.Headers;n.set(`Location`,String(e));let r=Object.create(P.prototype);return r.status=t,r.statusText=``,r.headers=n,r.body=null,r.type=`default`,r.url=``,r.redirected=!1,r}}h.Response=P,Object.defineProperties(P.prototype,{arrayBuffer:{value:k(`__builtin_response_array_buffer`),writable:!0,configurable:!0},json:{value:k(`__builtin_response_json`),writable:!0,configurable:!0},text:{value:k(`__builtin_response_text`),writable:!0,configurable:!0}});class ie{constructor(){Z()}get locked(){return!1}cancel(){Z()}getReader(){Z()}pipeThrough(){Z()}pipeTo(){Z()}tee(){Z()}values(){Z()}static from(){Z()}[Symbol.asyncIterator](){Z()}}h.ReadableStream=ie;class ae{constructor(){Z()}get locked(){return!1}abort(){Z()}close(){Z()}getWriter(){Z()}}h.WritableStream=ae;class F{readable;writable;constructor(){Z()}}h.TransformStream=F,h.console=globalThis.console;let I=Symbol.for(`@vercel/request-context`);h[I]=globalThis[I],c();let{bundleScript:oe,workflowLookupScript:se}=a??await as(e,t.workflowName),ce=await G(`workflow.bundle.evaluate`,async()=>(oe.runInContext(m),se.runInContext(m)));if(typeof ce!=`function`)throw new zt(t.workflowName);let L=[];D.promiseQueue=D.promiseQueue.then(async()=>{L=await G(`workflow.input.hydrate`,async()=>{let e=await i.prepareWorkflowInput(t);return Zt(t.input,t.runId,r,h,{},e)})}),await D.promiseQueue;let R=async e=>{throw Ht.is(e)||jt.is(e)?(v.type===`running`&&(v={type:`replay`}),e):(v={type:`completed`},await is(t.runId,D.invocationsQueue,h,t,`failed`,o),e)},le=async(e,n)=>{let i;try{i=await Promise.race([e,n.promise])}catch(e){return v.type===`suspended`&&e===v.suspension?{type:`suspended`,suspension:v.suspension,session:de,parked:E.parkedSummary}:R(e)}v={type:`completed`};let a=E.strandedEvent;if(a)return R(new jt(`Replay finished without consuming event: eventType=${a.eventType}, correlationId=${a.correlationId}, eventId=${a.eventId}. ${Do(a,D.invocationsQueue,E)}`,{eventId:a.eventId}));try{let e=await yn(i,t.runId,r,h,!1,(t.specVersion??0)>=5);return await is(t.runId,D.invocationsQueue,h,t,`completed`,o),{type:`completed`,output:e,resultType:typeof i}}catch(e){return R(e)}},ue=await Oe(),z=await ft(`workflow.replay.execute`),B=ue.run(async()=>ce(...L)),de={workflowRun:t,argumentCount:L.length,async resume(e){switch(v.type){case`suspended`:{let t=E.events;if(!(e.length>t.length&&t.every((t,n)=>t.eventId===e[n].eventId)))return v={type:`replay`},{type:`replay`};let n=Vt();return v={type:`running`,interruption:n},D.suspensionGeneration++,ue.refresh(),E.append(e.slice(t.length)),le(B,n)}case`replay`:return{type:`replay`};case`completed`:case`running`:throw new Y(`Cannot resume ${v.type} workflow "${t.runId}"`)}}},fe=le(B,_);return fe.then(z.end,z.fail),{session:de,execution:fe}}function fs(e){let t=Jr();return t===void 0?e:e===void 0?t:Math.min(e,t)}function ps({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 ms({world:e,runInput:t,runId:n,runLogger:r}){let i=t?.deploymentId;if(!i)return;let a;try{a=await e.getDeploymentId()}catch{return}a&&a!==i&&r.error(`Queue message was delivered to a deployment it was not pinned to. The run was created targeting a different deployment, so this invocation may be replaying against code the run was not started on. Continuing — this is expected if the Workflow SDK version changed mid-run in local development, where the deployment id is derived from that version.`,{workflowRunId:n,pinnedDeploymentId:i,currentDeploymentId:a})}function hs(e){return Y.is(e)?J.RUNTIME_ERROR:dr(e)?J.WORLD_CONTRACT_ERROR:null}function gs(e){return!wt.is(e)||e.status!==void 0&&e.status!==404?!1:/step/i.test(e.message)&&/not found/i.test(e.message)}async function _s({world:e,workflowRun:t,runId:n,requestId:r,err:i,errorCode:a,logMessage:o}){W.error(o,{workflowRunId:n,errorCode:a,error:i instanceof Error?i.message:String(i)});try{let o=zn(e,t??n);await e.events.create(n,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(i,n,await o(),globalThis,(t?.specVersion??0)>=5),errorCode:a}},{requestId:r})}catch(e){if(X.is(e)||K.is(e))return;if(dr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:n,errorCode:J.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}}function vs(e,t){return e.find(e=>e.runId===t&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`))}function ys(e,t){let n=vs(e,t);return n?(W.debug(`Run reached terminal event, exiting`,{workflowRunId:t,eventType:n.eventType,eventId:n.eventId}),!0):!1}function bs(e,t){let n=0;for(let r of e)t.has(r)||n++;return n}function xs(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)}return{openHook:t.size>0,openWait:n.size>0}}function Ss({suspension:e,serializationBlockerCount:t,hookContinuation:n=!1}){return Qr()?t>0?{retain:!1,reason:`serialization_executed_workflow_code`}:n?{retain:!0}:e.stepCount===0&&e.attributeCount===0?{retain:!1,reason:`no_replay_driver`}:{retain:!0}:{retain:!1,reason:`disabled`}}function Cs(e,t){return{serializationBlockerCount:t,serializationBlockers:e.map(({source:e,correlationId:t,kind:n,detail:r})=>({source:e,correlationId:t,kind:n,detail:r&&r.length>160?`${r.slice(0,160)}…`:r})),serializationBlockersTruncated:t>e.length}}function ws(e){return e.cursor===null?{type:`loadAll`}:{type:`loadAfter`,events:e.events,cursor:e.cursor}}async function Ts(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,Ar.default)(`25m`))return(0,Ar.default)(`10m`);if(n>=(0,Ar.default)(`10m`))return(0,Ar.default)(`5m`)}}return(0,Ar.default)(`2m`)}function Es(e,t){Wt(t?.basePath);let n=p(t?.namespace),c=a(`workflow`,n),l=t=>t.createQueueHandler(c,async(a,l)=>{let u=Date.now(),d=Ln(a);if(d){await Pn(d,t.specVersion);return}let{runId:f,traceCarrier:p,requestedAt:g,stepId:v,stepName:b,replayDivergence:x,preconditionReinvocations:ee,deploymentMismatchRetryCount:C,runInput:w,hookInput:T,stepInput:E,runContext:O,hookResumeTiming:k,waitContinuation:te}=m.parse(a),A=ki(k,v===void 0?`inline`:`dispatched`);A&&v===void 0&&(A.consumerStartedAtMs=u),A&&!Number.isFinite(A.consumerStartedAtMs)&&(A=void 0);let ne=Qe(p)?p:void 0,{requestId:j}=l,N=l.queueName.slice(c.length),P=W.forRun(f,N),ie=Lr();if(l.attempt>ie){let e=Nr(void 0,J.MAX_DELIVERIES_EXCEEDED);P.error(`Workflow handler exceeded max deliveries (${l.attempt}/${ie})`,{attempt:l.attempt,errorCode:e.errorCode,errorAttribution:e.attribution});try{let e=await xi(),t=zn(e,f),n=new q(`Workflow exceeded maximum queue deliveries (${l.attempt}/${ie})`);await e.events.create(f,{eventType:`run_failed`,specVersion:7,eventData:{error:await cn(n,f,await t()),errorCode:J.MAX_DELIVERIES_EXCEEDED}},{requestId:j})}catch(e){if(X.is(e)||K.is(e))return;P.error(`Failed to mark run as failed after ${l.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:l.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 ae=Pe(),F=()=>ut(ae,ne),I=await ot(ae,ne),oe=new wi,se=ae===`continuous`?ne:void 0,L=await Ae(`CONSUMER`);return await Te(se,async()=>await _t({workflowRunId:f,workflowName:N},async()=>{let t=await G(`workflow.route.get_world`,async()=>xi());if(!ps({world:t,runInput:w,runId:f,runLogger:P}))return await ms({world:t,runInput:w,runId:f,runLogger:P}),G(`workflow.execute ${ye(N)}`,{kind:L,links:I},async a=>{a?.setAttributes({..._(N),...Me(`execute_v2`),...de(`vercel-queue`),...ce(l.queueName),...St(l.messageId),...y(`process`),...Vn({requestedAt:g}),...Fe(f),...bt(!!ne),...pt(ae)});let c=Date.now(),u=await Ts(t,c),d=0,p=x?new Di(x.count):Di.inert(),m,ie,I=await Xe(t=>{if(t&&!sr(t))return ie!==t.workflowName&&(ie=t.workflowName,m=as(e,t.workflowName),m.catch(()=>{})),m}),se=Ut(()=>{let e=Nn(t,f);return e.catch(()=>{}),e}),L,R=e=>{if(e&&!sr(e))return L||=new Fr(se.value),L},ue=e=>{e.eventType===`run_created`&&(R(e.eventData),I(e.eventData)),L?.prepareEvent(e)},z=async(e,n)=>{let r=me(e,n),i={...pe(),...n},a=await p.withEventCreate(r===void 0?i:{...i,sinceCursor:r},n=>t.events.create(f,e,n));return r!==void 0&&he(r,a),a},B=(e,t)=>G(`workflow.replay.load`,async n=>{let r=0;n?.setAttributes({...Fe(f),...we(e)});try{let e=await t(e=>{r++,ue(e)});return r=e.events?.length??r,e}finally{n?.setAttributes(_e(r))}}),pe=()=>V.type===`loadAll`?{}:qn(V.events),me=(e,t)=>{if(!(Te||V.type!==`ready`||t?.sinceCursor!==void 0||t?.preloadEvents===!0||r(e.eventType)))return V.cursor??void 0},he=(e,t)=>{V.type===`ready`&&V.cursor===e&&t.events!==void 0&&t.hasMore!==!0&&Un(V,{events:t.events,cursor:t.cursor})},V={type:`loadAll`},H,ve,ye=-1,be,xe,Se=0,Ce,Te=Zr()&&w!==void 0&&l.attempt===1&&v===void 0&&!x;a?.setAttributes(Ee(Te));let De,Oe=async()=>{if(De)try{await De}catch{}},ke=async e=>{let n=hs(e);return n?(await _s({world:t,workflowRun:H,runId:f,requestId:j,err:e,errorCode:n,logMessage:`Fatal runtime error during workflow setup`}),!0):!1},Ae=new Set,je=e=>{Ae.size>0&&W.error(`Invariant violation: acking the workflow message while owned inline steps are still executing — crash recovery for these steps is broken`,{workflowRunId:f,ackPath:e,stepIds:[...Ae]})},Ne=async()=>({runId:f,traceCarrier:await F(),requestedAt:new Date}),Pe=async(e,r)=>{if(je(`reinvoke`),!Te)return{timeoutSeconds:e};await Kn(t,Wn(N,n),{...await Ne(),...r},e>0?{delaySeconds:e}:void 0)},Ie=0,Le=null,Re=e=>{let t=Le;if(!t)return;Le=null;let n=new Set(e.map(e=>e.eventId)),r=bs(n,t.ids),i=bs(t.ids,n),a=i>0?`shrank`:r>0?`grew`:`unchanged`;W.warn(`Restarted replay reloaded its event log after a stale-snapshot rejection`,{workflowRunId:f,outcome:a,added:r,dropped:i,eventsBefore:t.ids.size,eventsAfter:n.size,preconditionRestarts:t.restart,reason:t.reason,source:t.source,loopIteration:d})},Be=(e,t,{allowDelta:n=!0}={})=>{if(Ie>=ni())return!1;Ie++,U=null;let r=n&&Ie===1?Mn(t,f):null,i=r!==null&&V.type!==`loadAll`;return Le=V.type===`loadAll`?null:{ids:new Set(V.events.map(e=>e.eventId)),restart:Ie,reason:e,source:i?`inline-delta`:`full-reload`},r&&V.type!==`loadAll`?(Un(V,r),V={...V,type:`ready`}):(V={type:`loadAll`},L?.resetScan()),W.warn(`Event creation rejected as stale; restarting replay in-process`,{workflowRunId:f,reason:e,loopIteration:d,preconditionRestarts:Ie,source:i?`inline-delta`:`full-reload`}),a?.setAttributes({"workflow.precondition_restarts":Ie}),!0},Ve=async(e,t)=>{let n=(ee??0)+1,r=ri();return n>r?{reinvoked:!1,error:new Y(`Event creation was rejected as stale after ${r} re-invocations of ${ni()} in-process replay restarts each: this run cannot observe its own event log completely enough to make progress. Last rejection (${e}): ${t instanceof Error?t.message:String(t)}`,{cause:t})}:(W.warn(`Event creation rejected as stale after in-process restarts; re-invoking run for a fresh replay`,{workflowRunId:f,reason:e,loopIteration:d,preconditionReinvocations:n,maxReinvocations:r}),a?.setAttributes({"workflow.precondition_reinvocations":n}),{reinvoked:!0,result:await Pe(ii(),{preconditionReinvocations:n})})},He=async(e,r,i)=>{let{outcome:o,spanAttributes:s}=await ui({world:t,run:e,requestId:j,retryCount:C,beforeStop:i,isDeploymentUnavailableError:t.isDeploymentUnavailableError,reenqueue:async({deploymentId:e,specVersion:i,deploymentMismatchRetryCount:a,delaySeconds:o})=>{await Kn(t,Wn(N,n),{...await r(),deploymentMismatchRetryCount:a},{deploymentId:e,specVersion:i,delaySeconds:o})}});return s&&a?.setAttributes(s),o};if(v&&b)try{let e=async()=>{if(!E)return`ok`;try{await t.events.create(f,{eventType:`step_created`,specVersion:7,correlationId:v,eventData:{stepName:b,workflowName:N,input:E.input}},{requestId:j,viaStepDispatch:!0}),a?.setAttributes(S(!0)),W.warn(`Materialized step_created from the queue message — the producer’s direct write did not land`,{workflowRunId:f,stepId:v,stepName:b})}catch(e){if(X.is(e))return`ok`;if(K.is(e))return`gone`;throw e}return`ok`},r,i;if(a?.setAttributes(mt(O?`run_context`:`runs_get`)),O){if((E&&l.attempt>1?await e():`ok`)===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f});return}i=O}else{let[n,a]=await Promise.all([t.runs.get(f,{resolveData:`none`}),E&&l.attempt>1?e():`ok`]);if(a===`gone`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f});return}if(n.status!==`running`){W.debug(`Run already finished, skipping background step`,{workflowRunId:f,status:n.status});return}r=n,i={deploymentId:n.deploymentId,specVersion:n.specVersion??0,...n.startedAt?{startedAt:+n.startedAt}:{},rootRunId:Jn(n.attributes,f)}}if(await He({runId:f,deploymentId:i.deploymentId,specVersion:i.specVersion},async()=>({...await Ne(),stepId:v,stepName:b,...E?{stepInput:E}:{},...O?{runContext:O}:{},...k?{hookResumeTiming:k}:{}}))!==`continue`)return;let s=i.startedAt??Date.now(),c=l.attempt,u=wn(b)?.maxRetries??3;l.attempt>u+1&&(c=si((await In(f)).events,v,{type:`totalAttempts`})+1);let d=A;A=void 0,oe.pause();let p;try{let n=()=>ra({world:t,workflowRunId:f,workflowDeploymentId:i.deploymentId,workflowName:N,workflowStartedAt:s,rootRunId:i.rootRunId??f,requestId:j,stepId:v,stepName:b,runSpecVersion:i.specVersion,authoritativeAttempt:c,...d?{resumeTracking:d}:{}});p=await la(f,v,async()=>{try{return await n()}catch(t){if(!E||!gs(t))throw t;return await e()===`gone`?{type:`gone`}:await n()}})}finally{oe.resume()}if(p.type===`retry`||p.type===`throttled`)return{timeoutSeconds:p.timeoutSeconds};if(p.type===`completed`&&p.hasPendingOps){await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}if(p.type===`completed`||p.type===`failed`||p.type===`skipped`){let e=await In(f);V=ws(e);let n=new Set,i=new Set;for(let t of e.events)t.eventType===`step_created`?n.add(t.correlationId):(t.eventType===`step_completed`||t.eventType===`step_failed`)&&i.add(t.correlationId);let a=new Set;for(let e of n)i.has(e)||a.add(e);if(a.size>0){if($r()&&sa(e.events,a,l.messageId))W.debug(`Background step done; falling through to recover an inline step owned by this message`,{workflowRunId:f});else{W.debug(`Background step done but other steps pending, returning`,{workflowRunId:f});return}}W.debug(`All parallel steps done, replaying inline after background step`,{workflowRunId:f});let c=r??await t.runs.get(f,{resolveData:`none`});if(h(c.status)){W.debug(`Run already finished, skipping inline replay after background step`,{workflowRunId:f,status:c.status});return}I(c);let u=e.events.find(e=>e.eventType===`run_created`),d;if(u)d=u.eventData.input;else{if(!o(c.specVersion))throw new Y(`Workflow run "${f}" has no "run_created" event`);let e=await t.runs.get(f,{resolveData:`all`});if(e.status!==`running`)return;d=e.input}H={...c,input:d,status:`running`,output:void 0,error:void 0,completedAt:void 0},ye=s}else return}catch(e){let n=hs(e);if(!n)throw e;await _s({world:t,workflowRun:H,runId:f,requestId:j,err:e,errorCode:n,logMessage:`Fatal error while preparing background workflow step`});return}if(!H&&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 He(await t.runs.get(f,{resolveData:`none`}),async()=>({...await Ne(),hookInput:T,...k?{hookResumeTiming:k}:{}}),Oe)!==`continue`)return}let We=!1;if(!H&&T&&T.resumeId!==void 0&&T.payloadDigest!==void 0){let e=T,t;try{t=new Date(s(e.resumeId))}catch{t=void 0}try{a?.addEvent(`workflow.hook_received.create.start`,{"workflow.hook_received.preload_events":!0});let n=await B(`hook_preload`,n=>z({eventType:`hook_received`,specVersion:7,correlationId:e.hookId,eventData:{token:e.token,payload:e.payload}},{requestId:j,occurredAt:t,resumeId:e.resumeId,resumePayloadDigest:e.payloadDigest,preloadEvents:!0,replayEventObserver:n}));if(We=!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===f&&(e.eventType===`run_completed`||e.eventType===`run_failed`||e.eventType===`run_cancelled`));if(e){a?.setAttributes({...qe(e.eventType===`run_completed`?`completed`:e.eventType===`run_failed`?`failed`:`cancelled`),...Ue(`hook_received_stream`)}),W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:f,eventType:e.eventType});return}H=n.run,I(H),ve=fs(n.maxEvents),xe=Date.now(),A&&(A.setupSource=`hook_preload`),V={type:`ready`,events:n.events,cursor:n.cursor},ye=+n.run.startedAt,a?.setAttributes({...qe(n.run.status),...ze(ye),...Ue(`hook_received_stream`)})}else a?.setAttributes(Ue(`hook_received_fallback`))}catch(e){if(Pt.is(e)||K.is(e)){W.info(`Run already finished during lazy hook setup, skipping`,{workflowRunId:f,message:e.message});return}if(await ke(e))return;throw e}}if(!H){let e={eventType:`run_started`,specVersion:w?.specVersion??7,...w?{eventData:{input:w.input,deploymentId:w.deploymentId,workflowName:w.workflowName,executionContext:w.executionContext,attributes:w.attributes,allowReservedAttributes:w.allowReservedAttributes}}:{}};if(Te&&w){a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!0});let t=z(e,{requestId:j,skipPreload:!0});De=t;try{I(w),R(w)}catch(e){if(await Oe(),!await ke(e))throw e;return}t.then(e=>{let t=fs(e.maxEvents);t!==void 0&&(ve=t)}).catch(()=>{}),V={type:`ready`,events:[],cursor:null};let n=new Date;H={runId:f,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},ye=+n,xe=+n,a?.setAttributes({...qe(`running`),...ze(ye)})}else try{a?.addEvent(`workflow.run_started.create.start`,{"workflow.run_started.skip_preload":!1});let t=B(`run_started`,t=>z(e,{requestId:j,replayEventObserver:t}));try{I(w),R(w)}catch(e){try{await t}catch{}throw e}let n=await t;if(H=n.run,ve=fs(n.maxEvents),xe=Date.now(),A&&(A.setupSource=`run_started`),n.events?.length){let e={events:[...n.events],cursor:n.cursor??null};V=n.hasMore?ws(e):{...e,type:`ready`}}if(ye=+n.run.startedAt,a?.setAttributes({...qe(n.run.status),...ze(ye)}),n.run.status!==`running`){W.info(`Workflow already completed or failed, skipping`,{workflowRunId:f,status:n.run.status});return}I(H)}catch(e){if(X.is(e)||K.is(e)){W.info(`Run already finished during setup, skipping`,{workflowRunId:f,message:e.message});return}if(!await ke(e))throw e;return}}if(Cr(H,`Workflow run must be loaded before replay`),A&&A.setupSource===void 0&&(A.setupSource=`event_load`),await He(H,async()=>({...await Ne(),...T?{hookInput:T}:{},...k?{hookResumeTiming:k}:{}}),Oe)!==`continue`)return;if(T&&!We&&!(T.resumeId!==void 0&&V.type!==`loadAll`&&V.events.some(e=>e.eventType===`hook_received`&&e.resumeId===T.resumeId))){let e;try{e=T.resumeId===void 0?void 0:new Date(s(T.resumeId))}catch{e=void 0}let n;try{let r=await t.events.create(f,{eventType:`hook_received`,specVersion:7,correlationId:T.hookId,eventData:{token:T.token,payload:T.payload}},{requestId:j,occurredAt:e,resumeId:T.resumeId,resumePayloadDigest:T.payloadDigest});a?.setAttributes(Ge(!0));let i=r.event;n=i?{...i,eventData:{token:T.token,payload:T.payload}}:void 0}catch(e){if(Pt.is(e)||K.is(e))return;throw e}V.type!==`loadAll`&&n?(Gn(V.events,n),ue(n)):V={type:`loadAll`}}let U=null,Ke=new Set,Je=new Set;for(;;){if(d++,oe.isExhausted()){await Ei({runId:f,workflowName:N,requestId:j,attempt:l.attempt,limitMs:oe.configuredLimitMs,slotSnapshot:pe()});return}if(Date.now()-c>=u){W.info(`V2 timeout reached, re-scheduling workflow`,{workflowRunId:f,loopIteration:d,elapsedMs:Date.now()-c}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}let r=0,o=!1;try{if(sr(H)){W.debug(`Using QuickJS VM engine`,{workflowRunId:f,loopIteration:d}),await Oe(),V.type===`loadAfter`&&(Un(V,await In(f,V.cursor)),V={...V,type:`ready`});let{runWorkflowWithQuickJS:t}=await import(`../../_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js`),r=await t({workflowCode:e,workflowName:N,workflowRun:H,preloadedEvents:V.type===`ready`?V.events:void 0,preloadedEventsComplete:V.type===`ready`,preloadedCursor:V.type===`ready`?V.cursor:void 0,runInput:w,parentSpan:a,maxEventsLimit:ve,namespace:n,nextTraceCarrier:F,waitContinuation:te,deliveryAttempt:l.attempt,ownerMessageId:l.messageId,requestId:j});return r?.timeoutSeconds===void 0?void 0:await Pe(r.timeoutSeconds)}if(V.type!==`ready`){let e=await In(f,V.type===`loadAfter`?V.cursor:void 0);V.type===`loadAfter`?(Un(V,e),V={...V,type:`ready`}):V={...e,type:`ready`}}if(Cr(V.type===`ready`),Re(V.events),ys(V.events,f))return;let s=Date.now(),c=new Set(V.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),u=V.events.filter(e=>e.eventType===`wait_created`&&e.correlationId!==void 0&&!c.has(e.correlationId)&&s>=e.eventData.resumeAt.getTime()).map(e=>({eventType:`wait_completed`,specVersion:7,correlationId:e.correlationId,eventData:{resumeAt:e.eventData.resumeAt}}));for(let e of u)try{let t=await z(e,{requestId:j});Bn(V.events,t)}catch(t){if(X.is(t)){W.info(`Wait already completed, skipping`,{workflowRunId:f,correlationId:e.correlationId});continue}throw t}Cr(V.type===`ready`);let m=new Set(V.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId)),h=u.filter(e=>!m.has(e.correlationId));if(h.length>0){if(V.cursor){let e=await In(f,V.cursor),t=new Set(e.events.filter(e=>e.eventType===`wait_completed`).map(e=>e.correlationId));h.every(e=>t.has(e.correlationId))?Un(V,e):V={...await In(f),type:`ready`}}else V={...await In(f),type:`ready`}}if(Fn()){let e=await On(f,{events:V.events,cursor:V.cursor});if(V={...e.log,type:`ready`},e.gap!==void 0)throw new It(`Event log for run ${f} 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(ys(V.events,f))return;if(ve!==void 0){let e=V.events.reduce((e,t)=>i(t)?e:e+1,0);if(e>=ve)throw new Ft(e,ve)}be??=V.events.every(e=>e.eventType===`run_created`||e.eventType===`run_started`||e.eventType===`attr_set`||i(e)),W.debug(`Starting workflow execution`,{workflowRunId:f,loopIteration:d,eventCount:V.events.length,executionMode:U?`retained`:`replay`}),r=Date.now(),A&&(A.replayStartedAtMs??=r);let g=R(H);Cr(g,`Node workflow replay requires payload preparation`);let _=g.prewarm(H,V.events),v=U?await ss(U,V.events):{type:`replay`};if(o=U!==null&&v.type!==`replay`,v.type===`replay`){U=null;let n=I(H);Cr(n,`Node workflow replay requires compiled scripts`),v=await os({workflowCode:e,workflowRun:H,events:V.events,encryptionKey:await se.value,replayPayloadCache:g,compiledWorkflowScripts:await n,runReadyBarrier:De,worldCapabilities:t.capabilities})}if(await _,v.type===`suspended`)throw U=v.session,v.suspension;let y=v.output;W.debug(`Workflow execution completed`,{workflowRunId:f,loopIteration:d,replayMs:Date.now()-r,executionMode:U?`retained`:`replay`}),p.activate();try{await Oe(),await z({eventType:`run_completed`,specVersion:7,eventData:{output:y}},{requestId:j})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried completing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}throw e}a?.setAttributes({...qe(`completed`)});return}catch(i){if(Ht.is(i)){p.activate();let e=Date.now(),s=e-r;A&&i.stepCount>0&&(A.nextStepEncounteredAtMs??=e),W.debug(`Workflow suspended`,{workflowRunId:f,loopIteration:d,replayMs:s,steps:i.stepCount,hooks:i.hookCount,waits:i.waitCount});let c=Jt(i.stepCount,i.hookCount,i.waitCount);c&&W.debug(c);let u=Date.now();Cr(V.type===`ready`,`Workflow suspended before its event log was loaded`);let m;try{m=await da({suspension:i,world:t,run:H,span:a,requestId:j,eventLog:V,runReadyBarrier:De,replayRecoveryReporter:p,stepDispatch:{queueName:Wn(N,n),getTraceCarrier:F},ownerMessageId:l.messageId,allowDeferredBatchWork:!0})}catch(e){if(At.is(e)){if(Be(`suspension-create`,e))continue;let t=await Ve(`suspension-create`,e);if(t.reinvoked)return t.result;throw t.error}if(!q.is(e))throw e;let t=cr(e);W.error(`Non-retryable error while committing workflow suspension; failing run`,{workflowRunId:f,errorCode:t,errorName:e.name,errorMessage:e.message});try{await Oe(),await z({eventType:`run_failed`,specVersion:7,eventData:{error:await cn(e,f,await se.value,globalThis,(H?.specVersion??0)>=5),errorCode:t}},{requestId:j})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}throw e}a?.setAttributes({...qe(`failed`),...M(t),...re(e.name),...nt(e.message),...le(e.name)});return}let h=Ut(()=>(Cr(V.type===`ready`),xs(V.events))),g=U?Ss({suspension:i,serializationBlockerCount:m.serializationBlockerCount,hookContinuation:m.hasAwaitedHookCreation||m.hasHookConflict}):void 0;g?.retain===!1&&(U=null),Se+=m.hookCreationMs,m.hasAttributeEvents&&Ce===void 0&&(Ce=Se),W.debug(`Suspension handled`,{workflowRunId:f,suspensionMs:Date.now()-u,pendingSteps:m.pendingSteps.length,timeoutSeconds:m.waitTimeout?.seconds,hasHookConflict:m.hasHookConflict,hasAwaitedHookCreation:m.hasAwaitedHookCreation,hasAttributeEvents:m.hasAttributeEvents,...g?{workflowVmRetention:g.retain?`retained`:`replay`}:{},...g?.retain===!1?{workflowVmRetentionReason:g.reason}:{},...m.serializationBlockerCount>0?Cs(m.serializationBlockers,m.serializationBlockerCount):{}});let _=(e,t)=>{if(!U)return!1;let n=e.filter(e=>!Ke.has(e));if(n.length===0)return!1;for(let e of n)Ke.add(e);let r=m.eventLogCarriedForward&&!h.value.openWait;return r||(Cr(V.type===`ready`),V=ws(V)),W.debug(`Continuing over a hook write in-process`,{workflowRunId:f,loopIteration:d,settles:t,hookIds:n,carriedForward:m.eventLogCarriedForward,readBeforeResume:!r}),a?.setAttributes({"workflow.hook_write_continuations":Ke.size}),!0};if(m.hasHookConflict){if(_(m.hookConflictCorrelationIds,`hook_conflict`))continue;return await Pe(0)}if(m.hasAttributeEvents){V=ws(V);continue}if(m.failedStepCorrelationIds.size>0){await m.deferredBatchWork,U=null,V=ws(V);continue}let v=m.pendingSteps,y=m.lazyInlineSteps,b=new Set(y.map(e=>e.correlationId)),x=await F(),ee=[],S=$r(),C=Date.now(),w=[],T=0,E=0;for(let e of m.queuedStepCorrelationIds)Je.add(e);let O=A!==void 0&&y.length===0&&!v.some(e=>!b.has(e.correlationId)&&S&&ia(e)&&e.ownerMessageId===l.messageId);for(let e of v){if(b.has(e.correlationId)||m.queuedStepCorrelationIds.has(e.correlationId))continue;let r=S&&ia(e);if(r&&e.ownerMessageId===l.messageId){w.push(e);continue}let i=r?aa(e,C):0;if(i>0){T++,W.debug(`Pending step is inline-owned by a live invocation; ensuring delayed backstop wake instead of immediate requeue`,{workflowRunId:f,stepId:e.correlationId,ownerMessageId:e.ownerMessageId,backstopDelaySeconds:i}),ee.push(Kn(t,Wn(N,n),{runId:f,traceCarrier:x,requestedAt:new Date},{delaySeconds:i,idempotencyKey:oa(e)}));continue}if(Je.has(e.correlationId)&&e.sawRetrying!==!0){E++;continue}Je.add(e.correlationId);let a=O?Ai(A):void 0;a&&(O=!1,A=void 0),ee.push(Kn(t,Wn(N,n),{runId:f,stepId:e.correlationId,stepName:e.stepName,traceCarrier:x,requestedAt:new Date,runContext:An(H),...a?{hookResumeTiming:a}:{}},{idempotencyKey:jn(e.correlationId,e.stepName)}))}if(m.waitTimeout){let e=te?.correlationId===m.waitTimeout.correlationId?te.attempt+1:0;ee.push(Kn(t,Wn(N,n),{runId:f,traceCarrier:x,requestedAt:new Date,waitContinuation:{correlationId:m.waitTimeout.correlationId,attempt:e}},ha(m.waitTimeout.seconds,m.waitTimeout.correlationId,Date.now(),e)))}let k=Promise.all(ee);k.catch(()=>{});let ne=[...y.map(e=>{let t=m.inlineClaims.get(e.correlationId);return t?{correlationId:e.correlationId,stepName:e.stepName,preclaimedStart:t}:{correlationId:e.correlationId,stepName:e.stepName,lazyStepInput:e.dehydratedInput}}),...w.map(e=>({correlationId:e.correlationId,stepName:e.stepName}))];if((T>0||w.length>0||E>0)&&a?.setAttributes({...w.length>0?ct(w.length):{},...T>0?fe(T):{},...E>0?D(E):{}}),E>0&&W.debug(`Skipped re-publishing step messages this invocation already published on an earlier replay pass`,{workflowRunId:f,loopIteration:d,republishesSkipped:E}),w.length>0&&W.warn(`Re-executing inline steps owned by this queue message — a previous delivery crashed mid-body and this redelivery is recovering them`,{workflowRunId:f,stepIds:w.map(e=>e.correlationId)}),ne.length===0){if(await Promise.all([k,m.deferredBatchWork]),m.hasAwaitedHookCreation){if(_(m.awaitedHookCorrelationIds,`hook_created`))continue;return await Pe(0)}return}let P=h.value,ie=typeof V.cursor==`string`&&i.stepCount===1&&i.waitCount===0&&v.length===1&&y.length===1&&w.length===0&&!m.waitTimeout&&!P.openWait,ae=P.openHook||i.hookCount>0||m.hasHookEvents,I=Te&&!m.hasAttributeEvents&&!m.waitTimeout&&!m.hasHookEvents&&!m.hasAwaitedHookCreation&&!P.openHook&&!P.openWait,ce=Ji({events:V.events,invocationStartedClean:be===!0,runCreatedAtMs:Ni(f)??(Te?void 0:+H.createdAt),runStartedReceivedAtMs:xe,replayMs:s,preStepBlockingMs:Se,preStepBlockingBeforeAttrMs:Ce,suspensionHasWaits:i.waitCount>0||m.waitTimeout!==void 0,suspensionCreatedHooks:i.hookCount>0||m.hasHookEvents,turbo:Te,retained:o}),L=A;A=void 0,oe.pause();let R,ue=ne.map((e,n)=>(Ae.add(e.correlationId),la(f,e.correlationId,()=>(Cr(V.type===`ready`),ra({world:t,workflowRunId:f,workflowDeploymentId:H.deploymentId,workflowName:N,workflowStartedAt:ye,requestId:j,rootRunId:Jn(H.attributes,f),stepId:e.correlationId,stepName:e.stepName,runSpecVersion:H.specVersion,authoritativeAttempt:e.lazyStepInput!==void 0||e.preclaimedStart!==void 0?1:si(V.events,e.correlationId,{type:`ownedBy`,messageId:l.messageId})+1,lazyStepInput:e.lazyStepInput,preclaimedStart:e.preclaimedStart,ownerMessageId:l.messageId,forceOptimisticStart:I,suppressOptimisticStart:ae,runReadyBarrier:De,...n===0&&(e.lazyStepInput!==void 0||e.preclaimedStart!==void 0)&&ce?{latencyTracking:ce}:{},...L?{resumeTracking:L}:{},...ie&&V.cursor?{inlineDeltaSinceCursor:V.cursor}:{},replayRecoveryReporter:p}))).finally(()=>Ae.delete(e.correlationId))));for(let e of ue)e.catch(()=>{});try{try{await Promise.all([k,m.deferredBatchWork])}catch(e){throw await Promise.allSettled(ue),e}R=await Promise.all(ue)}catch(e){if(At.is(e)){if(Be(`inline-claim`,e,{allowDelta:!(await Promise.allSettled(ue)).some(e=>e.status===`fulfilled`&&(e.value.type===`completed`||e.value.type===`failed`||e.value.type===`retry`))}))continue;let t=await Ve(`inline-claim`,e);if(t.reinvoked)return t.result;throw t.error}throw e}finally{oe.resume()}let B=[],de=!1,pe;for(let e=0;e<ne.length;e++){let t=R[e],n=ne[e];t.type===`retry`?B.push({step:n,delaySeconds:t.timeoutSeconds}):t.type===`throttled`?pe=Math.max(pe??0,t.timeoutSeconds):t.type===`completed`&&t.hasPendingOps&&(de=!0)}if(pe!==void 0)return await Pe(pe);if(B.length>0){let e=await F();await Promise.all(B.map(({step:r,delaySeconds:i})=>Kn(t,Wn(N,n),{runId:f,stepId:r.correlationId,stepName:r.stepName,traceCarrier:e,requestedAt:new Date,runContext:An(H)},{delaySeconds:i,idempotencyKey:jn(r.correlationId,r.stepName)})))}if(de){W.debug(`Breaking loop: inline step has pending ops`,{workflowRunId:f,loopIteration:d}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date});return}if(B.length>0)return;if(ne.length===1){let e=R[0];if(e.type===`completed`&&e.inlineDelta){Un(V,e.inlineDelta),V=e.inlineDelta.hasMore?ws(V):{...V,type:`ready`};continue}}V=ws(V)}else{let s=i;if(At.is(i)){if(Be(`replay-write`,i))continue;let e=await Ve(`replay-write`,i);if(e.reinvoked)return e.result;s=e.error}if(mr(i))throw P.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:l.attempt}),i;let c,u={};if(jt.is(i)){let e=(x?.count??0)+1,r=ti(),a=[...x?.eventIds??(x?[x.eventId]:[]),i.eventId].slice(-(r+1));if(u={errorCode:J.REPLAY_DIVERGENCE,divergenceEventId:i.eventId,priorDivergenceEventId:x?.eventId,divergenceEventIds:a,divergenceCount:e,deliveryAttempt:l.attempt,maxRecoveryReplays:r,loopIteration:d,servedByRetainedSession:o,eventLogState:V.type,eventLogLength:V.type===`loadAll`?void 0:V.events.length,eventLogLastEventId:V.type===`loadAll`?void 0:V.events.at(-1)?.eventId,cursor:V.type===`ready`?V.cursor??void 0:V.type===`loadAfter`?V.cursor:void 0,hasHookInput:T!==void 0,hasWaitContinuation:te!==void 0,isRecoveryReplay:x!==void 0,setupSource:A?.setupSource},e<=r){P.warn(`Workflow replay diverged; queueing a recovery replay before declaring the event log corrupted`,{...u,errorMessage:i.message}),await Kn(t,Wn(N,n),{runId:f,traceCarrier:await F(),requestedAt:new Date,replayDivergence:{eventId:i.eventId,count:e,eventIds:a}});return}c=e,s=new It(`Workflow replay diverged ${e} times after ${r} recovery replays; latest divergent event was ${i.eventId}; divergent event ids: ${a.join(`, `)}. Last divergence: ${i.message}`,{cause:i})}else r>0&&p.activate();s instanceof Error&&a?.recordException?.(s);let m=await Wi(s),h=m.name||Pi(s),g=m.message,_=m.stack||Fi(s);if(_){let t=ge(N)?.moduleSpecifier||N;_=So(_,t,e)}let v=cr(s);W.error(`Error while running workflow`,{...u,workflowRunId:f,errorCode:v,errorName:h,errorMessage:g,errorStack:_,errorCause:Li(s)||void 0}),Sr.isNativeError(s)&&_&&(s.stack=_);try{await Oe(),await z({eventType:`run_failed`,specVersion:7,eventData:{error:await cn(s,f,await se.value,globalThis,(H?.specVersion??0)>=5),errorCode:v}},{requestId:j,...c===void 0?{}:{replayDivergenceCount:c}})}catch(e){if(X.is(e)||K.is(e)){W.info(`Tried failing workflow run, but run has already finished.`,{workflowRunId:f,message:e.message});return}if(dr(e)){W.error(`Fatal world contract error while recording workflow failure`,{workflowRunId:f,errorCode:J.WORLD_CONTRACT_ERROR,error:e instanceof Error?e.message:String(e)});return}throw e}a?.setAttributes({...qe(`failed`),...M(v),...re(h),...nt(g),...le(h)});return}}}})}))}),u,d=0,f=Date.now(),g=typeof t?.routeModuleBodyStartedAt==`number`?f-t.routeModuleBodyStartedAt:void 0;return kn(async e=>{d+=1;let t=u!==void 0,n=await Ae(`SERVER`);return G(`workflow.route.flow`,{kind:n,attributes:{...je(`flow`),...C(Ir),...ke(t),...Ke(d),...st(Date.now()-f),...g===void 0?{}:dt(g),...F(e.method),...k(`/.well-known/workflow/v1/flow`)}},async t=>{u||=await G(`workflow.route.init`,async()=>{let e=await G(`workflow.route.get_world_handlers`,async()=>xi());return l(e)});let n=await u(e);return n instanceof Response&&t?.setAttributes(T(n.status)),n})})}export{_r as Run,Ht as WorkflowSuspension,hr as cancelRun,lr as cancelRuns,yi as createWorld,_i as createWorldFromModule,ir as getHookByToken,fr as getRun,xi as getWorld,bi as getWorldHandlers,Rn as healthCheck,ar as listStreams,pr as readStream,gr as recreateRunFromExisting,or as reenqueueRun,nr as resumeHook,rr as resumeWebhook,Si as setWorld,vr as start,ur as wakeUpRun,Es as workflowEntrypoint};