@lostgradient/weft 0.5.0 → 0.6.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.
@@ -50,7 +50,7 @@ Checkpoint shape changes:
50
50
  ${$.map((J)=>{switch(J.change){case"added":return` - field \`${J.field}\` was added (type: ${J.newType})`;case"removed":return` - field \`${J.field}\` was removed (was: ${J.oldType})`;case"type-changed":return` - field \`${J.field}\` changed type: ${J.oldType} \u2192 ${J.newType}`}}).join(`
51
51
  `)}`}function hI($){return $!==void 0&&($.workflowVersion!==void 0||$.agentVersion!==void 0||($.toolVersions?.length??0)>0)}function II($){let{workflowId:U,workflowType:J,storedVersion:X,registeredVersion:_,fieldDiffs:G,versionDiff:Q}=$;return(X===_&&((G?.length??0)>0||hI(Q))?`Version mismatch for workflow "${J}" (${U}): stored version ${X} matches registered version ${_}, but the persisted state is incompatible with the registered definition`:`Version mismatch for workflow "${J}" (${U}): stored version ${X} does not match registered version ${_}`)+(G&&G.length>0?gI(G):"")+(Q?UB(Q):"")}var JB="0.0.0",Pj;var qj=z(()=>{U$();Pj=class Pj extends v{workflowId;storedVersion;registeredVersion;workflowType;fieldDiffs;versionDiff;constructor($,U,J,X,_,G){let Q=_?vI(_.oldShape,_.newShape):void 0;super("VersionMismatchError",II({workflowId:$,workflowType:U,storedVersion:J,registeredVersion:X,fieldDiffs:Q,versionDiff:G}));this.workflowId=$,this.workflowType=U,this.storedVersion=J,this.registeredVersion=X,this.fieldDiffs=Q,this.versionDiff=G}}});function mI($){return $}function QB($){if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function DB($){if(!u6($)||typeof $.workflowVersion!=="string")return!1;if($.agentVersion!==void 0&&typeof $.agentVersion!=="string")return!1;return $.toolVersions===void 0||Array.isArray($.toolVersions)&&$.toolVersions.every((U)=>typeof U==="string")}function XB($){return typeof $==="number"&&Number.isFinite($)}function kI($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=1}function YB($){if(!u6($))return!1;return fI.every((U)=>U($))}function I1($,U){if($===void 0)return;if(typeof $!=="number"||!Number.isFinite($)||$<0)throw Error(`filter.${U} must be a non-negative number when provided`);return Math.floor($)}function wI($){return $===void 0||hM($)}function n($){let U=R($),J=u6(U)?U:void 0;if(J!==void 0)pI(J);let X=U;if(!wI(X.tags))console.warn(`[weft] Decoded workflow state for "${String(X.id)}" has invalid tags; dropping the malformed tag list from the decoded state.`),delete X.tags;if(X.failureCategory!==void 0&&X.failureCategory!==null){let _=eJ(X.failureCategory);if(_===void 0)delete X.failureCategory;else X.failureCategory=_}if(X.executionStateOwnerId!==void 0)try{zU(X.executionStateOwnerId,"executionStateOwnerId")}catch{console.warn(`[weft] Decoded workflow state for "${String(X.id)}" has an invalid executionStateOwnerId field; falling back to the workflow id as the execution owner. This usually indicates corruption or tampering of the storage record.`),delete X.executionStateOwnerId}return J===void 0?X:cI(X,J)}function cI($,U){for(let J of Object.keys(U))if(!uI.has(J))delete U[J];return $}function pI($){let U=$.version,J=typeof U==="string";if(DB($.versionTuple)){delete $.version,delete $.agentVersion,delete $.toolVersions;return}let{agentVersion:X,toolVersions:_}=$,G={workflowVersion:J?U:JB,...typeof X==="string"&&{agentVersion:X},...Array.isArray(_)&&_.every((Q)=>typeof Q==="string")&&{toolVersions:_}};$.versionTuple=G,delete $.version,delete $.agentVersion,delete $.toolVersions}function W6($,U){if($===void 0)return;let J=u2($,U);return Math.ceil(J)}function ZB($,U){return{maxEvents:GB($?.maxEvents,`${U}.maxEvents`),retentionWindow:GB($?.retentionWindow,`${U}.retentionWindow`)}}function GB($,U){if($===void 0||$===0)return null;if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)throw TypeError(`${U} must be a positive safe integer (or 0/undefined to disable); received ${String($)}`);return $}function jB($,U){let J=$?.maxBytes;if(J===void 0||J===null||J===0)return{maxBytes:null};if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)throw TypeError(`${U}.maxBytes must be a positive safe integer (or 0/null/undefined to disable); received ${String(J)}`);return{maxBytes:J}}function S9($,U){if(!$)return null;let J={},X=W6($.completed,`${U}.completed`),_=W6($.failed,`${U}.failed`),G=W6($.cancelled,`${U}.cancelled`),Q=W6($.timedOut,`${U}.timedOut`);if(X!==void 0)J.completed=X;if(_!==void 0)J.failed=_;if(G!==void 0)J.cancelled=G;if(Q!==void 0)J.timedOut=Q;return J.completed===void 0&&J.failed===void 0&&J.cancelled===void 0&&J.timedOut===void 0?null:J}function HB($,U){switch(U){case"completed":return $?.completed;case"failed":return $?.failed;case"cancelled":return $?.cancelled;case"timed-out":return $?.timedOut;default:return}}function V$($){return $==="completed"||$==="failed"||$==="cancelled"||$==="timed-out"}function zj($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}var yI,uI,fI;var Y$=z(()=>{I();g2();l6();t6();qj();_6();yI=new Set(["running","completed","failed","cancelled","timed-out"]);uI=new Set(mI(["id","type","status","tags","input","result","error","errorStack","failureCategory","terminationReason","versionTuple","executionStateOwnerId","createdAt","startedAt","updatedAt","terminalCleanupToken","executionDeadline","forkedFrom"]));fI=[($)=>kI($.step),($)=>typeof $.operationType==="string",($)=>typeof $.operationLabel==="string",($)=>typeof $.inputSummary==="string",($)=>XB($.timestamp),($)=>yI.has($.status),($)=>$.outputSummary===void 0||typeof $.outputSummary==="string",($)=>$.duration===void 0||XB($.duration),($)=>$.versionTuple===void 0||DB($.versionTuple)]});function v9($){return`${Mj}${$}`}function PB($){if(!$.startsWith(Mj))return null;let U=$.slice(Mj.length);return U.length===0?null:U}function qB($){if(typeof $!=="object"||$===null)return!1;let U=$;return(U.status==="owed"||U.status==="running")&&typeof U.token==="string"&&iI(U.attempts)&&lI(U.claimedAt)}function iI($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function lI($){return $===void 0||typeof $==="number"&&Number.isFinite($)&&$>=0}function y1($,U){return`${$}\x00${U}`}function k2($,U,J){return $(U,J)}function g9($){return $()}function q$($){return uM($)}function zB($){if(nI.has($.type))return $.key;switch($.type){case"activity":return $.activityName;case"wait-signal":return $.signalName;case"wait-update":return $.updateName;case"get-version":return $.changeId;case"child-workflow":return $.workflowType;case"load":return $.reference.key;default:return $.type}}function rI($){if(typeof $!=="object"||$===null||!("type"in $))return;return $.type}function aI($){if(oI.has($.type))return q$({key:$.key});switch($.type){case"load":return q$({key:$.reference.key});case"archive":return q$({key:$.key,data:$.data});case"state-read":return q$({key:$.key,scope:$.scope});case"state-commit":return q$({key:$.key,mode:$.mode,scope:$.scope});default:return}}function sI($){let U=aI($);if(U!==void 0)return U;switch($.type){case"sleep":return q$({duration:$.duration});case"wait-signal":return q$({signalName:$.signalName});case"wait-update":return q$({updateName:$.updateName});case"get-version":return q$({changeId:$.changeId,minSupported:$.minSupported,maxSupported:$.maxSupported,version:$.version});case"parallel":case"race":return q$({operationCount:$.operations.length});case"speculate":return q$({branch:"speculative"});default:return q$(void 0)}}function LB($){switch($.type){case"activity":return q$($.input);case"child-workflow":return q$({workflowType:$.workflowType,input:$.input});case"run-all":return q$({branches:Object.keys($.branches)});case"wait-review":return q$({reviewers:$.reviewOptions.reviewers,artifactType:rI($.reviewOptions.artifact)});default:return sI($)}}function tI($){let U=ZU($);return u6(U)?U:{}}function eI($){let U=ZU($);if(!u6(U))return{};let J={};for(let[X,_]of Object.entries(U))if(QB(_))J[X]=_;return J}function Bj($){return{step:$.step,locals:tI($.locals),searchAttributes:eI($.searchAttributes),version:$.version,createdAt:$.createdAt}}function Wj($){let U=ZU($);return u6(U)?pM(U):{value:U}}function Kj($){if($===void 0)return;try{return q$(JSON.parse($))}catch{return $}}function FB($){if(!Number.isSafeInteger($)||$<0)throw Error("options.fromStep must be a non-negative safe integer");return $}function h9($){return B([...$.entries()])}function VB($){let U=R($);return new Map(U)}function I9($){if(!$||$.size===0)return;let U=new Map;for(let[J,X]of $){let _=J.toLowerCase();if(!dI.has(_))continue;U.set(_,X)}return U.size>0?U:void 0}function y9($){let[U,...J]=$;if(!U)return null;let X=new Set(U);for(let _ of J)for(let G of X)if(!_.has(G))X.delete(G);return X}function $y($,U){if(U.status===void 0)return!0;return(Array.isArray(U.status)?U.status:[U.status]).includes($.status)}function Uy($,U){return $y($,U)&&(U.type===void 0||$.type===U.type)&&(U.idPrefix===void 0||$.id.startsWith(U.idPrefix))}function Jy($,U){if(U.createdAt!==void 0&&!Lj($.createdAt,U.createdAt))return!1;if(U.updatedAt!==void 0&&!Lj($.updatedAt,U.updatedAt))return!1;if(U.executionDeadline===void 0)return!0;return $.executionDeadline!==void 0&&Lj($.executionDeadline,U.executionDeadline)}function _y($,U){if(U.failureCategory===void 0)return!0;let J=Array.isArray(U.failureCategory)?U.failureCategory:[U.failureCategory];return $.failureCategory!==void 0&&$.failureCategory!==null&&J.includes($.failureCategory)}function m1($){return($?.attributes?.length??0)>0}function Xy($){if(typeof $==="string"||typeof $==="number"||typeof $==="boolean"||$ instanceof Date)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function LU($){if($===null)return null;let U=R($);if(!zj(U))return null;let J={};for(let[X,_]of Object.entries(U))if(Xy(_))J[X]=_;return J}function Nj($){if($.value===void 0)return null;if(Array.isArray($.value))return[...$.value];return[$.value]}function MB($){return Array.isArray($)?$:[$]}function Gy($,U){if($ instanceof Date||U instanceof Date)return $ instanceof Date&&U instanceof Date&&$.getTime()===U.getTime();return $===U}function Qy($,U){if(U.length===0)return!1;for(let J of MB($))if(U.some((X)=>Gy(J,X)))return!0;return!1}function Dy($,U){if(U.gte!==void 0&&$<W$(U.gte))return!1;if(U.gt!==void 0&&$<=W$(U.gt))return!1;if(U.lte!==void 0&&$>W$(U.lte))return!1;if(U.lt!==void 0&&$>=W$(U.lt))return!1;return!0}function Yy($,U){for(let J of MB($))if(Dy(W$(J),U))return!0;return!1}function Zy($,U){let J=$[A$(U.key)];if(J===void 0)return!1;let X=Nj(U);if(X!==null)return Qy(J,X);return Yy(J,U)}function jy($,U){if(!m1(U))return!0;if($===null||$===void 0)return!1;return U.attributes.every((J)=>Zy($,J))}function e6($,U,J,X,_){if(J!==null&&!J.has($.id))return!1;if(!IM($.tags,X))return!1;if(U===void 0)return!0;if(!Uy($,U))return!1;if(!Jy($,U))return!1;if(!_y($,U))return!1;if(!jy(_,U))return!1;return!0}function Lj($,U){if(U.gte!==void 0&&$<U.gte)return!1;if(U.gt!==void 0&&$<=U.gt)return!1;if(U.lte!==void 0&&$>U.lte)return!1;if(U.lt!==void 0&&$>=U.lt)return!1;return!0}function BB($,U){return WB($,U)}function WB($,U){let J=U?.offset??0,X=U?.limit??$.length;return{items:$.slice(J,J+X),total:$.length,offset:J,limit:X}}function b9($){if(Array.isArray($))return $.map((J)=>b9(J));if(!zj($))return $;let U={};for(let J of Object.keys($).toSorted())U[J]=b9($[J]);return U}function KB($,U){let J=B(b9($)),X=B(b9(U));if(J.byteLength!==X.byteLength)return!1;for(let _=0;_<J.byteLength;_++)if(J[_]!==X[_])return!1;return!0}function NB($,U){if(U?.status!==void 0){if(!(Array.isArray(U.status)?U.status:[U.status]).includes($.status))return!1}return U?.workflowType===void 0||$.workflowType===U.workflowType}function OB($,U){let J=$.toSorted((X,_)=>{if(X.createdAt!==_.createdAt)return X.createdAt-_.createdAt;return X.id.localeCompare(_.id)});return WB(J,U)}function u1($){return`schedule:${$}`}function k1($,U){return $?`${Vj}${U}`:`${Fj}${U}`}function AB($){let U=(J)=>{let X=$.slice(J.length);return X.length===0?null:X};if($.startsWith(Vj)){let J=U(Vj);return J===null?null:{includeOutputArtifacts:!0,terminalCleanupToken:J}}if($.startsWith(Fj)){let J=U(Fj);return J===null?null:{includeOutputArtifacts:!1,terminalCleanupToken:J}}return null}function m9($){let{currentWorkflowId:U,...J}=$;return J}var dI,Fj="terminal-cleanup:preserve-output:",Vj="terminal-cleanup:full:",Mj="teardown:",nI,oI;var $$=z(()=>{I();g2();w$();n$();_6();qU();Y$();dI=new Set(["traceparent","tracestate"]);nI=new Set(["memo","offload","archive","stream","state-read","state-commit"]);oI=new Set(["memo","offload","stream"])});function RB($){let U=[q.workflowVisibilityStatus($.status,$.id),q.workflowVisibilityType($.type,$.id),q.workflowVisibilityCreated($.createdAt,$.id),q.workflowVisibilityUpdated($.updatedAt,$.id)];if($.executionDeadline!==void 0)U.push(q.workflowVisibilityDeadline($.executionDeadline,$.id));return U.toSorted()}function u9($,U,J){return TB($,U?.keys??[],U!==null,J)}function h$($,U,J){let X=U?RB(U):[];return TB($,X,U!==null,J)}function TB($,U,J,X){let _=q.workflowVisibilityManifest($);if(X===null){let j=[];for(let H of U)j.push({type:"delete",key:H});if(J)j.push({type:"delete",key:_});return{batchOps:j,nextManifestKeys:null}}let G=RB(X),Q=new Set(U),D=new Set(G),Y=[];for(let j of U)if(!D.has(j))Y.push({type:"delete",key:j});for(let j of G)if(!Q.has(j))Y.push({type:"put",key:j,value:Hy});let Z={version:CB,keys:G};return Y.push({type:"put",key:_,value:B(Z)}),{batchOps:Y,nextManifestKeys:G}}async function qy($){let U=await $.get(q.workflowVisibilityMetaVersion());if(!U)return"stale";let J;try{J=R(U)}catch{return"stale"}if(typeof J!=="number")return"stale";return J>=CB?"current":"stale"}async function EB($){let{workflowVisibilityWatermark:U,workflowVisibilityWatermarkExpiresAt:J}=$,X=Date.now();if(U!==void 0&&J!==void 0&&X<J)return U;let _=await qy($.storage);return $.workflowVisibilityWatermark=_,$.workflowVisibilityWatermarkExpiresAt=X+Py,_}var CB=1,k6=1e6,FU,Hy,Py=1000;var r$=z(()=>{b();I();U$();FU=class FU extends v{cap;constructor($){super("WorkflowListScanCapExceededError",`Listing workflows would exceed the scan cap of ${$}. Narrow the filter or run the visibility-index backfill.`);this.cap=$}};Hy=new Uint8Array(0)});async function*k9($,U){let J=F$(U?.tags),X=await Oj($,U,J);if(X!==null){let _=[...X];for(let G=0;G<_.length;G+=X6){let Q=_.slice(G,G+X6),D=await Promise.all(Q.map((Y)=>Ly($,Y,U,X,J)));for(let Y of D){if(Y===null)continue;yield Y}}return}for await(let[_,G]of $.storage.scan("wf:")){if(!f2(_))continue;let Q=n(G),D=await xB($,Q.id,U);if(!e6(Q,U,X,J,D))continue;yield Q}}async function Ly($,U,J,X,_){let G=await $.storage.get(q.workflow(U));if(!G)return null;let Q=n(G),D=await xB($,U,J);if(!e6(Q,J,X,_,D))return null;return Q}async function xB($,U,J){if(!m1(J))return null;return LU(await $.storage.get(q.attribute(U)))}async function Oj($,U,J){let X=U?.attributes,_=X!==void 0&&X.length>0,G=J!==void 0&&J.length>0;if(!_&&!G)return null;let Q=Fy($,J,X);return y9(await Vy(Q))}async function Aj($,U){let J=new Set,X=A$(U.key),_=`idx:${X}:`;if(U.value!==void 0)await By($,U,X,J);else await Wy($,U,_,J);return J}function Fy($,U,J){return[...U?.map((X)=>()=>Ny($,X))??[],...J?.map((X)=>()=>Aj($,X))??[]]}async function Vy($){let U=Array.from({length:$.length}),J=0,X=async()=>{while(J<$.length){let G=J;J+=1,U[G]=await $[G]()}},_=Math.max(1,Math.min(zy,$.length));return await Promise.all(Array.from({length:_},()=>X())),U.map(My)}function My($){if($===void 0)throw Error("Attribute index query did not produce a workflow ID set.");return $}async function By($,U,J,X){let _=Nj(U);if(_===null)return;let G=[];for(let Q of _)if(U.key==="failureCategory"&&fU(Q))G.push(...pq(Q));else G.push(Q);for(let Q of G){let D=`idx:${J}:${W$(Q)}:`;for await(let[Y]of $.storage.scan(D))SB(X,Y.slice(D.length))}}async function Wy($,U,J,X){for await(let[_]of $.storage.scan(J,Ky(U))){let G=_.slice(J.length),Q=G.lastIndexOf(":");if(Q>=0)SB(X,G.slice(Q+1))}}function Ky($){let U={};if($.gte!==void 0)U.gte=`idx:${A$($.key)}:${W$($.gte)}:`;if($.gt!==void 0)U.gt=`idx:${A$($.key)}:${W$($.gt)}:\xFF`;if($.lte!==void 0)U.lte=`idx:${A$($.key)}:${W$($.lte)}:\xFF`;if($.lt!==void 0)U.lt=`idx:${A$($.key)}:${W$($.lt)}:`;return U}function SB($,U){let J=x6(U);if(J!==null)$.add(J)}async function Ny($,U){let J=new Set,X=`tag:${K(U)}:`;for await(let[_]of $.storage.scan(X)){let G=x6(_.slice(X.length));if(G!==null)J.add(G)}return J}function f2($){return!$.slice(3).includes(":")}var zy=8;var w2=z(()=>{b();l6();w$();_6();$$();Y$()});function f9($){return Number.isFinite($)&&$>=0}function w9($){return String($).padStart(16,"0")}async function Cj($,U,J){let X=new Set;for await(let[_]of $.scan(U,J)){let G=_.slice(_.lastIndexOf(":")+1),Q=x6(G);if(Q!==null)X.add(Q)}return X}async function bB($,U){let J=new Set;for(let X of U){let _=`wf-idx-status:${K(X)}:`;for(let G of await Cj($,_))J.add(G)}return J}async function vB($,U){let J=`wf-idx-type:${K(U)}:`;return Cj($,J)}async function c9($,U,J){let X=`wf-idx-${U}:`,_={};if(J.gte!==void 0&&f9(J.gte))_.gte=`${X}${w9(J.gte)}:`;if(J.gt!==void 0&&f9(J.gt))_.gt=`${X}${w9(J.gt)}:\xFF`;if(J.lte!==void 0&&f9(J.lte))_.lte=`${X}${w9(J.lte)}:\xFF`;if(J.lt!==void 0&&f9(J.lt))_.lt=`${X}${w9(J.lt)}:`;return Cj($,X,_)}async function gB($,U){let J=new Set,X=`wf:${K(U)}`;for await(let[_]of $.scan(X)){let G=_.slice(3);if(G.includes(":"))continue;let Q=x6(G);if(Q!==null)J.add(Q)}return J}var hB=z(()=>{b()});function Oy($,U){let J=Array.isArray(U)?U:[U];return bB($.storage,J)}function Ay($,U){return vB($.storage,U)}function Cy($,U){return c9($.storage,"created",U)}function Ry($,U){return c9($.storage,"updated",U)}function Ty($,U){return c9($.storage,"deadline",U)}function Ey($,U){return gB($.storage,U)}function IB($,U,J){let X=[];for(let _ of J){let G=U[_];if(G===void 0)continue;let Q=xy[_];X.push(Q($,G))}return X}async function p9($,U,J){let[X,_]=await Promise.all([Oj($,U,J),Sy($,U?.failureCategory)]);if(await EB($)==="stale"){let Z=U===void 0?[]:IB($,U,["idPrefix"]),j=await Promise.all(Z);return Rj([X,_,...j])}let D=U===void 0?[]:IB($,U,["status","type","createdAt","updatedAt","executionDeadline","idPrefix"]);if(D.length===0)return Rj([X,_]);let Y=await Promise.all(D);return Rj([X,_,...Y])}async function Sy($,U){if(U===void 0)return null;let J=Array.isArray(U)?U:[U],X=await Promise.all(J.map((G)=>Aj($,{key:"failureCategory",value:G}))),_=new Set;for(let G of X)for(let Q of G)_.add(Q);return _}function Rj($){let U=$.filter((J)=>J!==null);if(U.length===0)return null;return y9(U)}var xy;var Tj=z(()=>{$$();r$();w2();hB();xy={status:Oy,type:Ay,createdAt:Cy,updatedAt:Ry,executionDeadline:Ty,idPrefix:Ey}});async function d9($,U,J){let X=new Map;if(!m1(J))return X;let _=U.flatMap((Q)=>Q===null?[]:[n(Q)]),G=await Promise.all(_.map((Q)=>$.storage.get(q.attribute(Q.id))));for(let Q=0;Q<_.length;Q+=1)X.set(_[Q].id,LU(G[Q]??null));return X}async function i9($,U,J){if(!m1(J))return null;return LU(await $.storage.get(q.attribute(U)))}var Ej=z(()=>{b();$$();Y$()});function vy($,U){let J=!1,X=!1;for(let _ of $.registrations.values())if(_.searchAttributes!==void 0){if(J=!0,U in _.searchAttributes){X=!0;break}}if(J&&!X)throw new yB(U)}function gy($,U,J,X){let _=B9({...U,limit:void 0,offset:void 0}),G=xM(J),{groupBy:Q}=G;if(typeof Q==="object")vy($,Q.attribute);return{normalizedFilter:_,groupBy:Q,requestedLimit:G.limit??RM,distinctKeyCap:X.distinctKeyCap??TM}}function hy($,U,J){let X=J.counts.get($);if(X===void 0){if(J.counts.size>=U)throw new tZ(U);J.counts.set($,1)}else J.counts.set($,X+1);J.total+=1}async function Iy($,U,J,X=new Map){if(J==="status")return U.map((_)=>_.status);if(J==="type")return U.map((_)=>_.type);if(J==="failureCategory")return U.map((_)=>_.failureCategory??null);return yy($,U,J,X)}async function yy($,U,J,X){let _=[];for(let G=0;G<U.length;G+=X6){let Q=U.slice(G,G+X6),D=Q.filter((Z)=>!X.has(Z.id)),Y=new Map;await Promise.all(D.map(async(Z)=>{Y.set(Z.id,await $.storage.get(q.attribute(Z.id)))}));for(let Z of Q){let j=X.has(Z.id)?X.get(Z.id)??null:LU(Y.get(Z.id)??null);if(j===null){_.push(null);continue}_.push(by(j[J.attribute]))}}return _}async function xj($,U,J,X,_,G){let Q=await Iy($,U,J,G);for(let D of Q)hy(D,X,_)}async function my($,U,J,X,_,G,Q){let D=[...U];if(D.length>k6)throw new FU(k6);for(let Y=0;Y<D.length;Y+=X6){let Z=D.slice(Y,Y+X6),j=await Promise.all(Z.map((F)=>$.storage.get(q.workflow(F)))),H=await d9($,j,J),L=[];for(let F of j){if(!F)continue;let W=n(F);if(!e6(W,J,U,X,H.get(W.id)??null))continue;L.push(W)}await xj($,L,_,G,Q,H)}}async function uy($,U,J,X,_,G){let Q=0,D=[],Y=new Map;for await(let[Z,j]of $.storage.scan("wf:")){if(!f2(Z))continue;if(Q+=1,Q>k6)throw new FU(k6);let H=n(j),L=await i9($,H.id,U);if(!e6(H,U,null,J,L))continue;if(D.push(H),L!==null)Y.set(H.id,L);if(D.length===X6)await xj($,D,X,_,G,Y),D=[],Y=new Map}if(D.length>0)await xj($,D,X,_,G,Y)}function ky($,U){let J=[...$.counts.entries()].map(([G,Q])=>({key:G,count:Q})).toSorted((G,Q)=>{if(G.count!==Q.count)return Q.count-G.count;let D=G.key??"",Y=Q.key??"";if(D<Y)return-1;if(D>Y)return 1;return 0}),X=J.length>U,_=X?J.slice(0,U):J;return{total:$.total,groups:_,truncated:X}}async function mB($,U,J,X={}){let{normalizedFilter:_,groupBy:G,requestedLimit:Q,distinctKeyCap:D}=gy($,U,J,X),Y=F$(_.tags),Z=await p9($,_,Y),j={counts:new Map,total:0};if(Z!==null)await my($,Z,_,Y,G,D,j);else await uy($,_,Y,G,D,j);return ky(j,Q)}var by=($)=>{if($===void 0||$===null)return null;if(typeof $==="string")return $;if(typeof $==="number"||typeof $==="boolean")return String($);if($ instanceof Date)return $.toISOString();if(Array.isArray($))return $.join(",");return String($)},yB;var uB=z(()=>{b();SM();$j();U$();_6();Tj();Ej();$$();Y$();r$();w2();yB=class yB extends v{attribute;constructor($){super("UnknownAggregateAttributeError",`Unknown search attribute "${$}". Aggregate groupBy requires a declared attribute.`);this.attribute=$}}});var kB,l9,n9,fB,wB;var cB=z(()=>{kB=class kB extends Event{static type="activity:started";operationId;workflowId;activityName;attempt;constructor($,U,J,X){super(kB.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.attempt=X}};l9=class l9 extends Event{static type="activity:completed";operationId;workflowId;activityName;duration;constructor($,U,J,X){super(l9.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.duration=X}};n9=class n9 extends Event{static type="activity:async-pending";token;operationId;workflowId;activityName;attempt;constructor($,U,J,X,_){super(n9.type);this.token=$,this.operationId=U,this.workflowId=J,this.activityName=X,this.attempt=_}};fB=class fB extends Event{static type="activity:failed";operationId;workflowId;activityName;error;attempt;constructor($,U,J,X,_){super(fB.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.error=X,this.attempt=_}};wB=class wB extends Event{static type="task:dead-lettered";operationId;workflowId;activityName;queue;workerId;reason;errorMessage;constructor({operationId:$,workflowId:U,activityName:J,queue:X,workerId:_,errorMessage:G}){super(wB.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.queue=X,this.workerId=_,this.reason="result-resolution-storage-exhausted",this.errorMessage=G}}});var r9;var pB=z(()=>{r9=class r9 extends Event{static type="attributes:changed";workflowId;changes;constructor($,U){super(r9.type);this.workflowId=$,this.changes=U}}});var o9,a9;var Sj=z(()=>{o9=class o9 extends Event{static type="schedule:fired";scheduleId;workflowId;firedAt;occurrence;constructor($,U,J,X){super(o9.type);this.scheduleId=$,this.workflowId=U,this.firedAt=J,this.occurrence=X}};a9=class a9 extends Event{static type="schedule:missed-fire";scheduleId;missedCount;windowStart;windowEnd;constructor($,U,J,X){super(a9.type);this.scheduleId=$,this.missedCount=U,this.windowStart=J,this.windowEnd=X}}});var s9,dB;var iB=z(()=>{s9=class s9 extends Event{static type="signal:received";workflowId;signalName;payload;constructor($,U,J){super(s9.type);this.workflowId=$,this.signalName=U,this.payload=J}};dB=class dB extends Event{static type="signal:delivered";workflowId;signalName;constructor($,U){super(dB.type);this.workflowId=$,this.signalName=U}}});var t9,C4,e9,$X,lB,nB,UX,JX,_X;var rB=z(()=>{t9=class t9 extends Event{static type="checkpoint:size-warning";workflowId;sizeBytes;step;constructor($,U,J){super(t9.type);this.workflowId=$,this.sizeBytes=U,this.step=J}};C4=class C4 extends Event{static type="development:warning";workflowId;message;fieldPaths;constructor($,U,J){super(C4.type);this.workflowId=$,this.message=U,this.fieldPaths=J}};e9=class e9 extends Event{static type="cleanup:warning";source;error;workflowId;constructor($,U,J){super(e9.type);this.source=$,this.error=U,this.workflowId=J}};$X=class $X extends Event{static type="storage:size-reported";sizeBytes;constructor($){super($X.type);this.sizeBytes=$}};lB=class lB extends Event{static type="worker:connected";workerId;queue;activities;concurrency;constructor($,U,J,X){super(lB.type);this.workerId=$,this.queue=U,this.activities=J,this.concurrency=X}};nB=class nB extends Event{static type="worker:disconnected";workerId;inFlightTaskCount;constructor($,U){super(nB.type);this.workerId=$,this.inFlightTaskCount=U}};UX=class UX extends Event{static type="alert:fired";metric;threshold;currentValue;window;constructor($,U,J,X){super(UX.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=X}};JX=class JX extends Event{static type="alert:resolved";metric;threshold;currentValue;window;constructor($,U,J,X){super(JX.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=X}};_X=class _X extends Event{static type="constraint:violated";workflowId;constraintName;scope;onViolation;constructor($,U,J,X){super(_X.type);this.workflowId=$,this.constraintName=U,this.scope=J,this.onViolation=X}}});var $4,f6;var oB=z(()=>{$4=class $4 extends Event{static type="update:received";updateId;workflowId;name;payload;constructor($,U,J,X){super($4.type);this.updateId=$,this.workflowId=U,this.name=J,this.payload=X}};f6=class f6 extends Event{static type="update:completed";updateId;workflowId;name;result;error;constructor($,U,J,X,_){super(f6.type);this.updateId=$,this.workflowId=U,this.name=J,this.result=X,this.error=_}}});var XX,R4,VU,U4,MU,J4,aB,GX,QX,DX,BU;var bj=z(()=>{XX=class XX extends Event{static type="workflow:definition-registered";workflowType;constructor($){super(XX.type);this.workflowType=$}};R4=class R4 extends Event{static type="workflow:started";workflowId;workflowType;input;constructor($,U,J){super(R4.type);this.workflowId=$,this.workflowType=U,this.input=J}};VU=class VU extends Event{static type="workflow:completed";workflowId;result;duration;constructor($,U,J){super(VU.type);this.workflowId=$,this.result=U,this.duration=J}};U4=class U4 extends Event{static type="workflow:failed";workflowId;error;constructor($,U){super(U4.type);this.workflowId=$,this.error=U}};MU=class MU extends Event{static type="workflow:cancelled";workflowId;constructor($){super(MU.type);this.workflowId=$}};J4=class J4 extends Event{static type="workflow:timed-out";workflowId;timeoutType;elapsed;reason;constructor($,U,J,X){super(J4.type);if(this.workflowId=$,this.timeoutType=U,this.elapsed=J,X!==void 0)this.reason=X}};aB=new Set([VU.type,U4.type,MU.type,J4.type]);GX=class GX extends Event{static type="workflow:resumed";workflowId;fromStep;constructor($,U){super(GX.type);this.workflowId=$,this.fromStep=U}};QX=class QX extends Event{static type="workflow:suspended";workflowId;constructor($){super(QX.type);this.workflowId=$}};DX=class DX extends Event{static type="workflow:recovery-skipped";workflowId;workflowType;reason;constructor($,U,J){super(DX.type);this.workflowId=$,this.workflowType=U,this.reason=J}};BU=class BU extends Event{static type="workflow:teardown";workflowId;workflowType;status;attempts;error;constructor($,U,J,X,_){super(BU.type);this.workflowId=$,this.workflowType=U,this.status=J,this.attempts=X,this.error=_}}});var sB=z(()=>{cB();pB();Sj();iB();rB();oB();bj()});var _$=z(()=>{sB()});function K6($,U,J){if(U===null)return;let X=B($).byteLength;if(X>U)throw new vj(J,X,U)}function c2($,U,J){let X=B($);if(U!==null&&X.byteLength>U)throw new vj(J,X.byteLength,U);return X}var vj;var T4=z(()=>{I();U$();vj=class vj extends v{payloadKind;serializedBytes;maxBytes;constructor($,U,J){super("PayloadSizeExceededError",`${$} exceeds the configured maximum serialized size: ${String(U)} bytes > ${String(J)} byte limit.`);this.payloadKind=$,this.serializedBytes=U,this.maxBytes=J}}});function YX($){return`${tB}${K($)}:`}function wy($){if(typeof $!=="object"||$===null)return!1;let U=$;return U.version===1&&typeof U.token==="string"&&typeof U.workflowId==="string"&&typeof U.activityName==="string"&&typeof U.operationId==="string"&&typeof U.step==="number"&&typeof U.attempt==="number"&&typeof U.createdAt==="number"}function eB($,U,J){return`${fy}:${$}:${U}:${J}`}function cy($,U){let J={version:1,token:U.token,workflowId:U.workflowId,activityName:U.activityName,operationId:U.operationId,step:U.step,attempt:U.attempt,createdAt:U.createdAt};return $.put(q.asyncActivity(U.workflowId,U.token),B(J))}async function py($,U){let J=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await cy($.storage,U),!J)$.engine.dispatchEvent(new n9(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function $W($,U,J,X){let _=ny($,J.workflowId,U.token);if(_!==void 0)return JW(J.workflowId,_,X),new Promise(()=>{});return await py($,{token:U.token,createdAt:$.options.getNow(),...J}),new Promise(()=>{})}async function UW($){for await(let[,U]of $.storage.scan(tB)){let J=R(U);if(!wy(J))continue;$.pendingAsyncActivities.set(J.token,{token:J.token,workflowId:J.workflowId,activityName:J.activityName,operationId:J.operationId,step:J.step,attempt:J.attempt,createdAt:J.createdAt})}}async function dy($,U){let J=$.pendingAsyncActivities.get(U);if(!J)throw new jX(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(q.asyncActivity(J.workflowId,U))}catch(X){throw $.pendingAsyncActivities.set(U,J),X}return J}function iy($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function ly($,U,J){$.pendingAsyncActivityResolutions??=new Map;let X=$.pendingAsyncActivityResolutions.get(U)??[];X.push(J),$.pendingAsyncActivityResolutions.set(U,X)}function ny($,U,J){$.pendingAsyncActivityResolutions??=new Map;let X=$.pendingAsyncActivityResolutions.get(U);if(X===void 0)return;let _=X.findIndex((Q)=>Q.token===J);if(_===-1)return;let G=X[_];if(G===void 0)return;if(X.splice(_,1),X.length===0)$.pendingAsyncActivityResolutions.delete(U);return G}function JW($,U,J){J.finalizeTimeline($,U.timelineStatus,U.timelineOutput),J.feedOperationResult($,U.outcome,U.originalReason)}async function _W($,U,J,X,_){let G=await dy($,U),Q=J.status==="completed"?J.value:J.error,D={token:U,outcome:J,timelineStatus:J.status,timelineOutput:Q,..._!==void 0?{originalReason:_}:{}};if(iy($,G.workflowId)){ly($,G.workflowId,D);return}JW(G.workflowId,D,X)}async function XW($,U,J,X){K6(J,$.options.payloadSizePolicy.maxBytes,"activity result"),await _W($,U,{status:"completed",value:J},X)}async function GW($){let U=$.next();while(!U.done){let J=U.value;if(J instanceof Promise){let X;try{X=await J}catch(_){U=$.throw(_);continue}U=$.next(X)}else U=$.next(J)}return U.value}async function QW($,U,J,X){let _=J instanceof Error?J.message:String(J),G=J instanceof Error?J.name:void 0;K6({message:_,name:G},$.options.payloadSizePolicy.maxBytes,"activity result"),await _W($,U,{status:"failed",error:_,...J instanceof Error?{errorName:J.name}:{},failureCategory:"application"},X,{value:J})}var fy="async-act:v1",tB="async-act:v1:",ZX,jX;var f1=z(()=>{b();I();_$();T4();U$();ZX=class ZX extends Error{token;constructor($){super(`Activity deferred to out-of-band completion (token "${$}"). Complete it via engine.completeAsyncActivity(token, result) or engine.failAsyncActivity(token, error).`);this.name="AsyncActivityDeferral",this.token=$}};jX=class jX extends v{token;constructor($){super("AsyncActivityTokenNotFoundError",`No pending async activity found for token "${$}". The token may be unknown, already completed, or already failed (tokens are single-use).`);this.token=$}}});function HX($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function gj($){return HX($)&&$.version===1&&HX($.attempts)&&($.completedRetrySleeps===void 0||HX($.completedRetrySleeps))&&($.dispatchedAt===void 0||HX($.dispatchedAt))}function DW($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function YW($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!gj(J))return;let X=J.attempts[String(U)];if(X===void 0)return;return DW(X,U),X}function ZW($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!gj(J))return 0;let X=J.completedRetrySleeps?.[String(U)];if(X===void 0)return 0;if(!Number.isInteger(X)||X<0||X>1e4)throw Error(`Invalid checkpointed activity retry sleep count ${String(X)} for step ${String(U)}`);return X}function PX($){let U=$.checkpointLocals.__weftActivityRetryState;return gj(U)?U:void 0}function qX($,U,J,X){let{["__weftActivityRetryState"]:_,...G}=$.checkpointLocals,Q=Object.keys(U).length>0,D=J!==void 0&&Object.keys(J).length>0,Y=X!==void 0&&Object.keys(X).length>0;if(!Q&&!D&&!Y){$.checkpointLocals=G;return}$.checkpointLocals={...G,["__weftActivityRetryState"]:{version:1,attempts:U,...D?{completedRetrySleeps:J}:{},...Y?{dispatchedAt:X}:{}}}}function jW($,U,J){DW(J,U);let X=PX($),_=X?{...X.attempts}:{};_[String(U)]=J,qX($,_,X?.completedRetrySleeps,X?.dispatchedAt)}function ry($,U){let J=PX($);if(!J)return;let X={...J.attempts};delete X[String(U)],qX($,X,J.completedRetrySleeps,J.dispatchedAt)}function HW($,U,J){if(!Number.isInteger(J)||J<0||J>1e4)throw Error(`Invalid completed activity retry sleep count ${String(J)} for step ${String(U)}`);if(ry($,U),J===0)return;let X=PX($),_=X?{...X.attempts}:{},G=X?{...X.completedRetrySleeps}:{};G[String(U)]=J,qX($,_,G,X?.dispatchedAt)}function PW($,U,J){let X=PX($),_=X?.dispatchedAt?.[String(U)];if(typeof _==="number"&&Number.isFinite(_))return _;if(_!==void 0)throw Error(`Invalid checkpointed activity dispatch anchor ${String(_)} for step ${String(U)}`);let G=X?{...X.attempts}:{},Q=X?.dispatchedAt?{...X.dispatchedAt}:{};return Q[String(U)]=J,qX($,G,X?.completedRetrySleeps,Q),J}function LW($){if($===void 0)return;if(typeof $!=="number"&&typeof $!=="string")throw Error(`Activity timeout must be a number or duration string when set (got ${typeof $}).`);let U=J$($);if(U<=0)throw Error(`Activity timeout must be greater than 0ms when set (got ${U}ms); omit it to disable the per-attempt cap.`);if(U>qW)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${qW}ms (~24.8 days).`);return U}function FW($){return $===void 0?void 0:J$($)}function VW($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function MW($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function oy($,U){return U-$.dispatchedAt>=$.budgetMs}function Ij($,U,J,X){if($===void 0)return;if(!oy($,X??J))return;throw new zW(U,J-$.dispatchedAt,$.budgetMs,X!==void 0&&J-$.dispatchedAt<$.budgetMs?X-$.dispatchedAt:void 0)}var zW,hj,qW=2147483647;var yj=z(()=>{D$();U$();zW=class zW extends v{activityName;elapsed;budget;projectedNextDispatchElapsed;constructor($,U,J,X){super("ActivityScheduleToCloseTimeoutError",X===void 0?`Activity "${$}" exceeded its scheduleToCloseTimeout budget of ${J}ms (elapsed ${U}ms across retries)`:`Activity "${$}" will not retry within its scheduleToCloseTimeout budget of ${J}ms (elapsed ${U}ms; next retry would start at ${X}ms after first dispatch, at or beyond the deadline)`);if(this.activityName=$,this.elapsed=U,this.budget=J,X!==void 0)this.projectedNextDispatchElapsed=X}};hj=class hj extends v{activityName;attempt;timeoutMs;constructor($,U,J){super("ActivityPerAttemptTimeoutError",`Activity "${$}" attempt ${U} exceeded its per-attempt timeout of ${J}ms`);this.activityName=$,this.attempt=U,this.timeoutMs=J}}});function LX($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let J of U)if(!ty.has(J))return!1;for(let J of U)if(ey.has(J))return!0;return!1}function p2($,U){let J=U===void 0?[]:Object.entries(U).filter(([X])=>X!==G9&&X!==sy);if($===void 0){if(J.length===0)return ay;return Object.fromEntries(J)}return{...Object.fromEntries(J),[G9]:$}}function BW($,U){$.stateSession=U,$.checkpointLocals=p2(U,$.checkpointLocals)}function WW($,U,J){if(T1(U),$.stateSession&&bZ($.stateSession,U))return A4($.stateSession[U]);return J===void 0?void 0:A4(J)}function KW($,U,J){T1(U);let X=R2($.stateSession)??C2();return X[U]=A4(J),gZ(X),BW($,X),A4(X[U])}function $m($,U,J,X){return KW($,U,X(WW($,U,J)))}function Um($,U){if(T1(U),!$.stateSession||!bZ($.stateSession,U))return;let J=R2($.stateSession)??C2();delete J[U],BW($,Object.keys(J).length===0?void 0:J)}function Jm($){if($.length>2)throw Error("sessionState.run() accepts one activity input value plus optional ActivityCallOptions.");if($.length===0)return{hasInput:!1,options:{sticky:!0}};if($.length===1&&LX($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!LX(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function zX($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return $.accumulatedResults.get(J);let X=U();return $.accumulatedResults??=new Map,$.accumulatedResults.set(J,X),X}function NW($,U,J,X){let _=X!==void 0&&"initial"in X,G=_?A4(X.initial):void 0;return{get:()=>zX(U,()=>WW(U,J,_?G:void 0)),set:(H)=>zX(U,()=>KW(U,J,H)),update:(H)=>zX(U,()=>$m(U,J,_?G:void 0,H)),delete:()=>{zX(U,()=>{Um(U,J);return})},increment(H=1){return this.update((L)=>(L??0)+H)},decrement(H=1){return this.update((L)=>(L??0)-H)},merge(H){return this.update((L)=>({...L??{},...H}))},append(H){return this.update((L)=>[...L??[],H])},removeFirst(){let H;return this.update((L)=>{let F=[...L??[]];return H=F.shift(),F}),H},removeLast(){let H;return this.update((L)=>{let F=[...L??[]];return H=F.pop(),F}),H},run:(H,...L)=>{let F=Jm(L);if(!F.hasInput)return $.run(H,F.options);return $.run(H,F.input,F.options)}}}var ay,sy="sessionState",ty,ey;var d2=z(()=>{T2();ay=Object.freeze({}),ty=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),ey=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"])});function AW($,U,J){let X={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:J,checkpointLocals:p2(J,U.locals),searchAttributes:U.searchAttributes?{...U.searchAttributes}:{},searchAttributeSchema:U.searchAttributeSchema,workflowInterceptor:void 0,pendingAttributeChanges:void 0,updateHandlers:void 0,updateValidators:void 0,queryHandlers:void 0,exposedValues:void 0,memoCache:void 0,deadline:U.deadline,getNow:U.getNow??Date.now,sleepReferenceTime:U.sleepReferenceTime,explainMode:!1,nestingDepth:U.nestingDepth??0,executionStateOwnerId:U.executionStateOwnerId??U.workflowId,resolveWorkflowType:U.resolveWorkflowType,registerCancelHandler:U.registerCancelHandler,services:U.services,logSink:U.logSink,recordFinalizerState:U.recordFinalizerState};OW.set($,X)}function g($){let U=OW.get($);if(!U)throw Error("Context internals not initialized");return U}var OW;var w1=z(()=>{d2();OW=new WeakMap});function Xm($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function Gm($,U){let J=U.at(-1);return U.length>0&&LX(J)&&(U.length>1||typeof $!=="string"&&Xm($))}function Qm($,U){let J=[...U],X=Gm($,J)?J.pop():void 0;if(J.length>1)throw Error("ctx.run() accepts one activity input value plus optional ActivityCallOptions.");return{input:J[0],options:X}}function Dm($,U,J){let X=FW(J);if(X===void 0)return;return{budgetMs:X,dispatchedAt:PW($,U,$.getNow())}}function Ym($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function Zm($){return typeof $==="function"?$:void 0}function jm($,U,J,X){let _=$.accumulatedResults?.has(U)??!1;if(_){let Q=$.accumulatedResults?.get(U);if($.stepIndex+=ZW($,U),$.explainMode)console.log(`[weft] ctx.run(${J}) \u2192 Returning cached result from step ${U}`);return{request:{type:"activity",operationId:"",activityName:J,input:X},step:U,hasCachedResult:_,cachedResult:Q,retryAttempt:1}}let G=YW($,U);if(G!==void 0)return $.stepIndex+=G-2,{request:{type:"activity",operationId:"",activityName:J,input:X},step:U,hasCachedResult:!1,retryAttempt:G};return{request:{type:"activity",operationId:"",activityName:J,input:X},step:U,hasCachedResult:_,retryAttempt:1}}function Hm($,U,J,X,_,G){let Q=G?.queue??"default";if($.explainMode)console.log(`[weft] ctx.run(${J}, ${JSON.stringify(_)})`),console.log(` \u2192 Creating checkpoint at step ${U}`),console.log(` \u2192 Dispatching activity "${J}" to queue "${Q}"`);return{type:"activity",operationId:crypto.randomUUID(),activityName:J,step:U,...X!==void 0?{fn:X}:{},input:_,callerStack:t(),...G!==void 0?{options:G}:{}}}function Pm($,U){let J=typeof $==="string"?void 0:$.retry,X=U?.retry;if(J===void 0&&X===void 0)return;return{...$V,...J,...X}}function qm($,U){let J=U.nonRetryableErrors??[];if(J.length===0)return!1;if($ instanceof Error)return J.includes($.name)||J.includes($.message);return J.includes(String($))}function zm($,U,J){return U!==void 0&&J<U.maxAttempts&&!qm($,U)}function Lm($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function Fm($,U,J,X){let{input:_,options:G}=Qm(U,J),Q=Ym(U,X),D=Zm(U),Y=g($),Z=Y.stepIndex++,j=jm(Y,Z,Q,_);if(j.hasCachedResult)return j;let H=Pm(U,G),L=VW(U,G),F=MW(U,G),W=F===void 0?G:{...G,timeout:F};return{request:Hm(Y,Z,Q,D,_,W),step:Z,hasCachedResult:!1,retryAttempt:j.retryAttempt,...H===void 0?{}:{retryPolicy:H},...L===void 0?{}:{scheduleToCloseTimeout:L}}}function*CW($,U,J,X){let{request:_,step:G,hasCachedResult:Q,cachedResult:D,retryAttempt:Y,retryPolicy:Z,scheduleToCloseTimeout:j}=Fm($,U,J,X);if(Q)return D;let H=g($),L=Z===void 0?void 0:Dm(H,G,j),F=Y;if(F>1){if(Z===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${F}`);yield*$.sleep(P9(F-1,Z))}while(!0){if(F>1)Ij(L,_.activityName,H.getNow());try{let W=yield Lm(_,F);return $.accumulatedResults.set(G,W),HW(H,G,F-1),W}catch(W){if(!zm(W,Z,F))throw W;let E=P9(F,Z),m=H.getNow();Ij(L,_.activityName,m,m+E);let a=F+1;jW(H,G,a),yield*$.sleep(E),F=a}}}var RW=z(()=>{D$();n$();yj();w1();d2()});class Vm{workflowId;signal;#$=[];#U;#J=!1;constructor($,U){this.workflowId=$,this.signal=U}async step($,U){let{promise:J,resolve:X,reject:_}=Promise.withResolvers();return this.#$.push({name:$,fn:U,resolve:X,reject:_}),this.#U?.(),J}async dequeue(){if(this.#$.length>0)return this.#$.shift();if(this.#J)return null;let{promise:$,resolve:U}=Promise.withResolvers();if(this.#U=U,await $,this.#U=void 0,this.#J&&this.#$.length===0)return null;return this.#$.shift()??null}signalDone(){this.#J=!0,this.#U?.()}}function*mj(){yield void 0}async function*uj(){yield void 0}function Mm(){return mj().next(),uj().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf(mj),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(uj),syncGeneratorPrototype:Object.getPrototypeOf(mj.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(uj.prototype)}}function TW($){return Object.getPrototypeOf($)===Bm}function EW($){return Object.getPrototypeOf($)===Wm}function xW($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let J=Object.getPrototypeOf(U);return J===Km||J===Nm}var Bm,Wm,Km,Nm;var kj=z(()=>{({syncGeneratorFunctionPrototype:Bm,asyncGeneratorFunctionPrototype:Wm,syncGeneratorPrototype:Km,asyncGeneratorPrototype:Nm}=Mm())});function i2($,U){let J=$.conditionWaiters.get(U);if(J)J()}function Am($){return Om.encode($).byteLength<=128}function FX($){if($.length===0)throw Error("signalId must be non-empty");if(!Am($))throw Error(`signalId must be at most ${String(128)} bytes`)}var Om;var SW=z(()=>{Om=new TextEncoder});async function IW($,U,J,X,_){let G=q.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await Cm($.storage,U,async()=>{let Q=await $.storage.get(G),D=await hW($,U,Q),Y=gW($,U,J,D,G);X(Y),await $.storage.batch(Y),_()});return}X$($.storage,"conditionalBatch","anonymous signal ordering");for(let Q=0;Q<bW;Q+=1){let D=await $.storage.get(G),Y=await hW($,U,D),Z=gW($,U,J,Y,G);if(X(Z),await G$($.storage,[{key:G,expectedValue:D}],Z)){_();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${bW} attempts`)}async function Cm($,U,J){let X=vW.get($);if(!X)X=new Map,vW.set($,X);let _=X.get(U)??Promise.resolve(),G,Q=new Promise((Y)=>{G=Y}),D=_.then(()=>Q,()=>Q);X.set(U,D);try{await _.catch(()=>{}),await J()}finally{if(G(),X.get(U)===D)X.delete(U)}}function gW($,U,J,X,_){let G=J.map(({signalName:Q,payload:D},Y)=>({type:"put",key:q.signal(U,Q,Rm(X+Y)),value:c2(D,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return G.push({type:"put",key:_,value:B(X+J.length)}),G}function Rm($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function hW($,U,J){if(J!==null)return xm(J);return Tm($,U)}async function Tm($,U){let J=`sig:${K(U)}:`,X=0;for await(let[_]of $.storage.scan(J)){let G=Em(_);if(G!==null&&G>=X)X=G+1}return X}function Em($){let J=$.lastIndexOf(":anonymous%3A");if(J===-1)return null;let X=J+13,_=$.indexOf("%3A",X);if(_===-1)return null;let G=Number($.slice(X,_));return Number.isSafeInteger(G)&&G>=0?G:null}function xm($){if($===null)return 0;let U=R($);if(typeof U!=="number"||!Number.isSafeInteger(U)||U<0)throw Error("Stored anonymous signal sequence must be a non-negative safe integer");return U}var bW=5,vW;var yW=z(()=>{b();I();T4();vW=new WeakMap});function E4($,U,J){if(J.conditions.length===0&&J.operations.length===0)return;let X=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(X===void 0){$.pendingAtomicWorkflowCommitSideEffects.set(U,{conditions:[...J.conditions],operations:[...J.operations]});return}X.conditions.push(...J.conditions),X.operations.push(...J.operations)}function VX($,U){let J=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(J===void 0)return;if($.pendingAtomicWorkflowCommitSideEffects.delete(U),J.conditions.length===0&&J.operations.length===0)return;return{conditions:[...J.conditions],operations:[...J.operations]}}function MX($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function mW($,U,J){let X=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(X===void 0)return!1;return X.operations.some((_)=>_.type==="put"&&_.key===J)}async function cW($,U,J,X,_,G={}){let Q=async(Y,Z,j)=>{await vm($,Y,[{signalName:Z,payload:j}],_,G)},D=_.getComposedInterceptor();if(D){let Y,Z=!1;try{D.signalReceived({workflowId:U,signalName:J,payload:X,headers:new Map},(j)=>{if(Z)throw Error("signalReceived interceptor called next() more than once");Z=!0,Y=Q(j.workflowId,j.signalName,j.payload)})}catch(j){if(Y)await Y;throw j}if(!Y)return;await Y}else await Q(U,J,X)}function l2($,U,J,X){let _=$.signalWaiters.get(J);if(!_)return;if(X&&_!==X)return;$.signalWaiters.delete(J),G6($.signalWaitersByWorkflow,U,J)}async function vm($,U,J,X,_={}){if(J.length===0)return;let G=await X.loadWorkflowState(U);if(G&&V$(G.status))return;let Q=mm(J,_);if(um(J,_,Q),Q!==void 0)X$($.storage,"conditionalBatch","signal idempotency");if(Q!==void 0){let D=gm($,U,J,Q);uW($,U,D);let Y=J[0],Z=q.signalAcceptedResponse(U,Y.signalName,Q),j=B(wW);if(await $.storage.get(Z)!==null)return;if(!await G$($.storage,[{key:Z,expectedValue:null}],[...D,{type:"put",key:Z,value:j}]))return;kW($,U),fW($,U,J,X);return}await IW($,U,J,(D)=>uW($,U,D),()=>kW($,U)),fW($,U,J,X)}function gm($,U,J,X){return J.map(({signalName:_,payload:G})=>({type:"put",key:q.signal(U,_,X),value:c2(G,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function pW($,U,J,X,_){FX(_);let G=q.startSignal(U,J,_),Q=q.signalAcceptedResponse(U,J,_);return{operations:[{type:"put",key:G,value:c2(X,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:Q,value:B(wW)}],condition:{key:Q,expectedValue:null}}}function uW($,U,J){if($.workflowsNeedingTerminalCleanup.has(U))return;J.push({type:"put",key:q.terminalCleanupNeeded(U),value:Sm})}function kW($,U){$.workflowsNeedingTerminalCleanup.add(U)}function fW($,U,J,X){let _=!1;for(let{signalName:G,payload:Q,options:D}of J){if(D?.emitPublicEvent!==!1)X.dispatchEvent(new s9(U,G,Q)),X.broadcast({type:"signal:received",workflowId:U,signalName:G});let Y=`${U}:${G}`,Z=$.signalWaiters.get(Y);if(Z){l2($,U,Y,Z),Z();continue}if($.parkedInlineWorkflows.has(U))_=!0}if(_)X.resumeParkedInlineWorkflow(U)}async function dW($,U,J){return await wj($,U,J)!==null}async function n2($,U,J){let X=await wj($,U,J);if(X===null)return{found:!1};return E4($,U,{conditions:[{key:X.key,expectedValue:new Uint8Array(X.value)}],operations:[{type:"delete",key:X.key}]}),{found:!0,payload:R(X.value)}}async function fj($,U,J){let X=await wj($,U,J);return X===null?{found:!1}:{found:!0,payload:R(X.value)}}async function wj($,U,J){let X=K(U),_=K(J),G=Im(X,_);return await hm($,G,X,_)}async function hm($,U,J,X){for await(let[_,G]of $.storage.scan(U,{limit:1}))if(ym(_,J,X))return{key:_,value:G};return null}function Im($,U){return`sig:${$}:${U}:`}function ym($,U,J){let X=$.split(":");return X.length===bm&&X[0]==="sig"&&X[1]===U&&X[2]===J&&(X[3]==="0"||X[3]==="1")&&X[4]!==""}function mm($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function um($,U,J){if(J!==void 0){FX(J);return}for(let X of $){let _=X.options?.signalId??U.signalId;if(_!==void 0)FX(_)}}function x4($,U,J){let X=$.get(U);if(!X){$.set(U,J);return}if(typeof X==="string"){if(X===J)return;$.set(U,new Set([X,J]));return}X.add(J)}function G6($,U,J){let X=$.get(U);if(!X)return;if(typeof X==="string"){if(X===J)$.delete(U);return}if(X.delete(J),X.size===0){$.delete(U);return}if(X.size===1){let[_]=X;if(_!==void 0)$.set(U,_)}}var Sm,wW,bm=5;var S4=z(()=>{b();I();_$();T4();SW();yW();Y$();Sm=new Uint8Array(0),wW={ok:!0}});async function iW($,U,J,X){let{promise:_,resolve:G}=Promise.withResolvers(),Q=!1;X({payload:U,respond:(Z)=>{if(Q)return;Q=!0,G(Z)}});let Y;try{return await Promise.race([_,new Promise((Z,j)=>{Y=setTimeout(()=>j(new V9($,J)),J)})])}finally{clearTimeout(Y)}}var lW=z(()=>{S1()});async function nW($,U,J,X,_,G){let Q=_?.timeout??30000;await UK($,U,J,X),await G.guardTerminalWorkflow(U);let D=await km($,U,J,X,G);if(D.handled)return D.value;let Y=await fm($,U,J,X,Q,G);if(Y.handled)return Y.value;return await wm($,U,J,X,Q,G)}async function km($,U,J,X,_){let G=$.inlineStrategy?.getContext(U)?.updateHandlers.get(J);if(!G)return{handled:!1};let Q=crypto.randomUUID();_.dispatchEvent(new $4(Q,U,J,X));try{let D=await cj($,J,G,X);return _.dispatchEvent(new f6(Q,U,J,D)),_.broadcast({type:"update:completed",workflowId:U,updateId:Q}),i2($,U),{handled:!0,value:D}}catch(D){let Y=D instanceof Error?D.message:String(D);throw _.dispatchEvent(new f6(Q,U,J,void 0,Y)),_.broadcast({type:"update:completed",workflowId:U,updateId:Q}),i2($,U),D}}async function fm($,U,J,X,_,G){let Q=`${U}:${J}`,D=$.updateWaiters.get(Q);if(!D)return{handled:!1};let Y=await G.findPendingUpdateByName(U,J);if($.updateWaiters.get(Q)!==D||Y)return{handled:!1};$.updateWaiters.delete(Q),G6($.updateWaitersByWorkflow,U,Q);let Z=crypto.randomUUID();G.dispatchEvent(new $4(Z,U,J,X));let j=await iW(Z,X,_,D);return G.dispatchEvent(new f6(Z,U,J,j)),G.broadcast({type:"update:completed",workflowId:U,updateId:Z}),{handled:!0,value:j}}async function wm($,U,J,X,_,G){let Q=await $.updateCoordinator.createRequest(U,J,X);G.schedulePendingInlineUpdateDrain(U),await G.guardTerminalWorkflowAfterCoordinatedRequest(U,Q),G.dispatchEvent(new $4(Q,U,J,X)),await G.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Q,workflowId:U,name:J,payload:X,createdAt:Date.now()});let D=await $.updateCoordinator.waitForResponse(Q,_);if(D.error)throw Error(D.error);return D.result}async function rW($,U){return $.updateCoordinator.getResponse(U)}async function oW($,U,J,X,_,G){let Q=_?.timeout??30000,D=_?.idempotencyKey;if(D!==void 0){let L=await $.updateCoordinator.checkIdempotency(U,D);if(L!==null)return{updateId:L.updateId,result:L.result}}await UK($,U,J,X),await G.guardTerminalWorkflow(U);let Y={timeout:Q};if(D!==void 0)Y.idempotencyKey=D;let Z=await $.updateCoordinator.createRequest(U,J,X,Y);G.schedulePendingInlineUpdateDrain(U),await G.guardTerminalWorkflowAfterCoordinatedRequest(U,Z),await G.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Z,workflowId:U,name:J,payload:X,createdAt:Date.now(),idempotencyKey:D},!0);let j=await $.updateCoordinator.waitForResponse(Z,Q),H={updateId:j.updateId,result:j.result};if(j.error!==void 0)H.error=j.error;return H}async function aW($,U,J,X){let _=`${U}:${J.updateName}`,G=await X.findPendingUpdateByName(U,J.updateName);if(G){await $.updateCoordinator.deleteRequest(U,G.updateId),X.dispatchPendingUpdateReceived(U,J.updateName,G),X.completeOperation(U,{payload:G.payload,respond:X.createCoordinatedUpdateResponder(U,J.updateName,G)});return}let{promise:Q,resolve:D}=Promise.withResolvers();$.updateWaiters.set(_,D),x4($.updateWaitersByWorkflow,U,_);let Y=await X.findPendingUpdateByName(U,J.updateName);if(Y){if($.updateWaiters.get(_)===D)$.updateWaiters.delete(_),G6($.updateWaitersByWorkflow,U,_);await $.updateCoordinator.deleteRequest(U,Y.updateId),X.dispatchPendingUpdateReceived(U,J.updateName,Y),X.completeOperation(U,{payload:Y.payload,respond:X.createCoordinatedUpdateResponder(U,J.updateName,Y)});return}X.completeOperation(U,await Q)}function sW($,U,J,X,_){_.dispatchEvent(new $4(X.updateId,U,J,X.payload))}function tW($,U,J,X,_){let G=!1;return(Q)=>{if(G)return;G=!0,_.persistCoordinatedUpdateResponse(U,J,X.updateId,X.idempotencyKey,Q)}}async function eW($,U,J,X=!1,_){let G=`${U}:${J.name}`,Q=$.updateWaiters.get(G);if(!Q)return!1;let D=await _.findPendingUpdateByName(U,J.name);if(!D||D.updateId!==J.updateId)return!1;if(await $.updateCoordinator.deleteRequest(U,J.updateId),$.updateWaiters.delete(G),G6($.updateWaitersByWorkflow,U,G),X)_.dispatchPendingUpdateReceived(U,J.name,J);return Q({payload:J.payload,respond:_.createCoordinatedUpdateResponder(U,J.name,J)}),!0}async function $K($,U,J){return(await $.updateCoordinator.getPendingUpdates(U)).find((_)=>_.name===J)}async function cj($,U,J,X){let _=J(X);if(xW(_))throw TypeError(`Update handler "${U}" returned a generator. Update handlers must return a plain value or a Promise, not a generator.`);return await _}async function UK($,U,J,X){let _=$.inlineStrategy?.getContext(U)?.updateValidators.get(J);if(_===void 0)return;let G;try{G=await _(X)}catch(D){let Y=D instanceof Error?D.message:String(D);throw new QU(J,[{message:Y}])}let Q=pj(G);if(Q!==null&&Q.length>0)throw new QU(J,Q)}function pj($){if($===null||typeof $!=="object"||!("issues"in $))return null;let{issues:U}=$;if(!Array.isArray(U))return null;return U.flatMap((J)=>{if(J===null||typeof J!=="object")return[];let X=J;if(typeof X.message!=="string")return[];let _={message:X.message};if(Array.isArray(X.path)&&X.path.length>0)_.path=X.path.reduce((G,Q)=>{let D=Q!==null&&typeof Q==="object"&&"key"in Q?String(Q.key):String(Q);return G+"/"+D.replace(/~/g,"~0").replace(/\//g,"~1")},"");return[_]})}var c1=z(()=>{_$();kj();S1();S4();lW()});function JK($,U,J,X){let _=$.handleCache.get(U);if(!_)return;let G=_.ref.deref();if(!G)return;G.dispatchEvent(J)}function _K($,U,J,X,_){sW($,U,J,X,{dispatchEvent:_.dispatchEvent})}function b4($,U,J){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var BX=z(()=>{c1()});function dm($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function im($){return $.type!==void 0&&$.type.trim().length>0}function lm($){return(F$($.tags)?.length??0)>0}function nm($){return $.attributes?.some((U)=>A$(U.key).trim().length>0)??!1}function rm($){return $.idPrefix!==void 0&&$.idPrefix.length>=cm}function am($){return Object.values(om).some((U)=>U($))}function v4($){if(!am($))throw Error(pm);return $}var cm=3,pm='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (\u22653 chars), or failureCategory paired with status',om;var dj=z(()=>{w$();_6();om={status:dm,type:im,tags:lm,attributes:nm,idPrefix:rm}});var _4,WU=1,ij="weft:schema-version";var lj=z(()=>{U$();_4=class _4 extends v{foundVersion;expectedVersion;constructor($,U){super("PersistedDataIncompatibleError",`Persisted workflow data was written by an older Weft version (schema ${$===null?"pre-versioned":`v${$}`}, current v${U}) and is incompatible with the workflow-builder refactor. Delete the database or start fresh.`);this.foundVersion=$,this.expectedVersion=U}}});function tm($){let U=$.slice(0,sm),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}var o$,r2,KU,o2,XK=20,sm=10,a2,NU,N6,p1,OU,s2,t2,e2,$J,g4;var z$=z(()=>{U$();lj();o$=class o$ extends v{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}};r2=class r2 extends v{workflowId;constructor($){super("WorkflowTeardownPendingError",`Cannot restart workflow "${$}" under the same id: its prior run is tearing down a resource (finalizer in progress). Retry after the teardown completes.`);this.workflowId=$}};KU=class KU extends v{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}};o2=class o2 extends v{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}};a2=class a2 extends v{registeredTypes;missingTypes;missingWorkflowSamples;missingWorkflowCount;samplesTruncated;constructor($){let U=$.missingWorkflows.length,J=[...new Set($.missingWorkflows.map((G)=>G.type))].toSorted(),X=[...$.registeredTypes].toSorted(),_=tm(J);super("WorkflowTypeNotRegisteredForRecoveryError",`Cannot recover ${U} running workflow(s): workflow type(s) not registered: ${_}. Register the missing workflow types before calling \`recoverAll()\`, or pass `+"`{ acknowledgeUnknownWorkflowTypes: true }` (dangerous \u2014 see migration docs).");this.registeredTypes=X,this.missingTypes=J,this.missingWorkflowSamples=$.missingWorkflows.slice(0,XK).map((G)=>({...G})),this.missingWorkflowCount=U,this.samplesTruncated=U>XK}};NU=class NU extends v{definitionKind;expectedName;actualName;constructor($,U,J){super("EngineCreateNameMismatchError",`Engine.create() ${$} definition key "${U}" does not match definition name "${J}"`);this.definitionKind=$,this.expectedName=U,this.actualName=J}};N6=class N6 extends v{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}};p1=class p1 extends v{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}};OU=class OU extends v{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}};s2=class s2 extends v{workflowType;limit;partitionKey;constructor($){super("WorkflowConcurrencyLimitExceededError",`Workflow "${$.workflowType}" concurrency limit ${$.limit} reached for partition key "${$.partitionKey}"`);this.workflowType=$.workflowType,this.limit=$.limit,this.partitionKey=$.partitionKey}};t2=class t2 extends v{constructor($){super("WorkflowSuspendNotSupportedError",$)}};e2=class e2 extends v{workflowType;activityName;constructor($,U){super("ActivityResolutionError",`No activity registered with name "${U}" for workflow type "${$}". Register the activity via \`workflow({ name }).activities({ ... })\` on the workflow that runs it, or via \`engine.register(activityDefinition)\` to make it available to every workflow on that engine instance.`);this.workflowType=$,this.activityName=U}};$J=class $J extends v{workflowId;status;constructor($,U){super("StartOrSignalConflictError",`Workflow "${$}" is already in terminal state "${U}" and cannot accept a startOrSignal: a terminal run cannot be signalled and is not replaced. Use a different id or idempotency key to start a new run.`);this.workflowId=$,this.status=U}};g4=class g4 extends v{workflowId;constructor($){super("IdempotencyKeyPurgedError",`The idempotency key maps to workflow "${$}", which no longer exists (it was purged or deleted). Use a different idempotency key to start a new run.`);this.workflowId=$}}});var AU;var WX=z(()=>{U$();AU=class AU extends v{workflowId;timeoutType;elapsed;constructor($,U,J){super("WorkflowTimeoutError",`Workflow "${$}" exceeded ${U} timeout after ${J}ms`);this.workflowId=$,this.timeoutType=U,this.elapsed=J}}});function nj($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function KX($){if($.byteLength!==8)return null;let U=new DataView($.buffer,$.byteOffset,$.byteLength).getBigUint64(0,!1),J=Number(U);return Number.isSafeInteger(J)&&J>=1&&J<Number.MAX_SAFE_INTEGER?J:null}function rj($){return em.encode(JSON.stringify($))}function Uu($){return typeof $==="object"&&$!==null}function NX($){let U;try{U=JSON.parse($u.decode($))}catch{return null}if(!Uu(U))return null;let{holderId:J,expiresAt:X,epoch:_}=U;if(typeof J!=="string"||typeof X!=="number"||!Number.isSafeInteger(X)||X<0||typeof _!=="number"||!Number.isSafeInteger(_)||_<1)return null;return{holderId:J,expiresAt:X,epoch:_}}var em,$u;var oj=z(()=>{em=new TextEncoder,$u=new TextDecoder});function UJ($){if($.deposed)return;$.deposed=!0,process.emitWarning("engine deposed: a durable write was fenced out because another instance now holds this store's ownership lease at a newer epoch. This engine is halting to avoid split-brain writes. Weft supports one engine process per store; ensure your deploy hands off cleanly (graceful shutdown releases the lease) and keep infrastructure-level single-instance enforcement in place.","WeftEngineLeaseLostWarning");let U=$.tearDownAfterDeposition;if(U!==null)Promise.resolve().then(U).catch(()=>{})}var aj="WeftEngineLeaseLostWarning";var d1,CU,JJ,_J;var OX=z(()=>{U$();d1=class d1 extends v{waitedMs;heldBy;constructor($,U){let J=U===null?"":` (currently held by "${U}")`;super("EngineLeaseAcquisitionTimeoutError",`Could not acquire the storage ownership lease within ${$}ms${J}. Another engine instance still holds it. Increase leaseWaitTimeout above the outgoing instance's drain time and the lease TTL, or ensure the previous instance releases the lease on shutdown.`);this.waitedMs=$,this.heldBy=U}};CU=class CU extends v{constructor($){super("EngineLeaseCorruptedError",`The ownership lease state in storage is corrupt and cannot be used safely: ${$}. Resolve by operator repair (delete both "lease:" keys only if no other instance is running, or reset "lease:epoch" above its last known value).`)}};JJ=class JJ extends v{constructor(){super("EngineLeaseNotHeldError","ownership: 'lease' requires the engine to hold the lease before starting work. Use `Engine.create({ ownership: \"lease\" })` (which acquires the lease and recovers), or call `await engine.recoverAll()` on a directly-constructed engine before `start()`.")}};_J=class _J extends v{constructor(){super("EngineDeposedError","Engine was deposed: a fenced durable write lost its CAS race because another instance now holds the ownership lease at a newer epoch. This engine is halting.")}}});function XJ($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new JJ}async function GK($,U,J){let X=Ju($);if(X===null){if(J.length===0)return await $.storage.batch(U),"committed";return await G$($.storage,J,U)?"committed":"lost-race"}let _=[...J,{key:q.leaseEpoch(),expectedValue:X}];if(await G$($.storage,_,U))return"committed";if(await Xu($,X))throw UJ($),new _J;return"lost-race"}function Ju($){if($.deposed)throw new _J;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw UJ($),new _J;return U}async function Z$($,U,J,X){if(await GK($,U,J)==="lost-race")throw X()}async function i1($,U,J){return await GK($,U,J)==="committed"}function _u($,U){if(U===null||$.byteLength!==U.byteLength)return!1;for(let J=0;J<$.byteLength;J+=1)if($[J]!==U[J])return!1;return!0}async function Xu($,U){let J;try{J=await $.storage.get(q.leaseEpoch())}catch{return!0}if(J===null)return!0;if(KX(J)===null)return!0;return!_u(U,J)}var O6=z(()=>{b();oj();OX()});async function*YK($,U,J){let X={events:[],resolver:void 0},_={done:!1},G=Gu($,X,_);try{if(!_.done)Du(X,_,await U(),J);while(!_.done||X.events.length>0){if(X.events.length===0)await Yu(X);while(X.events.length>0)yield X.events.shift()}}finally{G()}}function Gu($,U,J){let X=ZK.bind(void 0,U),_=Qu.bind(void 0,J,U);for(let G of QK)$.addEventListener(G,X);for(let G of DK)$.addEventListener(G,_);return()=>{for(let G of QK)$.removeEventListener(G,X);for(let G of DK)$.removeEventListener(G,_)}}function ZK($,U){$.events.push(U),$.resolver?.()}function Qu($,U,J){if($.done)return;$.done=!0,ZK(U,J)}function Du($,U,J,X){if(!J||U.done)return;let _=X(J);if(!_)return;$.events.push(_),U.done=!0}async function Yu($){let{promise:U,resolve:J}=Promise.withResolvers();$.resolver=J,await U,$.resolver=void 0}var QK,DK;var jK=z(()=>{bj();QK=["activity:started","activity:completed","signal:received"],DK=aB});function A6($){return $.startedAt??$.createdAt}function HK($){switch($.status){case"completed":{let U=$.updatedAt-A6($);return new VU($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new U4($.id,U)}case"cancelled":return new MU($.id);case"timed-out":{let U=$.updatedAt-A6($);return new J4($.id,"execution",U,$.terminationReason)}default:return null}}var GJ,QJ;var h4=z(()=>{_$();WX();n$();jK();GJ=Symbol("handleResultPromise");QJ=class QJ extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[GJ](this.id),this.#U}async cancel(){return this.#$.cancel(this.id)}async suspend(){return this.#$.suspend(this.id)}async resume(){await this.#$.resume(this.id)}async getLaunchMetadata(){let $=await this.#$.get(this.id);if($===null)return null;return{input:$.input,launchOptions:{id:$.id,...$.tags!==void 0&&$.tags.length>0&&{tags:$.tags}}}}async snapshot(){let $=await this.#$.get(this.id);if($===null)return null;let U=await this.#$.getCurrentCheckpointStep(this.id);return{status:$.status,step:U??0}}async signal($,U,J){return this.#$.signal(this.id,l$($),U,J)}async update($,U,J){return this.#$.update(this.id,l$($),U,J)}async query($,U){return this.#$.query(this.id,l$($),U)}async getAttributes(){return this.#$.getAttributes(this.id)}async setAttributes($){return this.#$.setAttributes(this.id,$)}async addTags(...$){return this.#$.addTags(this.id,...$)}async removeTags(...$){return this.#$.removeTags(this.id,...$)}async*[Symbol.asyncIterator](){yield*YK(this,()=>this.#$.get(this.id),HK)}[Symbol.observable](){return{subscribe:($)=>{let U=new AbortController,J=$.next?.bind($),X=["workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","activity:started","activity:completed"],_=!1;if(J){let Y=(Z)=>{if(_)return;J(Z)};for(let Z of X)this.addEventListener(Z,Y,{signal:U.signal})}let G=(Y)=>{if(_)return;if(Y instanceof U4)_=!0,$.error?.(Y.error);else if(Y instanceof J4)_=!0,$.error?.(new AU(Y.workflowId,Y.timeoutType,Y.elapsed))};this.addEventListener("workflow:failed",G,{signal:U.signal}),this.addEventListener("workflow:timed-out",G,{signal:U.signal});let Q=$.complete?.bind($),D=()=>{if(_)return;_=!0,Q?.()};return this.addEventListener("workflow:completed",D,{signal:U.signal}),this.addEventListener("workflow:cancelled",D,{signal:U.signal}),(async()=>{let Y=await this.#$.get(this.id);if(U.signal.aborted||_||!Y)return;let Z=HK(Y);if(!Z)return;if(J?.(Z),Z instanceof U4)G(Z);else if(Z instanceof J4)G(Z);else D()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}});function Zu($,U,J){if(J===void 0||J<=0)return 0;let X=BigInt(`0x${sJ(`${$}\x00${U}`)}`);return Number(X%BigInt(J))}function l1($,U){return U+Zu($.id,U,$.jitterMs)}var AX=z(()=>{V6()});function qK(){return"UTC"}function zK($){let U=PK.get($);if(U)return U;let J=new Intl.DateTimeFormat("en-US",{timeZone:$,calendar:"iso8601",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short",hourCycle:"h23",timeZoneName:"shortOffset"});return PK.set($,J),J}function Hu($,U){let X=zK(U).formatToParts(new Date($)).find((Y)=>Y.type==="timeZoneName")?.value,_=/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/.exec(X??"");if(!_)return 0;let G=_[1]==="-"?-1:1,Q=Number.parseInt(_[2],10),D=Number.parseInt(_[3]??"0",10);return G*(Q*60+D)*60000}function sj($,U){let J=zK(U).formatToParts(new Date($)),X=new Map(J.map((Q)=>[Q.type,Q.value])),_=X.get("weekday"),G=_?ju.get(_):void 0;if(G===void 0)throw Error(`Unable to resolve weekday for time zone "${U}"`);return{year:Number.parseInt(X.get("year")??"",10),month:Number.parseInt(X.get("month")??"",10),day:Number.parseInt(X.get("day")??"",10),hour:Number.parseInt(X.get("hour")??"",10),minute:Number.parseInt(X.get("minute")??"",10),second:Number.parseInt(X.get("second")??"",10),dayOfWeek:G}}function Pu($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function I4($,U,J){let X=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),_=X;for(let D=0;D<6;D+=1){let Y=Hu(_,U),Z=X-Y;if(Z===_)break;_=Z}let G=new Set;for(let D=-120;D<=120;D+=15)G.add(_+D*60000);return[...G].filter((D)=>D>=J).filter((D)=>Pu($,sj(D,U))).toSorted((D,Y)=>D-Y)[0]??null}function CX($,U){let J=new Date(Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second));if(U.days!==void 0)J.setUTCDate(J.getUTCDate()+U.days);if(U.hours!==void 0)J.setUTCHours(J.getUTCHours()+U.hours);if(U.minutes!==void 0)J.setUTCMinutes(J.getUTCMinutes()+U.minutes);return{year:J.getUTCFullYear(),month:J.getUTCMonth()+1,day:J.getUTCDate(),hour:J.getUTCHours(),minute:J.getUTCMinutes(),second:J.getUTCSeconds()}}function DJ($,U){for(let J of $)if(J>U)return{value:J,wrapped:!1};return{value:$[0],wrapped:!0}}function LK($,U){let J=U.daysOfMonth.values.includes($.day),X=U.daysOfWeek.values.includes($.dayOfWeek);if(U.daysOfMonth.wildcard&&U.daysOfWeek.wildcard)return!0;if(U.daysOfMonth.wildcard)return X;if(U.daysOfWeek.wildcard)return J;return J||X}var ju,PK;var FK=z(()=>{ju=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),PK=new Map});function VK($,U,J,X){let _=$.toUpperCase();if(U?.has(_))return U.get(_);let G=Number.parseInt($,10);if(!Number.isInteger(G))throw Error(`Invalid cron token "${$}"`);let Q=X===6&&G===7?0:G;if(Q<J||Q>X)throw Error(`Cron token "${$}" is outside the allowed range ${J}-${X}`);return Q}function Lu($,U){return{values:Array.from({length:U-$+1},(J,X)=>$+X),wildcard:!0}}function Fu($,U){let J=U===void 0?1:Number.parseInt(U,10);if(!Number.isInteger(J)||J<=0)throw Error(`Invalid cron step "${$}"`);return J}function MK($,U,J,X){for(let _=U;_<=J;_+=X)$.add(_)}function Vu($,U,J,X,_){let[G="",Q]=U.split("/"),D=Fu(U,Q);if(G==="*"||G==="?"){MK($,J,X,D);return}let[Y,Z]=G.split("-"),j=VK(Y,_,J,X),H=Z===void 0?j:VK(Z,_,J,X);if(j>H)throw Error(`Invalid cron range "${U}"`);MK($,j,H,D)}function n1($,U,J,X){let _=$.trim();if(_==="*"||_==="?")return Lu(U,J);let G=new Set,Q=_.split(",");for(let D of Q){let Y=D.trim();if(Y.length===0)throw Error(`Invalid cron field "${$}"`);Vu(G,Y,U,J,X)}return{values:[...G].toSorted((D,Y)=>D-Y),wildcard:!1}}function RU($){let U=$.trim().split(/\s+/).filter((Z)=>Z.length>0);if(U.length!==5&&U.length!==6)throw Error("Cron expression must have 5 fields or 6 fields with seconds");let J=U.length===6,[X,_,G,Q,D,Y]=J?U:["0",...U];return{expression:$,hasSeconds:J,seconds:n1(X,0,59),minutes:n1(_,0,59),hours:n1(G,0,23),daysOfMonth:n1(Q,1,31),months:n1(D,1,12,qu),daysOfWeek:n1(Y,0,6,zu)}}var qu,zu;var tj=z(()=>{qu=new Map([["JAN",1],["FEB",2],["MAR",3],["APR",4],["MAY",5],["JUN",6],["JUL",7],["AUG",8],["SEP",9],["OCT",10],["NOV",11],["DEC",12]]),zu=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]])});function TU($){return $+1000}function Mu($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function Bu($,U,J,X){let _=DJ(J.months.values,U.month);return I4({year:U.year+(_.wrapped?1:0),month:_.value,day:1,hour:0,minute:0,second:0},X,TU($))??$+86400000}function BK($,U,J){return I4(CX(Mu(U),{days:1}),J,TU($))??$+86400000}function Wu($,U,J,X){let _=DJ(J.hours.values,U.hour);return I4({year:U.year,month:U.month,day:U.day,hour:_.value,minute:0,second:0},X,TU($))??BK($,U,X)}function Ku($,U,J,X){let _=DJ(J.minutes.values,U.minute),G=I4({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:_.value,second:0},X,TU($));if(G!==null)return G;return I4(CX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),X,TU($))??$+3600000}function Nu($,U,J,X){let _=DJ(J.seconds.values,U.second),G=I4({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:_.value},X,TU($));if(G!==null)return G;return I4(CX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),X,TU($))??$+60000}function RX($,U,J){let X=typeof $==="string"?RU($):$,_=J?.timeZone??qK(),G=C$(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let Q=0;Q<1e5;Q+=1){let D=sj(G,_);if(!X.months.values.includes(D.month)){G=Bu(G,D,X,_);continue}if(!LK(D,X)){G=BK(G,D,_);continue}if(!X.hours.values.includes(D.hour)){G=Wu(G,D,X,_);continue}if(!X.minutes.values.includes(D.minute)){G=Ku(G,D,X,_);continue}if(!X.seconds.values.includes(D.second)){G=Nu(G,D,X,_);continue}return G}throw Error(`Could not find the next cron occurrence for "${X.expression}"`)}function ej($,U,J,X){let _=typeof $==="string"?RU($):$,G=[],Q=X?.maxOccurrences;if(Q!==void 0&&(!Number.isSafeInteger(Q)||Q<=0))throw Error("Cron occurrence maxOccurrences must be a positive safe integer");let D=Q??Number.POSITIVE_INFINITY,Y=U;while(Y<=J&&G.length<D)G.push(Y),Y=RX(_,Y,X);return G}var WK=z(()=>{D$();FK();tj()});var KK=z(()=>{WK();tj()});var $H=z(()=>{KK()});function YJ($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Ou($){return typeof $==="string"&&UH.has($)}function Au($){return typeof $==="string"&&JH.has($)}function TX($){if(typeof $!=="string")return!1;try{return zU($,"schedule id"),!0}catch{return!1}}function y4($,U){return zU($,U)}function AK($){if($===void 0)return{overlap:"skip",backfill:!1};if(typeof $!=="object"||$===null)throw Error("options must be an object when provided");let{id:U,overlap:J,backfill:X,jitter:_}=$,G={overlap:"skip",backfill:!1};if(U!==void 0)G.id=y4(U,"options.id");if(J!==void 0){if(!JH.has(J))throw Error(`options.overlap must be one of ${[...JH].join(", ")}`);G.overlap=J}if(X!==void 0){if(typeof X!=="boolean")throw Error("options.backfill must be a boolean when provided");G.backfill=X}if(_!==void 0)G.jitterMs=Cu(_,"options.jitter");return G}function Cu($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let J;try{J=J$($)}catch(_){let G=_ instanceof Error?_.message:String(_);throw Error(`Invalid ${U}: ${G}`,{cause:_})}let X=Math.ceil(J);if(!Number.isSafeInteger(X)||X<=0)throw Error(`${U} must resolve to a positive number of milliseconds`);return X}function Ru($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=J$($)}catch(X){let _=X instanceof Error?X.message:String(X);throw Error(`Invalid schedule interval "every": ${_}`,{cause:X})}let J=Math.ceil(U);if(!Number.isSafeInteger(J)||J<=0)throw Error('Schedule interval "every" must resolve to a positive number of milliseconds');return{kind:"interval",intervalMs:J}}function NK($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return RU($),{kind:"cron",cronExpression:$}}function _H($){if(typeof $==="string")return NK($);if(typeof $!=="object"||$===null)throw Error('Schedule spec must be a cron string or an object with "cron" or "every"');let U="cron"in $&&$.cron!==void 0,J="every"in $&&$.every!==void 0;if(U===J)throw Error('Schedule spec must specify exactly one of "cron" or "every"');return J?Ru($.every):NK($.cron)}function Tu($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let J of U)if(!UH.has(J))throw Error(`filter.status must be one of ${[...UH].join(", ")}`)}function Eu($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function OK($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function CK($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return Tu($.status),Eu($.workflowType),OK($.limit,"limit"),OK($.offset,"offset"),$}function M$($,U){let J=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${J} ${U}.`),null}function xu($,U){let{cronExpression:J,intervalMs:X}=$,_=J!==void 0,G=X!==void 0;if(_===G)return M$(U,"with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");if(G){if(typeof X!=="number"||!Number.isSafeInteger(X)||X<=0)return M$(U,"with invalid intervalMs");return{intervalMs:X}}if(typeof J!=="string")return M$(U,"with invalid cronExpression");try{RU(J)}catch{return M$(U,"with invalid cronExpression")}return{cronExpression:J}}function Su($){let U=$.id;if(!TX(U))return M$(void 0,"with invalid id");let J=$.workflowType;if(typeof J!=="string"||J.length===0)return M$(U,"with invalid workflowType");let X=xu($,U);if(!X)return null;let _=$.status;if(!Ou(_))return M$(U,"with invalid status");let G=$.overlap;if(!Au(G))return M$(U,"with invalid overlap policy");return{id:U,workflowType:J,status:_,overlap:G,...X}}function bu($,U){let J=$.backfill;if(typeof J!=="boolean")return M$(U,"with invalid backfill flag"),null;return J}function vu($,U){let J=$.jitterMs;if(J===void 0)return;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<=0)return M$(U,"with invalid jitterMs"),null;return J}function gu($,U){let{createdAt:J,updatedAt:X}=$;if(!YJ(J)||!YJ(X))return M$(U,"with invalid timestamps");let _=$.lastFireAt;if(_!==void 0&&!YJ(_))return M$(U,"with invalid lastFireAt");let G=$.lastMissedFireAt;if(G!==void 0&&!YJ(G))return M$(U,"with invalid lastMissedFireAt");return{createdAt:J,updatedAt:X,..._!==void 0&&{lastFireAt:_},...G!==void 0&&{lastMissedFireAt:G}}}function hu($,U){let J=$.nextFireAt;if(J===void 0)return M$(U,"with invalid nextFireAt"),{ok:!1};if(J!==null&&!YJ(J))return M$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:J}}function Iu($,U){let J=$.currentWorkflowId;if(J===void 0)return{ok:!0};if(!TX(J))return M$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:J}}function yu($,U){let J=$.queuedRuns;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return M$(U,"with invalid queuedRuns"),null;return J}function mu($,U){let J=$.missedFireCount;if(J===void 0)return 0;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return M$(U,"with invalid missedFireCount"),null;return J}function uu($,U){let J=bu($,U);if(J===null)return null;let X=vu($,U);if(X===null)return null;let _=gu($,U);if(_===null)return null;let G=hu($,U);if(!G.ok)return null;let Q=Iu($,U);if(!Q.ok)return null;let D=yu($,U);if(D===null)return null;let Y=mu($,U);if(Y===null)return null;return{backfill:J,...X!==void 0&&{jitterMs:X},..._,nextFireAt:G.value,...Q.value!==void 0&&{currentWorkflowId:Q.value},missedFireCount:Y,queuedRuns:D}}function ZJ($){let U=R($);if(!u6(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let J=Su(U);if(!J)return null;let X=uu(U,J.id);if(!X)return null;return{...J,input:U.input,...X}}var UH,JH;var EX=z(()=>{I();g2();$H();D$();t6();UH=new Set(["active","paused","cancelled"]),JH=new Set(["skip","queue","cancel-running","allow"])});async function Q6($,U,J){let _=($.workflowStateWriteChains.get(U)??Promise.resolve()).catch(()=>{return}).then(J),G=_.then(()=>{return},()=>{return});$.workflowStateWriteChains.set(U,G);try{return await _}finally{if($.workflowStateWriteChains.get(U)===G)$.workflowStateWriteChains.delete(U)}}async function l($,U){let J=await $.storage.get(q.workflow(U));if(!J)return null;return n(J)}async function RK($,U){let J=await l($,U);if(!J)throw Error(`Workflow "${U}" not found`);if(J.status==="completed")return J.result;if(J.status==="failed"){let X=Error(J.error??"Workflow failed");if(J.errorStack)X.stack=J.errorStack;throw X}if(J.status==="cancelled")throw Error("Workflow cancelled");if(J.status==="timed-out"){let X=J.executionDeadline?J.executionDeadline-A6(J):0;throw new AU(U,"execution",X)}throw Error(`Workflow "${U}" is still ${J.status}`)}function ku($,U,J,X){let _=X.includePendingAtomicSideEffects?VX($,U):void 0,G=_===void 0?J:[...J,..._.operations],D=$.storage.capabilities().conditionalBatch?_?.conditions??[]:[];return{operations:G,conditions:D,hasPendingSideEffects:_!==void 0}}async function xX($,U,J,X={}){let _=ku($,U.id,J,X);if(await Z$($,_.operations,_.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),_.hasPendingSideEffects)MX($,U.id)}async function EU($,U){let J=await $.storage.get(q.schedule(U));return J?ZJ(J):null}async function jJ($,U){let J=await EU($,U);if(!J)throw Error(`Schedule "${U}" not found`);return J}async function D6($,U,J){let X=[{type:"put",key:q.schedule(U.id),value:B(U)}];if((J?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let G=l1(U,U.nextFireAt);X.push(...P$({id:u1(U.id),workflowId:U.id,fireAt:G,kind:"schedule"}))}await $.storage.batch(X)}async function TK($,U){let J=await $.storage.get(q.workflowHeaders(U));if(!J)return;return VB(J)}var R$=z(()=>{b();I();D$();WX();O6();h4();AX();$$();Y$();EX()});async function XH($,U,J){if(J===void 0){let _=await $.storage.get(q.attribute(U));if(!_)return;J=R(_)}let X=K$(U,J,{});if(X.push({type:"delete",key:q.attribute(U)}),X.length>0)await $.storage.batch(X)}function SX($,U){return{...Object.fromEntries(Object.entries($).filter(([X])=>X.startsWith("weft:"))),...U}}async function GH($,U,J){if(Object.keys(J).length===0)return;let X=K$(U,{},J);await $.storage.batch([{type:"put",key:q.attribute(U),value:B(J)},...X])}function r1($,U){let J=[];if(V$($.status))J.push({type:"delete",key:q.terminalWorkflow($.updatedAt,$.id)});if(V$(U.status))J.push({type:"put",key:q.terminalWorkflow(U.updatedAt,U.id),value:fu});return J}async function QH($,U,J,X={}){return await Q6($,U,async()=>{let _=await $.storage.get(q.workflow(U));if(!_)return null;let G=n(_);if(X.allowedStatuses&&!X.allowedStatuses.includes(G.status))return null;let Q=$.options.getNow(),D={...G,...J,updatedAt:Q},Y=X.buildAdditionalOperations?.(G,Q)??[];return await xX($,G,[...r1(G,D),{type:"put",key:q.workflow(U),value:B(D)},...h$(U,G,D).batchOps,...Y],{includePendingAtomicSideEffects:V$(D.status)}),{previousState:G,updatedAt:Q}})}async function bX($,U,J,X){return await Q6($,U,async()=>{let _=await $.storage.get(q.workflow(U));if(!_)throw new p1(U);let G=n(_),Q=F$(G.tags)??[],D=pu(J,"Workflow tags")??[];if(D.length===0)return!1;let Y=wu(Q,D,X);if(cu(Q,Y))return!1;let Z={...G,updatedAt:$.options.getNow()};if(Y!==void 0)Z.tags=Y;else delete Z.tags;return await $.storage.batch([...r1(G,Z),{type:"put",key:q.workflow(U),value:B(Z)},...h$(U,G,Z).batchOps,...b1(U,Q,Y)]),!0})}function wu($,U,J){let X=new Set($);for(let G of U)if(J==="add")X.add(G);else X.delete(G);let _=F$([...X]);if(J==="add"&&_!==void 0)Hj(_,"Workflow tags");return _}function cu($,U){return $.length===(U?.length??0)&&$.every((J,X)=>J===U?.[X])}async function EK($,U,J,X,_){v4(U);let G=_??await du($,U),Q=0;for(let D of G){let Y=!1;try{Y=await bX($,D,J,X)}catch(Z){if(!(Z instanceof p1))throw Z}if(Y)Q+=1}return{modified:Q}}function o1($){for(let[U,J]of Object.entries($))if(Array.isArray(J))for(let X of J)Uj(W$(X),U);else Uj(W$(J),U)}function pu($,U="options.tags"){if($===void 0)return;return F$(x9($,U))}async function du($,U){let J=[],X=I1(U?.offset,"offset")??0,_=I1(U?.limit,"limit");if(_===0)return J;for await(let G of k9($,U)){if(X>0){X-=1;continue}if(J.push(G.id),_!==void 0)_-=1;if(_===0)return J}return J}var fu;var a1=z(()=>{b();dj();I();w$();t6();_6();z$();R$();Y$();r$();w2();fu=new Uint8Array(0)});function gX($,U,J){let X=vX.get($);if(!X)X=new Map,vX.set($,X);X.set(U,new Uint8Array(J))}function xK($,U){let J=vX.get($)?.get(U);return J?new Uint8Array(J):void 0}function m4($,U){vX.get($)?.delete(U)}var vX;var xU=z(()=>{vX=new WeakMap});async function bK($,U,J){let X=U===void 0?void 0:B9(U),_=F$(X?.tags),G=await p9($,X,_),Q=G!==null?await iu($,G,X,_,J):await lu($,X,_,J);return BB(ru(Q),X)}async function iu($,U,J,X,_){let G=[...U];if(G.length>k6)throw new FU(k6);let Q=[];for(let D=0;D<G.length;D+=X6){let Y=G.slice(D,D+X6),Z=await Promise.all(Y.map((L)=>$.storage.get(q.workflow(L)))),j=await d9($,Z,J),H=[];for(let L of Z){if(!L)continue;let F=n(L);if(!e6(F,J,U,X,j.get(F.id)??null))continue;H.push(F)}Q.push(...await nu($,H,_))}return Q}async function lu($,U,J,X){let _=[],G=0;for await(let[Q,D]of $.storage.scan("wf:")){if(!f2(Q))continue;if(G+=1,G>k6)throw new FU(k6);let Y=n(D),Z=await i9($,Y.id,U);if(!e6(Y,U,null,J,Z))continue;let j=vK(Y,X)?await $.storage.get(q.attribute(Y.id)):null;_.push(IK(Y,gK(j)))}return _}async function nu($,U,J){let X=new Map;return await Promise.all(U.map(async(_)=>{if(!vK(_,J))return;X.set(_.id,await $.storage.get(q.attribute(_.id)))})),U.map((_)=>IK(_,gK(X.get(_.id)??null)))}function vK($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function gK($){if($===null)return;let U=R($);if(!hK(U))return;let J=U.failureCategory;if(fU(J))return J;return eJ(J)}function hK($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function IK($,U){let J=$.failureCategory??U;return{id:$.id,type:$.type,status:$.status,...$.tags!==void 0&&{tags:$.tags},version:$.versionTuple.workflowVersion,createdAt:$.createdAt,updatedAt:$.updatedAt,...$.executionDeadline!==void 0&&{executionDeadline:$.executionDeadline},...J!==void 0&&J!==null&&{failureCategory:J}}}function ru($){return $.toSorted((U,J)=>{if(U.createdAt!==J.createdAt)return J.createdAt-U.createdAt;if(U.id<J.id)return-1;if(U.id>J.id)return 1;return 0})}async function*DH($,U){yield*k9($,U)}async function*YH($,U){let J=ou(U);if(SK(J))return;let X=[];for await(let _ of DH($,U)){if(au(J))continue;if(X.push(_),su(J),X.length===hX)yield X,X=[];if(SK(J))break}if(X.length>0)yield X}function ou($){return{remainingOffset:I1($?.offset,"offset")??0,remainingLimit:I1($?.limit,"limit")}}function au($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function su($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function SK($){return $.remainingLimit===0}async function yK($,U){let J=await $.storage.get(q.attribute(U));if(!J)return null;let X=R(J);if(!hK(X))return null;return X}async function mK($,U,J){let X=await $.storage.get(q.workflow(U));if(X){let Z=n(X),j=$.registrations.get(Z.type);if(j?.searchAttributes){let H=j.searchAttributes;for(let[L,F]of Object.entries(J)){if(!(L in H))throw Error(`Unknown search attribute "${L}". Registered attributes: ${Object.keys(H).join(", ")}`);v1(L,F,H[L])}}}o1(J);let _=await $.storage.get(q.attribute(U)),G=_?R(_):{},Q={...G,...J},D=K$(U,G,Q),Y=[{type:"put",key:q.attribute(U),value:B(Q)},...D];await $.storage.batch(Y)}async function uK($,U,...J){await bX($,U,J,"add")}async function kK($,U,...J){await bX($,U,J,"remove")}var hX=1000;var HJ=z(()=>{b();I();l6();$j();w$();_6();a1();Tj();Ej();$$();Y$();r$();w2()});async function PJ($,U,J,X){let{effectiveLimit:_,manualOffset:G}=$k($,U,J.limit);if(_===0)return{deleted:0};let Q=G,D=0,Y=J.expiredOnly&&U===void 0?eu($,J.now):DH($,U);for await(let Z of Y){if(!await Xk($,Z,J.expiredOnly,J.now))continue;if(Q>0){Q-=1;continue}if(await ZH($,Z,X),D+=1,_!==void 0&&D>=_)break}return{deleted:D}}function tu($){let U=null,J=(X)=>{for(let _ of[X?.completed,X?.failed,X?.cancelled,X?.timedOut]){if(_===void 0)continue;U=U===null?_:Math.min(U,_)}};J($.options.retention);for(let X of $.registrations.values())J(X.retention);return U}async function*eu($,U){let J=tu($);if(J===null)return;let X=q.terminalWorkflowPrefix(),_=U-J,G=`${X}${String(_).padStart(16,"0")}:\xFF`;for await(let[Q]of $.storage.scan(X,{lte:G})){let D=Q.slice(Q.lastIndexOf(":")+1),Y=x6(D);if(Y===null)continue;let Z=await $.storage.get(q.workflow(Y));if(!Z){await $.storage.delete(Q);continue}let j=n(Z);if(!V$(j.status))continue;yield j}}function $k($,U,J){return{manualOffset:Uk(U?.offset),effectiveLimit:_k(Jk(U?.limit),J)}}function Uk($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function Jk($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function _k($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function Xk($,U,J,X){if(!V$(U.status))return!1;if(await x$($.storage,q.teardownOwed(U.id)))return!1;if(!J)return!0;let _=Gk($,U);return _!==null&&_<=X}function Gk($,U){if(!V$(U.status))return null;let J=$.registrations.get(U.type)?.retention??$.options.retention,X=HB(J,U.status);if(X===void 0)return null;return U.updatedAt+X}async function ZH($,U,J){let X=await jH($,U);await $.storage.batch(X),HH($,U.id,J)}async function jH($,U){let J=U.id,X=await $.storage.get(q.attribute(J)),_=Qk(U,X),G=await Zk($,U);return Wk(_,G),_.push(...h$(J,U,null).batchOps),_}function HH($,U,J){m4($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[X,_]of $.pendingAsyncActivities)if(_.workflowId===U)$.pendingAsyncActivities.delete(X);$.pendingAsyncActivityResolutions.delete(U),$.eventLogHeads.delete(U),$.workflowVersionTuples.delete(U),$.handleCache.delete(U),$.resultResolvers.delete(U),$.workflowHeaders.delete(U),$.workflowNestingDepths.delete(U),$.workflowTypeByWorkflowId.delete(U),J(U)}function Qk($,U){return[...Dk($.id,U),...Yk($)]}function Dk($,U){if(!U)return[];let J=R(U);return K$($,J,{}).filter(fK)}function Yk($){return b1($.id,F$($.tags),void 0).filter(fK)}function fK($){return $.type==="delete"}async function Zk($,U){let J=U.id,X=jk(U);return Hk(X,U),Pk(X,U),await zk($.storage,X,J),await Fk($.storage,X,J),X}function jk($){return new Set([q.workflow($.id),q.checkpoint($.id),q.workflowHeaders($.id),q.terminalCleanupNeeded($.id),q.workflowConcurrencyHolder($.id),q.workflowHasServices($.id),q.finalizerState($.id),q.teardownOwed($.id),q.attribute($.id),q.terminalWorkflow($.updatedAt,$.id)])}function Hk($,U){if(U.executionDeadline===void 0)return;$.add(q.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function Pk($,U){if(U.terminalCleanupToken===void 0)return;let J=k1(qk(U),U.terminalCleanupToken);$.add(q.terminalCleanup(U.updatedAt+IX,J))}function qk($){return $.status==="cancelled"||$.status==="timed-out"}async function zk($,U,J){let X=q.updatePrefix(J),_=await wK($,X);for(let G of _)U.add(G),Lk(U,X,G)}function Lk($,U,J){let X=J.slice(U.length);if(X.length>0)$.add(q.updateResponse(X))}async function Fk($,U,J){for(let X of Bk(J)){let _=await wK($,X);for(let G of _)U.add(G)}await Vk($,U,J)}async function Vk($,U,J){let X=q.fleetEventByWorkflowPrefix(J);for await(let[_]of $.scan(X)){U.add(_);let G=Mk(X,_);if(G!==null)U.add(q.fleetEvent(G))}}function Mk($,U){if(!U.startsWith($))return null;let J=U.slice($.length);if(!/^\d+$/.test(J))return null;let X=Number(J);return Number.isSafeInteger(X)?X:null}function Bk($){let U=K($);return[`wf:${U}:ckpt:`,`wf:${U}:timeline:`,`ev:${U}:`,`sig:${U}:`,`review:${U}:`,`offload:${U}:`,`archive:${U}:`,`blob:${U}:`,`state:execution:${U}:`,`tool-effect:${U}:`,`upk:${U}:`,`actrec:v1:${U}:`,YX($),`sigres:v1:${U}:`]}function Wk($,U){for(let J of U)$.push({type:"delete",key:J})}async function wK($,U){let J=[];for await(let X of rJ($,U))J.push(X);return J}var IX=60000;var yX=z(()=>{b();I();w$();_6();f1();xU();HJ();$$();Y$();r$()});function mX($){let U=new WeakSet,J=(X)=>{if(Kk(X))return!0;if(Nk(X))return!1;if(Array.isArray(X))return Ok(X,U,J);if(typeof X==="object")return Ak(X,U,J);return!1};return J($)}function cK($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(mX($))return $;try{let U=JSON.stringify($);if(U===void 0)return PH($);let J=JSON.parse(U);return mX(J)?J:PH($)}catch{return PH($)}}function Kk($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function Nk($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function Ok($,U,J){if(U.has($))return!1;U.add($);for(let X of $)if(!J(X))return!1;return U.delete($),!0}function Ak($,U,J){if(!Ck($))return!1;if(U.has($))return!1;U.add($);for(let X of Object.values($))if(!J(X))return!1;return U.delete($),!0}function PH($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function Ck($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function qJ($){let U=qH($);return sJ(U)}function qH($){if($===null)return"null";if($===void 0)return Rk;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(qH).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((X)=>U[X]!==void 0).map((X)=>`${JSON.stringify(X)}:${qH(U[X])}`).join(",")+"}"}function Tk($){if(typeof $!=="object"||$===null)return!1;let U=$;if(typeof U.status!=="string"||typeof U.effectName!=="string")return!1;let J=U.status;if(J==="in-flight")return typeof U.recordedAt==="number";if(J==="committed")return mX(U.output)&&typeof U.completedAt==="number";if(J==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class Ek{#$;#U;#J;#_=0;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}get duplicatesPrevented(){return this.#_}recordReplay(){this.#_++}async lookup($){let U=q.toolEffect(this.#U,this.#J,$),J=await this.#$.get(U);if(!J)return null;let X=R(J);if(!Tk(X))return null;return X}async record($,U){let J={status:"in-flight",effectName:U,recordedAt:Date.now()};await this.#X($,J)}async commit($,U,J){let X={status:"committed",effectName:U,output:cK(J),completedAt:Date.now()};await this.#X($,X)}async abort($,U,J){let X={status:"aborted",effectName:U,reason:J,completedAt:Date.now()};await this.#X($,X)}async#X($,U){let J=q.toolEffect(this.#U,this.#J,$);await this.#$.put(J,B(U))}}var Rk="\x00undefined";var pK=z(()=>{V6();b();I()});function kX($,U,J){let _=(U.status===void 0?J:Array.isArray(U.status)?U.status:[U.status]).filter((Q)=>J.includes(Q));if(_.length===0)return{...U,status:[]};if(_.length!==1)return{...U,status:_};let[G]=_;return{...U,status:G??[]}}async function zJ($,U,J,X,_,G){let Q=await yk($,J);return LH(U,X,_,Q,G)}function LH($,U,J,X,_){let G=vk(U),Q=bk(G,X),D=gk($,G,J,Q,_),Y=hk($,G,J,X),Z=Q.sampleWorkflowIds;return{workflowIds:X.map((j)=>j.id),confirmationToken:Y,scope:Q,preview:{dryRun:!0,action:$,matched:X.length,requestId:D,scope:Q,sampleWorkflowIds:Z,confirmationToken:Y,confirmationTokenVersion:1}}}function bk($,U){let J=U.slice(0,dK).map((X)=>X.id);return{matched:U.length,filter:$,statuses:zH(U.map((X)=>X.status)),workflowTypes:zH(U.map((X)=>X.type)),sampleWorkflowIds:J,sampleLimit:dK}}function vk($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?zH($.status):$.status;if($.type!==void 0)U.type=$.type;let J=F$($.tags);if(J!==void 0)U.tags=J;if($.attributes!==void 0)U.attributes=$.attributes.map((X)=>({key:A$(X.key),...X.value===void 0?{}:{value:Array.isArray(X.value)?[...X.value]:X.value},...X.gt===void 0?{}:{gt:X.gt},...X.lt===void 0?{}:{lt:X.lt},...X.gte===void 0?{}:{gte:X.gte},...X.lte===void 0?{}:{lte:X.lte}})).toSorted((X,_)=>qJ(X).localeCompare(qJ(_)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function gk($,U,J,X,_){let G=_.requestId?.trim();if(G!==void 0&&G.length>0)return G;return`bulk:${qJ({action:$,actionParameters:uX(J),filterSummary:U,matched:X.matched,sampleWorkflowIds:X.sampleWorkflowIds})}`}function hk($,U,J,X){return`bulk:${qJ({version:1,action:$,actionParameters:uX(J),filterSummary:U,workflows:X.map((_)=>({id:_.id,status:_.status}))})}`}function s1($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new o2}function t1($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function e1($,U,J,X,_){let G=await Ik($,U,J,_);return{...X,auditEvent:G}}async function Ik($,U,J,X){let _=$.options.getNow(),G=J.requestId?.trim(),Q=G!==void 0&&G.length>0?G:U.preview.requestId,D={type:"bulk-operation:audit",action:U.preview.action,requestId:Q,timestamp:_,principal:J.principal??Sk,filterSummary:U.scope.filter,scope:U.scope,affectedCount:X,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(q.bulkOperationAudit(_,Q,U.confirmationToken),B(D)),D}function $0($){let U=$.bulkConcurrency;if(U!==void 0&&(!Number.isSafeInteger(U)||U<1))throw Error('Field "bulkConcurrency" must be a positive integer');let J="confirmationToken"in $?$.confirmationToken:void 0;if(J!==void 0&&J.length>HG)throw Error(`Field "confirmationToken" must be at most ${String(HG)} characters`);if($.requestId!==void 0&&$.requestId.length>jG)throw Error(`Field "requestId" must be at most ${String(jG)} characters`);return $}function LJ($){return $.bulkConcurrency??xk}function FJ($,U,J){return{id:U,error:J instanceof Error?J.message:String(J)}}async function yk($,U){let J=[];for await(let X of YH($,U))for(let _ of X)J.push(iK(_));return J}function iK($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function zH($){return[...new Set($)].toSorted((U,J)=>U.localeCompare(J))}function uX($){if(mk($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(uX);let U=$,J={};for(let X of Object.keys(U).toSorted())J[X]=uX(U[X]);return J}function mk($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function lK($,U){let J=[];for await(let X of YH($,U))for(let _ of X){if(!V$(_.status))throw new KU;J.push(iK(_))}return J}var dK=20,xk=1,Sk;var nK=z(()=>{b();I();pK();w$();_6();z$();HJ();Y$();Sk={method:"in-process"}});function U0(){return{holders:[],waiters:[]}}function uk($){if($===void 0)return U0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function kk($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function FH($,U){let{holderId:J,now:X}=U,_=uk($);return{holders:kk(_.holders,X).filter((G)=>G.holderId!==J),waiters:_.waiters.filter((G)=>G!==J)}}var rK=()=>{};function fk($,U){return{key:UU($),expectedValue:U===0?null:B(U)}}function wk($){if($===void 0)return U0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function ck($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function pk($,U){let J=wk($),X=ck(J.holders,U.now);if(X.some((_)=>_.holderId===U.workflowId))return{acquired:!0,record:{holders:X.map((_)=>_.holderId===U.workflowId?{holderId:U.workflowId,leaseExpiresAt:oK}:_),waiters:[]}};if(X.length>=U.limit)return{acquired:!1,record:{holders:X,waiters:[]}};return{acquired:!0,record:{holders:[...X,{holderId:U.workflowId,leaseExpiresAt:oK}],waiters:[]}}}function dk($,U,J){if(J.key===void 0)return $;let X;try{X=J.key(U)}catch(_){throw Error(`workflow("${$}").concurrency.key threw while resolving the partition key: ${_ instanceof Error?_.message:String(_)}`,{cause:_})}if(typeof X!=="string")throw TypeError(`workflow("${$}").concurrency.key must return a string partition key`);return X}function ik($,U){return{version:VH,workflowType:$,partitionKey:U}}function lk($){let U=R($);if(typeof U!=="object"||U===null)return null;let J=U;if(J.version!==VH||typeof J.workflowType!=="string"||typeof J.partitionKey!=="string")return null;return{version:VH,workflowType:J.workflowType,partitionKey:J.partitionKey}}async function fX($,U,J,X,_){let G=dk(U,X,_),Q=q.workflowConcurrency(U,G),D=await JU($.storage,Q,{initial:U0()}),Y=pk(D.value,{workflowId:J,now:$.options.getNow(),limit:_.max});if(!Y.acquired)throw new s2({workflowType:U,limit:_.max,partitionKey:G});return{stateKey:Q,conditions:[fk(Q,D.version)],operations:[{type:"put",key:Q,value:B(Y.record)},{type:"put",key:UU(Q),value:B(D.version+1)},{type:"put",key:q.workflowConcurrencyHolder(J),value:B(ik(U,G))},{type:"put",key:q.terminalCleanupNeeded(J),value:new Uint8Array(0)}]}}async function J0($,U){let J=q.workflowConcurrencyHolder(U),X=await $.storage.get(J);if(X===null)return;let _=lk(X);if(_===null){await $.storage.delete(J);return}let G=q.workflowConcurrency(_.workflowType,_.partitionKey);await new R1($.storage,G,{initial:U0()}).update((D)=>FH(D,{holderId:U,now:$.options.getNow()})),await $.storage.delete(J)}var VH=1,oK;var VJ=z(()=>{b();_U();I();rK();z$();oK=Number.MAX_SAFE_INTEGER});async function wX($,U,J){let X=[];for(let _=0;_<$.length;_+=U){let G=$.slice(_,_+U);X.push(...await Promise.all(G.map(async(Q)=>{try{return{item:Q,status:"fulfilled",value:await J(Q)}}catch(D){return{item:Q,status:"rejected",reason:D}}})))}return X}async function sK($,U,J){return PJ($,U,{expiredOnly:!1,now:$.options.getNow()},J)}async function ok($,U,J={}){J=$0(J),v4(U);let X=kX($,U,aK),_=await zJ($,"cancel",X,U,{},J);if(J.dryRun===!0)return _.preview;s1(J,_);let G=_.workflowIds,Q=LJ(J),D=0,Y=[],Z=await wX(G,Q,async(H)=>{try{if(await $.engine.cancel(H),(await l($,H))?.status==="cancelled")return{status:"cancelled"};return{status:"failed",error:{id:H,error:"Workflow no longer cancellable"}}}catch(L){return{status:"failed",error:FJ($,H,L)}}});for(let H of Z){if(H.status==="rejected"){Y.push(FJ($,H.item,H.reason));continue}let{value:L}=H;if(L.status==="cancelled"){D+=1;continue}Y.push(L.error)}let j={cancelled:D,failed:Y.length,errors:Y};if(!t1(J))return j;return e1($,_,J,j,D)}async function tK($,U,J={}){return ok($,U,J)}async function ak($,U,J={}){J=$0(J),v4(U);let X=kX($,U,nk),_=await zJ($,"retry-failed",X,U,{},J);if(J.dryRun===!0)return _.preview;s1(J,_);let G=LJ(J),Q=0,D=[],Y=await wX(_.workflowIds,G,async(j)=>{try{return await sk($,j),{status:"retried"}}catch(H){return{status:"failed",error:FJ($,j,H)}}});for(let j of Y){if(j.status==="rejected"){D.push(FJ($,j.item,j.reason));continue}let{value:H}=j;if(H.status==="retried"){Q+=1;continue}D.push(H.error)}let Z={retried:Q,failed:D.length,errors:D};if(!t1(J))return Z;return e1($,_,J,Z,Q)}async function eK($,U,J={}){return ak($,U,J)}async function sk($,U){let J=await l($,U);if(J===null)throw Error("Workflow no longer exists");if(J.status!=="failed")throw Error(`Workflow is ${J.status}, not failed`);if(await $.storage.get(q.checkpoint(U))!==null){await tk($,J),await $.engine.resume(U);return}await $.engine.start(J.type,J.input,{id:U,onTerminalConflict:"start-new",...J.tags!==void 0?{tags:J.tags}:{}})}async function tk($,U){let J=await Q6($,U.id,async()=>ek($,U.id));if(J.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(J.terminalCleanupTimerId,U.id)}async function ek($,U){let J;for(let X=0;X<rk;X+=1){let _=await $.storage.get(q.workflow(U));if(_===null)throw Error("Workflow no longer exists");let G=n(_);if(G.status!=="failed")throw Error(`Workflow is ${G.status}, not failed`);let Q=await $.storage.get(q.checkpoint(U));if(Q===null)throw Error("Checkpoint no longer exists");let D=H$(Q),Y=$.registrations.get(G.type);if(Y===void 0)throw Error(`No workflow registered with name "${G.type}" (needed to retry "${U}")`);let Z=Y.concurrency===void 0?void 0:await fX($,G.type,U,G.input,Y.concurrency);J=Z?.stateKey??J;let j=Uf($,G),H=await Jf($,U),L=[...r1(G,j),{type:"put",key:q.workflow(U),value:B(j)},...h$(U,G,j).batchOps,..._f(U,H,D.searchAttributes),...j.executionDeadline===void 0?[]:P$({id:`deadline:${U}`,workflowId:U,fireAt:j.executionDeadline,kind:"execution-deadline"}),...Z?.operations??[]],F=Z?.conditions??[];if(await $f($,L,F))return{terminalCleanupTimerId:G.terminalCleanupToken===void 0?void 0:k1(!1,G.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${J??U}" changed too many times while retrying failed workflow "${U}"`)}async function $f($,U,J){if(J.length===0)return await $.storage.batch(U),!0;return X$($.storage,"conditionalBatch","retry failed workflow"),G$($.storage,J,U)}function Uf($,U){let J={...U,status:"running",updatedAt:$.options.getNow()};return delete J.error,delete J.errorStack,delete J.failureCategory,delete J.result,delete J.terminationReason,delete J.terminalCleanupToken,J}async function Jf($,U){let J=await $.storage.get(q.attribute(U));if(J===null)return{};return R(J)}function _f($,U,J){let X=K$($,U,J);if(Object.keys(J).length===0)X.push({type:"delete",key:q.attribute($)});else X.push({type:"put",key:q.attribute($),value:B(J)});return X}async function MH($,U,J,X,_){let G=$0(_??{});if(v4(U),J.length===0)throw Error('Field "name" must be a non-empty string');let Q=kX($,U,aK),D=await zJ($,"signal",Q,U,{name:J,payload:X},G);if(G.dryRun===!0)return D.preview;s1(G,D);let Y=D.workflowIds,Z=LJ(G),j=0,H=0,L=await wX(Y,Z,async(W)=>{try{return await $.engine.signal(W,J,X),{status:"signalled"}}catch{return{status:"failed"}}});for(let W of L)if(W.status==="fulfilled"&&W.value.status==="signalled")j+=1;else H+=1;let F={signalled:j,failed:H};if(!t1(G))return F;return e1($,D,G,F,j)}async function Xf($,U,J,X={}){X=$0(X),v4(U);let _=await lK($,U),G=LH("delete",U,{},_,X);if(X.dryRun===!0){let j=[];for(let H of G.workflowIds)if(await x$($.storage,q.teardownOwed(H)))j.push(H);return j.length>0?{...G.preview,skippedTeardownPending:j}:G.preview}s1(X,G);let Q=LJ(X),D=0,Y=[];for(let j=0;j<G.workflowIds.length;j+=hX){let H=G.workflowIds.slice(j,j+hX),L=await Gf($,H),F=[];for(let m of L)if(await x$($.storage,q.teardownOwed(m.id)))Y.push(m.id);else F.push(m);let W=await wX(F,Q,async(m)=>{return await ZH($,m,J),m.id}),E=[];for(let m of W)if(m.status==="fulfilled")D+=1;else E.push(m.reason);if(E.length>0)throw AggregateError(E,`Bulk delete failed for ${E.length} workflow(s) after deleting ${D} workflow(s)`)}let Z={deleted:D,...Y.length>0?{skippedTeardownPending:Y}:{}};if(!t1(X))return Z;return e1($,G,X,Z,D)}async function $N($,U,J,X={}){return Xf($,U,J,X)}async function Gf($,U){let J=[];for(let X of U){let _=await l($,X);if(_===null)continue;if(!V$(_.status))throw new KU;J.push(_)}return J}async function UN($,U,J,X={}){return _N($,U,J,"add",X)}async function JN($,U,J,X={}){return _N($,U,J,"remove",X)}async function _N($,U,J,X,_){_=$0(_),v4(U);let Q=await zJ($,X==="add"?"tag:add":"tag:remove",U,U,{tags:J},_);if(_.dryRun===!0)return Q.preview;s1(_,Q);let D=await EK($,U,J,X,Q.workflowIds);if(!t1(_))return D;return e1($,Q,_,D,D.modified)}var aK,nk,rk=5;var cX=z(()=>{b();dj();J6();I();D$();w$();a1();yX();nK();z$();HJ();$$();R$();Y$();VJ();r$();yX();aK=["pending","running","suspended"],nk=["failed"]});function pX($,U){let J=new QJ(U,$.engine);return Zf($,U,J),J}function Qf($,U){let{promise:J,resolve:X,reject:_}=Promise.withResolvers(),G={promise:J,resolve:X,reject:_};return $.resultResolvers.set(U,G),J.catch(()=>{}),G}function XN($,U){let J=$.resultResolvers.get(U);if(J)return J.promise;if($.disposed){let _=Promise.reject(new N6);return _.catch(()=>{}),_}let X=Qf($,U);return Df($,U,X),X.promise}async function Df($,U,J){try{let X=await l($,U);if(Yf($,U,J))return;if(!X){$.resultResolvers.delete(U),J.reject(Error(`Workflow "${U}" not found in storage`));return}if(X.status==="running"||X.status==="pending"||X.status==="suspended")return;try{let _=await RK($,U);BH($,U,J),J.resolve(_)}catch(_){BH($,U,J),J.reject(_)}}catch(X){BH($,U,J),J.reject(X)}}function Yf($,U,J){let X=$.resultResolvers.get(U);if(X===void 0||X===J)return!1;return X.promise.then(J.resolve,J.reject),!0}function BH($,U,J){if($.resultResolvers.get(U)===J)$.resultResolvers.delete(U)}function Zf($,U,J){let X=$.handleCache.get(U);if(X)$.finalizationRegistry.unregister(X.unregisterToken);let _={};$.handleCache.set(U,{ref:new WeakRef(J),unregisterToken:_}),$.finalizationRegistry.register(J,U,_)}var WH=z(()=>{z$();h4();R$()});function Hf($){if(typeof $!=="object"||$===null)return!1;let U=$;if(U.type!=="event-log-watermark"||U.version!==1)return!1;let J=U.prevHash;if(typeof J!=="string"||J.length===0)return!1;return Pf(U.sequence,U.deletedThrough)}function Pf($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function u4($,U){let J=await $.get(q.eventWatermark(U));if(J===null)return null;let X=R(J);return Hf(X)?X:null}async function GN($,U,J,X,_){if(X===null)return null;let G=Math.max(0,J-X+1),Q=await u4($,U),D=Q?.sequence??0,Y=Math.min(G,D+jf);if(Y<=D)return null;let Z=await Lf($,U,D,Y);if(Z===null)return null;let j=aJ(Z.lastDeletedBytes),H={type:"event-log-watermark",version:1,sequence:Y,prevHash:j,deletedThrough:Y-1,...qf(zf(Q?.checkpointReplay,Z.deletedEntries))};for(let L=D;L<Y;L+=1)_.push({type:"delete",key:q.event(U,L)});return _.push({type:"put",key:q.eventWatermark(U),value:B(H)}),{watermark:H,deletedEntries:Z.deletedEntries,deletedRange:{from:D,to:Y-1}}}function qf($){return $===void 0?{}:{checkpointReplay:$}}function zf($,U){let J=$;for(let X of U){let _=R(X);if(!s6(_))continue;J=A9(J,h1(_.payload))}return J}async function Lf($,U,J,X){let _=[],G=J,Q=q.eventPrefix(U),D=q.event(U,J),Y=q.event(U,X);for await(let[,j]of $.scan(Q,{gte:D,lt:Y})){let H=R(j);if(!s6(H)||H.sequence!==G)return null;_.push(j),G+=1}if(G!==X||_.length===0)return null;let Z=_[_.length-1];if(Z===void 0)return null;return{deletedEntries:_,lastDeletedBytes:Z}}function QN($){return B($)}var jf=1000;var MJ=z(()=>{V6();b();I();y2();qU()});async function DN($,U){for(let X=0;X<5;X+=1){let _=await u4($,U),G=await I2($,U),Q=await Ff($,U,_,G);if(Q.outcome==="ok")return{valid:!0};let D=await u4($,U),Y=await I2($,U),Z=(D?.sequence??-1)>(_?.sequence??-1),j=Y.sequence!==G.sequence||Y.lastHash!==G.lastHash;if(Z||j)continue;return{valid:!1,firstInvalidSequence:Q.firstInvalidSequence}}return{valid:!1,indeterminate:!0,reason:"concurrent-compaction"}}async function Ff($,U,J,X){let _=J?.prevHash??h2,G=J?.sequence??0,Q=q.eventPrefix(U),D=J?{gte:q.event(U,J.sequence)}:void 0,Y=await Mf($,Q,D,_,G);if(Y.outcome==="invalid")return Y;if(Y.entriesSeen===0&&J!==null)return{outcome:"invalid",firstInvalidSequence:J.sequence};return Vf(Y,X)}function Vf($,U){if(U.sequence===jU.sequence)return $.entriesSeen===0?{outcome:"ok"}:{outcome:"invalid",firstInvalidSequence:0};if($.entriesSeen===0)return{outcome:"invalid",firstInvalidSequence:U.sequence};if($.lastSequence!==U.sequence)return{outcome:"invalid",firstInvalidSequence:$.lastSequence+1};if($.lastHash!==U.lastHash)return{outcome:"invalid",firstInvalidSequence:$.lastSequence};return{outcome:"ok"}}async function Mf($,U,J,X,_){let G=X,Q=0,D=-1;for await(let[,Y]of $.scan(U,J)){let Z=R(Y);if(!s6(Z))continue;let j=Bf(Z,G,Q===0,_);if(j.outcome==="invalid")return j;Q+=1,D=Z.sequence,G=N9(Y)}return{outcome:"scanned",entriesSeen:Q,lastSequence:D,lastHash:G}}function Bf($,U,J,X){if(J&&$.sequence!==X)return{outcome:"invalid",firstInvalidSequence:X};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}var YN=z(()=>{b();I();MJ();y2()});class a${#$;#U;constructor($,U){this.#$=$,this.#U=U}appendToBatch($,U,J,X){let{entry:_,encoded:G,newHead:Q}=this.#J($,J,X);return U.push({type:"put",key:q.event(this.#U,Q.sequence),value:G},{type:"put",key:q.eventHead(this.#U),value:B(Q)}),{newHead:Q,timestamp:_.timestamp}}async append($,U,J){let X=await this.#_(),{encoded:_,hash:G,newHead:Q}=this.#J($,X,J),D={type:"put",key:q.event(this.#U,Q.sequence),value:_},Y={type:"put",key:q.eventHead(this.#U),value:B(Q)};if(U)U.push(D,Y);else await this.#$.batch([D,Y]);return{sequence:Q.sequence,hash:G,newHead:Q}}async*scan($){let U=$?.fromSequence??0,J=q.eventPrefix(this.#U),X=q.event(this.#U,U);for await(let[,_]of this.#$.scan(J,{gte:X})){let G=R(_);if(s6(G))yield G}}async replay($){let U=[];for await(let J of this.scan()){if(J.sequence>$)break;U.push(J)}return U}async verify(){return DN(this.#$,this.#U)}async loadHead(){return this.#_()}#J($,U,J){let X=U.sequence+1,_=U.lastHash,G={type:$.type,workflowId:this.#U,sequence:X,prevHash:_,payload:$.payload,timestamp:Date.now()};if(J!==void 0)G.versionTuple=J;let Q=B(G),D=N9(Q);return{entry:G,encoded:Q,hash:D,newHead:{sequence:X,lastHash:D}}}async#_(){return I2(this.#$,this.#U)}}var SU=z(()=>{b();I();y2();YN()});async function KH($,U,J,X){let _=$.options.historyPolicy.maxEvents;if(_===null||J.sequence+1<=_)return!1;return await X.enforceHistoryCircuitBreaker(U),!0}async function jN($,U,J){if($.options.historyPolicy.maxEvents===null)return!1;let X=$.eventLogHeads.get(U)??await new a$($.storage,U).loadHead();return KH($,U,X,J)}function BJ($,U,J){return J.createWorkflowHandleWithResultPromise(U)}function X4($,U,J,X){if(!J||J.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(J)),$.workflowsNeedingTerminalCleanup.add(U)}async function bU($,U,J){return TK($,U)}async function NH($,U,J){if(await x$($.storage,q.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function OH($,U,J,X){if(U===void 0)return;return F$(x9(U,J??"options.tags"))}async function AH($,U,J){try{await J.processPendingUpdatesForHandlers(U)}catch(X){J.handleCleanupError("processPendingUpdates",X,U)}}var ZN="weft:forkedFrom",c$;var G4=z(()=>{b();SU();t6();_6();R$();c$=new Uint8Array(0)});function _0($,U,J){return{workflowVersion:U.version}}function dX($,U,J){return U.versionTuple}function iX($,U,J,X,_,G){let Q=_B(X.version,_.version),D=_0($,_,G),Y=$B(dX($,J,G),D),Z=Y.workflowVersion!==void 0||Y.agentVersion!==void 0||Y.toolVersions!==void 0;if(Q==="incompatible"||Z)HN($,U,J,_,Y,G);return{state:J,checkpoint:X,versionTuple:D,shouldPersistPreparedState:!1}}async function CH($,U,J,X,_,G,Q){let D=iX($,U,J,X,G,Q),Y=await PU($.storage,U,D.checkpoint);return{state:D.state,checkpoint:Y,serializedCheckpoint:_,versionTuple:D.versionTuple}}function HN($,U,J,X,_,G){throw new Pj(U,J.type,J.versionTuple.workflowVersion,X.version,void 0,_)}var WJ=z(()=>{qj();qU()});async function nX($,U,J,X,_=()=>{}){let G=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(q.workflowHasServices(U.id))===null)return!1;if(!G){let D=Kf(U.id);_(new C4(U.id,D,[Wf]));try{await J(U.id,lX(U.id,D))}catch(Y){X("reprovideRecoveredServices",Y,U.id)}return!0}let Q;try{let D=await G({workflowId:U.id,workflowType:U.type,input:U.input});if(D.status==="available")return $.workflowServices.set(U.id,D.services),!1;Q=D.reason}catch(D){Q=D instanceof Error?D.message:String(D)}try{await J(U.id,lX(U.id,Q))}catch(D){X("reprovideRecoveredServices",D,U.id)}return!0}function lX($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function Kf($){return`Workflow "${$}" was started with services, but this engine has no resolveWorkflowServices option. Configure EngineOptions.resolveWorkflowServices before recovery so ctx.services can be re-provided.`}var Wf="EngineOptions.resolveWorkflowServices";var rX=z(()=>{b();_$()});function qN($,U,J,X,_){return{id:`delayed-start:${U}`,workflowId:U,fireAt:J,kind:"delayed-start",...X?.executionTimeout!==void 0&&{executionTimeoutMs:_.parseStartOptionDuration(X.executionTimeout,"options.executionTimeout")}}}async function zN($,U,J,X){if(J.scheduledFireAt<=$.options.getNow()){X.completeOperation(U,void 0);return}let{promise:_,resolve:G}=Promise.withResolvers();if(await $.scheduler.schedule({id:`sleep:${J.operationId}`,workflowId:U,fireAt:J.scheduledFireAt,kind:"sleep"}),Nf($,U,J.operationId,G),await _,(await X.loadWorkflowState(U))?.status==="running")X.completeOperation(U,void 0)}function Nf($,U,J,X){$.sleepResolvers.set(`${U}:${J}`,X);let _=$.sleepResolversByWorkflow.get(U);if(!_)_=new Set,$.sleepResolversByWorkflow.set(U,_);_.add(J)}async function Of($,U,J){let X=await J.loadWorkflowState(U.workflowId);if(!X||X.status!=="pending")return;let _=await Af($,U,J);if(!_)return;let G=$.registrations.get(X.type);if(!G){await J.failWorkflow(U.workflowId,Error(`No workflow registered with name "${X.type}"`));return}let Q=$.options.getNow(),D=await Cf(U,Q,J);if(D==="invalid")return;let Y=await J.runSerializedWorkflowStateWrite(U.workflowId,async()=>{let j=await J.loadWorkflowState(U.workflowId);if(!j||j.status!=="pending")return null;let H={...j,status:"running",startedAt:Q,updatedAt:Q,...D!==void 0&&{executionDeadline:D}},L=[{type:"put",key:q.workflow(U.workflowId),value:B(H)},...h$(U.workflowId,j,H).batchOps];if(D!==void 0)L.push(...P$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:D,kind:"execution-deadline"}));return await Z$($,L,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),H});if(!Y)return;if(await nX($,Y,(j,H)=>J.failWorkflow(j,H),J.handleCleanupError,J.dispatchEvent))return;if(await x$($.storage,q.terminalCleanupNeeded(U.workflowId)))$.workflowsNeedingTerminalCleanup.add(U.workflowId);$.checkpoints.set(U.workflowId,_),$.workflowVersionTuples.set(U.workflowId,J.workflowVersionTupleFromState(Y)),J.setWorkflowStartHeaders(U.workflowId,await J.loadWorkflowStartHeaders(U.workflowId)),J.beginWorkflowExecution(U.workflowId,Y.type,Y.input,_,D,Y.executionStateOwnerId??U.workflowId,G)}async function Af($,U,J){let X=await $.storage.get(q.checkpoint(U.workflowId));if(!X)return await J.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return H$(X)}async function Cf($,U,J){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await PN($,J),"invalid";try{return C$(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await PN($,J),"invalid"}}async function PN($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function RH($,U,J){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await Tf($,U,J);return}if(U.kind==="delayed-start"){await Of($,U,J);return}if(U.kind==="terminal-cleanup"){await J.runDeferredTerminalCleanup(U.workflowId,U.id);return}if(U.kind==="teardown"){await J.runWorkflowFinalizer(U.workflowId,U.id);return}if(U.kind==="schedule"){await J.handleScheduleTimer(U);return}if(U.kind==="sleep")Ef($,U);else if(U.kind==="wait-condition")Rf($,U);else if(U.kind==="execution-deadline")await J.timeout(U.workflowId)}function Rf($,U){let J=$.conditionWaiters.get(U.workflowId);if(J)J()}async function Tf($,U,J){let X=U.id.split(":")[1];if(!X)return;let _=$.reviewEscalationHandlers.get(X);if(!_)return;let G=await J.loadWorkflowState(U.workflowId);if(!G||G.status!=="running")return;await _(U)}function Ef($,U){let J=U.id.replace("sleep:",""),X=`${U.workflowId}:${J}`,_=$.sleepResolvers.get(X);if(!_)return;$.sleepResolvers.delete(X),xf($,U.workflowId,J),_()}function xf($,U,J){let X=$.sleepResolversByWorkflow.get(U);if(!X)return;if(X.delete(J),X.size===0)$.sleepResolversByWorkflow.delete(U)}var oX=z(()=>{b();J6();I();D$();O6();rX();r$()});function LN($,U,J,X,_,G,Q,D,Y,Z,j,H){let L=u9(U,null,J).batchOps,F=[...H??[],{type:"put",key:q.workflow(U),value:B(J)},{type:"put",key:q.checkpoint(U),value:L$(X)},...L,...b1(U,void 0,J.tags),...bf($,U,_,G?.searchAttributes,j),...Sf(U,G,Y),...Z??[]];if(Q!==void 0)F.push(...P$({id:`deadline:${U}`,workflowId:U,fireAt:Q,kind:"execution-deadline"}));if(D)F.push(...P$(D));return F}function Sf($,U,J){let X=J!==void 0&&J.size>0,_=U?.services!==void 0,G=[];if(X)G.push({type:"put",key:q.workflowHeaders($),value:h9(J)});if(_)G.push({type:"put",key:q.workflowHasServices($),value:c$});if(X||_)G.push({type:"put",key:q.terminalCleanupNeeded($),value:c$});return G}function bf($,U,J,X,_){if(!X||Object.keys(X).length===0)return[];return vf($,J,X,_),o1(X),[{type:"put",key:q.attribute(U),value:B(X)},...K$(U,{},X)]}function vf($,U,J,X){if(!U.searchAttributes)return;let _=U.searchAttributes;for(let[G,Q]of Object.entries(J)){if(!(G in _))throw Error(`Unknown search attribute "${G}". Registered attributes: ${Object.keys(_).join(", ")}`);v1(G,Q,_[G])}}var FN=z(()=>{b();J6();I();D$();w$();_6();a1();$$();r$();G4()});async function gf($,U,J){if(J.length===0)return await Z$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return X$($.storage,"conditionalBatch","start preconditions"),i1($,U,J.map((X)=>X.condition))}async function hf($,U){for(let J of U){if(J.source!=="start-precondition")continue;let X=await $.storage.get(J.condition.key);if(!nJ(X,J.condition.expectedValue))return!0}return!1}function If($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function yf($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function MN($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function BN($,U){let{internals:J,workflowId:X,state:_,checkpoint:G,registration:Q,options:D}=$,Y=$.buildWorkflowConcurrencyStartOperations===void 0?1:VN,Z;for(let j=0;j<Y;j+=1){let H=U?.(X),L=await $.buildWorkflowConcurrencyStartOperations?.();Z=L?.stateKey??Z;let F=LN(J,X,_,G,Q,D,_.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,MN($.additionalStartOperations,MN(H?.operations,L?.operations)),$.callbacks,$.purgeDeleteOperations),W=[...If(H?.conditions),...yf(L?.conditions??[])];if(await gf(J,F,W))return;if(await hf(J,W))throw new vU;if(L===void 0)throw new vU}throw new N4(Z??"workflow concurrency admission",VN)}var vU,VN=5;var aX=z(()=>{b();_U();O6();FN();vU=class vU extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}});function TH($,U,J,X,_,G){let Q=G.getComposedWorkflowInterceptor();if(!Q)return;let D=new Map;if(_)for(let[Z,j]of _)D.set(Z,j);let Y;return Q.workflowStart({workflowId:U,workflowType:J,input:X,headers:D},(Z)=>{Y=new Map(Z.headers)}),Y}function sX($,U,J,X,_,G,Q,D,Y){if(G!==0)$.workflowNestingDepths.set(U,G);$.workflowTypeByWorkflowId.set(U,J),$.strategy.startWorkflow({workflowId:U,workflowType:J,input:X,checkpoint:L$(_),nestingDepth:G,executionStateOwnerId:D,startedAt:_.createdAt,sleepReferenceTime:_.createdAt,...Q!==void 0&&{deadline:Q},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function tX($,U,J,X,_,G,Q,D,Y,Z){let j=$.pendingNestingDepth??0;if($.pendingNestingDepth=void 0,$.inlineStrategy!==null){Y.queueInlineWorkflowExecutionStart({workflowId:U,workflowType:J,input:X,checkpoint:_,nestingDepth:j,executionDeadline:G,executionStateOwnerId:Q,...Z!==void 0&&{onStarted:Z}});return}Y.dispatchEvent(new R4(U,J,X)),sX($,U,J,X,_,j,G,Q,Y),Z?.()}function WN($,U,J){if(U?.defer!==!1)return;if($.inlineStrategy===null)throw new i('options.defer: false is only supported in inline execution mode; a worker-mode start cannot be awaited for inline liveness. Use workflowExecutionMode: "inline" or remove defer.');if(J)throw new i("options.defer: false is incompatible with a delayed start (startAt/startAfter): a scheduled run has not begun executing, so there is no liveness to await. Remove defer or the delayed-start option.")}async function KN($,U,J,X){if(U.isDelayed)return;let _=U.options?.defer===!1?Promise.withResolvers():void 0;if(tX($,J,U.type,U.input,U.checkpoint,U.state.executionDeadline,U.state.executionStateOwnerId??J,U.registration,X,_?()=>_.resolve():void 0),_)await _.promise}var EH=z(()=>{J6();_$();t6()});function mf($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function ON($,U,J){let{waiters:X,byWorkflow:_}=mf($,J),G=_.get(U);if(!G)return;if(typeof G==="string")X.delete(G);else for(let Q of G)X.delete(Q);_.delete(U)}function uf($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let X of J){let _=`${U}:${X}`,G=$.sleepResolvers.get(_);if(G)G();$.sleepResolvers.delete(_)}$.sleepResolversByWorkflow.delete(U)}function kf($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let X of J)$.sleepResolvers.delete(`${U}:${X}`);$.sleepResolversByWorkflow.delete(U)}function ff($,U){let J=$.conditionWaiters.get(U);if(!J)return;J(),$.conditionWaiters.delete(U)}function wf($,U){$.conditionWaiters.delete(U)}function AN($,U,J){let X=$.workflowReviewIds.get(U);if(!X)return;for(let _ of X){$.reviewEscalationHandlers.delete(_);let G=$.reviewTimerIds.get(_);if(G){for(let Q of G)J.swallowPromiseRejection($.scheduler.cancel(Q,U));$.reviewTimerIds.delete(_)}}$.workflowReviewIds.delete(U)}function w6($,U,J){for(let X of CN)ON($,U,X);uf($,U),ff($,U),AN($,U,J),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function SH($,U,J){for(let X of CN)ON($,U,X);kf($,U),wf($,U),AN($,U,J)}async function RN($,U,J){let X=K(U),_=[q.activityReconciliationPrefix(U),q.childCancellationPrefix(U),YX(U),q.signalAcceptedResponsePrefix(U),`sig:${X}:`,`state:execution:${X}:`,`tool-effect:${X}:`];if(J)_.push(`offload:${X}:`,`blob:${X}:`);if(await $.storage.delete(q.workflowHeaders(U)),await $.storage.delete(q.signalSequence(U)),await J0($,U),await $.storage.delete(q.workflowHasServices(U)),!await x$($.storage,q.teardownOwed(U)))await $.storage.delete(q.finalizerState(U));if($.storage.deletePrefix){for(let Y of _)await $.storage.deletePrefix(Y);return}let G=500,Q=[],D=async()=>{if(Q.length===0)return;await $.storage.batch(Q),Q=[]};for(let Y of _)for await(let[Z]of $.storage.scan(Y))if(Q.push({type:"delete",key:Z}),Q.length>=G)await D();await D()}function bH($,U,J){$.workflowsNeedingTerminalCleanup.delete(U),m4($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[X,_]of $.pendingAsyncActivities)if(_.workflowId===U)$.pendingAsyncActivities.delete(X);$.eventLogHeads.delete(U),$.pendingTimelineEntries.delete(U),$.pendingAsyncActivityResolutions??=new Map,$.pendingAsyncActivityResolutions.delete(U),$.pendingAtomicWorkflowCommitSideEffects??=new Map,$.pendingAtomicWorkflowCommitSideEffects.delete(U),$.parkedInlineWorkflows.delete(U),$.inlineStrategy?.clearParkedContext(U),$.workflowVersionTuples.delete(U),$.cancelHandlersByWorkflow.delete(U),$.workflowFeedListeners.delete(y1(U,"events")),$.workflowFeedListeners.delete(y1(U,"tokens")),w6($,U,J)}function vH($,U,J){bH($,U,J)}async function eX($,U,J,X){bH($,U,X),await gH($,U,J,X)}async function gH($,U,J,X){await X.cleanupReviews(U),await RN($,U,J),await $.storage.delete(q.terminalCleanupNeeded(U))}async function hH($,U,J,X){let _=AB(J);if(!_){X.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${J}"`),U);return}let G=await X.loadWorkflowState(U);if(!G||!NN.has(G.status))return;if(G.terminalCleanupToken!==_.terminalCleanupToken)return;try{await gH($,U,_.includeOutputArtifacts,X)}catch(Q){throw X.handleCleanupError("cleanupTerminalWorkflowDurableState",Q,U),Q}}function KJ($,U,J,X,_){let G=J instanceof Error?J:Error(String(J));_.dispatchEvent(new e9(U,G,X))}async function NJ($,U,J){try{await J.handleScheduledWorkflowTerminal(U)}catch(X){J.handleCleanupError("handleScheduledWorkflowTerminal",X,U)}}var NN,xH,CN;var OJ=z(()=>{b();_$();f1();xU();$$();VJ();NN=new Set(["completed","failed","cancelled","timed-out"]),xH=["running","pending","suspended"];CN=["signal","update","review"]});async function TN($,U,J){let X=await $.storage.get(q.workflow(U));if(X===null)return null;if(J?.onTerminalConflict!=="start-new")throw new o$(U);let _=n(X);if(!V$(_.status))throw new o$(U);if(await x$($.storage,q.teardownOwed(U)))throw new r2(U);return _}async function EN($,U,J){let X=(G)=>w6($,G,{swallowPromiseRejection:J.swallowPromiseRejection}),_=await jH($,U);return HH($,U.id,X),_}var xN=z(()=>{b();yX();z$();OJ();Y$()});function cf($,U,J){let X=U?.id!==void 0,_=U?.id!==void 0?zU(U.id,"options.id"):crypto.randomUUID(),G=$.pendingParentHeaders;$.pendingParentHeaders=void 0;let Q=$.pendingExecutionStateOwnerId,D=Q===null?void 0:Q??_;$.pendingExecutionStateOwnerId=void 0;let Y=$.options.getNow(),Z=SN($,U,Y,J),j=OH($,U?.tags,void 0,J),H=Z!==void 0&&Z>Y?qN($,_,Z,U,{parseStartOptionDuration:(L,F)=>X0($,L,F,J)}):void 0;return{workflowId:_,callerProvidedId:X,parentHeaders:G,executionStateOwnerId:D,submissionTime:Y,delayedStartTimer:H,normalizedTags:j}}function pf($,U){m4($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function df($,U){if(U?.services!==void 0&&$.inlineStrategy===null)throw Error('options.services is only supported in inline execution mode; it cannot be serialized to a Worker. Remove services or use workflowExecutionMode: "inline".')}async function Y6($,U,J,X,_,G,Q){let D=$.registrations.get(U);if(!D)throw new OU(U);let Y=D.concurrency;df($,X),T9(X);let Z=cf($,X,G),{workflowId:j,callerProvidedId:H,parentHeaders:L,executionStateOwnerId:F,delayedStartTimer:W}=Z;if(WN($,X,Boolean(W)),$.pendingStarts.has(j))throw new o$(j);$.pendingStarts.add(j);let E=!1;try{let m=H?await TN($,j,X):null;K6(J,$.options.payloadSizePolicy.maxBytes,"workflow input");let a=_0($,D,G),p=bN($,j,U,J,a,X,Z.normalizedTags,F,W,G),y=vN($,j,a.workflowVersion,X,G),k=TH($,j,U,J,L,G),w=I9(k),E$=m!==null?await EN($,m,G):void 0;if($.checkpoints.set(j,y),X4($,j,k,G),$.workflowVersionTuples.set(j,a),await BN({internals:$,workflowId:j,state:p,checkpoint:y,registration:D,options:X,delayedStartTimer:W,persistedWorkflowStartHeaders:w,additionalStartOperations:_,buildWorkflowConcurrencyStartOperations:Y===void 0?void 0:()=>fX($,U,j,J,Y),callbacks:G,purgeDeleteOperations:E$},Q),X?.services!==void 0)$.workflowServices.set(j,X.services),$.workflowsNeedingTerminalCleanup.add(j);if(Y!==void 0)$.workflowsNeedingTerminalCleanup.add(j);let T6=BJ($,j,G);return await KN($,{type:U,input:J,checkpoint:y,state:p,registration:D,options:X,isDelayed:Boolean(W)},j,G),E=!0,T6}finally{if($.pendingStarts.delete(j),!E)pf($,j)}}function SN($,U,J,X){if(sM(U?.startAt,U?.startAfter),U?.startAt!==void 0)return tM(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let _=X0($,U.startAfter,"options.startAfter",X);try{return C$(J+_,"options.startAfter")}catch{throw new i("options.startAfter must resolve to a finite, non-negative start time")}}return}function X0($,U,J,X){return u2(U,J)}function lf($,U,J,X,_,G,Q,D){return{id:$,type:U,status:G?"pending":"running",input:J,versionTuple:X,..._!==void 0&&{executionStateOwnerId:_},createdAt:Q,...!G&&{startedAt:Q},updatedAt:Q,...D!==void 0&&{tags:D}}}function nf($,U,J,X,_){if(U?.executionTimeout===void 0||J)return;let G=X0($,U.executionTimeout,"options.executionTimeout",_);try{return C$(X+G,"options.executionTimeout")}catch{throw new i("options.executionTimeout must resolve to a finite, non-negative deadline")}}function bN($,U,J,X,_,G,Q,D,Y,Z){let j=$.options.getNow(),H=lf(U,J,X,_,D,Y,j,Q),L=nf($,G,Y,j,Z);if(L!==void 0)H.executionDeadline=L;return H}function vN($,U,J,X,_){let G=IZ(U,J,$.options.getNow());if(X?.searchAttributes)G.searchAttributes={...X.searchAttributes};return G}var $3=z(()=>{J6();T4();D$();t6();xU();z$();oX();$$();VJ();WJ();G4();aX();EH();xN()});async function CJ($,U){let J=await $.storage.get(q.startIdempotency(U));if(J===null)return;return R(J).workflowId}async function yH($,U){if(await l($,U)===null)throw new g4(U);return U}async function af($,U){for(let J=0;J<rf;J+=1){if(!$.pendingStarts.has(U))return;await F6(of)}}async function mH($,U,J,X,_){let G=await AJ($,U,J,X,_);if(G!==void 0)return G;return await af($,U),AJ($,U,J,X,_)}async function AJ($,U,J,X,_){let G=await l($,U);if(G===null)return;if(V$(G.status))throw new $J(U,G.status);return await _.signalExistingWorkflow(U,J.name,J.payload,X),_.getHandle(U)}async function gN($,U,J,X,_,G){for(let D=0;D<IH;D+=1){let Y=await AJ($,U,J,X,_);if(Y!==void 0)return Y;if(D<IH-1)await F6(sf)}if(await CJ($,G)===U)throw new g4(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${IH} attempts.`)}async function U3($,U){let J=await CJ($,U);if(J===void 0)throw Error(`start idempotency mapping for key "${U}" vanished after a lost compare-and-swap; the start-idem: keyspace may have been mutated externally.`);return J}var rf=5,of=5,IH=5,sf=5;var uH=z(()=>{V6();b();I();z$();R$();Y$()});function kH($,U,J){return(X)=>{let _=[],G=[];if(U!==void 0){let Q=q.startIdempotency(U);_.push({type:"put",key:Q,value:B({workflowId:X})}),G.push({key:Q,expectedValue:null})}if(J!==void 0){let Q=pW($,X,J.name,J.payload,J.signalId);_.push(...Q.operations),G.push(Q.condition)}return{operations:_,conditions:G}}}async function IN($,U,J,X,_,G,Q){let D=G?.idempotencyKey;for(let Y=0;Y<hN;Y+=1){let Z=await ef($,G,async()=>{return Y6($,U,J,G,void 0,Q,kH($,D,{name:X.name,payload:X.payload,signalId:_}))});if(Z.kind==="created")return{handle:Z.handle,outcome:"started"};if(Z.kind==="lost-keyed")return{handle:await gN($,Z.id,X,_,Q,Z.idempotencyKey),outcome:"signalled"};if(Z.kind==="lost-caller-id"){let j=await mH($,Z.id,X,_,Q);if(j!==void 0)return{handle:j,outcome:"signalled"}}else{let j=await tf($,U,J,X,_,G,Q);if(j!==void 0)return j}}throw Error(`startOrSignal could not create workflow "${G?.id??"<generated>"}" after ${hN} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function tf($,U,J,X,_,G,Q){try{return{handle:await Y6($,U,J,G,void 0,Q),outcome:"started"}}catch(D){if(!(D instanceof o$))throw D;let Y=await mH($,D.workflowId,X,_,Q);return Y===void 0?void 0:{handle:Y,outcome:"signalled"}}}async function ef($,U,J){try{return{kind:"created",handle:await J()}}catch(X){if(X instanceof o$)return{kind:"lost-caller-id",id:X.workflowId};if(X instanceof vU){let _=U?.idempotencyKey;if(_!==void 0)return{kind:"lost-keyed",id:await U3($,_),idempotencyKey:_};return{kind:"signal-already-buffered"}}throw X}}var hN=5;var yN=z(()=>{b();I();z$();S4();aX();uH();$3()});function $w($,U){if(U!==void 0)return q.startIdempotencySignalId(U);if($.signalId!==void 0)return $.signalId;throw new i("startOrSignal requires either signal.signalId or options.idempotencyKey to identify the signal to deliver. (Concurrent callers converge on one workflow and one signal only with a shared idempotencyKey, or a shared id plus signalId; a bare signalId starts a fresh run per caller.)")}async function fH($,U,J,X,_){X$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:G}=X;if(G===void 0)throw new i("startWithIdempotency requires options.idempotencyKey");R9(G,"options.idempotencyKey"),jj(X),T9(X);let Q=await CJ($,G);if(Q!==void 0)return _.getHandle(await yH($,Q));try{return await Y6($,U,J,X,void 0,_,kH($,G,void 0))}catch(D){if(!(D instanceof vU))throw D}return _.getHandle(await yH($,await U3($,G)))}function Uw($,U){let J=U?.idempotencyKey;if(J===void 0)return;if(R9(J,"options.idempotencyKey"),jj(U??{}),$.signalId!==void 0)throw new i("startOrSignal does not accept both signal.signalId and options.idempotencyKey: the signal id derives from the idempotency key for convergence. Provide exactly one.")}async function wH($,U,J,X,_,G){X$($.storage,"conditionalBatch","startOrSignal"),E9(_,"startOrSignal");let Q=_?.idempotencyKey;Uw(X,_);let D=$w(X,Q),Y=Q!==void 0?await CJ($,Q):void 0,Z=Y??_?.id;if(Z!==void 0){let j=await AJ($,Z,X,D,G);if(j!==void 0)return{handle:j,outcome:"signalled"};if(Y!==void 0)throw new g4(Y)}return IN($,U,J,X,D,_,G)}var mN=z(()=>{b();t6();z$();aX();yN();uH();$3()});function uN($,U,J){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);v1(U,J,$.searchAttributeSchema[U])}}function kN($,U,J){uN($,U,J),$.searchAttributes[U]=J,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=J}function fN($,U){for(let[J,X]of Object.entries(U))uN($,J,X);for(let[J,X]of Object.entries(U))$.searchAttributes[J]=X,$.pendingAttributeChanges??={},$.pendingAttributeChanges[J]=X}function wN($,U){return $.searchAttributes[U]}function cN($){return{...$.searchAttributes}}var pN=z(()=>{w$()});function iN($,U,J,X){_w(U,J,X);let _=`version:${U}`,G=$[_];if(G===void 0)return{localKey:_,version:X,newlyPinned:!0,checkpointLocals:{...$,[_]:X}};if(typeof G!=="number"||!Number.isSafeInteger(G))throw Error(`Invalid checkpointed workflow version patch "${U}" value ${JSON.stringify(G)}`);let Q=G;return Xw(U,Q,J,X),{localKey:_,version:Q,newlyPinned:!1,checkpointLocals:$}}function _w($,U,J){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(dN("minSupported",U),dN("maxSupported",J),U>J)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function dN($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function Xw($,U,J,X){if(U<J)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, below the minimum supported version ${J}`);if(U>X)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, above the maximum supported version ${X}`)}function lN($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return{cached:!0};let X=J$(U);if($.explainMode)console.log(`[weft] ctx.sleep(${JSON.stringify(U)})`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Scheduling timer for ${X}ms`);let _=crypto.randomUUID(),G=t(),Q=$.sleepReferenceTime??$.getNow();return $.sleepReferenceTime=void 0,{cached:!1,milliseconds:X,request:{type:"sleep",operationId:_,duration:X,scheduledFireAt:Q+X,callerStack:G},step:J}}function*nN($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*rN($,U,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.waitForSignal("${J}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Waiting for signal "${J}"`);let _=crypto.randomUUID(),G=t(),Q=yield{type:"wait-signal",operationId:_,signalName:J,callerStack:G};return $.accumulatedResults.set(X,Q),Q}function Qw($,U,J){if(J===void 0)return;let X=`${Gw}${U}`,_=$.checkpointLocals[X];if(typeof _==="number"&&Number.isFinite(_))return _;if(_!==void 0)throw Error(`Invalid checkpointed wait-condition deadline ${JSON.stringify(_)} for step ${U}`);let G=J$(J),Q=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let D=Q+G;return $.checkpointLocals={...$.checkpointLocals,[X]:D},D}function*oN($,U,J,X){let _=U.stepIndex++;if(U.accumulatedResults?.has(_))return U.accumulatedResults.get(_);let G=Qw(U,_,X);if(U.explainMode)console.log("[weft] ctx.waitUntil(predicate)"),console.log(` \u2192 Creating checkpoint at step ${_}`),console.log(G===void 0?" \u2192 Waiting indefinitely":` \u2192 Deadline at ${G}`);let Q=crypto.randomUUID(),D=t(),Y=yield{type:"wait-condition",operationId:Q,step:_,predicate:J,...G!==void 0&&{deadline:G},callerStack:D};return $.accumulatedResults.set(_,Y),Y}function*aN($,U,J,X,_){let G=U.stepIndex++,Q=iN(U.checkpointLocals,J,X,_);if(U.checkpointLocals=Q.checkpointLocals,!Q.newlyPinned)return Q.version;if(U.accumulatedResults?.has(G)){let j=U.accumulatedResults.get(G);if(j!==Q.version)throw Error(`ctx.getVersion("${J}") replay result ${String(j)} does not match pinned version ${String(Q.version)}`);return Q.version}if(U.explainMode)console.log(`[weft] ctx.getVersion("${J}", ${X}, ${_})`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Pinning workflow patch "${J}" to version ${Q.version}`);let D=crypto.randomUUID(),Y=t();return yield{type:"get-version",operationId:D,changeId:J,minSupported:X,maxSupported:_,version:Q.version,callerStack:Y}}function*sN($,U,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return{payload:U.accumulatedResults.get(X).payload,respond:()=>{}};if(U.explainMode)console.log(`[weft] ctx.waitForUpdate("${J}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Waiting for update "${J}"`);let _=crypto.randomUUID(),G=t(),D=yield{type:"wait-update",operationId:_,updateName:J,callerStack:G};return $.accumulatedResults.set(X,{payload:D.payload}),D}function*tN($,U,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.review(${JSON.stringify(J.reviewType??"general")})`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(" \u2192 Pausing for human review");let _=crypto.randomUUID(),G=t(),Q=yield{type:"wait-review",operationId:_,reviewOptions:J,callerStack:G};return $.accumulatedResults.set(X,Q),Q}function*eN($,U,J,X){let _=U.stepIndex++;if(U.accumulatedResults?.has(_))return U.accumulatedResults.get(_);if(U.explainMode)console.log(`[weft] ctx.offload("${J}")`),console.log(` \u2192 Creating checkpoint at step ${_}`),console.log(` \u2192 Offloading data for key "${J}" to external storage`);let G=crypto.randomUUID(),Q=t(),D=yield{type:"offload",operationId:G,key:J,fn:X,callerStack:Q};return $.accumulatedResults.set(_,D),D}function*$O($,U,J,X){let _=U.stepIndex++;if(U.accumulatedResults?.has(_))return U.accumulatedResults.get(_);if(U.explainMode)console.log(`[weft] ctx.stream("${J}")`),console.log(` \u2192 Creating checkpoint at step ${_}`),console.log(` \u2192 Streaming data for key "${J}" to external storage`);let G=crypto.randomUUID(),Q=t(),D=yield{type:"stream",operationId:G,key:J,fn:X,callerStack:Q};return $.accumulatedResults.set(_,D),D}function*UO($,U,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.load("${J.key}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Loading offloaded data for key "${J.key}"`);let _=crypto.randomUUID(),G=t(),Q=yield{type:"load",operationId:_,reference:J,callerStack:G};return $.accumulatedResults.set(X,Q),Q}function*JO($,U,J,X){let _=U.stepIndex++;if(U.accumulatedResults?.has(_))return;if(U.explainMode)console.log(`[weft] ctx.archive("${J}")`),console.log(` \u2192 Creating checkpoint at step ${_}`),console.log(` \u2192 Archiving data for key "${J}"`);let G=crypto.randomUUID(),Q=t();yield{type:"archive",operationId:G,key:J,data:X,callerStack:Q},$.accumulatedResults.set(_,void 0)}var Gw="__weftConditionDeadline:";var _O=z(()=>{D$()});function*XO($,U){let J=[],X,_=!1,G=!0,Q=g($).registerCancelHandler?.(async()=>{if(!G||_)return;_=!0;try{await Yw(J)}finally{G=!1,J.length=0,Q?.()}});for(let Y of U){let Z=Y.definition;try{let j=(L,F)=>Z.execute(L,F);Object.defineProperty(j,"name",{value:Z.name,configurable:!0});let H=yield*$.run(j,Y.input);J.push({definition:Z,input:Y.input,output:H}),X=H}catch(j){if(!_){_=!0;for(let H=J.length-1;H>=0;H--){let L=J[H];if(L.definition.compensate!==void 0){let{input:F,output:W,definition:E}=L,m=async()=>E.compensate?.(F,W);Object.defineProperty(m,"name",{value:`compensate:${L.definition.name}`,configurable:!0});try{yield*$.run(m)}catch{}}}}throw D(),j}}return D(),X;function D(){G=!1,J.length=0,Q?.()}}async function Yw($){for(let U=$.length-1;U>=0;U--){let J=$[U];if(J.definition.compensate!==void 0)try{await J.definition.compensate(J.input,J.output)}catch{}}}var GO=z(()=>{w1()});function*QO($,U,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let _=crypto.randomUUID(),G=t(),Q=yield{type:"speculate",operationId:_,execute:J,callerStack:G};return $.accumulatedResults.set(X,Q),Q}var DO=()=>{};function Z6($){return $===void 0?void 0:new Map($)}function YO($){return $===void 0?void 0:{...$}}function Hw($,U){if(U.deadline!==void 0)$.deadline=U.deadline;if(U.searchAttributeSchema!==void 0)$.searchAttributeSchema=U.searchAttributeSchema;if(U.sleepReferenceTime!==void 0)$.sleepReferenceTime=U.sleepReferenceTime;if(U.resolveWorkflowType!==void 0)$.resolveWorkflowType=U.resolveWorkflowType;if(U.services!==void 0)$.services=U.services;if(U.logSink!==void 0)$.logSink=U.logSink}function Pw($,U){let J={workflowId:$.workflowId,workflowType:$.workflowType,startedAt:$.startedAt,abortController:U.abortController,getNow:U.getNow,initialStep:U.stepIndex,locals:U.checkpointLocals,searchAttributes:U.searchAttributes,nestingDepth:U.nestingDepth,executionStateOwnerId:U.executionStateOwnerId},X=Z6(U.accumulatedResults);if(X!==void 0)J.accumulatedResults=X;return Hw(J,U),J}function qw($,U){$.pendingAttributeChanges=YO(U.pendingAttributeChanges),$.updateHandlers=Z6(U.updateHandlers),$.updateValidators=Z6(U.updateValidators),$.queryHandlers=Z6(U.queryHandlers),$.exposedValues=Z6(U.exposedValues),$.memoCache=Z6(U.memoCache),$.explainMode=U.explainMode,$.workflowInterceptor=U.workflowInterceptor}function ZO($,U){let J=g($),X=U(Pw($,J));return qw(g(X),J),X}function jO($,U){let J=g($),X=g(U);J.stepIndex=X.stepIndex,J.accumulatedResults=Z6(X.accumulatedResults),J.stateSession=R2(X.stateSession),J.checkpointLocals=p2(J.stateSession,X.checkpointLocals),J.searchAttributes={...X.searchAttributes},J.pendingAttributeChanges=YO(X.pendingAttributeChanges),J.updateHandlers=Z6(X.updateHandlers),J.updateValidators=Z6(X.updateValidators),J.queryHandlers=Z6(X.queryHandlers),J.exposedValues=Z6(X.exposedValues),J.memoCache=Z6(X.memoCache),J.sleepReferenceTime=X.sleepReferenceTime}var HO=z(()=>{T2();w1();d2()});function PO($,U){let J=zw($,U);return{session:(X,_)=>NW($,U,X,_),execution:(X,_)=>new cH({type:"execution",ownerWorkflowId:U.executionStateOwnerId},X,_,J),workflow:(X,_)=>new cH({type:"workflow",workflowType:$.workflowType},X,_,J)}}function zw($,U){return{nextStep:()=>U.stepIndex++,has:(J)=>U.accumulatedResults?.has(J)??!1,get:(J)=>U.accumulatedResults?.get(J),set:(J,X)=>{$.accumulatedResults.set(J,X)}}}var cH;var qO=z(()=>{_U();d2();cH=class cH extends EventTarget{#$;#U;#J;#_;#X;#G;constructor($,U,J,X){super();this.#$=$,this.#U=U,this.#J=O4($,U),this.#_=J?.maxRetries??10,this.#X=J&&"initial"in J?{initial:J.initial}:void 0,this.#G=X}*get(){return(yield*this.#D()).value}*set($){return yield*this.update(()=>$)}*update($){for(let U=0;U<this.#_;U++){let J=yield*this.#D(),X=$(J.value),_=yield*this.#Y(J.version,"set",X);if(_.applied)return this.dispatchEvent(new B4(X,J.value,_.version)),X;this.dispatchEvent(new W4(this.#J,U+1))}throw this.dispatchEvent(new K4(this.#J,this.#_)),new N4(this.#J,this.#_)}*delete(){for(let $=0;$<this.#_;$++){let U=yield*this.#D(),J=yield*this.#Y(U.version,"delete");if(J.applied){this.dispatchEvent(new B4(void 0,U.value,J.version));return}this.dispatchEvent(new W4(this.#J,$+1))}throw this.dispatchEvent(new K4(this.#J,this.#_)),new N4(this.#J,this.#_)}*increment($=1){return yield*this.update((U)=>(U??0)+$)}*decrement($=1){return yield*this.update((U)=>(U??0)-$)}*merge($){return yield*this.update((U)=>({...U??{},...$}))}*append($){return yield*this.update((U)=>[...U??[],$])}*removeFirst(){let $;return yield*this.update((U)=>{let J=[...U??[]];return $=J.shift(),J}),$}*removeLast(){let $;return yield*this.update((U)=>{let J=[...U??[]];return $=J.pop(),J}),$}*#D(){return yield*this.#Q({type:"state-read",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,...this.#X!==void 0?{initial:this.#X.initial}:{},callerStack:t()})}*#Y($,U,J){return yield*this.#Q({type:"state-commit",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,expectedVersion:$,mode:U,...U==="set"?{value:J}:{},callerStack:t()})}*#Q($){let U=this.#G;if(U===void 0)return yield $;let J=U.nextStep();if(U.has(J))return U.get(J);let X=yield $;return U.set(J,X),X}}});function zO($,U,J,X){if(TW(J)||EW(J))throw TypeError(`Update handler "${U}" cannot be a generator function. `+"Use a plain function \u2014 update handlers run synchronously at checkpoint boundaries and cannot yield.");if($.updateHandlers??=new Map,$.updateHandlers.set(U,J),X?.validator!==void 0)$.updateValidators??=new Map,$.updateValidators.set(U,X.validator);else $.updateValidators?.delete(U)}function LO($,U,J){$.queryHandlers??=new Map,$.queryHandlers.set(U,J)}function FO($,U){$.exposedValues??=new Map;for(let[J,X]of Object.entries(U))$.exposedValues.set(J,X)}var VO=z(()=>{kj()});function J3($){console[Vw[$.level]]($)}function Mw($,U,J,X){return{level:U,message:J,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...X!==void 0&&{attributes:X}}}function Bw($){let U=(J,X,_)=>{if($.isReplaying())return;let G=Mw($,J,X,_);if($.sink!==void 0){try{$.sink(G)}catch{J3(G)}return}J3(G)};return{debug:(J,X)=>U("debug",J,X),info:(J,X)=>U("info",J,X),warn:(J,X)=>U("warn",J,X),error:(J,X)=>U("error",J,X)}}function MO($,U,J,X){return Bw({workflowId:$,workflowType:U,isReplaying:()=>{let _=J();return _.accumulatedResults?.has(_.stepIndex)??!1},now:()=>J().getNow(),...X!==void 0&&{sink:X}})}var Vw;var pH=z(()=>{Vw={debug:"debug",info:"info",warn:"warn",error:"error"}});function G0($,U){g($).workflowInterceptor=U}class k4{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=vZ($.locals);AW(this,$,U)}get executionTimeRemaining(){let $=g(this);if($.deadline===void 0)return 1/0;return Math.max(0,$.deadline-$.getNow())}get services(){return g(this).services}get log(){return this.#$??=MO(this.workflowId,this.workflowType,()=>g(this),g(this).logSink)}get stepIndex(){return g(this).stepIndex}get nestingDepth(){return g(this).nestingDepth}get accumulatedResults(){let $=g(this);return $.accumulatedResults??=new Map,$.accumulatedResults}get checkpointLocals(){return g(this).checkpointLocals}get pendingAttributeChanges(){let $=g(this);return $.pendingAttributeChanges??={},$.pendingAttributeChanges}get exposedAccessors(){let $=g(this);return $.exposedValues??=new Map,$.exposedValues}get updateHandlers(){let $=g(this);return $.updateHandlers??=new Map,$.updateHandlers}get updateValidators(){let $=g(this);return $.updateValidators??=new Map,$.updateValidators}get queryHandlers(){let $=g(this);return $.queryHandlers??=new Map,$.queryHandlers}get explainEnabled(){return g(this).explainMode}get checkpointAccumulatedResults(){let $=g(this).accumulatedResults;return $?Array.from($.entries()):[]}get checkpointPendingAttributeChanges(){let $=g(this).pendingAttributeChanges;return $?{...$}:void 0}createSpeculativeChild(){return ZO(this,($)=>new k4($))}commitSpeculativeChild($){jO(this,$)}get state(){return PO(this,g(this))}*run($,...U){return yield*CW(this,$,U)}*sleep($){let U=g(this),J=lN(U,$);if(J.cached)return;let X=()=>nN(this,J);if(!U.workflowInterceptor)return yield*X();return yield*U.workflowInterceptor.sleep({workflowId:this.workflowId,duration:J.milliseconds,headers:new Map},X)}*suspendUntil($){return yield*this.waitForSignal($)}*waitForSignal($){let U=g(this),J=l$($),X=()=>rN(this,U,J);if(U.accumulatedResults?.has(U.stepIndex))return yield*X();if(!U.workflowInterceptor)return yield*X();return yield*U.workflowInterceptor.waitForSignal({workflowId:this.workflowId,signalName:J,payload:void 0,headers:new Map},X)}*waitForUpdate($){return yield*sN(this,g(this),l$($))}*waitUntil($,U){return yield*oN(this,g(this),$,U)}*getVersion($,U,J){return yield*aN(this,g(this),$,U,J)}*review($){return yield*tN(this,g(this),$)}*all($){return yield*XM(this,g(this),[...$])}*race($){return yield*GM(this,g(this),[...$])}*memo($,U){return yield*QM(this,g(this),$,U)}*offload($,U){return yield*eN(this,g(this),$,U)}*stream($,U){return yield*$O(this,g(this),$,U)}*load($){return yield*UO(this,g(this),$)}*archive($,U){return yield*JO(this,g(this),$,U)}*runAll($){return yield*DM(this,g(this),$)}*saga($){return yield*XO(this,$)}*startChild($,U,J){return yield*tV(this,g(this),$,U,J)}*pipe($,U){return yield*eV(this,g(this),$,U)}*map($,U,J){return yield*$M(this,g(this),$,U,J)}*reduce($,U,J,X){return yield*UM(this,g(this),$,U,J,X)}explain($=!0){g(this).explainMode=$}*speculate($){return yield*QO(this,g(this),$)}setAttribute($,U){kN(g(this),A$($),U)}setAttributes($){fN(g(this),$)}getAttribute($){return wN(g(this),A$($))}getAttributes(){return cN(g(this))}onUpdate($,U,J){zO(g(this),l$($),U,J)}onQuery($,U){LO(g(this),l$($),U)}expose($){FO(g(this),$)}onCancel($){let U=g(this);if(U.registerCancelHandler===void 0)throw Error("ctx.onCancel() is only supported for inline workflow execution");U.registerCancelHandler($)}setFinalizerState($){let U=g(this);if(U.recordFinalizerState===void 0)throw Error("ctx.setFinalizerState() is only supported for inline workflow execution; it is unavailable in worker execution mode and inside ctx.speculate() branches.");U.recordFinalizerState($)}streamUrl($){return`/v1/workflows/${encodeURIComponent($.workflowId)}/streams/${encodeURIComponent($.key)}`}}var BO=z(()=>{T2();n$();pN();kZ();_O();w1();j9();RW();GO();DO();HO();qO();VO();pH()});var _3=z(()=>{BO()});function RJ($,U,J){$.cancelHandlersByWorkflow??=new Map;let X=$.cancelHandlersByWorkflow.get(U);if(X===void 0)X=[],$.cancelHandlersByWorkflow.set(U,X);return X.push(J),()=>{let _=$.cancelHandlersByWorkflow.get(U);if(_===void 0)return;let G=_.indexOf(J);if(G!==-1)_.splice(G,1);if(_.length===0)$.cancelHandlersByWorkflow.delete(U)}}function X3($,U){return(J)=>RJ($,U,J)}function TJ($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function WO($,U){$.cancelHandlersByWorkflow??=new Map;let J=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),J}function KO($){return{async execute(U,J){let X=J;for(let _=$.length-1;_>=0;_--){let G=$[_];if(G.execute){let Q=X,D=G.execute.bind(G);X=(Y)=>{return D(Y,Q)}}}return X(U)}}}var NO;var dH=z(()=>{NO=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"])});function iH($){let U=[],J=[];for(let X of $){if(NO.some((_)=>OO(X,_)))U.push(X);if(OO(X,"execute"))J.push(X)}return{workflow:U,activity:J}}function OO($,U){return typeof $[U]==="function"}var AO=z(()=>{dH()});function Ww($){return function*(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.activity){let D=_,Y=Q.activity.bind(Q);_=function*(Z){return yield*Y(Z,D)}}}return yield*_(J)}}function Kw($){return function*(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.sleep){let D=_,Y=Q.sleep.bind(Q);_=function*(Z){yield*Y(Z,D)}}}yield*_(J)}}function Nw($){return function*(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.waitForSignal){let D=_,Y=Q.waitForSignal.bind(Q);_=function*(Z){return yield*Y(Z,D)}}}return yield*_(J)}}function Ow($){return function(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.workflowStart){let D=_,Y=Q.workflowStart.bind(Q);_=(Z)=>{Y(Z,D)}}}_(J)}}function Aw($){return async function(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.childWorkflow){let D=_,Y=Q.childWorkflow.bind(Q);_=(Z)=>{return Y(Z,D)}}}return _(J)}}function Cw($){return function*(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.query){let D=_,Y=Q.query.bind(Q);_=function*(Z){return yield*Y(Z,D)}}}return yield*_(J)}}function Rw($){return function(J,X){let _=X;for(let G=$.length-1;G>=0;G--){let Q=$[G];if(Q.signalReceived){let D=_,Y=Q.signalReceived.bind(Q);_=(Z)=>{Y(Z,D)}}}_(J)}}function CO($){return{activity:Ww($),sleep:Kw($),waitForSignal:Nw($),workflowStart:Ow($),childWorkflow:Aw($),query:Cw($),signalReceived:Rw($)}}var RO=z(()=>{dH();AO()});var TO=z(()=>{RO()});function j6($,U,J,X){if($.inlineStrategy){if(J.status==="completed")$.inlineStrategy.continueWorkflow(U,J.value);else $.inlineStrategy.throwIntoWorkflow(U,X!==void 0?X.value:$8(J),J.failureCategory);return}let _=$.checkpoints.get(U),G=_?L$(_):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:G,operationResult:J})}async function C6($){if(!$)return;try{await $}catch{}}function H6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=iH($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:CO(U),$.composedWorkflowInterceptor}function EO($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=iH($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:KO(U),$.composedActivityInterceptor}var c6=z(()=>{J6();l6();TO()});function xO($,U,J,X){return{workflowId:U,step:J.step}}function SO($,U,J,X){return{...U.searchAttributes,[ZN]:J.workflowId}}function bO($,U,J,X,_,G,Q){return{id:U,type:J.type,status:"running",input:J.input,versionTuple:X,executionStateOwnerId:U,createdAt:G,startedAt:G,updatedAt:G,forkedFrom:_}}function vO($,U,J,X,_,G,Q){let D=[{type:"put",key:q.workflow(U),value:B(J)},{type:"put",key:q.checkpoint(U),value:_},...u9(U,null,J).batchOps];if(Object.keys(X.searchAttributes).length>0)D.push({type:"put",key:q.attribute(U),value:B(X.searchAttributes)},...K$(U,{},X.searchAttributes));if(G&&G.size>0)D.push({type:"put",key:q.workflowHeaders(U),value:h9(G)},{type:"put",key:q.terminalCleanupNeeded(U),value:c$});return D}var gO=z(()=>{b();I();w$();$$();r$();G4()});function hO($,U,J){let X=[{type:"put",key:q.childCancellation(U,J),value:c$}],_=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),_)X.push({type:"put",key:q.terminalCleanupNeeded(U),value:c$});return X}function lH($,U,J,X){RJ($,U,()=>X.getHandle(J).cancel())}async function nH($,U,J){for await(let[X]of $.storage.scan(q.childCancellationPrefix(U))){let _=Tw(U,X);if(_===null)continue;lH($,U,_,J)}}function Tw($,U){let J=q.childCancellationPrefix($);if(!U.startsWith(J))return null;let X=U.slice(J.length);if(X.length===0||X.includes(":"))return null;return Tq(X)}var rH=z(()=>{b();G4()});async function Ew($,U,J){return nX($,U,J.failWorkflowForUnavailableServices,J.handleCleanupError,J.dispatchEvent)}function IO($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function xw($,U){let{workflowId:J,resumeCheckpoint:X,serializedCheckpoint:_,registeredVersionTuple:G,restoredHead:Q,callbacks:D}=U;$.checkpoints.set(J,X),gX($,J,_),$.workflowVersionTuples.set(J,G),$.eventLogHeads.set(J,Q),X4($,J,U.workflowStartHeaders,D),$.parkedInlineWorkflows.delete(J)}async function Sw($,U,J){let{workflowId:X,resumeCheckpoint:_,registration:G,callbacks:Q}=J,D=new Map(_.accumulatedResults),Y=new AbortController;TJ($,X),await nH($,X,Q);let Z=new k4({workflowId:X,workflowType:U.type,startedAt:A6(U),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??X,accumulatedResults:D,locals:_.locals,searchAttributes:_.searchAttributes,registerCancelHandler:X3($,X),...G.searchAttributes&&{searchAttributeSchema:G.searchAttributes},sleepReferenceTime:_.createdAt,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},services:$.workflowServices.get(X),...$.options.onLog!=null&&{logSink:$.options.onLog}});if(G0(Z,H6($)),$.options.development)Z.explain(!0);let j=G.handler(Z,U.input),H=$.inlineStrategy;H.adoptWorkflow(X,j,Z,Y),H.continueWorkflow(X,void 0)}async function bw($,U,J){let{workflowId:X,resumeCheckpoint:_,workflowStartHeaders:G,callbacks:Q}=J;TJ($,X),await nH($,X,Q);let D=L$(_);$.strategy.startWorkflow({workflowId:X,workflowType:U.type,input:U.input,checkpoint:D,nestingDepth:$.workflowNestingDepths.get(X)??0,executionStateOwnerId:U.executionStateOwnerId??X,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},...G!==void 0&&G.size>0&&{headers:[...G]}})}async function vw($,U){let{workflowId:J}=U;IO($,J);let X=await l($,J);if(IO($,J),!X)throw Error(`Workflow "${J}" not found in storage`);if(X.status!=="running"&&X.status!=="suspended")throw Error(`Cannot resume workflow "${J}": status is "${X.status}", expected "running" or "suspended"`);if(await gw($,X),xw($,U),$.inlineStrategy){await Sw($,X,U);return}await bw($,X,U)}async function gw($,U){if(U.status!=="suspended")return;let J={...U};U.status="running",U.updatedAt=$.options.getNow(),await Z$($,[{type:"put",key:q.workflow(U.id),value:B(U)},...h$(U.id,J,U).batchOps,...U.executionDeadline!==void 0?P$({id:`deadline:${U.id}`,workflowId:U.id,fireAt:U.executionDeadline,kind:"execution-deadline"}):[]],[],()=>Error(`Resume of workflow "${U.id}" lost its CAS race.`))}async function EJ($,U,J,X){let _=await $.storage.get(q.workflow(U));if(!_)throw Error(`Workflow "${U}" not found in storage`);let G=n(_);if(G.status!=="running"&&G.status!=="suspended")throw Error(`Cannot resume workflow "${U}": status is "${G.status}", expected "running" or "suspended"`);let Q=await $.storage.get(q.checkpoint(U));if(!Q)throw Error(`Checkpoint not found for workflow "${U}"`);let D=H$(Q),Y=$.registrations.get(G.type);if(!Y)throw Error(`No workflow registered with name "${G.type}" (needed to resume "${U}")`);let Z=await CH($,U,G,D,Q,Y,X),j=Z.checkpoint,H=Z.versionTuple,F=await new a$($.storage,U).loadHead();if(await KH($,U,F,X))return X.getHandle(U);let W=await bU($,U,X);if(await NH($,U,X),await Ew($,G,X))return X.getHandle(U);let E=X.getHandle(U);if(await X.runSerializedWorkflowStateWrite(U,()=>vw($,{workflowId:U,resumeCheckpoint:j,serializedCheckpoint:Z.serializedCheckpoint,registeredVersionTuple:H,restoredHead:F,workflowStartHeaders:W,registration:Y,callbacks:X})),J)X.dispatchEvent(new GX(U,j.step));if($.inlineStrategy)X.swallowPromiseRejection(X.processPendingUpdatesAfterInlineAdvance(U));return E}var oH=z(()=>{b();J6();I();_3();SU();_$();D$();xU();rH();O6();h4();R$();c6();Y$();r$();WJ();rX();G4()});function hw($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function Iw($,U,J){let X=U.hasLocalCheckpointOwnership(J.id,J.status);if(J.status==="pending"||U.isInlineWorkflowLocallyOwned(J.id,J.status)||X)return{kind:"local",workflowId:J.id};if(J.status!=="running")return{kind:"ignored"};if(!$.registrations.has(J.type))return{kind:"missing",workflow:{type:J.type,workflowId:J.id}};return{kind:"recoverable",workflowId:J.id}}function yw($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function mw($,U){let J={entries:[],missingWorkflows:[]};for await(let[X,_]of $.storage.scan("wf:")){if(hw(X))continue;yw(J,Iw($,U,n(_)))}return J}async function aH($,U,J){let X=await mw($,U),_=[];if(X.missingWorkflows.length>0&&J?.acknowledgeUnknownWorkflowTypes!==!0)throw new a2({registeredTypes:$.registrations.keys(),missingWorkflows:X.missingWorkflows});for(let G of X.entries){if(G.kind==="local"){_.push(U.getHandle(G.workflowId));continue}if(G.kind==="missing"){U.dispatchEvent(new DX(G.workflow.workflowId,G.workflow.type,"type-not-registered"));continue}try{_.push(await G3($,G.workflowId,U))}catch(Q){if(Q instanceof W2){await U.failWorkflowForCheckpointDecodeError(G.workflowId,Q);continue}throw Q}}return _}async function G3($,U,J){let X=await l($,U);if(X!==null){if(J.isInlineWorkflowLocallyOwned(U,X.status)||J.hasLocalCheckpointOwnership(U,X.status))return await jN($,U,J),J.getHandle(U)}return EJ($,U,!0,J)}async function sH($,U,J,X){let _=await l($,U);if(!_)throw Error(`Workflow "${U}" not found`);let G=$.registrations.get(_.type);if(!G)throw Error(`No workflow registered with name "${_.type}" (needed to fork "${U}")`);let Q=J?.fromStep!==void 0?FB(J.fromStep):void 0,D=Q!==void 0?q.checkpointHistory(U,Q):q.checkpoint(U),Y=await $.storage.get(D);if(!Y){if(Q!==void 0)throw Error(`Checkpoint not found at step ${String(Q)} for workflow "${U}"`);throw Error(`Checkpoint not found for workflow "${U}"`)}let Z=H$(Y),j=await PU($.storage,U,Z),H=iX($,U,_,j,G,X),L=$.workflowHeaders.get(U)??await bU($,U,X),F=I9(L),W=crypto.randomUUID(),E=$.options.getNow(),m=xO($,U,j,X),{accumulatedResultReplayWatermark:a,...p}=H.checkpoint,y={...p,createdAt:E,workflowId:W,searchAttributes:SO($,H.checkpoint,m,X)},k=bO($,W,H.state,H.versionTuple,m,E,X),w=!1;try{let E$=L$(y);await Z$($,vO($,W,k,y,E$,F,X),[],()=>Error(`Fork of workflow "${W}" lost its CAS race.`)),$.eventLogHeads.set(W,jU),X4($,W,F,X);let T6=yO($,W,k,y,G,X);return w=!0,T6}finally{if(!w)m4($,W),$.checkpoints.delete(W),$.workflowVersionTuples.delete(W),$.eventLogHeads.delete(W),$.workflowHeaders.delete(W)}}function uw($,U,J,X,_,G){let Q=$.inlineStrategy;if(!Q)throw Error("Inline workflow launch requested without an inline strategy.");let D=new Map(X.accumulatedResults),Y=new AbortController;TJ($,U);let Z=new k4({workflowId:U,workflowType:J.type,startedAt:A6(J),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:G.resolveWorkflowTypeTarget,executionStateOwnerId:J.executionStateOwnerId??U,accumulatedResults:D,searchAttributes:X.searchAttributes,registerCancelHandler:X3($,U),..._.searchAttributes&&{searchAttributeSchema:_.searchAttributes},sleepReferenceTime:X.createdAt,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(G0(Z,H6($)),$.options.development)Z.explain(!0);let j=_.handler(Z,J.input);Q.adoptWorkflow(U,j,Z,Y),Q.continueWorkflow(U,void 0),G.swallowPromiseRejection(G.processPendingUpdatesAfterInlineAdvance(U))}function kw($,U,J,X){let _=L$(X);$.strategy.startWorkflow({workflowId:U,workflowType:J.type,input:J.input,checkpoint:_,executionStateOwnerId:J.executionStateOwnerId??U,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function yO($,U,J,X,_,G){$.checkpoints.set(U,X),$.workflowVersionTuples.set(U,_0($,_,G));let Q=BJ($,U,G);if(G.dispatchEvent(new R4(U,J.type,J.input)),$.inlineStrategy)uw($,U,J,X,_,G);else kw($,U,J,X);return Q}var mO=z(()=>{b();J6();SZ();_3();SU();_$();xU();qU();z$();O6();h4();$$();R$();c6();Y$();gO();WJ();oH();G4()});var f4=z(()=>{G4();WJ();$3();mN();EH();mO();oH()});function uO($,U,J){if($.queuedInlineWorkflowStartIds.add(U.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.add(U.workflowId),$.queuedInlineWorkflowStarts.push(U),$.queuedInlineWorkflowStartFlushScheduled)return;if($.queuedInlineWorkflowStartFlushScheduled=!0,$.queuedInlineWorkflowStartChannel!==null){$.queuedInlineWorkflowStartChannel.port2.postMessage(void 0);return}setTimeout(()=>{$.queuedInlineWorkflowStartFlushScheduled=!1,J.swallowPromiseRejection(xJ($,J))},0)}function tH($,U){for(let J of U)$.queuedInlineWorkflowStartIds.delete(J.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(J.workflowId),J.onStarted?.()}async function xJ($,U){if($.abortController.signal.aborted){let X=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],tH($,X);return}if($.queuedInlineWorkflowStarts.length===0)return;let J=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let X of J)await U.swallowPromiseRejection(fw($,X,U))}async function kO($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await xJ($,U)}async function fO($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let J=0,X=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&J<X)J+=1,await U.swallowPromiseRejection(xJ($,U))}async function fw($,U,J){try{let X=await l($,U.workflowId);if(!X||X.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new R4(U.workflowId,U.workflowType,U.input)),sX($,U.workflowId,U.workflowType,U.input,U.checkpoint,U.nestingDepth,U.executionDeadline,U.executionStateOwnerId),await J.processPendingUpdatesAfterInlineAdvance(U.workflowId)}finally{$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(U.workflowId),U.onStarted?.()}}function Q3($,U){if($.queuedInlineWorkflowStarts.length===0)return!1;let J=$.queuedInlineWorkflowStarts.length,X=[];if($.queuedInlineWorkflowStarts=$.queuedInlineWorkflowStarts.filter((_)=>{if(_.workflowId===U)return X.push(_),!1;return!0}),$.queuedInlineWorkflowStarts.length!==J)tH($,X);return $.queuedInlineWorkflowStarts.length!==J}function wO($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],tH($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let J=$.queuedInlineWorkflowStartChannel;if(J!==null)J.port1.close(),J.port2.close(),$.queuedInlineWorkflowStartChannel=null}function cO($,U){return $.queuedInlineWorkflowStartIds.has(U)}function ww($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function pO($){return $==="running"||$==="pending"}function dO($,U,J){if(!pO(J))return!1;if(ww($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function iO($,U,J){return $.checkpoints.has(U)&&pO(J)}var w4=z(()=>{_$();f4();R$()});function nO($){let U={engine:$};lO.set($,U)}function P($){let U=lO.get($);if(!U)throw Error("Engine internals not initialized \u2014 initializeInternals(this) was not called in the Engine constructor");return U}var lO;var c4=z(()=>{lO=new WeakMap});async function cw(){await new Promise(($)=>{setTimeout($,0)})}async function pw($,U){let J=$.inlineStrategy;if(J===null)return!1;let X=J.getContext(U);if(X&&X.updateHandlers.size>0)return!0;let _=J.waitForWorkflowAdvance(U);if(_){if(await _,X=J.getContext(U),X&&X.updateHandlers.size>0)return!0}for(let G=0;G<5;G++)if(await cw(),X=J.getContext(U),X&&X.updateHandlers.size>0)return!0;return!1}async function dw($,U,J,X){return cj($,U,J,X)}async function rO($,U,J){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await pw($,U))return;await SJ($,U,J)}function oO($,U,J){if($.inlineStrategy===null)return;setTimeout(()=>{SJ($,U,J).catch(()=>{})},0)}async function iw($,U,J){let X;try{X=await $(J)}catch(G){let Q=G instanceof Error?G.message:String(G);return new QU(U,[{message:Q}]).message}let _=pj(X);if(_!==null&&_.length>0)return new QU(U,_).message;return null}async function SJ($,U,J){let X=$.inlineStrategy?.getContext(U);if(!X)return;let _=X.updateHandlers;if(_.size===0)return;let G=await $.updateCoordinator.getPendingUpdates(U);if(G.length===0)return;let Q=!1;try{for(let D of G){let Y=_.get(D.name);if(!Y)continue;if(!lw($,U,D.updateId))continue;let Z=await nw(X,D);if(Z!==null){await rw($,U,D,Z,J);continue}Q=!0,await ow($,U,D,Y,J)}}finally{if(Q)i2($,U)}}function lw($,U,J){let X=$.deliveredPendingUpdateIds.get(U);if(X===void 0)X=new Set,$.deliveredPendingUpdateIds.set(U,X);if(X.has(J))return!1;return X.add(J),!0}async function nw($,U){let J=$.updateValidators?.get(U.name);if(J===void 0)return null;return iw(J,U.name,U.payload)}async function rw($,U,J,X,_){let G=$.updateCoordinator.buildResponseOperations(J.updateId,U,void 0,X,J.idempotencyKey);await Z$($,G,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),_.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}async function ow($,U,J,X,_){_.dispatchEvent(new $4(J.updateId,U,J.name,J.payload));let G,Q;try{G=await dw($,J.name,X,J.payload)}catch(Y){Q=Y instanceof Error?Y.message:String(Y)}let D=$.updateCoordinator.buildResponseOperations(J.updateId,U,G,Q,J.idempotencyKey);await Z$($,D,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),_.dispatchEvent(new f6(J.updateId,U,J.name,G,Q)),_.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}var eH=z(()=>{_$();S1();O6();c1()});function aw($){return $===void 0?void 0:[...$]}function sO($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function sw($,U,J){if(!J.constraints||J.constraints.length===0)return;if($.inlineStrategy===null)throw Error(`Cannot register workflow "${U}" with constraints: constraints are not supported in worker execution mode. The engine was constructed with \`workerExecution\`, which runs workflows in a Web Worker where the inline execution context required by constraint evaluation is unavailable. Remove the \`constraints\` option, or construct the engine without \`workerExecution\` to run workflows inline.`)}function tw($,U){let J=aw(U.tags),X=S9(U.retention,`registration("${$}").retention`);return{handler:U.handler,version:U.version??"1",...U.description===void 0?{}:{description:U.description},...J===void 0?{}:{tags:J},...U.inputSchema===void 0?{}:{inputSchema:M4(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:M4(U.outputSchema,`registration("${$}").outputSchema`)},...X!==null&&{retention:X},...U.concurrency!==void 0?{concurrency:ew(U.concurrency,`registration("${$}").concurrency`)}:{}}}function ew($,U){if(!Number.isInteger($.max)||$.max<1)throw RangeError(`${U}.max must be a positive integer`);if($.key!==void 0&&typeof $.key!=="function")throw TypeError(`${U}.key must be a function when provided`);return Object.freeze({max:$.max,...$.key===void 0?{}:{key:$.key}})}function $c($,U){if(U.searchAttributes&&Object.keys(U.searchAttributes).length>0)$.searchAttributes=U.searchAttributes;if(U.constraints&&U.constraints.length>0)$.constraints=U.constraints;if(U.finalizer!==void 0)$.finalizer=U.finalizer}function Uc($,U){let J=tw($,U);return $c(J,U),J}function aO($,U,J){let X=U.name;Y4(X,"workflow"),sw($,X,U);let _=Uc(X,U);$.registrations.set(X,_),J.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,X),J.dispatchEvent(new XX(X))}function bJ($,U){if(!(U in $))return!1;let J=$[U];return typeof J==="object"&&J!==null}function Jc($){if(!sO($))return!1;return bJ($,"activities")&&bJ($,"signals")&&bJ($,"updates")&&bJ($,"queries")&&bJ($,"searchAttributes")}function _c($){let U=new F2;for(let J of Object.values($)){let X=B1(J),_=G8(X);U.register(_.name,_)}return U}function Xc($,U,J){let X=$.workflowDefinitionsByName.get(U);if(X===void 0)return{kind:"register"};if(X===J)return{kind:"idempotent"};throw Error(`Workflow "${U}" is already registered with a different definition`)}function tO($,U,J){if(!sO(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(Jc(U)){if(Xc($,U.name,U).kind==="idempotent")return;let _=_c(U.activities);aO($,U,J),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,_);return}aO($,U,J)}function D3($,U,J){if(typeof U==="string")return U;let X=$.workflowTypesByHandler.get(U);if(X)return X;throw Error("Workflow functions used in composition operators must be registered before use. Pass the registered workflow type string or register the function on the engine first.")}var $P=z(()=>{BZ();_$();n$();C0();Y$()});function p6($,U,J){if(J!==void 0)$[U]=J}function eO($){return{status:"pending",...$}}function Dc($){let U={reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt};return p6(U,"timeout",$.timeout),p6(U,"webhookUrl",$.webhookUrl),U}function Y3($){let U;try{U=R($)}catch{return null}let J=Gc.safeParse(U);if(!J.success)return null;return Dc(J.data)}function $A($,U){let J={status:"completed",reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt,decision:U.decision,reviewer:U.reviewer,timestamp:U.timestamp};return p6(J,"timeout",$.timeout),p6(J,"webhookUrl",$.webhookUrl),p6(J,"feedback",U.feedback),p6(J,"sectionDecisions",U.sectionDecisions),J}function Yc($){let U={status:"completed",reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt,decision:$.decision,reviewer:$.reviewer,timestamp:$.timestamp};return p6(U,"timeout",$.timeout),p6(U,"webhookUrl",$.webhookUrl),p6(U,"feedback",$.feedback),p6(U,"sectionDecisions",$.sectionDecisions),U}function UP($){let U;try{U=R($)}catch{return null}let J=Qc.safeParse(U);if(!J.success)return null;return Yc(J.data)}var Gc,Qc;var JP=z(()=>{q2();I();Gc=S.object({reviewId:S.string(),workflowId:S.string(),artifact:S.unknown().nonoptional(),reviewType:S.string(),reviewers:S.array(S.string()),allowPartial:S.boolean(),timeout:S.number().optional(),webhookUrl:S.string().optional(),createdAt:S.number()}),Qc=S.object({status:S.literal("completed"),reviewId:S.string(),workflowId:S.string(),artifact:S.unknown().nonoptional(),reviewType:S.string(),reviewers:S.array(S.string()),allowPartial:S.boolean(),timeout:S.number().optional(),webhookUrl:S.string().optional(),createdAt:S.number(),decision:S.enum(["approved","rejected","needs-changes"]),reviewer:S.string(),feedback:S.string().optional(),sectionDecisions:S.record(S.string(),S.enum(["approved","rejected"])).optional(),timestamp:S.number()})});function _P($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function XP($){if($===void 0)return"review-decision:";return`review-decision:${K($)}:`}function Zc($,U){return`${XP($)}${K(U)}`}async function UA($,U,J,X=()=>!0){for await(let[_,G]of U){if(!X(_))continue;let Q=UP(G);if(Q!==null&&_P(Q,J))$.push(Q)}}async function JA($,U){let J=[],X=U.workflowId===void 0?null:XP(U.workflowId);if(X!==null)await UA(J,$.scan(X),U);return await UA(J,$.scan("review-decision:"),U,(_)=>X===null||!_.startsWith(X)),J}async function _A($,U,J,X){let _=$A(J,X);await $.batch([{type:"put",key:Zc(J.workflowId,J.reviewId),value:B(_)},{type:"delete",key:U}])}async function XA($,U){let J=XP(U),X=[];if($.deletePrefix)await $.deletePrefix(J);else for await(let[_]of $.scan(J))X.push({type:"delete",key:_});for await(let[_,G]of $.scan("review-decision:")){if(_.startsWith(J))continue;if(UP(G)?.workflowId===U)X.push({type:"delete",key:_})}if(X.length>0)await $.batch(X)}var GA=z(()=>{b();I();JP()});function jc($){if($.workflowId===void 0)return"review:";return`review:${K($.workflowId)}:`}async function Hc($,U){let J=[];for await(let[,X]of $.storage.scan(jc(U))){let _=Y3(X);if(_!==null&&_P(_,U))J.push(eO(_))}return J}async function QA($,U,J,X,_){await _A($.storage,U,J,X),_(new H9(J.workflowId,J.reviewId,X.decision,X.reviewer,X.timestamp-J.createdAt))}async function DA($,U={}){if(U.status==="completed")return JA($.storage,U);return Hc($,U)}async function YA($,U,J){return $.reviewCoordinator.getReview(U,J)}async function Pc($,U){for await(let[J,X]of $.storage.scan("review:")){let _=Y3(X);if(_!==null&&_.reviewId===U)return{reviewKey:J,reviewData:_,workflowId:_.workflowId}}return null}async function qc($,U,J){if(J!==void 0){let X=q.review(J,U),_=await $.storage.get(X);return _===null?null:{reviewKey:X,reviewData:Y3(_),workflowId:J}}return Pc($,U)}function zc($,U,J){let{decision:X,reviewer:_,feedback:G,sectionDecisions:Q}=U,D={reviewId:$,decision:X,reviewer:_,timestamp:J};if(G!==void 0)D.feedback=G;if(Q!==void 0)D.sectionDecisions=Q;return D}function Lc($,U,J,X){let _=`${U}:${J}`,G=$.reviewWaiters.get(_);if(!G)return;$.reviewWaiters.delete(_),G6($.reviewWaitersByWorkflow,U,_),G(X)}async function ZA($,U,J,X){let _=await qc($,U,J.workflowId);if(_===null)throw Error(`Review "${U}" not found`);if(_.reviewData===null)throw Error(`Review "${U}" could not be loaded`);let G=zc(U,J,$.options.getNow());await QA($,_.reviewKey,_.reviewData,G,X.dispatchEvent),Lc($,_.workflowId,U,G)}function Fc($,U){$({ok:!0,value:U})}async function Vc($,U,J,X,_,G,Q,D,Y){if(!D.id.startsWith(`review-escalation:${J}:`)&&D.id!==`review-timeout:${J}`)return!1;if(D.id===`review-timeout:${J}`){$.reviewWaiters.delete(X),G6($.reviewWaitersByWorkflow,U,X);let H=$.options.getNow()-_.createdAt;await $.storage.delete(q.review(U,J));let L=new lZ(J,H);return await Y.failWorkflow(U,L),Q({ok:!1,error:L}),!0}if(!G.escalation)return!1;let Z=$.reviewCoordinator.checkEscalations(_,G.escalation,$.options.getNow());if(!Z)return!1;if(Z.type==="escalate")return G.onEscalation?.(Z),!1;$.reviewWaiters.delete(X),G6($.reviewWaitersByWorkflow,U,X);let j={reviewId:J,decision:Z.decision,reviewer:"system",feedback:Z.auditReason,timestamp:$.options.getNow()};return await QA($,q.review(U,J),_,j,Y.dispatchEvent),Q({ok:!0,value:j}),!0}async function Mc($,U,J,X,_){try{await fetch(X,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workflowId:U,reviewId:J.reviewId,reviewType:J.reviewType,reviewers:J.reviewers,artifact:J.artifact}),signal:_.signal})}catch(G){if(!(G instanceof DOMException&&G.name==="AbortError"))console.warn(`[weft] Failed to send review webhook for ${J.reviewId}`,G)}finally{$.pendingWebhooks.delete(_)}}async function jA($,U){let J=`review:${K(U)}:`,X=[];if($.storage.deletePrefix)await $.storage.deletePrefix(J);else for await(let[_]of $.storage.scan(J))X.push({type:"delete",key:_});if(X.length>0)await $.storage.batch(X);await XA($.storage,U)}function Q0($,U,J){if(J!==void 0)$[U]=J}function Bc($){let U={artifact:$.artifact};return Q0(U,"reviewType",$.reviewType),Q0(U,"reviewers",$.reviewers),Q0(U,"allowPartial",$.allowPartial),Q0(U,"timeout",$.timeout),Q0(U,"escalation",$.escalation),Q0(U,"webhookUrl",$.webhookUrl),U}async function Wc($,U,J,X,_){let G=[];for(let Q of X.escalation??[]){let D=`review-escalation:${J}:${Q.after}`;G.push(D),await $.scheduler.schedule({id:D,workflowId:U,fireAt:_+Q.after,kind:"sleep"})}if(X.timeout!==void 0){let Q=`review-timeout:${J}`;G.push(Q),await $.scheduler.schedule({id:Q,workflowId:U,fireAt:_+X.timeout,kind:"sleep"})}return G}function Kc($,U,J){let{promise:X,resolve:_}=Promise.withResolvers(),G=`${U}:${J}`;return $.reviewWaiters.set(G,(Q)=>Fc(_,Q)),x4($.reviewWaitersByWorkflow,U,G),{promise:X,resolve:_,waiterKey:G}}function Nc($,U,J,X,_){let G=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.set(J,_),X.length>0)$.reviewTimerIds.set(J,X);if(!G)G=new Set,$.workflowReviewIds.set(U,G);G.add(J)}function Oc($,U,J){let X=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.delete(J),$.reviewTimerIds.delete(J),X?.delete(J),X?.size===0)$.workflowReviewIds.delete(U)}async function HA($,U,J,X){let _=$.options.getNow();await X.ensureTerminalCleanupTracked(U);let G=await $.reviewCoordinator.createReview(U,Bc(J)),Q=G.reviewId;if(X.dispatchEvent(new x1(U,Q,G.reviewType,G.reviewers)),J.webhookUrl!==void 0){let L=new AbortController;$.pendingWebhooks.add(L),Mc($,U,G,J.webhookUrl,L)}let D=await Wc($,U,Q,J,_),{promise:Y,resolve:Z,waiterKey:j}=Kc($,U,Q);Nc($,U,Q,D,(L)=>Vc($,U,Q,j,G,J,Z,L,X));let H=await Y;Oc($,U,Q);for(let L of D)await $.scheduler.cancel(L,U);if(!H.ok)return;X.feedOperationResult(U,{status:"completed",value:H.value})}var Z3=z(()=>{b();iZ();rZ();GA();JP();S4()});async function Ac($,U,J){for(let X of $)try{await X()}catch(_){U.handleCleanupError("cancel-handler",_,J)}}async function Cc($,U,J,X){if(J!=="cancelled")return;let _=WO($,U);await Ac(_,X,U)}async function GP($,U,J){await gU($,U,"cancelled",J)}async function QP($,U,J){await gU($,U,"timed-out",J)}async function gU($,U,J,X,_){$.terminalizingWorkflows.add(U),Q3($,U),$.strategy.cancelWorkflow(U);try{let G=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Q=await $.storage.get(q.attribute(U)),D=Q?R(Q):{},Y=await $.storage.get(q.finalizerState(U))!==null||mW($,U,q.finalizerState(U)),Z=SX(D),j=J==="timed-out"?"Workflow timed out":"Workflow cancelled",H=await QH($,U,{status:J,..._!==void 0?{terminationReason:_}:{},...G!==void 0?{terminalCleanupToken:G}:{}},{allowedStatuses:xH,buildAdditionalOperations:(a,p)=>{R6($,U,J,j,p);let y=D0($,U);return[...y?[y]:[],...G!==void 0?j3($,U,!0,p,G):[],...vc(U,Y,p)]}});if(!H)return;await Cc($,U,J,X),await J0($,U);let{previousState:L,updatedAt:F}=H,W=F-A6(L);if(await XH($,U,D),await GH($,U,Z),X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),L.status==="pending")X.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let E=$.resultResolvers.get(U),m=Rc(U,J,W);try{await eX($,U,!0,X);let a=Tc(U,J,W,_);if(X.dispatchEvent(a),X.forwardEventToHandle(U,a),E)E.reject(m);NJ($,U,X)}catch(a){if(E)E.reject(m);throw a}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function Rc($,U,J){return U==="timed-out"?new AU($,"execution",J):Error("Workflow cancelled")}function Tc($,U,J,X){return U==="timed-out"?new J4($,"execution",J,X):new MU($)}function Ec($,U,J,X){return{...$,status:"completed",result:U,updatedAt:J,...X!==void 0?{terminalCleanupToken:X}:{}}}function xc($,U,J){if(J===void 0||Object.keys(J).length===0)return;let X=SX(J);if($.push(...K$(U,J,X)),Object.keys(X).length>0)$.push({type:"put",key:q.attribute(U),value:B(X)});else $.push({type:"delete",key:q.attribute(U)})}function Sc($,U,J,X){let _=h$(U,J,X).batchOps,G=[...r1(J,X),{type:"put",key:q.workflow(U),value:B(X)},..._],Q=D0($,U);if(Q)G.push(Q);return G}function bc($,U,J,X,_){_.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let G=$.resultResolvers.get(U);try{vH($,U,_);let Q=new VU(U,J,X);if(_.dispatchEvent(Q),_.forwardEventToHandle(U,Q),_.broadcast({type:"workflow:completed",workflowId:U}),G)G.resolve(J);NJ($,U,_)}catch(Q){if(G)G.resolve(J);throw Q}finally{$.resultResolvers.delete(U)}}async function DP($,U,J,X){let _=await X.runSerializedWorkflowStateWrite(U,async()=>{let G=await X.loadWorkflowState(U);if(!G||G.status!=="running")return null;let Q=C$($.options.getNow(),"Workflow completion timestamp"),D=Q-A6(G),Y=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Z=Ec(G,J,Q,Y),j=Sc($,U,G,Z),H=$.checkpoints.get(U)?.searchAttributes;if(H===void 0){let L=await $.storage.get(q.attribute(U));if(L)H=R(L)}if(xc(j,U,H),Y!==void 0)j.push(...j3($,U,!1,Q,Y));return await X.commitWorkflowStateOperations(G,j,{includePendingAtomicSideEffects:!0}),{duration:D}});if(!_)return;await J0($,U),bc($,U,J,_.duration,X)}async function s$($,U,J,X,_="system"){let G=await $.storage.get(q.attribute(U)),Q=G?R(G):{},D=SX(Q,{failureCategory:_}),Y={status:"failed",error:J.message,failureCategory:_},Z=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0;if(J.stack!==void 0)Y.errorStack=J.stack;if(Z!==void 0)Y.terminalCleanupToken=Z;if(!await QH($,U,Y,{allowedStatuses:xH,buildAdditionalOperations:(L,F)=>{R6($,U,"failed",J.message,F);let W=D0($,U);return[...W?[W]:[],...Z!==void 0?j3($,U,!1,F,Z):[]]}}))return;await J0($,U),await XH($,U,Q),X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await GH($,U,D);let H=$.resultResolvers.get(U);try{await eX($,U,!1,X);let L=new U4(U,J);if(X.dispatchEvent(L),X.forwardEventToHandle(U,L),H)H.reject(J);NJ($,U,X)}catch(L){if(H)H.reject(J);throw L}finally{$.resultResolvers.delete(U)}}function j3($,U,J,X,_){return P$({id:k1(J,_),workflowId:U,fireAt:X+IX,kind:"terminal-cleanup"})}function vc($,U,J){if(!U)return[];let X=crypto.randomUUID(),_={status:"owed",attempts:0,token:X};return[{type:"put",key:q.teardownOwed($),value:B(_)},...P$({id:v9(X),workflowId:$,fireAt:J,kind:"teardown"})]}async function vJ($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(q.terminalCleanupNeeded(U),c$)}function R6($,U,J,X,_=$.options.getNow()){let G=$.pendingTimelineEntries.get(U);if(!G)return;let Q=G.entry.status;if(Q===J)return;if(Q!=="running"&&!(Q==="completed"&&(J==="failed"||J==="cancelled"||J==="timed-out")))return;G.entry.status=J,G.entry.outputSummary=q$(X),G.entry.duration=_-G.startedAt}function D0($,U){let J=$.pendingTimelineEntries.get(U);if(!J)return null;return{type:"put",key:q.timeline(U,J.entry.step),value:B(J.entry)}}var PA=z(()=>{b();I();_$();D$();w$();WX();a1();cX();h4();w4();f4();$$();VJ();r$();OJ()});function qA($,U,J,X){let _=$.inlineStrategy?.getAbortController(U),G=$.activityWorkerDispatcher?void 0:LW(J.options?.timeout),Q=G===void 0?void 0:new AbortController,D=gc(_?.signal,Q?.signal,X);return{perAttemptTimeoutMs:G,attemptAbortController:Q,activitySignal:D}}function gc($,U,J){let X=[$,U,J].filter((G)=>G!==void 0),[_]=X;if(_===void 0)return new AbortController().signal;if(X.length===1)return _;return AbortSignal.any(X)}async function H3($,U,J,X,_){if(U===void 0)return $;let G=Promise.resolve($);G.catch(()=>{});let Q,D=new Promise((Y,Z)=>{Q=setTimeout(()=>{let j=new hj(J,X,U);Z(j),_?.abort(j)},U)});try{return await Promise.race([G,D])}finally{if(Q!==void 0)clearTimeout(Q)}}var YP=z(()=>{yj()});async function zA($,U,J,X){let _=$.timeout===void 0?void 0:J$($.timeout),G=new AbortController,Q=()=>G.abort(X.reason);if(X.aborted)G.abort(X.reason);else X.addEventListener("abort",Q,{once:!0});let D={signal:G.signal,heartbeat:()=>{},completeAsync:()=>{throw Error(`Finalizer "${$.name}" called ctx.completeAsync(), which is not supported in a workflow finalizer: the finalizer runs after the workflow is already terminal, so there is no durable step to complete out of band. Run the teardown synchronously instead.`)}};try{if(await H3($.execute(U,D),_,$.name,J,G),X.aborted)return{ok:!1,error:Error(`Finalizer "${$.name}" resolved while the engine was shutting down; treating attempt ${J} as shutdown-aborted so the teardown re-runs after restart.`,{cause:X.reason}),abortedByShutdown:!0};return{ok:!0}}catch(Y){return{ok:!1,error:Y,abortedByShutdown:X.aborted}}finally{X.removeEventListener("abort",Q)}}var LA=z(()=>{D$();YP()});function VA($){let U=$-1;return ZP[U]??ZP[ZP.length-1]}function MA($){return($.timeout===void 0?hc:J$($.timeout))+Ic}function BA($,U,J){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=MA(J)}function P3($,U,J){return P$({id:v9($),workflowId:U,fireAt:J,kind:"teardown"})}function jP($,U){return B({status:"owed",attempts:$,token:U})}function yc($,U,J){return B({status:"running",attempts:$,token:U,claimedAt:J})}async function gJ($,U,J,X){let _=$.options.getNow()+X;try{await Z$($,P3(J,U,_),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function WA($,U,J){try{return await i1($,[{type:"delete",key:q.teardownOwed(U)}],[{key:q.teardownOwed(U),expectedValue:J}])}catch{return!1}}async function KA($,U,J,X,_){let G=yc(X,_,$.options.getNow());return await i1($,[{type:"put",key:q.teardownOwed(U),value:G}],[{key:q.teardownOwed(U),expectedValue:J}])?G:null}async function hJ($,U,J,X){return i1($,X,[{key:q.teardownOwed(U),expectedValue:J}])}async function HP($,U,J,X,_,G){let Q={type:J,lastError:G.lastError,attempts:X,deadLetteredAt:$.options.getNow(),...G.finalizerInput===void 0?{}:{finalizerInput:G.finalizerInput}};return hJ($,U,_,[{type:"delete",key:q.teardownOwed(U)},{type:"delete",key:q.finalizerState(U)},{type:"put",key:q.teardownDeadLetter(U),value:B(Q)}])}var FA=8,ZP,hc=300000,Ic=30000,Y0=30000;var NA=z(()=>{b();I();D$();O6();$$();ZP=[60000,300000,900000,3600000]});function uc($){return $ instanceof Error?$.message:String($)}async function q3($,U,J){await gJ($,U,J,Y0)}async function PP($,U,J,X){return await WA($,U,X)?{kind:"cleared"}:{kind:"rearm",token:J}}async function kc($,U,J,X){let _;try{_=R(X)}catch{return PP($,U,J,X)}if(!qB(_))return PP($,U,J,X);return{kind:"claim",claim:_}}async function fc($,U,J,X){let _=await $.storage.get(q.teardownOwed(U));if(_===null)return{kind:"cleared"};let G=await kc($,U,J,_);if(G.kind!=="claim")return G;let Q=G.claim;if(Q.token!==J)return{kind:"cleared"};let D=await X.loadWorkflowState(U);if(D===null||!mc.has(D.status))return PP($,U,J,_);let Y=$.registrations.get(D.type)?.finalizer;if(Y===void 0)return{kind:"rearm",token:J};let Z=Y;if(!BA($,Q,Z))return{kind:"rearm",token:J};let j=await $.storage.get(q.finalizerState(U));if(j===null)return await wc($,U,D.type,Q.attempts,_,X),{kind:"cleared"};return{kind:"run",drive:{state:D,claim:Q,markerBytes:_,finalizer:Z,finalizerInput:R(j)}}}async function wc($,U,J,X,_,G){if(await HP($,U,J,X,_,{lastError:"finalizer state missing \u2014 recorded resource cannot be torn down",finalizerInput:void 0}))G.dispatchEvent(new BU(U,J,"dead-lettered",X,"finalizer state missing \u2014 recorded resource cannot be torn down"))}async function qP($,U,J,X){let _=PB(J);if(_===null)return;try{let G=await fc($,U,_,X);if(G.kind==="cleared")return;if(G.kind==="rearm"){await gJ($,U,G.token,Y0);return}await cc($,U,_,G.drive,X)}catch(G){await gJ($,U,_,Y0),X.handleCleanupError("runWorkflowFinalizer",G,U)}}async function cc($,U,J,X,_){let{state:G,claim:Q,markerBytes:D,finalizer:Y,finalizerInput:Z}=X,j=Q.attempts+1,H=await KA($,U,D,Q.attempts,J);if(H===null){await gJ($,U,J,Y0);return}let L=await zA(Y,Z,j,$.abortController.signal);if(L.ok){await pc($,U,G.type,J,j,H,_);return}if(L.abortedByShutdown){let F=$.options.getNow()+Y0;if(!await hJ($,U,H,[{type:"put",key:q.teardownOwed(U),value:jP(Q.attempts,J)},...P3(J,U,F)]))await q3($,U,J);return}await dc($,U,G,j,J,H,L.error,_)}async function pc($,U,J,X,_,G,Q){if(!await hJ($,U,G,[{type:"delete",key:q.teardownOwed(U)},{type:"delete",key:q.finalizerState(U)}])){await q3($,U,X);return}Q.dispatchEvent(new BU(U,J,"completed",_))}async function dc($,U,J,X,_,G,Q,D){let Y=uc(Q);if(X>=FA){let H=await $.storage.get(q.finalizerState(U));if(!await HP($,U,J.type,X,G,{lastError:Y,finalizerInput:H===null?void 0:R(H)})){await q3($,U,_);return}D.dispatchEvent(new BU(U,J.type,"dead-lettered",X,Y));return}let Z=$.options.getNow()+VA(X);if(!await hJ($,U,G,[{type:"put",key:q.teardownOwed(U),value:jP(X,_)},...P3(_,U,Z)])){await q3($,U,_);return}D.dispatchEvent(new BU(U,J.type,"failed",X,Y))}var mc;var OA=z(()=>{b();I();_$();$$();LA();NA();mc=new Set(["cancelled","timed-out"])});async function zP($,U,J){if(!await J.runSerializedWorkflowStateWrite(U,async()=>{let G=await J.loadWorkflowState(U);if(!G||G.status!=="running")return!1;if($.inlineStrategy===null)throw new t2("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),Q3($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),SH($,U,J);let Q=$.options.getNow(),D={...G,status:"suspended",updatedAt:Q};return await J.commitWorkflowStateOperations(G,[{type:"put",key:q.workflow(U),value:B(D)},...h$(U,G,D).batchOps,...ic(U,G.executionDeadline)]),!0}))return;let _=new QX(U);J.dispatchEvent(_),J.forwardEventToHandle(U,_)}function ic($,U){if(U===void 0)return[];let J=`deadline:${$}`;return[{type:"delete",key:q.deadline(U,J)},{type:"delete",key:`timer-idx:${J}`}]}var AA=z(()=>{b();I();_$();z$();w4();r$();OJ()});var Q4=z(()=>{OJ();PA();OA();AA()});function IJ($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>b4(P($),U,d6($))}}function z3($){return{processPendingUpdatesAfterInlineAdvance:(U)=>CA($,U),swallowPromiseRejection:(U)=>C6(U)}}async function CA($,U){try{await rO(P($),U,IJ($))}catch(J){e($).handleCleanupError("processPendingUpdates",J,U)}}function T$($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>pX(P($),U),runSerializedWorkflowStateWrite:(U,J)=>Q6(P($),U,J),getComposedWorkflowInterceptor:()=>H6(P($)),resolveWorkflowTypeTarget:(U)=>D3(P($),U,L3($)),processPendingUpdatesAfterReplay:(U)=>{AH(P($),U,{processPendingUpdatesForHandlers:(J)=>SJ(P($),J,IJ($)),handleCleanupError:(J,X,_)=>e($).handleCleanupError(J,X,_)})},processPendingUpdatesAfterInlineAdvance:(U)=>CA($,U),processPendingUpdatesForHandlers:(U)=>SJ(P($),U,IJ($)),queueInlineWorkflowExecutionStart:(U)=>uO(P($),U,z3($)),isInlineWorkflowLocallyOwned:(U,J)=>dO(P($),U,J),hasLocalCheckpointOwnership:(U,J)=>iO(P($),U,J),handleCleanupError:(U,J,X)=>e($).handleCleanupError(U,J,X),swallowPromiseRejection:(U)=>C6(U),enforceHistoryCircuitBreaker:(U)=>gU(P($),U,"timed-out",e($),i_),failWorkflowForUnavailableServices:(U,J)=>s$(P($),U,J,e($),"system"),failWorkflowForCheckpointDecodeError:(U,J)=>s$(P($),U,J,e($),"system")}}function lc($,U){let J=(X)=>{$.dispatchEvent(X)};return{dispatchEvent:J,forwardEventToHandle:(X,_)=>JK(P($),X,_,d6($)),broadcast:(X)=>b4(P($),X,d6($)),swallowPromiseRejection:(X)=>C6(X),handleCleanupError:(X,_,G)=>KJ(P($),X,_,G,{dispatchEvent:J}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(X)=>l(P($),X),runSerializedWorkflowStateWrite:(X,_)=>Q6(P($),X,_),commitWorkflowStateOperations:(X,_,G)=>xX(P($),X,_,G),cleanupReviews:(X)=>jA(P($),X)}}function TA($){RA=$}function e($){return lc($,(U)=>RA($,U))}function L3($){return{ensureRetentionSweepInterval:()=>nc($),dispatchEvent:(U)=>$.dispatchEvent(U)}}function xA($){EA=$}function nc($){EA($)}function d6($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function F3($){return{deleteRequestIfUnconsumed:(U,J)=>P($).updateCoordinator.deleteRequestIfUnconsumed(U,J),getUpdateResponse:(U)=>P($).updateCoordinator.getResponse(U)}}function SA($){return{cancelWorkflowInStrategy:(U)=>P($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,J)=>s$(P($),U,J,e($)),feedOperationResult:(U,J,X)=>j6(P($),U,J,X)}}var RA=async()=>{return},EA=()=>{return};var Z0=z(()=>{n$();BX();WH();w4();c4();f4();eH();$P();Z3();R$();c6();Q4()});function bA($){LP=$}function yJ($){if(LP===void 0)throw Error("Operation-router callback factory was not registered before being requested. Ensure the engine has been initialized (which loads the router module).");return LP($)}var LP;class mJ{id;#$;constructor($,U){this.id=$,this.#$=U}async pause(){await this.#$.pauseSchedule(this.id)}async resume(){await this.#$.resumeSchedule(this.id)}async cancel(){await this.#$.cancelSchedule(this.id)}async update($){await this.#$.updateSchedule(this.id,$)}async describe(){let $=await this.#$.getSchedule(this.id);if(!$)throw Error(`Schedule "${this.id}" not found`);return $}}function vA($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function FP($,U,J){vA(U);let X=C$($,"Interval anchor"),_=C$(J,"Interval occurrence candidate");if(_<X)return X+U;let G=_-X,Q=Math.floor(G/U),D=X+(Q+1)*U;return C$(D,"Interval occurrence")}function gA($,U,J,X,_){vA(U);let G=_?.maxOccurrences;if(G!==void 0&&(!Number.isSafeInteger(G)||G<=0))throw Error("Interval occurrence maxOccurrences must be a positive safe integer");let Q=G??Number.POSITIVE_INFINITY,D=[],Y=J;while(Y<=X&&D.length<Q)D.push(Y),Y=FP($,U,Y);return D}var hA=z(()=>{D$()});function IA($){if($.intervalMs!==void 0)return{kind:"interval",intervalMs:$.intervalMs,anchor:$.createdAt};if($.cronExpression!==void 0)return{kind:"cron",cronExpression:$.cronExpression};throw Error("Schedule state must define either a cron expression or an interval")}function i6($,U){let J=IA($);if(J.kind==="interval")return FP(J.anchor,J.intervalMs,U);return RX(J.cronExpression,U)}function yA($,U,J,X){let _=IA($);if(_.kind==="interval")return gA(_.anchor,_.intervalMs,U,J,{maxOccurrences:X});return ej(_.cronExpression,U,J,{maxOccurrences:X})}var VP=z(()=>{$H();hA()});async function MP($,U,J,X){let _=crypto.randomUUID(),G=U.overlap==="allow"?[]:[{type:"put",key:q.scheduleRun(_),value:B(U.id)}],Q=await rc($,_,U);if(Q!==null){if(G.push({type:"put",key:q.workflowHasServices(_),value:c$},{type:"put",key:q.terminalCleanupNeeded(_),value:c$}),$.workflowsNeedingTerminalCleanup.add(_),Q.status==="available")$.workflowServices.set(_,Q.services)}if(await J.startWorkflow(U.workflowType,U.input,{id:_},G),$.engine.dispatchEvent(new o9(U.id,_,$.options.getNow(),X)),Q!==null&&Q.status==="unavailable"){let D=lX(_,Q.reason);try{await J.failWorkflow(_,D)}catch(Y){J.handleCleanupError("startScheduledRun",Y,_)}}return _}async function rc($,U,J){let X=$.options.resolveWorkflowServices;if($.inlineStrategy===null||!X)return null;try{return await X({workflowId:U,workflowType:J.workflowType,input:J.input})}catch(_){return{status:"unavailable",reason:_ instanceof Error?_.message:String(_)}}}var mA=z(()=>{b();I();_$();rX();G4()});async function NP($,U,J){let X=await EU($,U.workflowId);if(!sc(X,U))return;let _=X;try{let G=$.options.getNow(),Q=tc(X,U,G);if(!Q)return;if(Q.occurrencesToProcess.length===0){if(_={..._,updatedAt:G,nextFireAt:BP(_,Q,G),...Q.missedOccurrences&&{lastMissedFireAt:Q.missedOccurrences.lastMissedFireAt,missedFireCount:_.missedFireCount+Q.missedOccurrences.count}},await WP($,_),Q.missedOccurrences)$.engine.dispatchEvent(new a9(_.id,Q.missedOccurrences.count,Q.missedOccurrences.windowStart,Q.missedOccurrences.windowEnd));return}_=await $p($,X,Q,G,J,{onProcessedState:(D)=>{_=D}})}catch(G){if(G instanceof KP)throw G;await Up($,_,G)}}function sc($,U){return $?.status==="active"&&$.nextFireAt!==null&&l1($,$.nextFireAt)===U.fireAt}function tc($,U,J){let X=yA($,$.nextFireAt,Math.max(J,U.fireAt),$.backfill?uA:2);if(X.length===0)return null;if(!$.backfill&&J-U.fireAt>oc)return{dueOccurrences:X,missedOccurrences:ec($,$.nextFireAt,J),occurrencesToProcess:[],skipMissedOccurrences:!0};let _=$.backfill?X:X.slice(0,1);return{dueOccurrences:X,occurrencesToProcess:_,skipMissedOccurrences:!1}}function ec($,U,J){let X=0,_=U,G=U;while(_<=J&&X<ac){X+=1,G=_;let D=i6($,_);if(D<=_)throw Error(`Schedule "${$.id}" produced a non-advancing occurrence`);_=D}let Q=_<=J;return{count:X,lastMissedFireAt:G,windowStart:U,windowEnd:Q?G:J}}function BP($,U,J){if(U.skipMissedOccurrences)return i6($,U.missedOccurrences?.lastMissedFireAt??J);let X=U.occurrencesToProcess.at(-1)??U.dueOccurrences.at(-1);return i6($,X)}async function $p($,U,J,X,_,G){let Q=U;for(let[D,Y]of J.occurrencesToProcess.entries()){let Z=D===J.occurrencesToProcess.length-1;if(Q={...await _.applyScheduleOccurrence(Q,Y),lastFireAt:Y,updatedAt:X},Z)Q={...Q,nextFireAt:BP(Q,J,X)};if(G.onProcessedState(Q),await WP($,Q,{includeTimer:Z}),U.backfill&&Q.currentWorkflowId!==void 0){if(Q=await _.settleBackfillScheduleState(Q),Z)Q={...Q,updatedAt:X,nextFireAt:BP(Q,J,X)},await WP($,Q);G.onProcessedState(Q)}}return Q}async function WP($,U,J){try{await D6($,U,J)}catch(X){throw new KP(U.id,X)}}async function Up($,U,J){let X=$.options.getNow(),_={...U,status:"paused",updatedAt:X,nextFireAt:i6(U,X)};await D6($,_,{includeTimer:!1}),console.error(`[weft] Paused schedule "${_.id}" after timer processing failed:`,J)}var oc=1000,uA=256,ac,KP;var kA=z(()=>{Sj();AX();VP();R$();ac=uA;KP=class KP extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}});async function OP($,U,J,X,_){if(!$.registrations.has(U))throw new OU(U);let G=_H(X),Q=AK(_),D=Q.id??crypto.randomUUID();if($.pendingScheduleCreations.has(D))throw Error(`Schedule with id "${D}" already exists`);$.pendingScheduleCreations.add(D);try{if(await $.storage.get(q.schedule(D)))throw Error(`Schedule with id "${D}" already exists`);let Y=$.options.getNow(),Z=G.kind==="interval"?{intervalMs:G.intervalMs}:{cronExpression:G.cronExpression},j={id:D,workflowType:U,input:J,...Z,status:"active",overlap:Q.overlap,backfill:Q.backfill,...Q.jitterMs!==void 0&&{jitterMs:Q.jitterMs},createdAt:Y,updatedAt:Y,nextFireAt:i6({...Z,createdAt:Y},Y),missedFireCount:0,queuedRuns:0};return await D6($,j),new mJ(D,$.engine)}finally{$.pendingScheduleCreations.delete(D)}}async function fA($,U){let J=CK(U),X=[];for await(let[_,G]of $.storage.scan("schedule:")){if(_.slice(9).includes(":"))continue;let D=ZJ(G);if(!D||!NB(D,J))continue;let{input:Y,...Z}=D;X.push(Z)}return OB(X,J)}async function wA($){for await(let[U,J]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let _=ZJ(J);if(!Jp(_))continue;if(await _p($,_))continue;await D6($,_)}}function Jp($){return $?.status==="active"&&$.nextFireAt!==null}async function _p($,U){let J=q.scheduleTick(l1(U,U.nextFireAt),U.id);if(await $.storage.get(J)===null)return!1;let _=await $.storage.get(`timer-idx:${u1(U.id)}`);return _!==null&&R(_)===J}function cA($){let{input:U,...J}=$;return J}async function pA($,U){let J=y4(U,"scheduleId"),X=await jJ($,J);if(X.status!=="active")return;await $.scheduler.cancel(u1(J),J);let _=$.options.getNow(),G={...X,status:"paused",updatedAt:_,nextFireAt:i6(X,_),queuedRuns:0};await D6($,G,{includeTimer:!1})}async function dA($,U){let J=y4(U,"scheduleId"),X=await jJ($,J);if(X.status==="cancelled")throw Error(`Schedule "${J}" has been cancelled and cannot be resumed`);if(X.status==="active")return;let _=$.options.getNow(),G={...X,status:"active",updatedAt:_,nextFireAt:i6(X,_)};await D6($,G)}async function iA($,U){let J=y4(U,"scheduleId"),X=await jJ($,J);if(X.status==="active")await $.scheduler.cancel(u1(J),J);let _={...X,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await D6($,_,{includeTimer:!1})}async function lA($,U,J){let X=y4(U,"scheduleId"),_=_H(J),G=await jJ($,X),Q=$.options.getNow(),{cronExpression:D,intervalMs:Y,...Z}=G,j=_.kind==="interval"?{intervalMs:_.intervalMs}:{cronExpression:_.cronExpression},H=_.kind==="interval"?{createdAt:Q}:{},L={...Z,...j,...H,updatedAt:Q,nextFireAt:G.status==="cancelled"?null:i6({...j,createdAt:Q},Q)};await D6($,L,{includeTimer:G.status==="active"})}function nA($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function rA($,U,J){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let X=await J.loadWorkflowState(U.currentWorkflowId);if(nA(X))return{state:U,currentWorkflowState:X};return await $.storage.delete(q.scheduleRun(U.currentWorkflowId)),{state:m9(U),currentWorkflowState:X??null}}function Xp($){return nA($)}async function Gp($,U,J,X){if(!U)return{...$,currentWorkflowId:await J.startScheduledRun($,X)};if($.overlap==="cancel-running"){if($.currentWorkflowId)J.getWorkflowResult($.currentWorkflowId).catch(()=>{}),await J.cancelWorkflow($.currentWorkflowId);let _=m9($);return{...$,currentWorkflowId:await J.startScheduledRun(_,X)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function oA($,U,J,X){let{state:_,currentWorkflowState:G}=await J.refreshScheduledWorkflowState(U),Q=Xp(G);if(_.overlap==="allow")return await J.startScheduledRun(_,X),_;return Gp(_,Q,J,X)}async function aA($,U,J){if(!U.currentWorkflowId)return U;await J.flushQueuedInlineWorkflowStartsDirectly();let X=$.inlineStrategy?.waitForWorkflowTurn(U.currentWorkflowId);if(X)await X;return(await J.refreshScheduledWorkflowState(U)).state}async function sA($,U,J){let X=await $.storage.get(q.scheduleRun(U));if(!X)return;await $.storage.delete(q.scheduleRun(U));let _=R(X);if(!TX(_))return;let Q=await EU($,_);if(!Q||Q.currentWorkflowId!==U)return;let D=$.options.getNow(),Y={...m9(Q),updatedAt:D};if(Y.status==="active"&&Y.overlap==="queue"&&Y.queuedRuns>0){let Z=await J.startScheduledRun(Y);await D6($,{...Y,currentWorkflowId:Z,queuedRuns:Y.queuedRuns-1,updatedAt:D},{includeTimer:!1});return}await D6($,Y,{includeTimer:!1})}var AP=z(()=>{b();I();z$();AX();VP();$$();R$();EX();mA();kA()});function j0($){return{startWorkflow:async(U,J,X,_)=>{await Y6(P($),U,J,X,_,T$($))},loadWorkflowState:(U)=>l(P($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>Qp($,U),startScheduledRun:(U,J)=>Dp($,U,J),applyScheduleOccurrence:(U,J)=>Yp($,U,J),settleBackfillScheduleState:(U)=>Zp($,U),flushQueuedInlineWorkflowStartsDirectly:()=>kO(P($),z3($)),failWorkflow:(U,J)=>s$(P($),U,J,e($)),handleCleanupError:(U,J,X)=>KJ(P($),U,J,X,{dispatchEvent:(_)=>$.dispatchEvent(_)})}}function tA($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,J)=>s$(P($),U,J,e($)),feedOperationResult:(U,J)=>j6(P($),U,J),ensureTerminalCleanupTracked:(U)=>vJ(P($),U)}}async function Qp($,U){return rA(P($),U,j0($))}async function Dp($,U,J){return MP(P($),U,j0($),J)}async function Yp($,U,J){return oA(P($),U,j0($),J)}async function Zp($,U){return aA(P($),U,j0($))}async function eA($,U){return NP(P($),U,j0($))}async function jp($,U){return sA(P($),U,j0($))}var $C=z(()=>{Z0();w4();c4();f4();AP();R$();c6();Q4();TA(($,U)=>jp($,U))});async function CP($,U,J){let X=await $.storage.get(q.workflow(U));if(!X)return;let _=n(X);if(Pp.has(_.status))throw new M9(U,_.status)}async function qp($,U,J,X){for(let _=0;_<UC;_++){if(await X.getUpdateResponse(J)!==null)return!0;if(await $.storage.get(q.update(U,J))===null)return!0;if(_<UC-1)await F6(Hp)}return!1}async function JC($,U,J,X){try{await CP($,U,X)}catch(_){if(_ instanceof M9){if(await qp($,U,J,X))return;if(await X.deleteRequestIfUnconsumed(U,J)!==null)return}throw _}}var UC=5,Hp=5,Pp;var _C=z(()=>{V6();b();S1();Y$();Pp=new Set(["completed","failed","cancelled","timed-out"])});function XC($,U){let J=U;if(J==null||typeof J!=="object")throw Error("Invalid operation request received from execution strategy");if("type"in J&&typeof J.type==="string")return J;if("kind"in J&&typeof J.kind==="string"){let X=J.kind,G={activity:"activity",timer:"sleep","signal-wait":"wait-signal","child-workflow":"child-workflow"}[X]??X;return{...J,type:G,operationId:J.id??crypto.randomUUID(),activityName:J.activityName??"",input:J.input}}throw Error("Unsupported operation request shape received from execution strategy")}async function GC($,U,J,X){let _=Lp(J,X);if(_)return _(U,J);let G=String(J.type);kJ($,U,J,Error(`Unsupported operation type: ${G}`),X)}function zp($){return{activity:$.processActivityOperation,sleep:$.processSleepOperation,"wait-signal":$.processWaitSignalOperation,"wait-update":$.processWaitUpdateOperation,"wait-condition":$.processWaitConditionOperation,"get-version":$.processGetVersionOperation,parallel:$.processParallelOperation,race:$.processRaceOperation,memo:$.processMemoOperation,"child-workflow":$.processChildWorkflowOperation,offload:$.processOffloadOperation,load:$.processLoadOperation,archive:$.processArchiveOperation,"state-read":$.processStateReadOperation,"state-commit":$.processStateCommitOperation,"run-all":$.processRunAllOperation,speculate:$.processSpeculateOperation,stream:$.processStreamOperation,"wait-review":$.processWaitReviewOperation}}function Lp($,U){return zp(U)[$.type]}function uJ($,U,J,X){X.finalizePendingTimelineEntry(U,"completed",J),X.feedOperationResult(U,{status:"completed",value:J})}function kJ($,U,J,X,_){if(X instanceof Error&&J.callerStack)X.stack=`${X.stack}
52
52
  --- workflow call site ---
53
- ${J.callerStack}`;let G=X instanceof Error?X.message:String(X);_.finalizePendingTimelineEntry(U,"failed",G),_.feedOperationResult(U,{status:"failed",error:G,...X instanceof Error?{errorName:X.name}:{},failureCategory:W0(X,{defaultErrorCategory:"application"})},{value:X})}async function QC($,U,J,X,_){try{let G=await X();uJ($,U,G,_)}catch(G){kJ($,U,J,G,_)}}async function DC($,U,J,X,_){try{await X()}catch(G){kJ($,U,J,G,_)}}var V3=z(()=>{l6()});async function ZC($,U,J,X){return X.runOperationWithResult(U,J,()=>TP($,U,J,RP($,U),X))}function RP($,U){let J=Fp($,U);if(J+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${J+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return J}function Fp($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function Vp($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function Mp($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function Bp($,U,J){return $.type===U.workflowType&&KB($.input,U.input)&&$.executionStateOwnerId===J}async function Wp($,U,J,X,_){let G=await _.loadWorkflowState($);if(!G)throw X;if(!Bp(G,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:X});return _.getHandle($)}async function Kp($,U,J,X,_){E9(J.options,"ctx.startChild"),Vp($,X);try{return await _.start(J.workflowType,J.input,{id:U})}catch(G){if(!(G instanceof o$))throw G;return Wp(U,J,X.pendingExecutionStateOwnerId??void 0,G,_)}finally{Mp($,X)}}async function TP($,U,J,X,_){let G=J.options?.id,Q=typeof G==="string"?G:crypto.randomUUID(),D=$.workflowHeaders.get(U)??new Map,Y=await _.loadWorkflowState(U),Z=Np(J),j=Z==="abandon"?null:Y?.executionStateOwnerId??U,H=async()=>{let F={pendingNestingDepth:X+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:j},W=await Kp($,Q,J,F,_);if(Z==="abandon")return YC(W.id);if(Z==="request-cancel")return E4($,U,{conditions:[],operations:hO($,U,W.id)}),lH($,U,W.id,_),YC(W.id);return W.result()},L=_.getComposedWorkflowInterceptor();if(!L)return H();return L.childWorkflow({workflowId:U,childWorkflowId:Q,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:D},H)}function Np($){return $.options?.parentClosePolicy??"await"}function YC($){return{id:$}}var EP=z(()=>{t6();rH();z$();$$()});function HC($){return{[jC]:!0,finalize:$}}function Op($){return typeof $==="object"&&$!==null&&$[jC]===!0}async function H0($){if(Op($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>H0(U)));return $}var jC;var M3=z(()=>{jC=Symbol("weft.deferredConsume")});function PC($,U){return Math.min(Math.max(0,$-U),Ap)}function qC($,U,J){J?.throwIfAborted();let X=$.abortController.signal;if(X.aborted)return Promise.reject(X.reason??Error("aborted"));if(PC(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((_,G)=>{let Q,D=()=>{J?.removeEventListener("abort",Y),X.removeEventListener("abort",Y)},Y=()=>{clearTimeout(Q),D(),G(J?.reason??X.reason??Error("aborted"))},Z=()=>{let j=PC(U.scheduledFireAt,$.options.getNow());if(j===0){D(),_();return}Q=setTimeout(Z,j)};J?.addEventListener("abort",Y,{once:!0}),X.addEventListener("abort",Y,{once:!0}),Z()})}function zC($,U,J,X){X?.throwIfAborted();let{signalName:_}=J,G=`${U}:${_}`,Q=$.abortController.signal;return new Promise((D,Y)=>{let Z=!1,j=!1,{promise:H,resolve:L}=Promise.withResolvers(),F=()=>{X?.removeEventListener("abort",E),Q.removeEventListener("abort",E)},W=async()=>{let p=await n2($,U,_);return p.found?p.payload:void 0},E=()=>{if(Z)return;if(Z=!0,F(),j)l2($,U,G,L);Y(X?.reason??Q.reason??Error("aborted"))},m=()=>{if(Z)return;Z=!0,F(),D(HC(W))},a=(p)=>{if(Z)return;if(Z=!0,F(),j)l2($,U,G,L);Y(p)};if(X?.addEventListener("abort",E,{once:!0}),Q.addEventListener("abort",E,{once:!0}),Q.aborted){E();return}(async()=>{let p=await fj($,U,_);if(Z)return;if(p.found){m();return}$.signalWaiters.set(G,L),x4($.signalWaitersByWorkflow,U,G),j=!0;let y=await fj($,U,_);if(Z)return;if(y.found){l2($,U,G,L),m();return}if(await H,Z)return;m()})().catch(a)})}var Ap=2147483647;var LC=z(()=>{M3();S4()});function Cp($,U,J,X){let _=$.lastHeartbeatDetailsByStep.get(U);if(_===void 0)_=new Map,$.lastHeartbeatDetailsByStep.set(U,_);_.set(J,X)}function FC($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function xP($,U,J){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)return;if(X.delete(J),X.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function VC($,U,J,X){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(X<=1)return;if(FC($,U,J)!==void 0)return;$.engine.dispatchEvent(new C4(U,`Activity retry (attempt ${X}) at step ${J} has no lastHeartbeatDetails. Either the previous attempt never recorded heartbeat details (it never called heartbeat(), or called it with no details), or the engine process restarted and discarded the in-memory heartbeat (it is not durable). The resumable-batch pattern only resumes across in-process retries; design the activity to restart cleanly when lastHeartbeatDetails is undefined.`,[`step.${J}.lastHeartbeatDetails`]))}function MC($,U,J,X,_){return{signal:X,lastHeartbeatDetails:FC($,U,J),heartbeat:(G)=>{$.heartbeatDetails.set(U,G),Cp($,U,J,G)},completeAsync:_}}var BC=z(()=>{_$()});async function KC($,U,J){let X=await xp(J);return{idempotencyKeyDigest:X,key:q.activityReconciliation($,U,X)}}function NC($,U){let J=$?.idempotencyKey?.(U.input);if(J!==void 0)return J;let X=U.options?.idempotencyKey;return typeof X==="string"?X:void 0}async function OC($,U){let J=await $.get(U);if(J===null)return null;return Ep(R(J))}function K3($,U){return K6($,U,"activity result"),B($)}async function Rp($,U,J){if(!$.capabilities().conditionalBatch)throw new B3;return X$($,"conditionalBatch","activity result reconciliation"),G$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:B(J)}])}function SP($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function AC($,U,J,X,_,G,Q){let D=await OC($.storage,X.key);if(D===null){let j=await bp($,U,J,X,Q);if(j.didClaim)return j.record;D=j.record}if(D.status==="completed")return{completedResult:D.result};if(!_?.verify)throw new P6(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=Tp(await vp(_,U,J,G,D));if(Y==="not-completed"){let j={...D,attempt:D.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await WC($.storage,X,D,j),j}if(Y==="completed-result-unavailable")throw new P6(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new P6(`Activity "${J.activityName}" reconciliation is indeterminate.`);K3(Y.result,$.options.payloadSizePolicy.maxBytes);let Z=SP(D,Y.result,$.options.getNow());return await WC($.storage,X,D,Z),{completedResult:Y.result}}async function WC($,U,J,X){let _=RC(U,J,X);if(!await G$($,_.conditions,_.operations))throw new W3("Activity reconciliation completion lost compare-and-set ownership.")}function CC($,U,J,X,_){E4($,U,RC(J,X,_))}function RC($,U,J){return{conditions:[{key:$.key,expectedValue:B(U)}],operations:[{type:"put",key:$.key,value:B(J)}]}}function Tp($){if($==="not-completed")return"not-completed";if($==="completed-result-unavailable")return"completed-result-unavailable";if($==="indeterminate")return"indeterminate";if(typeof $==="object"&&$!==null&&"status"in $){let U=$;if(U.status==="completed-with-result")return{result:U.result}}throw new P6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function bP($,U,J,X,_,G,Q){return{phase:$,workflowId:U,operationId:J,activityName:X,input:_,...G===void 0?{}:{idempotencyKey:G},attempt:Q}}function Ep($){if(typeof $!=="object"||$===null)throw new P6("Activity reconciliation record is not an object.");let U=$;if(!gp(U))throw new P6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new P6("Activity reconciliation record has an unsupported status.")}async function xp($){let U=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(J)].map((X)=>X.toString(16).padStart(2,"0")).join("")}function Sp($,U,J,X,_){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:J.idempotencyKeyDigest,attempt:X,ownerId:crypto.randomUUID(),createdAt:_,updatedAt:_}}async function bp($,U,J,X,_){let G=Sp(U,J,X,_,$.options.getNow());if(await Rp($.storage,X,G))return{didClaim:!0,record:G};let D=await OC($.storage,X.key);if(D===null)throw new P6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:D}}async function vp($,U,J,X,_){try{return await $.verify(void 0,bP("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,X,_.attempt))}catch(G){let Q=G instanceof Error?G.message:String(G);throw new P6(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Q}`)}}function gp($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],J=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((X)=>typeof $[X]==="string")&&J.every((X)=>typeof $[X]==="number")}var B3,W3,P6;var vP=z(()=>{b();I();T4();U$();B3=class B3 extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};W3=class W3 extends v{constructor($){super("ActivityReconciliationConflictError",$)}};P6=class P6 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function TC($,U,J){let X=$.workflowTypeByWorkflowId.get(U);if(X!==void 0){let G=$.activityRegistriesByWorkflow.get(X);if(G!==void 0){let D=G.resolve(J);if(D)return{fn:D,workflowType:X}}let Q=$.activityRegistry.resolve(J);if(Q)return{fn:Q,workflowType:X};return}let _=$.activityRegistry.resolve(J);if(_)return{fn:_,workflowType:"<unknown>"};return}function gP($,U,J){let X=TC($,U,J.activityName);if(X)return X.fn;if(typeof J.fn==="function")return J.fn;return}function EC($,U,J){let X=TC($,U,J.activityName);if(X)return X.fn;if(J.fn)return J.fn;let _=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new e2(_,J.activityName)}var xC=z(()=>{z$()});function hp($,U,J,X,_){return(async()=>{let G=await J?.(_,X);if(typeof G!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!G)throw Error(`Verification failed for activity "${U}"`)})()}function Ip($,U,J,X){let _=gP($,U,J);if(!_?.compensate)return;return async()=>{await _.compensate?.(J.input,X)}}async function yp($,U,J,X,_){let G=$.activityWorkerDispatcher;if(!G)throw Error(`No activity worker dispatcher available for "${J}"`);let Q=await G.execute({operationId:U,activityName:J,input:X,attempt:_});if(Q.status==="failed"){let D=Error(Q.error);if(Q.errorName!==void 0)D.name=Q.errorName;throw D}return Q.value}function mp($,U,J,X,_,G){let Q=EC($,U,J);return k2(Q,G,X)}function SC($,U){if(U.size>0)$.headers=[...U.entries()]}function hP($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function bC($,U,J,X,_=hP(J),G){let Q=J.input,D=J.step??0;VC($,U,D,_);let Y=eB(U,D,_),{perAttemptTimeoutMs:Z,attemptAbortController:j,activitySignal:H}=qA($,U,J,G),L=MC($,U,D,H,()=>{throw new ZX(Y)}),F=$.activityWorkerDispatcher?(y,k)=>yp($,J.operationId,y,k,_):(y,k)=>H3(mp($,U,J,L,y,k),Z,y,_,j),W=X.getComposedActivityInterceptor(),E=async(y,k,w)=>{if(!W)return F(y,k);let E$={workflowId:U,activityName:y,input:k,attempt:_,headers:w};return await W.execute(E$,async(IU)=>{return F(y,IU.input)})},m=X.getComposedWorkflowInterceptor();if(m){let y={workflowId:U,activityName:J.activityName,input:Q,attempt:_,headers:new Map};function*k(){return yield E(J.activityName,y.input,y.headers)}let w=m.activity(y,k),E$=await GW(w);return SC(J,y.headers),E$}let a=new Map,p=await E(J.activityName,Q,a);return SC(J,a),p}async function fJ($,U,J,X,_,G){let Q=gP($,U,J),D=NC(Q,J),Y=hP(J);if(D!==void 0){let j=await KC(U,J.activityName,D),H=await AC($,U,J,j,Q,D,Y);if("completedResult"in H)return K3(H.completedResult,$.options.payloadSizePolicy.maxBytes),H.completedResult;let L=await bC($,U,J,X,H.attempt,_);K3(L,$.options.payloadSizePolicy.maxBytes),await vC($,U,J,L,Q,D,H.attempt,G,!0);let F=SP(H,L,$.options.getNow());if(CC($,U,j,H,F),!G)xP($,U,J.step??0);return L}let Z=await bC($,U,J,X,Y,_);if(K6(Z,$.options.payloadSizePolicy.maxBytes,"activity result"),await vC($,U,J,Z,Q,D,Y,G),!G)xP($,U,J.step??0);return Z}async function vC($,U,J,X,_,G,Q,D,Y=!1){let Z=D?Ip($,U,J,X):void 0;if(Z)D?.recordCompensation(Z);if(_?.verify){let j=bP("post-execution-validation",U,J.operationId,J.activityName,J.input,G,Q),H=hp($,J.activityName,_.verify,j,X);if(D){if(D.recordVerification(H),Y)await H}else await H}}async function gC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{try{return await fJ($,U,J,X)}catch(_){if(_ instanceof ZX)return $W($,_,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:hP(J)},{feedOperationResult:X.feedOperationResult,finalizeTimeline:X.finalizePendingTimelineEntry});throw _}})}var N3=z(()=>{T4();BC();YP();vP();xC();f1();$$()});function O3($){let U=new Set,J=(X)=>{for(let _ of X)if(_.type==="wait-signal"){if(U.has(_.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${_.signalName}": sibling wait-signal branches share one waiter and would clobber each other. Wait on the signal once, or use distinct signal names.`);U.add(_.signalName)}else if(_.type==="race"||_.type==="parallel")J(_.operations)};J($)}async function hC($,U,J,X){let _=$.abortController.signal,G=`${U}:${J.signalName}`;while(!0){if(_.aborted)return;let Q=await n2($,U,J.signalName);if(Q.found){X.completeOperation(U,Q.payload);return}let{promise:D,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(G,Y),x4($.signalWaitersByWorkflow,U,G),_.aborted){$.signalWaiters.delete(G),G6($.signalWaitersByWorkflow,U,G);return}let Z=await n2($,U,J.signalName);if(Z.found){if($.signalWaiters.get(G)===Y)$.signalWaiters.delete(G),G6($.signalWaitersByWorkflow,U,G);X.completeOperation(U,Z.payload);return}if(await D,_.aborted)return}}async function IC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{O3(J.operations);let _=yC(J.resumedCacheEntry),G=J.operations.map((j,H)=>typeof j.operationId==="string"?j.operationId:`parallel:${J.step}:${H}`),{slots:Q,hasFirstError:D,firstError:Y}=await YM(G,_,(j)=>X.executeSubOperation(U,J.operations[j]));if(D)uC(kp($,U),Q,"ctx.all","worker execution mode");await up(Q);let Z=pZ("all",Q);if(mC($,U,J.step,Z),D)throw Y;return ZM(Q)})}async function up($){let J=(await Promise.allSettled($.map(async(X)=>{if(X.status==="fulfilled")X.value=await H0(X.value)}))).find((X)=>X.status==="rejected");if(J)throw J.reason}function yC($){if(!GU($))return;return $.branches}function kp($,U){return $.inlineStrategy?.getContext(U)!==void 0}function mC($,U,J,X){let _=$.inlineStrategy?.getContext(U);if(_===void 0)return!1;return _.accumulatedResults.set(J,X),!0}function uC($,U,J,X){if($||!U.some((_)=>_.status==="fulfilled"))return;throw Error(`${J} partial-failure preservation is not supported in ${X}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function kC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{O3(J.operations);let _=new AbortController,G=J.operations.map((D)=>X.executeSubOperation(U,D,_.signal));Promise.allSettled(G);let Q;try{Q=await Promise.race(G)}finally{_.abort()}return H0(Q)})}async function fC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=Object.keys(J.branches),G=_.map((E)=>`run-all:${J.step}:${E}`),Q=yC(J.resumedCacheEntry),D=pp(Q,_),Y=fp(J.branches,_,D),{outcomes:Z,hasFirstError:j,firstError:H}=await zM(Y,(E,m)=>k2(E,m)),L=wp(_,G,D,Z),F=pZ("run-all",L,_),W=mC($,U,J.step,F);if(j)throw uC(W,L,"ctx.runAll","worker execution mode"),H;return cp(_,L)})}function fp($,U,J){let X={};for(let _ of U)if(J?.get(_)?.status!=="fulfilled"){let G=$[_];if(G!==void 0)X[_]=G}return X}function wp($,U,J,X){let _=new Map;for(let G of X)_.set(G.name,G);return $.map((G,Q)=>{let D=U[Q],Y=J?.get(G);if(Y?.status==="fulfilled")return Y;let Z=_.get(G);if(Z.status==="fulfilled")return{status:"fulfilled",value:Z.value,operationId:D};let j=Z.reason instanceof Error?Z.reason:Error(String(Z.reason));return{status:"rejected",reason:{name:j.name,message:j.message},operationId:D}})}function cp($,U){let J={};for(let X=0;X<$.length;X++){let _=U[X];if(_?.status==="fulfilled")J[$[X]]=_.value}return J}function pp($,U){if($===void 0)return;let J=new Map;for(let X=0;X<U.length;X++){let _=U[X],G=$[X];if(_!==void 0&&G!==void 0)J.set(_,G)}return J}function dp($){return typeof $.execute==="function"}async function wC($,U,J,X,_){return LM(J.branches,(G,Q)=>{if(!_||!dp(G))return k2(G,Q);return fJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:G.name,fn:G,input:Q},X.getActivityOperationCallbacks(),void 0,_)})}var A3=z(()=>{j9();x2();M3();N3();dZ();S4();$$()});async function cC($,U,J,X){return X.runOperationWithoutResult(U,J,()=>X.processReviewOperation(U,J.reviewOptions))}async function C3($,U,J,X,_,G){_?.throwIfAborted();let Q=ip[J.type];if(!Q)throw Error(`Unsupported sub-operation type: ${J.type}`);return Q({internals:$,workflowId:U,callbacks:X,signal:_,speculativeState:G},J)}async function lp($,U,J,X,_,G){return fJ($,U,J,X.createActivityOperationCallbacks(),_,G)}async function np($,U,J,X){return TP($,U,J,RP($,U),X.createChildWorkflowOperationCallbacks())}async function rp($,U){return JU($.storage,O4(U.scope,U.key),U)}async function op($,U,J){let X=O4(U.scope,U.key),_=U.mode==="delete"?await A2($.storage,X,U.expectedVersion):await O2($.storage,X,U.expectedVersion,U.value);if(_.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return _}async function ap($,U,J,X,_,G){_?.throwIfAborted();let Q=new AbortController,D=()=>{Q.abort(_?.reason)};_?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>C3($,U,Z,X,Q.signal,G));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{_?.removeEventListener("abort",D),Q.abort()}}async function sp($,U,J,X,_,G){_?.throwIfAborted();let Q=new AbortController,D=()=>{Q.abort(_?.reason)};_?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>C3($,U,Z,X,Q.signal,G));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{_?.removeEventListener("abort",D),Q.abort()}}var ip;var IP=z(()=>{_U();EP();LC();N3();A3();$$();ip={activity:($,U)=>lp($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>np($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(g9(U.fn)),"state-read":($,U)=>rp($.internals,U),"state-commit":($,U)=>op($.internals,U,$.callbacks),parallel:($,U)=>ap($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>sp($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>wC($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>qC($.internals,U,$.signal),"wait-signal":($,U)=>zC($.internals,$.workflowId,U,$.signal),"wait-condition":()=>{throw Error("ctx.waitUntil() cannot be used as a ctx.race() / ctx.all() / ctx.speculate() branch. Use `yield* ctx.waitUntil(...)` directly, or gate it behind a signal/update the coordinator resolves.")}}});function yP($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),start:(U,J,X)=>Y6(P($),U,J,X,void 0,T$($)),loadWorkflowState:(U)=>l(P($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>H6(P($))}}function R3($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),finalizePendingTimelineEntry:(U,J,X)=>R6(P($),U,J,X),feedOperationResult:(U,J,X)=>j6(P($),U,J,X),getComposedActivityInterceptor:()=>EO(P($)),getComposedWorkflowInterceptor:()=>H6(P($))}}function P0($){return{completeOperation:(U,J)=>x3($,U,J),runOperationWithResult:(U,J,X)=>p4($,U,J,X),executeSubOperation:(U,J,X,_)=>mP($,U,J,X,_),getActivityOperationCallbacks:()=>R3($)}}function dC($){return{completeOperation:(U,J)=>x3($,U,J),failOperation:(U,J,X)=>tp($,U,J,X),isWorkflowRunning:async(U)=>{return(await l(P($),U))?.status==="running"},scheduleConditionDeadline:(U,J,X)=>P($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:X,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>P($).scheduler.cancel(`cond:${U}:${J}`,U)}}function wJ($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X)}}function T3($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),ensureTerminalCleanupTracked:(U)=>vJ(P($),U)}}function iC($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),handleCleanupError:(U,J,X)=>e($).handleCleanupError(U,J,X)}}function E3($){return{completeOperation:(U,J)=>x3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(P($),U),failWorkflow:(U,J)=>s$(P($),U,J,e($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(P($),U,J),beginWorkflowExecution:(U,J,X,_,G,Q,D)=>tX(P($),U,J,X,_,G,Q,D,T$($)),workflowVersionTupleFromState:(U)=>dX(P($),U,T$($)),setWorkflowStartHeaders:(U,J)=>X4(P($),U,J,T$($)),loadWorkflowStartHeaders:(U)=>bU(P($),U,T$($)),parseStartOptionDuration:(U,J)=>X0(P($),U,J,T$($)),runDeferredTerminalCleanup:(U,J)=>hH(P($),U,J,e($)),runWorkflowFinalizer:(U,J)=>qP(P($),U,J,e($)),handleScheduleTimer:(U)=>eA($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,X)=>e($).handleCleanupError(U,J,X)}}function q0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>b4(P($),U,d6($)),completeOperation:(U,J)=>x3($,U,J),guardTerminalWorkflow:(U)=>CP(P($),U,F3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>JC(P($),U,J,F3($)),persistCoordinatedUpdateResponse:(U,J,X,_,G)=>pC($,U,J,X,_,G),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,X)=>eW(P($),U,J,X,q0($)),dispatchPendingUpdateReceived:(U,J,X)=>_K(P($),U,J,X,d6($)),createCoordinatedUpdateResponder:(U,J,X)=>tW(P($),U,J,X,{persistCoordinatedUpdateResponse:(_,G,Q,D,Y)=>pC($,_,G,Q,D,Y)}),findPendingUpdateByName:(U,J)=>$K(P($),U,J),schedulePendingInlineUpdateDrain:(U)=>oO(P($),U,IJ($))}}async function pC($,U,J,X,_,G){let Q=P($),D=Q.updateCoordinator.buildResponseOperations(X,U,G,void 0,_);try{await Z$(Q,D,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new f6(X,U,J,G)),b4(Q,{type:"update:completed",workflowId:U,updateId:X},d6($))}catch(Y){e($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function x3($,U,J){return uJ(P($),U,J,yJ($))}function tp($,U,J,X){return kJ(P($),U,J,X,yJ($))}async function p4($,U,J,X){return QC(P($),U,J,X,yJ($))}async function lC($,U,J,X){return DC(P($),U,J,X,yJ($))}async function mP($,U,J,X,_){return C3(P($),U,J,{createActivityOperationCallbacks:()=>R3($),createChildWorkflowOperationCallbacks:()=>yP($),createCoordinationOperationCallbacks:()=>P0($),createStateOperationCallbacks:()=>T3($)},X,_)}async function nC($,U,J){return HA(P($),U,J,tA($))}var S3=z(()=>{_$();BX();Z0();$C();O6();_C();c4();f4();V3();eH();Z3();R$();c6();IP();Q4();c1()});async function rC($,U,J,X){return X.runOperationWithResult(U,J,async()=>g9(J.fn))}async function oC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=await J.fn(),G=B(_);return await $.storage.put(q.offload(U,J.key),G),{key:J.key,workflowId:U,sizeBytes:G.byteLength}})}async function aC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let{workflowId:_,key:G,sizeBytes:Q}=J.reference;if(typeof _!=="string"||_!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof G!=="string"||G.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Q!=="number"||!Number.isFinite(Q)||Q<0)throw Error("ctx.load() requires a valid offload reference size");let D=await $.storage.get(q.offload(_,G));if(D===null)throw Error(`Offloaded data not found for key "${G}" in workflow "${_}"`);return R(D)})}async function sC($,U,J){let X=await $.storage.get(q.offload(U,J));if(X===null)return null;return R(X)}async function tC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{await $.storage.put(q.archive(U,J.key),B(J.data));return})}var uP=z(()=>{b();I();$$()});class kP{#$;#U;constructor(){this.#$=[],this.#U=[]}recordVerification($){this.#$.push($.then(()=>({failed:!1}),(U)=>({failed:!0,error:U})))}recordCompensation($){this.#U.push($)}async drainVerifications(){let U=(await Promise.all(this.#$)).find((J)=>J.failed);if(U)throw U.error}async rollback(){for(let $=this.#U.length-1;$>=0;$--)try{await this.#U[$]()}catch{}await Promise.all(this.#$)}}async function eC($,U,J,X){return X.runOperationWithResult(U,J,()=>ep($,U,J,X))}async function ep($,U,J,X){let _=$.inlineStrategy;if(!_)throw Error("ctx.speculate() requires inline execution mode");let G=_.getContext(U);if(!G)throw Error(`No active inline context for workflow "${U}"`);let Q=G.createSpeculativeChild(),D=new kP,Y=$d(J,Q);try{let Z=await Ud(U,Y,D,X);return await D.drainVerifications(),G.commitSpeculativeChild(Q),Z}catch(Z){throw await D.rollback(),Z}}function $d($,U){return $.execute(U)}async function Ud($,U,J,X){let _=async(G,Q)=>{let D=Q===void 0?await U.next(G):await U.throw(Q);if(D.done)return D.value;let Y=D.value;try{if(Y.type==="race"||Y.type==="parallel")O3(Y.operations);let Z=await X.executeSubOperation($,Y,void 0,J),j=await H0(Z);return _(j,void 0)}catch(Z){return _(G,Z instanceof Error?Z:Error(String(Z)))}};return _(void 0,void 0)}var $R=z(()=>{M3();A3()});async function UR($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=O4(J.scope,J.key);return JU($.storage,_,J)})}async function JR($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=O4(J.scope,J.key);if(J.mode==="delete"){let Q=await A2($.storage,_,J.expectedVersion);if(Q.applied&&J.scope.type==="execution")await X.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q}let G=await O2($.storage,_,J.expectedVersion,J.value);if(G.applied&&J.scope.type==="execution")await X.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return G})}var _R=z(()=>{_U()});function _d($){if(!Jd.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function z0($,U,J,X){let _=X?.after,G=q.streamChunkPrefix(U,J),Q=[],D=_!==void 0&&_>=0?{gt:q.streamChunk(U,J,_)}:void 0;for await(let[Y,Z]of $.scan(G,D)){let j=Y.slice(G.length),H=_d(j);if(H===void 0)continue;Q.push({sequence:H,value:R(Z)})}return Q}function XR($){return B({sequence:$})}function Xd($){if(typeof $!=="object"||$===null||Array.isArray($))return null;if(!("sequence"in $))return null;let U=$.sequence;if(typeof U!=="number"||!Number.isSafeInteger(U)||U<-1)return null;return U}async function GR($,U,J){let X=await $.get(q.streamTail(U,J));if(X===null)return null;try{return Xd(R(X))}catch{return null}}var Jd;var fP=z(()=>{b();I();Jd=/^\d+$/});async function*QR($,U,J,X){if(J==="events"){yield*Qd($,U,X);return}yield*Dd($,U,X)}async function DR($,U,J){if(J==="events"){let Q=$.eventLogHeads.get(U);if(Q)return Q.sequence;return(await new a$($.storage,U).loadHead()).sequence}let X=await GR($.storage,U,hU);if(X!==null)return X;let _=await z0($.storage,U,hU);if(_.length===0)return-1;let G=-1;for(let Q of _)if(Q.sequence>G)G=Q.sequence;return G}function YR($,U,J,X){let _=y1(U,J),G=$.workflowFeedListeners.get(_);if(!G)G=new Set,$.workflowFeedListeners.set(_,G);return G.add(X),()=>{let Q=$.workflowFeedListeners.get(_);if(!Q)return;if(Q.delete(X),Q.size===0)$.workflowFeedListeners.delete(_)}}async function*Qd($,U,J){let X=new a$($.storage,U),_=J<0?0:J+1,G=await u4($.storage,U);if(G!==null&&_<G.sequence)yield{workflowId:U,selector:"events",kind:Gd,sequence:G.sequence-1,timestamp:0,payload:{compactedBefore:G.sequence,requestedFrom:_}},_=G.sequence;for await(let Q of X.scan({fromSequence:_}))yield{workflowId:U,selector:"events",kind:Q.type,sequence:Q.sequence,timestamp:Q.timestamp,payload:Q.payload}}async function*Dd($,U,J){let X=J>=0?await z0($.storage,U,hU,{after:J}):await z0($.storage,U,hU),_=Date.now();for(let G of X)yield{workflowId:U,selector:"tokens",kind:wP,sequence:G.sequence,timestamp:_,payload:G.value}}function b3($,U,J,X){let _=$.workflowFeedListeners.get(y1(U,J));if(!_||_.size===0)return;let G=[..._];for(let Q of G)try{let D=Q(X);if(D&&typeof D.then==="function")D.catch(()=>{})}catch{}}var hU="tokens",wP="stream:chunk",Gd="workflow:compaction-boundary";var v3=z(()=>{SU();MJ();$$();fP()});async function ZR($,U,J,X){return z0($.storage,U,J,X)}async function jR($,U,J,X){return X.runOperationWithResult(U,J,()=>Yd($,U,J,X))}async function Yd($,U,J,X){let _={heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q)}},G=[];try{let Q=await Zd($,U,J,J.fn(_),G),D={key:J.key,workflowId:U,chunkCount:Q.chunkCount,totalSizeBytes:Q.totalSizeBytes};return await $.storage.put(q.streamMetadata(U,J.key),B(D)),D}catch(Q){throw await jd($,U,J.key,G,X),Q}}async function Zd($,U,J,X,_){let G=0,Q=0;for await(let D of X){let Y=B(D),Z=G,j=q.streamChunk(U,J.key,Z);if(J.key===hU)await $.storage.batch([{type:"put",key:j,value:Y},{type:"put",key:q.streamTail(U,J.key),value:XR(Z)}]);else await $.storage.put(j,Y);if(_.push(j),Q+=Y.byteLength,G++,J.key===hU)b3($,U,"tokens",{workflowId:U,selector:"tokens",kind:wP,sequence:Z,timestamp:Date.now(),payload:D})}return{chunkCount:G,totalSizeBytes:Q}}async function jd($,U,J,X,_){await qM($.storage,U,J,X,jM(_.handleCleanupError,U))}var cP=z(()=>{b();I();x2();fP();v3()});function PR($,U,J){if(U())return{done:!0,value:J===void 0?void 0:!0};if(J!==void 0&&$.options.getNow()>=J)return{done:!0,value:!1};return{done:!1}}async function qR($,U,J,X){let _=$.abortController.signal,{predicate:G,deadline:Q}=J,D=!1,Y=(Z)=>{if(D)return;D=!0,X.completeOperation(U,Z)};if(_.aborted)return;try{let Z=PR($,G,Q);if(Z.done){Y(Z.value);return}if(Q!==void 0)await X.scheduleConditionDeadline(U,J.step,Q);try{let j=await HR($,U,G,Q,X);while(j.status==="continue")j=await HR($,U,G,Q,X);if(j.status==="complete")Y(j.value)}finally{if(zR($,U),Q!==void 0)await X.cancelConditionDeadline(U,J.step)}}catch(Z){X.failOperation(U,J,Z)}}async function HR($,U,J,X,_){let G=$.abortController.signal;if(G.aborted)return{status:"stop"};let{promise:Q,resolve:D}=Promise.withResolvers();$.conditionWaiters.set(U,D);let Y=G.aborted?{done:!0,value:void 0,aborted:!0}:{...PR($,J,X),aborted:!1};if(Y.done)return zR($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await Q,G.aborted)return{status:"stop"};if(!await _.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function zR($,U){$.conditionWaiters.delete(U)}function pP($){return{processActivityOperation:(U,J)=>gC(P($),U,J,R3($)),processSleepOperation:(U,J)=>zN(P($),U,J,E3($)),processWaitSignalOperation:(U,J)=>hC(P($),U,J,P0($)),processWaitUpdateOperation:(U,J)=>aW(P($),U,J,q0($)),processWaitConditionOperation:(U,J)=>qR(P($),U,J,dC($)),processGetVersionOperation:async(U,J)=>{uJ(P($),U,J.version,{finalizePendingTimelineEntry:(X,_,G)=>R6(P($),X,_,G),feedOperationResult:(X,_,G)=>j6(P($),X,_,G)})},processParallelOperation:(U,J)=>IC(P($),U,J,P0($)),processRaceOperation:(U,J)=>kC(P($),U,J,P0($)),processMemoOperation:(U,J)=>rC(P($),U,J,wJ($)),processChildWorkflowOperation:(U,J)=>ZC(P($),U,J,yP($)),processOffloadOperation:(U,J)=>oC(P($),U,J,wJ($)),processLoadOperation:(U,J)=>aC(P($),U,J,wJ($)),processArchiveOperation:(U,J)=>tC(P($),U,J,wJ($)),processStateReadOperation:(U,J)=>UR(P($),U,J,T3($)),processStateCommitOperation:(U,J)=>JR(P($),U,J,T3($)),processRunAllOperation:(U,J)=>fC(P($),U,J,P0($)),processSpeculateOperation:(U,J)=>eC(P($),U,J,{runOperationWithResult:(X,_,G)=>p4($,X,_,G),executeSubOperation:(X,_,G,Q)=>mP($,X,_,G,Q)}),processStreamOperation:(U,J)=>jR(P($),U,J,iC($)),processWaitReviewOperation:(U,J)=>cC(P($),U,J,{runOperationWithoutResult:(X,_,G)=>lC($,X,_,G),processReviewOperation:(X,_)=>nC($,X,_)}),finalizePendingTimelineEntry:(U,J,X)=>R6(P($),U,J,X),feedOperationResult:(U,J,X)=>j6(P($),U,J,X)}}var LR=z(()=>{S3();EP();c4();N3();A3();uP();V3();$R();_R();cP();oX();c6();IP();Q4();c1();bA(($)=>pP($))});function FR($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function VR($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function MR($){let U=g($).exposedValues;return U!==void 0&&U.size>0}var dP=z(()=>{w1()});function BR($,U,J,X,_,G){let Q=D0($,U),D=$.workflowVersionTuples.get(U);if(Q)G.push(Q);let Y={step:X,operationType:J.type,operationLabel:zB(J),inputSummary:LB(J),timestamp:_,status:"running",...D?{versionTuple:D}:{}};return G.push({type:"put",key:q.timeline(U,X),value:B(Y)}),{startedAt:_,entry:Y}}async function WR($,U,J,X,_){if($.inlineStrategy?.getContext(U))await Hd($,U,J,_);else if(X&&X.byteLength>0)await Pd($,U,J,X,_)}async function Hd($,U,J,X){let _=$.checkpoints.get(U),G=$.inlineStrategy?.getContext(U);if(!_||!G)return;let Q={..._.searchAttributes},D=G.checkpointPendingAttributeChanges,Y=FR(G),Z=yZ(_,G.checkpointLocals,{accumulatedResults:G.checkpointAccumulatedResults,now:$.options.getNow(),...D!==void 0?{searchAttributes:D}:{}}),j=Dj(Z,OR(J,G.stepIndex)),H=KR($,U,j.checkpoint,L$(Yj(j.checkpoint,j.replayPayload)),j.replayPayload);if(qd(U,H,Q,D,Y,X),await NR($,U,J,H,X),Y)X.dispatchEvent(new r9(U,{...D}))}async function Pd($,U,J,X,_){let G=new Uint8Array(X),Q=H$(G),D=h1(Q),Y=Dj(Q,OR(J,Q.step)),Z=A9(D,Y.replayPayload),j=L$(Yj(Y.checkpoint,Z));await NR($,U,J,KR($,U,Y.checkpoint,j,Z),_)}function KR($,U,J,X,_){let G=[{type:"put",key:q.checkpoint(U),value:X}];if($.options.checkpointHistory>0)G.push({type:"put",key:q.checkpointHistory(U,J.step),value:X});let Q=xK($,U);return{checkpoint:J,serialized:X,..._===void 0?{}:{replayPayload:_},...Q!==void 0?{expectedSerialized:Q}:{},step:J.step,timestamp:J.createdAt,operations:G}}function qd($,U,J,X,_,G){if(!_)return;G.validateAttributeValueSizes(X??{}),U.operations.push({type:"put",key:q.attribute($),value:B(U.checkpoint.searchAttributes)}),U.operations.push(...K$($,J,U.checkpoint.searchAttributes))}async function NR($,U,J,X,_){Md($,U,X,_);let G=_.appendTimelineBatchOperations(U,J,X.step,X.timestamp,X.operations),{newHead:Q,timestamp:D}=Bd($,U,X),Y=$.options.historyPolicy.retentionWindow,Z=Y===null?null:await GN($.storage,U,Q.sequence,Y,X.operations),j=VX($,U);if(j!==void 0)X.operations.push(...j.operations);let H=$.storage.capabilities().conditionalBatch,L=zd(j,H),F=Ld(U,X,H,L);if(await Z$($,X.operations,F,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),j!==void 0)MX($,U);if(X.expectedSerialized!==void 0)gX($,U,X.serialized);if($.pendingTimelineEntries.set(U,G),$.checkpoints.set(U,X.checkpoint),$.eventLogHeads.set(U,Q),Z!==null)Vd($,U,Z,_);if(b3($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Q.sequence,timestamp:D,payload:{step:X.step}}),_.swallowPromiseRejection(_.pruneCheckpointHistory(U,X.step)),Fd($,Q.sequence))await _.enforceHistoryCircuitBreaker(U)}function zd($,U){if(!U)return[];return $?.conditions??[]}function Ld($,U,J,X){let _=[];if(J&&U.expectedSerialized!==void 0)_.push({key:q.checkpoint($),expectedValue:U.expectedSerialized});return _.push(...X),_}function Fd($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function Vd($,U,J,X){let _=$.options.archiveAdapter;if(_===null||J.deletedEntries.length===0)return;let{from:G,to:Q}=J.deletedRange,D=`events:${G}-${Q}`,Y=QN(J.deletedEntries);X.swallowPromiseRejection(Promise.resolve().then(()=>_.store(U,D,Y)))}function Md($,U,J,X){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)X.dispatchEvent(new t9(U,J.serialized.byteLength,J.step))}function Bd($,U,J){return new a$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:cM(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??jU,$.workflowVersionTuples.get(U))}function OR($,U){let J="step"in $?$.step:void 0;if(typeof J==="number"&&Number.isSafeInteger(J)&&J>=0)return J;return Math.max(0,U-1)}async function AR($,U,J){let X=$.options.checkpointHistory;if(X<=0)return;let _=J-X;if(_<1)return;let G=q.checkpointHistory(U,_);await $.storage.delete(G)}function CR($,U,J){if(!$.options.development)return;let X=$.inlineStrategy?.getContext(U);if(!X)return;let _=X.stepIndex,G=$.checkpoints.get(U);if(!G)return;let Q=mZ({...G,locals:X.checkpointLocals,accumulatedResults:X.checkpointAccumulatedResults});if(!Q.valid){let D=Q.divergences.map((Z)=>Z.path),Y=`Checkpoint at step ${_} has ${Q.divergences.length} non-serializable field(s)`;J.dispatchEvent(new C4(U,Y,D))}}var RR=z(()=>{b();J6();I();dP();SU();_$();w$();xU();qU();MJ();O6();$$();Q4();v3()});async function TR($,U,J){let X=$.inlineStrategy?.getContext(U);if(!X)return!1;let G=$.registrations.get(X.workflowType)?.constraints;if(!G||G.length===0)return!1;let Q={id:U,type:X.workflowType,status:"running"};for(let D of G){if(!await Wd(D,Q))continue;if(Kd(J,U,D),D.onViolation==="warn"){Nd(U,D);continue}let Z=Error(`Constraint violated: ${D.name} (scope: ${D.scope})`);if(D.onViolation==="fail")await Od(J,U,Z);else Ad(J,U,Z);return!0}return!1}async function Wd($,U){try{let J=$.check(U);return!(J instanceof Promise?await J:J)}catch(J){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,J),!0}}function Kd($,U,J){$.dispatchEvent(new _X(U,J.name,J.scope,J.onViolation))}function Nd($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function Od($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function Ad($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}var ER=z(()=>{_$()});async function xR($,U,J,X){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let _=$.inlineStrategy,G=_.getContext(U);if(G&&(VR(G)||MR(G)))return!1;if(await X.hasBufferedSignal(U,J.signalName))return!1;if(!await X.runSerializedWorkflowStateWrite(U,async()=>{let D=await X.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!D||D.status!=="running")return!1;return _.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await X.hasBufferedSignal(U,J.signalName))await X.resumeParkedInlineWorkflow(U);return!0}async function g3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await EJ($,U,!1,J.createLifecycleCallbacks())}catch(X){let _=await J.getParkedWorkflowResumeDisposition(U);if(_==="resumable")throw $.parkedInlineWorkflows.add(U),X;if(_==="corrupt")throw X}}async function SR($,U,J){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let X=await J.loadWorkflowState(U);if(!X||X.status!=="running")return"terminal-or-missing";if(!await J.readCheckpointBytes(U))return"corrupt";return"resumable"}async function bR($,U,J){switch(U.type){case"completed":await DP($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let X=Error(U.error);if(U.errorStack)X.stack=U.errorStack;await s$($,U.workflowId,X,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let X=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,X,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,X))break;if(X.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,X).catch((G)=>{let Q=G instanceof Error?G:Error(String(G));return s$($,U.workflowId,Q,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,X);break}}}var iP=z(()=>{dP();f4();Q4()});function h3($){if($.options.retention!==null)return!0;for(let U of $.registrations.values())if(U.retention!==void 0&&U.retention!==null)return!0;return!1}function I3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function y3($,U){if(!U.hasConfiguredRetention()){if($.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null;return}if($.retentionSweepInterval!==null)return;U.setNextRetentionSweepAt(),$.retentionSweepInterval=setInterval(()=>{if(U.setNextRetentionSweepAt(),$.retentionSweepInFlight!==null)return;let X=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===X)$.retentionSweepInFlight=null});$.retentionSweepInFlight=X},$.options.retentionSweepIntervalMs)}async function m3($,U,J){try{await PJ($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(X){U("retentionSweep",X)}}function lP($,U){let J=$.registrations.get(U);if(J?.retention)return{type:U,source:"workflow",retention:J.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function vR($,U=(J)=>lP($,J)){let J=[...$.registrations.keys()].toSorted().map((X)=>U(X));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}var nP=z(()=>{cX()});function cJ($){return{createLifecycleCallbacks:()=>T$($),createTerminationCallbacks:()=>e($),evaluateConstraints:(U)=>TR(P($),U,SA($)),getParkedWorkflowResumeDisposition:(U)=>SR(P($),U,cJ($)),hasBufferedSignal:(U,J)=>dW(P($),U,J),loadWorkflowState:(U)=>l(P($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>xR(P($),U,J,cJ($)),persistCheckpoint:(U,J,X)=>Cd($,U,J,X),processOperation:(U,J)=>GC(P($),U,J,pP($)),readCheckpointBytes:(U)=>P($).storage.get(q.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>g3(P($),U,cJ($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(P($),U,J),translateOperationRequest:(U)=>XC(P($),U),validateDevelopmentCheckpoint:(U)=>CR(P($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function Cd($,U,J,X){return WR(P($),U,J,X,{appendTimelineBatchOperations:(_,G,Q,D,Y)=>BR(P($),_,G,Q,D,Y),swallowPromiseRejection:(_)=>{C6(_)},validateAttributeValueSizes:o1,pruneCheckpointHistory:(_,G)=>AR(P($),_,G),dispatchEvent:(_)=>{$.dispatchEvent(_)},enforceHistoryCircuitBreaker:(_)=>gU(P($),_,"timed-out",e($),i_)})}function Rd($){y3(P($),{hasConfiguredRetention:()=>h3(P($)),runRetentionSweep:()=>m3(P($),(U,J)=>e($).handleCleanupError(U,J),(U)=>w6(P($),U,e($))),setNextRetentionSweepAt:()=>I3(P($))})}var gR=z(()=>{b();n$();a1();Z0();LR();RR();ER();iP();c4();V3();nP();S4();R$();c6();Q4();S3();Z0();xA(($)=>Rd($))});async function hR($,U){let J=[],X=new a$($.storage,U);for await(let _ of X.scan())J.push({type:_.type,timestamp:_.timestamp,data:Wj(_.payload)});return J}async function IR($,U){if($.options.checkpointHistory<=0)return[];let J=`${q.checkpoint(U)}:`,X=[];for await(let[,_]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let G=H$(_);X.push({step:G.step,timestamp:G.createdAt,sizeBytes:_.byteLength})}return X}async function yR($,U,J){let X=await $.storage.get(q.checkpointHistory(U,J));if(!X)return null;let _=await PU($.storage,U,H$(X));return Bj({step:_.step,locals:_.locals,searchAttributes:_.searchAttributes,version:_.version,createdAt:_.createdAt})}async function mR($,U){let J=[];for await(let[,X]of $.storage.scan(q.timelinePrefix(U))){let _;try{_=R(X)}catch{continue}if(YB(_))J.push({..._,inputSummary:Kj(_.inputSummary)??_.inputSummary,..._.outputSummary!==void 0?{outputSummary:Kj(_.outputSummary)??_.outputSummary}:{}})}return J.sort((X,_)=>X.step-_.step),J}async function uR($,U,J){let X=await $.storage.get(q.checkpointHistory(U,J));if(!X)return null;let G=await new a$($.storage,U).replay(Math.max(J-1,-1)),Q=await PU($.storage,U,H$(X)),D=await u4($.storage,U);return{checkpoint:Bj({step:Q.step,locals:Q.locals,searchAttributes:Q.searchAttributes,version:Q.version,createdAt:Q.createdAt}),accumulatedResults:Q.accumulatedResults.map(([Y,Z])=>[Y,ZU(Z)]),events:G.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:Wj(Y.payload)})),...D!==null?{compactedBefore:D.sequence}:{}}}var kR=z(()=>{b();J6();I();g2();SU();qU();MJ();$$();Y$()});function fR($,U){let J=0,X=$.length;while(J<X){let _=J+X>>>1;if($[_].timestamp<U)J=_+1;else X=_}return J}class rP{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#J++;this.#_($)}rate($){if(this.#_($),this.#U.length===0)return 0;return this.#J/this.#U.length}#_($){let U=$-this.#$,J=fR(this.#U,U);if(J===0)return;for(let X=0;X<J;X++)if(this.#U[X].failed)this.#J--;this.#U.splice(0,J)}}class oP{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#_(U),this.#G($)}percentile($,U){if(this.#G(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#_($){let U=0,J=this.#J.length;while(U<J){let X=U+J>>>1;if(this.#J[X]<$)U=X+1;else J=X}this.#J.splice(U,0,$)}#X($){let U=0,J=this.#J.length;while(U<J){let X=U+J>>>1;if(this.#J[X]<$)U=X+1;else J=X}if(U<this.#J.length&&this.#J[U]===$)this.#J.splice(U,1)}#G($){let U=$-this.#$,J=fR(this.#U,U);if(J===0)return;for(let X=0;X<J;X++)this.#X(this.#U[X].value);this.#U.splice(0,J)}}var Td=1e4,aP;var wR=z(()=>{_$();D$();aP=class aP{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#Y=J,this.#G=0,this.#D=new Set,this.#X=[],this.#J=[];for(let X of U.rules)this.#J.push({rule:X,status:"idle",currentValue:0});this.#_=new Map;for(let X=0;X<U.rules.length;X++){let _=U.rules[X],G=_.window?J$(_.window):60000;if(_.metric==="workflow.failure_rate")this.#_.set(X,new rP(G));else if(_.metric==="activity.p99_duration")this.#_.set(X,new oP(G))}this.#q(),this.#Q=setInterval(this.#j.bind(this),Td)}#j(){for(let $=0;$<this.#U.rules.length;$++)this.#Z($)}#q(){let $=this.#U.rules.some((X)=>X.metric==="workflow.failure_rate"),U=this.#U.rules.some((X)=>X.metric==="activity.p99_duration");if($){let X=(_)=>{let G=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="workflow.failure_rate")continue;this.#_.get(Q).record(G,_),this.#Z(Q)}};this.#H("workflow:completed",()=>X(!1));for(let _ of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(_,()=>X(!0))}if(U)this.#H("activity:completed",(X)=>{if(!(X instanceof l9))return;let _=this.#Y();for(let G=0;G<this.#U.rules.length;G++){if(this.#U.rules[G].metric!=="activity.p99_duration")continue;this.#_.get(G).record(_,X.duration),this.#Z(G)}});if(this.#U.rules.some((X)=>X.metric==="storage.size"))this.#H("storage:size-reported",(X)=>{if(!(X instanceof $X))return;this.#G=X.sizeBytes;for(let _=0;_<this.#U.rules.length;_++){if(this.#U.rules[_].metric!=="storage.size")continue;this.#Z(_)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#Z($){let U=this.#U.rules[$],J=this.#J[$],X=this.#Y(),_=0,G=U.threshold;if(U.metric==="workflow.failure_rate")_=this.#_.get($).rate(X);else if(U.metric==="activity.p99_duration")_=this.#_.get($).percentile(99,X);else if(U.metric==="storage.size")_=this.#G;if(J.currentValue=_,_>=G&&J.status==="idle")J.status="firing",J.lastFiredAt=X,this.#$.dispatchEvent(new UX(U.metric,G,_,U.window)),this.#P(U,"alert:fired",_);else if(_<G&&J.status==="firing")J.status="idle",J.lastResolvedAt=X,this.#$.dispatchEvent(new JX(U.metric,G,_,U.window)),this.#P(U,"alert:resolved",_)}#P($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#z($,U,J)}#z($,U,J){let X=this.#U.webhooks??[];for(let _ of X){if(!_.events.includes(U))continue;let G=new AbortController;this.#D.add(G);let Q={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#Y()}};fetch(_.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q),signal:AbortSignal.any([G.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#D.delete.bind(this.#D,G))}}get states(){return this.#J}[Symbol.dispose](){if(this.#Q!==null)clearInterval(this.#Q),this.#Q=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#D)$.abort();this.#D.clear()}}});var sP;var cR=z(()=>{sP=class sP{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((X)=>{let _=!1,G=(j)=>{if(_)return;_=!0,Z(),X(j)},Q=(j)=>{if(j.data.operationId===$.operationId)G(j.data)},D=(j)=>{G({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${j.message??"unknown error"}`})},Y=setTimeout(()=>{G({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),J=!0,U.terminate()},this.#U),Z=()=>{clearTimeout(Y),U.removeEventListener("message",Q),U.removeEventListener("error",D)};U.addEventListener("message",Q),U.addEventListener("error",D),U.postMessage($)})}finally{if(!J)this.#$.release(U)}}get availableCount(){return this.#$.availableCount}get totalCount(){return this.#$.totalCount}get pendingCount(){return this.#$.pendingCount}[Symbol.dispose](){this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){await this.#$[Symbol.asyncDispose]()}}});var u3;var pR=z(()=>{u3=class u3{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#_=new Map,this.#X=$.concurrency,this.#G=$.workerUrl,this.#D=$.smol??!1,this.#Y=!1,this.#Q=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#j();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((J,X)=>{let _=this.#_.get($)??[];_.push({resolve:J,reject:X}),this.#_.set($,_)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#Z($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#z(),this.#L()}release($){if(this.#Y&&!this.#Q)return;let U=this.#_.get($);if(U&&U.length>0){let X=U.shift();if(U.length===0)this.#_.delete($);X.resolve($);return}let J=this.#J.shift();if(J){J.resolve($);return}this.#U.push($),this.#L()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#_.values())$+=U.length;return this.#J.length+$}[Symbol.dispose](){if(this.#Y)return;this.#Y=!0,this.#q()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#P(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#q();return}return new Promise(($)=>{this.#Q=()=>{this.#q(),$()}})}#j(){let $={};if(this.#D)$.smol=!0;let U=new Worker(this.#G,$);return this.#$.add(U),U}#q(){this.#P(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#_.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#Z($,U){let J=this.#_.get($);if(!J)return;this.#_.delete($);for(let X of J)X.reject(U)}#P($){let U=this.#J.splice(0);for(let J of U)J.reject($);for(let J of this.#_.values())for(let X of J)X.reject($);this.#_.clear()}#z(){if(this.#Y)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#J.shift()?.resolve(this.#j());continue}return}}#L(){if(this.#Q&&this.#U.length===this.#$.size)this.#Q(),this.#Q=null}}});function dR($,U,J,X){return{workflowId:J.workflowId,workflowType:J.workflowType,startedAt:J.startedAt??$.getNow(),abortController:X,getNow:$.getNow,nestingDepth:J.nestingDepth??0,executionStateOwnerId:J.executionStateOwnerId??J.workflowId,...J.sleepReferenceTime!==void 0&&{sleepReferenceTime:J.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...J.deadline!==void 0&&{deadline:J.deadline},...Ed($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...xd($)}}function Ed($,U){let{registerCancelHandler:J,recordFinalizerState:X}=$;return{...J!==void 0&&{registerCancelHandler:(_)=>J(U,_)},...X!==void 0&&{recordFinalizerState:(_)=>X(U,_)}}}function xd($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function iR($){return{...$.getComposedWorkflowInterceptor!==void 0&&{getComposedWorkflowInterceptor:$.getComposedWorkflowInterceptor},...$.registerCancelHandler!==void 0&&{registerCancelHandler:$.registerCancelHandler},...$.recordFinalizerState!==void 0&&{recordFinalizerState:$.recordFinalizerState},...$.getWorkflowServices!==void 0&&{getWorkflowServices:$.getWorkflowServices},...$.getLogSink!==void 0&&{getLogSink:$.getLogSink}}}var tP;var lR=z(()=>{_3();l6();tP=class tP{#$;#U;#J;#_;#X;#G;#D;#Y;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#_=new Map,this.#X=new Map,this.#G=new Map,this.#D=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#Z({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let X=new k4(dR(this.#$,U,$,J)),_=this.#$.getComposedWorkflowInterceptor?.()??null;if(G0(X,_),this.#$.development)X.explain(!0);this.#_.set($.workflowId,X);let G=U.handler(X,$.input);this.#U.set($.workflowId,G),this.#Q($.workflowId,G,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#Z({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let J=$.operationResult.status==="completed"?$.operationResult.value:void 0,X=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,_=$.operationResult.status==="failed"?$8($.operationResult):void 0;if(_)this.#j($.workflowId,U,_,X);else this.#Q($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#P($)}parkWorkflow($,U){let J=U?.retainContext?this.#_.get($)??this.#X.get($):void 0;if(this.#P($),J!==void 0)this.#X.set($,J)}getContext($){return this.#_.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#J.get($)}waitForWorkflowTurn($){return this.#D.get($)}waitForWorkflowAdvance($){return this.#G.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#Q($,J,U)}throwIntoWorkflow($,U,J){let X=this.#U.get($);if(!X)return;this.#j($,X,U,J)}adoptWorkflow($,U,J,X){this.#X.delete($),this.#U.set($,U),this.#_.set($,J),this.#J.set($,X)}[Symbol.dispose](){this.#U.clear(),this.#J.clear(),this.#_.clear(),this.#X.clear(),this.#G.clear(),this.#D.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Q($,U,J){return this.#q($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let _=await U.next(J);if(_.done){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#Z({type:"completed",workflowId:$,result:_.value});return}let G=_.value;this.#Z({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:G})}catch(X){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let _={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:W0(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)_.errorStack=X.stack;this.#Z(_)}})())}#j($,U,J,X){return this.#q($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let G=await U.throw(J);if(G.done){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#Z({type:"completed",workflowId:$,result:G.value});return}let Q=G.value;this.#Z({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(_){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let G={type:"failed",workflowId:$,error:_ instanceof Error?_.message:String(_),failureCategory:X??W0(_,{defaultErrorCategory:"application"})};if(_ instanceof Error&&_.stack!==void 0)G.errorStack=_.stack;this.#Z(G)}})())}#q($,U){let J=U.finally(()=>{if(this.#G.get($)===J)this.#G.delete($)});return J.catch(()=>{}),this.#G.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#D.get($)===J)this.#D.delete($)});return J.catch(()=>{}),this.#D.set($,J),J}#Z($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#D.delete($.workflowId)}#P($,U){if(this.#U.delete($),this.#J.delete($),this.#_.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#G.delete($);if(!U?.preserveTrackedTurn)this.#D.delete($)}}});class eP{#$=new Map;#U=new Map;resetWorkflow($){this.#$.delete($),this.#U.delete($)}clear(){this.#$.clear(),this.#U.clear()}recordResume($){this.#$.set($,(this.#$.get($)??0)+1)}beginCheckpointHandling($){if($.type!=="checkpoint")return null;return this.#U.set($.workflowId,(this.#U.get($.workflowId)??0)+1),this.#$.get($.workflowId)??0}finishCheckpointHandling($,U,J){if(U===null)return;let X=(this.#U.get($)??1)-1;if(X>0){this.#U.set($,X);return}this.#U.delete($),this.forgetWorkflowIfClosed($,J)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function WQ$($){let U=new Uint8Array($.byteLength);return U.set($),U.buffer}function bd($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function k3($){if(typeof $!=="object"||$===null)return!1;let U=$;return Sd.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&bd(U.attributes)}function nR($){return typeof $==="object"&&$!==null&&$.type==="log"}var Sd;var f3=z(()=>{Sd=new Set(["debug","info","warn","error"])});function yd($){let U=0;return B(L0($,[],(X)=>{U+=X})).byteLength+U}function pJ($,U){let J=yd($);if(U!==void 0&&J>U)throw new F0(J,U);return J}function UT($){let U=md($);ud(U),kd(U)}function md($){if(typeof $!=="object"||$===null)throw new N$("Worker outbound message must be an object");return $}function ud($){if(typeof $.workflowId!=="string")throw new N$("Worker outbound message must include workflowId");oR($,"protocolVersion"),oR($,"turnId")}function oR($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new N$(`Worker outbound message ${U} must be an integer`)}function kd($){switch($.type){case"checkpoint":fd($);return;case"completed":return;case"failed":wd($);return;case"log":cd($);return;default:throw new N$("Worker outbound message has an unsupported type")}}function fd($){if(!($.checkpoint instanceof ArrayBuffer))throw new N$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new N$("Worker checkpoint message must include operationRequest")}function wd($){if(typeof $.error!=="string")throw new N$("Worker failed message must include an error string")}function cd($){if(!k3($.record))throw new N$("Worker log message must include a valid log record")}function L0($,U,J){let X=pd($,U,J);if(X.handled)return X.value;if(U.includes($))throw new N$("Worker protocol message cannot include cyclic values");if(!K2($).valid)throw new N$("Worker protocol message contains non-cloneable values");return ld($,U,J)}function pd($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new N$("Worker protocol message cannot include functions or symbols");let X=dd($,J);if(X.handled)return X;let _=id($,U,J);if(_.handled)return _;if(Array.isArray($))return{handled:!0,value:$.map((G)=>L0(G,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function dd($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[rR]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[rR]:$.byteLength}};return{handled:!1}}function id($,U,J){if($ instanceof Date)return{handled:!0,value:{[vd]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[gd]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[hd]:[...$.entries()].map(([X,_])=>[L0(X,U,J),L0(_,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Id]:[...$.values()].map((X)=>L0(X,U,J))}};return{handled:!1}}function ld($,U,J){U.push($);try{let X={};for(let _ of Object.keys($).toSorted())X[_]=L0($[_],U,J);return X}finally{U.pop()}}var D4=1,aR=1000,sR=1048576,$q=4096,tR=60000,eR=5000,$T=5,rR="__weftBinaryBytes",vd="__weftDate",gd="__weftError",hd="__weftMap",Id="__weftSet",N$,F0;var d4=z(()=>{I();f3();N$=class N$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};F0=class F0 extends N${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class Uq{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let J=await this.#$.pool.acquire();this.#$.ownership.setActive($,J),this.#$.attachWorkerListeners(J),this.#U(J,$,U,"run")}catch(J){this.#$.emit({type:"failed",workflowId:$,error:J instanceof Error?J.message:String(J)})}}postResumeMessage($,U,J){this.#U($,U.workflowId,J,"resume")}async resumeParkedWorkflow($,U,J){try{let X=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,X)){this.#$.pool.release(X);return}this.#$.attachWorkerListeners(X),this.postResumeMessage(X,$,J)}catch(X){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:X instanceof Error?X.message:String(X)})}}async cancelParkedWorkflow($,U){try{let J=await this.#$.pool.acquireSpecificWorker(U),X={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())X.protocolVersion=D4;J.postMessage(X),this.#$.detachWorkerListenersIfIdle(J),this.#$.pool.release(J)}catch{}}#U($,U,J,X){if(!this.#$.validateHostToWorkerMessage(U,J,$))return;try{this.#$.beginTurn($,U,J.turnId??0,X),$.postMessage(J,[nd(J.checkpoint)])}catch(_){this.#J($,U,_,X)}}#J($,U,J,X){if(this.#$.clearTurn($),X==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:J instanceof Error?J.message:String(J),otherCategory:"system",otherError:"Worker was discarded after resume postMessage failed"});return}this.#$.ownership.forgetWorkflow(U),this.#$.detachWorkerListenersIfIdle($),this.#$.pool.release($),this.#$.emit({type:"failed",workflowId:U,error:J instanceof Error?J.message:String(J),failureCategory:"system"})}}function nd($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var JT=z(()=>{d4()});class Jq{#$=new Map;#U=new Map;#J=new Map;#_=new Set;resetWorkflow($){this.#_.delete($)}markCancelled($){this.#_.add($)}consumeCancelled($){return this.#_.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#J.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#J.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#J.delete(U),this.#U.set($,U),!0}activateParked($,U){if(this.#U.get($)!==U)return!1;return this.#U.delete($),this.setActive($,U),!0}deleteParked($){this.#U.delete($)}isWorkflowClosed($){return!this.#$.has($)&&!this.#U.has($)}activeWorkflowIds(){return[...this.#$.keys()]}workflowIdsForWorker($){let U=[],J=this.#J.get($);if(J)U.push(J);for(let[X,_]of this.#U)if(_===$)U.push(X);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#J.delete(U);this.#$.delete($),this.#U.delete($),this.#_.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#J.clear(),this.#_.clear()}workerIsIdle($){if(this.#J.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function _T($,U){let J={type:"run",protocolVersion:D4,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)J.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)J.deadline=$.deadline;if($.headers)J.headers=$.headers;if(U.hasLogSink)J.hostHasLogSink=!0;return J}function _q($,U){let J={type:"resume",protocolVersion:D4,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)J.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)J.hostHasLogSink=!0;return J}var XT=z(()=>{d4()});class Xq{#$=new Map;attach($,U){if(this.#$.has($))return;let J={message:(X)=>{U.message(X.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,J),$.addEventListener("message",J.message),$.addEventListener("error",J.error),$.addEventListener("messageerror",J.messageerror)}detach($){let U=this.#$.get($);if(!U)return;$.removeEventListener("message",U.message),$.removeEventListener("error",U.error),$.removeEventListener("messageerror",U.messageerror),this.#$.delete($)}detachIfIdle($,U){if(U($))this.detach($)}detachAll(){for(let $ of this.#$.keys())this.detach($)}}function GT($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function QT($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function DT($,U,J){if(J!==void 0)try{pJ($,J)}catch(_){return _ instanceof F0?"dropped-oversize":"dropped-invalid"}if(!k3($.record))return"dropped-invalid";let X=$.record;if(X.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(X)}catch{J3(X)}return"accepted-valid"}var Gq=z(()=>{pH();f3();d4()});class ZT{#$;#U;#J;#_;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#J=$.strikeThreshold,this.#_=$.getNow}recordArrival($){let U=this.#_(),J=this.#G($),X=U-J.windowStartedAt;if(X>=this.#$||X<0)J.windowStartedAt=U,J.arrivalsInWindow=0;return J.arrivalsInWindow+=1,J.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let J=this.#G($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#G($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#_(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class jT{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new ZT({floodWindowMs:$.floodWindowMs??tR,floodThreshold:$.floodThreshold??eR,strikeThreshold:$.strikeThreshold??$T,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return YT("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let X=DT(U,this.#U,this.#J);if(this.#$.recordOutcome($,X)==="discard")return YT("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function YT($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function HT($,U){return new jT({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var PT=z(()=>{Gq();d4()});class Qq{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return pJ($,this.#$),null}catch(U){return qT(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(UT(U),pJ(U,this.#$),this.#U)this.#_($,U);return{accepted:!0,message:U}}catch(J){let X=rd(U);return{accepted:!1,failure:qT(J,{...X===void 0?{}:{targetWorkflowId:X},otherError:X===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${X}`})}}}#_($,U){if(U.protocolVersion!==D4)throw new N$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new N$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new N$("Worker message did not match the active turn")}}function qT($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof F0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function rd($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var zT=z(()=>{d4()});class Dq{#$=new Map;#U;#J;constructor($,U){this.#U=$,this.#J=U}begin($,U,J,X){this.clear($);let _={worker:$,workflowId:U,turnId:J,kind:X,timeout:null};if(this.#U!==void 0)_.timeout=setTimeout(()=>{if(this.#$.get($)===_)this.#J(_)},this.#U);this.#$.set($,_)}clear($){let U=this.#$.get($);if(!U)return;if(U.timeout!==null)clearTimeout(U.timeout);this.#$.delete($)}clearAll(){for(let $ of this.#$.keys())this.clear($)}get($){return this.#$.get($)}}var Yq;var LT=z(()=>{JT();XT();PT();Gq();zT();f3();d4();Yq=class Yq{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;#j;#q;#H;#Z;#P;#z;#L;#V;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:X,requireProtocolVersion:_=!1,discardOnCancel:G=!1,broadcastEvents:Q=!1}=U??{};if(this.#$=$,this.#U=new Jq,this.#J=new Xq,this.#G=new eP,this.#D=J,this.#Y=X,this.#Q=_,this.#j=G,this.#q=HT(U,X),this.#H=new Dq(this.#D,(D)=>{this.#S(D)}),this.#Z=new Qq(this.#Y,this.#Q,this.#H),this.#P=new Uq({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#L,requireProtocolVersion:()=>this.#Q,validateHostToWorkerMessage:(D,Y,Z)=>this.#O(D,Y,Z),attachWorkerListeners:(D)=>{this.#E(D)},detachWorkerListenersIfIdle:(D)=>{this.#N(D)},beginTurn:(D,Y,Z,j)=>{this.#H.begin(D,Y,Z,j)},clearTurn:(D)=>{this.#H.clear(D)},discardWorkerAndFailWorkflows:(D,Y)=>{this.#F(D,Y)},emit:(D)=>{this.#W(D)}}),this.#z=null,this.#_=null,this.#X=null,this.#L=!1,this.#V=1,Q)try{this.#_=new BroadcastChannel("weft:events"),this.#X=(D)=>{this.#b(D.data)},this.#_.addEventListener("message",this.#X)}catch{}}onMessage($){this.#z=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#G.resetWorkflow($.workflowId);let U=_T($,this.#M());if(!this.#O($.workflowId,U))return;this.#P.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#G.recordResume($.workflowId);let X=_q($,this.#M());this.#P.postResumeMessage(U,$,X);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let X=_q($,this.#M());this.#P.resumeParkedWorkflow($,J,X);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#L)this.#W({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#M(){return{turnId:this.#V++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#q.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#j){this.#F(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let X={type:"cancel",workflowId:$};if(this.#Q)X.protocolVersion=D4;U.postMessage(X),this.#K($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#j){this.#F(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#P.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#B(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#B(),await this.#$[Symbol.asyncDispose]()}#B(){if(this.#L=!0,this.#_){if(this.#X)this.#_.removeEventListener("message",this.#X);this.#_.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#K(U);this.#J.detachAll(),this.#U.clear(),this.#G.clear(),this.#z=null}async#A($,U){if(nR(U)){let G=(D)=>this.#U.getTargetWorker(D)===$,Q=this.#q.handle($,U,G);if(Q)this.#F($,Q);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#G.beginCheckpointHandling(U),X=GT(this.#z,U),_=X instanceof Promise?await X:X;try{if(this.#C($,U))return;if(_)return;this.#R($,U,J)}finally{this.#G.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#K(U.workflowId),this.#N($),this.#G.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!QT(U))return;if(this.#G.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#F($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#K($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#N(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#F($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#N($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let X=this.#Z.validateHostToWorkerMessage(U);if(!X)return!0;if(J)return this.#F(J,{targetWorkflowId:$,targetCategory:X.failureCategory,targetError:X.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#W({type:"failed",workflowId:$,error:X.error,failureCategory:X.failureCategory}),!1}#x($,U){let J=this.#Z.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#F($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#S($){this.#F($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#D}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#F($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#q.forget($);return}for(let X of J){let _=X===U.targetWorkflowId;if(this.#U.forgetWorkflow(X),this.#G.forgetWorkflowIfClosed(X,!0),_&&U.skipTarget)continue;this.#W({type:"failed",workflowId:X,error:_?U.targetError??U.otherError:U.otherError,failureCategory:_?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#q.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#W($){let U=this.#z?.($);if(U instanceof Promise)U.catch(()=>{})}}});function BT($){let U=od($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:FT,leaseRenewIntervalMs:VT,leaseWaitTimeoutMs:MT};let J=W6($?.leaseTtl,"options.leaseTtl")??FT,X=W6($?.leaseRenewInterval,"options.leaseRenewInterval")??VT,_=W6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??MT;return ad(J,X,_),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:X,leaseWaitTimeoutMs:_}}function od($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function ad($,U,J){if($<=0||U<=0||J<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${J}ms).`);if(U>=$)throw Error(`ownership: 'lease' requires leaseRenewInterval (${U}ms) to be strictly less than leaseTtl (${$}ms), so a renewal fires before the lease can lapse.`)}var FT=30000,VT=5000,MT=60000;var WT=z(()=>{Y$()});function Zq($){return Object.entries($??{})}function w3($,U){return $}function NT($){return sd($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function sd($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function td($){return $?.development===!0||NT("WEFT_DEV_WARNINGS")==="1"||NT("NODE_ENV")==="development"}function CT($){let J=$?.storage??void 0;if(J===void 0){if(!KT&&td($))KT=!0,console.warn("[weft] Engine started with no `storage` configured \u2014 falling back to MemoryStorage. "+"Workflow state is held only in memory and is lost when the process exits, so a crash or restart discards every in-flight workflow. Pass a durable adapter (e.g. SQLiteStorage) via `new Engine({ storage })` for anything beyond tests and local dev. (This warning appears only in development.)");J=new uU}if(!$?.compression)return J;return new _G(J,$.compression)}function RT($){return $?.interceptors?[...$.interceptors]:[]}function jq($,U){return{type:$,version:U.version,tags:U.tags===void 0?[]:[...U.tags],...U.description===void 0?{}:{description:U.description},...U.inputSchema===void 0?{}:{inputSchema:U.inputSchema},...U.outputSchema===void 0?{}:{outputSchema:U.outputSchema},...U.searchAttributes===void 0?{}:{searchAttributes:U.searchAttributes},...U.concurrency===void 0?{}:{concurrency:U.concurrency}}}function ed($){return{retention:S9($?.retention,"options.retention"),retentionSweepIntervalMs:W6($?.retentionSweepInterval,"options.retentionSweepInterval")??$z,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):Uz}}function V0($,U){return $??U}function $i($){return{development:V0($?.development,!1),broadcastEvents:V0($?.broadcastEvents,!1)}}function Ui($){return{checkpointHistory:V0($?.checkpointHistory,10),checkpointSizeWarningThreshold:V0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:V0($?.maxNestingDepth,10)}}function Ji($){return{historyPolicy:ZB($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:jB($?.payloadSize,"options.payloadSize")}}function _i($){let U=V0($?.detectSecondInstance,!1),J=U?W6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??OT:OT;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function TT($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...$i(U),...Ui(U),...ed(U),...Ji(U),..._i(U),...BT(U)}}function Xi($){let U=Gi($?.workflowExecutionMode),J=Qi($,U);if(!J)return{mode:"inline",workerExecution:null};return Di(J)}function Gi($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Qi($,U){if(U==="inline"){if($?.workerExecution!==void 0)throw Error('options.workerExecution cannot be provided when workflowExecutionMode is "inline"');return null}if(U==="worker"){if($?.workerExecution===void 0)throw Error('options.workerExecution is required when workflowExecutionMode is "worker"');return $.workerExecution}if($?.workerExecution!==void 0)throw Error('options.workflowExecutionMode must be "worker" when options.workerExecution is provided');return null}function Di($){let U=AT($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??aR,J=AT($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??sR;if(J<$q)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${$q}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function AT($,U,J){if($===void 0)return J;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function ET($){let{options:U,getNow:J,maxNestingDepth:X,development:_,broadcastEvents:G,getRegistration:Q,getComposedWorkflowInterceptor:D,resolveWorkflowType:Y,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:H,getLogSink:L}=$,F=Xi(U);if(F.mode==="worker"){let E=new u3({workerUrl:F.workerExecution.workerUrl,concurrency:F.workerExecution.poolSize??4,smol:F.workerExecution.smol??!1}),m=L?.(),a={broadcastEvents:G,requireProtocolVersion:F.requireProtocolVersion,discardOnCancel:F.discardOnCancel,workflowTurnTimeoutMs:F.workflowTurnTimeoutMs,maxProtocolMessageBytes:F.maxProtocolMessageBytes,getNow:J,...m!==void 0&&{onLog:m}};return{strategy:new Yq(E,a),inlineStrategy:null}}let W=new tP({getRegistration:Q,getNow:J,maxNestingDepth:X,development:_,resolveWorkflowType:Y,...iR({getComposedWorkflowInterceptor:D,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:H,getLogSink:L})});return{strategy:W,inlineStrategy:W}}function xT($){if(!$)return null;return new sP(new u3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function ST($,U,J){return U?new aP($,U,J):null}var KT=!1,OT=15000;var bT=z(()=>{wR();cq();t3();cR();pR();lR();n$();LT();d4();WT();Y$()});function gT(){if(Hq!==void 0)return Hq;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function hT($){Hq=$}function IT($){Pq=$}function yT(){let $=Pq;return Pq=void 0,$}function mT(){return vT}function uT($){return qq.has($)}function kT($){qq.delete($)}function fT(){return gT()}var Hq,vT=0,Pq,qq,c3;var p3=z(()=>{qq=new Set,c3=new FinalizationRegistry(($)=>{if(vT++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&gT()){if($.testToken!==void 0)qq.add($.testToken);process.emitWarning("WeftEngineLeakWarning: A Weft Engine was garbage-collected without calling [Symbol.dispose](). Use `using`, `await using`, or call engine[Symbol.dispose]() to clear background timers and release runtime resources.")}})});function wT($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function cT($){let U=T$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>C6(J)}}function pT($,U){return function(){let X=$.deref();if(X===void 0){U.port1.close(),U.port2.close();return}P(X).queuedInlineWorkflowStartFlushScheduled=!1,C6(xJ(P(X),cT(X)))}}async function dT($){await fO(P($),cT($))}function iT($,U){return function(){let X=$.deref();if(X===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let _=P(X);PM(_.updateCoordinator,(G,Q)=>e(X).handleCleanupError(G,Q))()}}function lT($){return function(){let J=$.deref();if(J===void 0)return null;let X=P(J);if(X.disposed)return null;return X.secondInstanceDetector}}function nT($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,c3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var zq=z(()=>{x2();Z0();p3();w4();c4();c6()});function d3($){$.disposed=!0,$.alertManager?.[Symbol.dispose](),$.alertManager=null,$.abortController.abort();for(let U of $.signalWaiters.values())U();$.signalWaiters.clear(),$.signalWaitersByWorkflow.clear();for(let U of $.conditionWaiters.values())U();if($.conditionWaiters.clear(),wO($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,nT($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,Yi($),Zi($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new N6);$.resultResolvers.clear(),$.updateWaiters.clear(),$.updateWaitersByWorkflow.clear(),$.reviewWaiters.clear(),$.reviewWaitersByWorkflow.clear(),$.reviewEscalationHandlers.clear(),$.workflowReviewIds.clear(),$.parkedInlineWorkflows.clear(),$.terminalizingWorkflows.clear(),$.deliveredPendingUpdateIds.clear(),$.reviewTimerIds.clear();for(let U of $.pendingWebhooks)U.abort();$.pendingWebhooks.clear(),$.sleepResolvers.clear(),$.sleepResolversByWorkflow.clear(),$.checkpoints.clear(),$.pendingExecutionStateOwnerId=void 0,$.workflowNestingDepths.clear(),$.workflowServices.clear(),$.workflowHeaders.clear(),$.pendingStarts.clear(),$.pendingScheduleCreations.clear(),$.eventLogHeads.clear(),$.pendingTimelineEntries.clear(),$.pendingAtomicWorkflowCommitSideEffects.clear(),$.pendingAsyncActivityResolutions.clear(),$.workflowVersionTuples.clear(),$.workflowFeedListeners.clear(),$.activityRegistriesByWorkflow.clear(),$.workflowDefinitionsByName.clear(),$.workflowTypeByWorkflowId.clear(),$.broadcastChannel?.close(),$.broadcastChannel=null}function Yi($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function Zi($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var rT=z(()=>{zq();z$();w4()});function oT($,U,J){if($.terminalizingWorkflows.has(U)){if($.options.development)console.warn(`[weft] ctx.setFinalizerState() called for workflow "${U}" after it began terminalizing; the value is ignored. Record finalizer state while the workflow is still running.`);return}K6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),E4($,U,{conditions:[],operations:[{type:"put",key:q.finalizerState(U),value:B(J)}]})}var aT=z(()=>{b();I();T4()});function sT($){let{storage:U,holderId:J,getNow:X,ttlMs:_,renewIntervalMs:G,waitTimeoutMs:Q}=$,D=$.acquirePollIntervalMs??ji,Y=G,Z=!1,j=null,H=null,L=null,F=null,W=!1,E=null,m=$.delay??((j$)=>new Promise((I$)=>setTimeout(I$,j$)));function a(j$){if(W)return;W=!0,$.onLeaseLost?.(j$)}async function p(){let j$=await U.get(q.leaseHolder()),I$=await U.get(q.leaseEpoch());return{epochRaw:I$,holderRaw:j$,epoch:I$===null?null:KX(I$),holder:j$===null?null:NX(j$)}}async function y(j$,I$,y$){let E6=X()+_,mU=rj({holderId:J,expiresAt:E6,epoch:y$}),Vq=await G$(U,[{key:q.leaseEpoch(),expectedValue:j$},{key:q.leaseHolder(),expectedValue:I$}],[{type:"put",key:q.leaseEpoch(),value:nj(y$)},{type:"put",key:q.leaseHolder(),value:mU}]);if(Vq)j=y$,H=nj(y$),L=mU;return Vq}async function k(){let{epochRaw:j$,holderRaw:I$,epoch:y$,holder:E6}=await p();if(j$!==null&&y$===null)throw new CU('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(j$===null&&I$!==null)throw new CU('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(E6!==null&&X()<E6.expiresAt)return!1;let mU=(y$??0)+1;if(mU>=Number.MAX_SAFE_INTEGER)throw new CU(`the next ownership epoch (${mU}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return y(j$,I$,mU)}async function w(){let j$=X(),I$=j$+Q,y$=null,E6=!0;for(;;){if(Z)return;if(!E6&&X()>=I$)throw new d1(X()-j$,y$);if(E6=!1,await k())return;let yU=await U.get(q.leaseHolder());if(y$=yU===null?null:NX(yU)?.holderId??null,X()>=I$)throw new d1(X()-j$,y$);await m(D)}}async function E$(){if(Z||W||j===null||L===null)return;let j$=X()+_,y$=rj({holderId:J,expiresAt:j$,epoch:j}),E6;try{E6=await G$(U,[{key:q.leaseHolder(),expectedValue:L}],[{type:"put",key:q.leaseHolder(),value:y$}])}catch{let yU=NX(L)?.expiresAt??0;if(X()>=yU-Y)a("renewal-unconfirmable");return}if(E6){L=y$;return}a("deposed")}function T6(){if(E!==null)return;E=E$().catch(()=>{}).finally(()=>{E=null})}function IU(){if(Z||F!==null)return;F=setInterval(()=>{T6()},G),F.unref?.()}function HE(){return H===null?null:H.slice()}function Fq(){if(F!==null)clearInterval(F),F=null}async function PE(){if(Z=!0,Fq(),E!==null)await E;if(L===null)return;try{if(await G$(U,[{key:q.leaseHolder(),expectedValue:L}],[{type:"delete",key:q.leaseHolder()}]))L=null}catch{}}function qE(){Z=!0,Fq()}return{acquire:w,startRenewal:IU,renewOnce:E$,currentEpochBytes:HE,release:PE,stop:qE}}var ji=1000;var tT=z(()=>{b();oj();OX()});async function Lq($){let U=await $.get(ij);if(U!==null){let J=new TextDecoder().decode(U);if(!Hi.test(J))throw new _4(null,WU);let X=Number(J);if(!Number.isSafeInteger(X))throw new _4(null,WU);if(X!==WU)throw new _4(X,WU);return}for(let J of Pi)for await(let X of $.scan(J,{limit:1}))throw new _4(null,WU);await $.put(ij,new TextEncoder().encode(String(WU)))}var Hi,Pi;var eT=z(()=>{lj();Hi=/^(?:0|[1-9]\d*)$/,Pi=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function $E($,U,J,X){if(J==="activityProgress")return $.heartbeatDetails.get(U);let _=$.inlineStrategy;if(!_)throw Error("Workflow queries are not supported when using the worker execution strategy.");let G=_.getContext(U)??_.getParkedContext(U);if(!G)return;let Q=G.queryHandlers.get(J);if(Q)return Q(X);let D=G.exposedAccessors.get(J);if(!D)return;return D()}function Li($){return qi.encode(JSON.stringify($))}async function i3($){try{await $()}catch{}}function Fi($){let{instanceId:U,heartbeatAt:J,sequence:X}=$;return typeof U==="string"&&U.length>0&&typeof J==="number"&&Number.isFinite(J)&&typeof X==="number"&&Number.isInteger(X)&&X>=0}function Vi($){let U;try{U=JSON.parse(zi.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return Fi(J)?J:null}function JE($){let{storage:U,instanceId:J,getNow:X,intervalMs:_}=$,G=$.warn??((p)=>process.emitWarning(p,Mi)),Q=_*(UE+1),D=0,Y=!1,Z=!1,j=new Map,H=new Set;async function L(){let p=[];for await(let[y,k]of U.scan(q.livenessPrefix())){let w=Vi(k);if(w!==null&&w.instanceId!==J)p.push({key:y,heartbeat:w})}return p}async function F(p,y){let k=y-Q*Bi;for(let w of p)if(w.heartbeat.heartbeatAt<k)await i3(()=>U.delete(w.key))}function W(p){let y=new Set;for(let{key:k,heartbeat:w}of p){if(q.liveness(w.instanceId)!==k)continue;y.add(w.instanceId);let E$=j.get(w.instanceId),IU=E$!==void 0&&w.sequence>E$.sequence?E$.advances+1:0;if(j.set(w.instanceId,{sequence:w.sequence,advances:IU}),IU>=UE&&!H.has(w.instanceId))H.add(w.instanceId),G(`another engine instance (${w.instanceId}) is writing to this durable store. Weft supports one engine process per store; running two can cause duplicate workflow execution. Enforce a single instance at the infrastructure layer (for example, one replica with a Recreate deploy strategy).`)}for(let k of Array.from(j.keys()))if(!y.has(k))j.delete(k)}let E=!1;async function m(){if(Z||E)return;E=!0;let p=!1;try{let y=X(),k=await L();if(!Y)Y=!0,await F(k,y);if(W(k),Z)return;D+=1;let w={instanceId:J,heartbeatAt:y,sequence:D};p=!0,await i3(()=>U.put(q.liveness(J),Li(w)))}finally{if(E=!1,p&&Z)await i3(()=>U.delete(q.liveness(J)))}}async function a(){Z=!0,await i3(()=>U.delete(q.liveness(J)))}return{tick:m,stop:a}}function _E($,U){return function(){let X=$();if(X===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}X.tick().catch(()=>{})}}var qi,zi,Mi="WeftSecondInstanceWarning",Bi=10,UE=2;var XE=z(()=>{b();qi=new TextEncoder,zi=new TextDecoder});var GE,QE,DE,dJ;var YE=z(()=>{b();BZ();_U();J6();x2();rZ();D$();n$();S1();uB();f1();BX();cX();S3();gR();kR();bT();rT();p3();zq();z$();O6();aT();WH();h4();w4();iP();c4();tT();f4();HJ();uP();cP();oX();eT();$P();nP();Z3();AP();XE();S4();R$();c6();Q4();c1();EX();v3();vP();f1();z$();h4();OX();p3();GE=Symbol("engineParkedWorkflowCountForTesting"),QE=Symbol("engineSignalWaiterCountForTesting"),DE=Symbol("engineSleepResolverCountForTesting");dJ=class dJ extends EventTarget{static async create($){let U=new dJ($);try{await Lq(P(U).storage);for(let[J,X]of Zq($.activities)){if(J!==X.name)throw new NU("activity",J,X.name);U.#M(X)}for(let[J,X]of Zq($.workflows)){if(J!==X.name)throw new NU("workflow",J,X.name);U.register(X)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{}),P(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();nO(this),P(this).registrations=new Map,P(this).workflowTypesByHandler=new WeakMap;let U=CT($),J=$?.getNow??Date.now,X=TT(U,$,J),_=ET({options:$,getNow:J,maxNestingDepth:X.maxNestingDepth,development:X.development,broadcastEvents:X.broadcastEvents,getRegistration:P(this).registrations.get.bind(P(this).registrations),getComposedWorkflowInterceptor:()=>H6(P(this)),resolveWorkflowType:this.#z.bind(this),registerCancelHandler:(Z,j)=>RJ(P(this),Z,j),recordFinalizerState:(Z,j)=>oT(P(this),Z,j),getWorkflowServices:(Z)=>P(this).workflowServices.get(Z),getLogSink:()=>X.onLog??void 0});P(this).storage=U,P(this).abortController=new AbortController,P(this).disposed=!1,P(this).handleCache=new Map,P(this).resultResolvers=new Map,P(this).signalWaiters=new Map,P(this).signalWaitersByWorkflow=new Map,P(this).conditionWaiters=new Map,P(this).updateWaiters=new Map,P(this).updateWaitersByWorkflow=new Map,P(this).sleepResolvers=new Map,P(this).sleepResolversByWorkflow=new Map,P(this).interceptors=RT($),P(this).composedWorkflowInterceptor=void 0,P(this).composedActivityInterceptor=void 0,P(this).updateCoordinator=new sZ(U),P(this).activityRegistry=new F2,P(this).activityRegistriesByWorkflow=new Map,P(this).workflowDefinitionsByName=new Map,P(this).workflowTypeByWorkflowId=new Map,P(this).activityWorkerDispatcher=null,P(this).checkpoints=new Map,P(this).broadcastChannel=null,P(this).pendingNestingDepth=void 0,P(this).pendingParentHeaders=void 0,P(this).pendingExecutionStateOwnerId=void 0,P(this).workflowNestingDepths=new Map,P(this).workflowHeaders=new Map,P(this).workflowStateWriteChains=new Map,P(this).finalizationRegistry=new FinalizationRegistry(HM(P(this).handleCache)),P(this).options=X,P(this).scheduler=new F9({storage:U,onTimerFired:(Z)=>RH(P(this),Z,this.#P()),getNow:J,commitTimerCleanup:(Z)=>Z$(P(this),Z,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),P(this).strategy=_.strategy,P(this).inlineStrategy=_.inlineStrategy,P(this).queuedInlineWorkflowStarts=[],P(this).queuedInlineWorkflowStartIds=new Set,P(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,P(this).queuedInlineWorkflowStartFlushScheduled=!1;let G=new WeakRef(this),Q=_.inlineStrategy!==null?new MessageChannel:null;if(P(this).queuedInlineWorkflowStartChannel=Q,Q!==null)Q.port1.onmessage=pT(G,Q);P(this).heartbeatDetails=new Map,P(this).lastHeartbeatDetailsByStep=new Map,P(this).workflowServices=new Map,P(this).pendingAsyncActivities=new Map,P(this).pendingAsyncActivityResolutions=new Map,P(this).pendingStarts=new Set,P(this).pendingScheduleCreations=new Set,P(this).workflowsNeedingTerminalCleanup=new Set,P(this).reviewCoordinator=new nZ(U,J),P(this).reviewWaiters=new Map,P(this).reviewWaitersByWorkflow=new Map,P(this).reviewEscalationHandlers=new Map,P(this).workflowReviewIds=new Map,P(this).parkedInlineWorkflows=new Set,P(this).terminalizingWorkflows=new Set,P(this).deliveredPendingUpdateIds=new Map,P(this).cancelHandlersByWorkflow=new Map,P(this).reviewTimerIds=new Map,P(this).pendingWebhooks=new Set,P(this).pendingTimelineEntries=new Map,P(this).pendingAtomicWorkflowCommitSideEffects=new Map,P(this).cleanupIntervalDisposalTracker=null;let D={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:yT()},Y=setInterval(iT(G,D),60000);D.cleanupInterval=Y,P(this).cleanupInterval=Y,P(this).cleanupIntervalDisposalTracker=D,c3.register(this,D,D),P(this).retentionSweepInterval=null,P(this).retentionSweepInFlight=null,P(this).nextRetentionSweepAt=null,P(this).secondInstanceDetectionInterval=null,P(this).secondInstanceDetector=null,P(this).leaseManager=null,P(this).inFlightLeaseAcquire=null,P(this).deposed=!1,P(this).tearDownAfterDeposition=()=>{this.#U()},P(this).eventLogHeads=new Map,P(this).workflowFeedListeners=new Map,P(this).workflowVersionTuples=new Map,P(this).workflowVisibilityWatermark=void 0,P(this).workflowVisibilityWatermarkExpiresAt=void 0,P(this).activityWorkerDispatcher=xT($?.activityExecution),P(this).strategy.onMessage(this.#L.bind(this)),P(this).alertManager=ST(this,$?.alerts,J),this.#G(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=P(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new N6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=sT({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(X)=>{if(X==="deposed"){UJ($);return}process.emitWarning("engine ownership lease renewal could not be confirmed (transient storage error); another instance may take over if this persists. Weft supports one engine process "+"per store \u2014 keep infrastructure-level single-instance enforcement in place.",aj)}});$.leaseManager=U;let J=(async()=>{try{await U.acquire()}catch(X){if($.leaseManager===U)$.leaseManager=null;throw X}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new N6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=P(this);if($.disposed)return;let U=$.leaseManager;d3($),U?.release().catch(()=>{})}#J(){let $=P(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=JE({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let J=$.cleanupIntervalDisposalTracker;if(J===null)return;let X=new WeakRef(this),_=setInterval(_E(lT(X),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=_,J.secondInstanceDetectionInterval=_}#_(){return h3(P(this))}#X(){I3(P(this))}#G(){y3(P(this),{hasConfiguredRetention:()=>this.#_(),runRetentionSweep:()=>this.#D(),setNextRetentionSweepAt:()=>this.#X()})}async#D(){return m3(P(this),($,U)=>this.#Q().handleCleanupError($,U),($)=>w6(P(this),$,this.#Q()))}#Y(){return T$(this)}#Q(){return e(this)}#j(){return L3(this)}#q(){return d6(this)}#H(){return cJ(this)}#Z(){return q0(this)}#P(){return E3(this)}#z($){return D3(P(this),$,this.#j())}get state(){let $=P(this).storage;return{execution:(U,J,X)=>new R1($,q.stateExecution(U,J),X),workflow:(U,J,X)=>new R1($,q.stateWorkflow(U,J),X)}}async#L($){return bR(P(this),$,this.#H())}#V($){return b4(P(this),$,this.#q())}register($){if(wT($))return this.#M($),w3(this);return tO(P(this),$,this.#j()),w3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new NU("workflow",U,J.name);this.register(J)}return w3(this)}addInterceptor($){P(this).interceptors.push($),P(this).composedWorkflowInterceptor=void 0,P(this).composedActivityInterceptor=void 0}#M($){P(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return P(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){P(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){P(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=P(this).registrations.get($);return U===void 0?void 0:jq($,U)}listWorkflowDefinitions(){return[...P(this).registrations.entries()].map(([$,U])=>jq($,U))}getActivityDefinition($){return P(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return P(this).activityRegistry.listDefinitions()}async start($,U,J){if(XJ(P(this)),J?.idempotencyKey!==void 0)return fH(P(this),$,U,J,this.#Y());return Y6(P(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,X){return XJ(P(this)),wH(P(this),$,U,J,X,this.#B())}#B(){return{...this.#Y(),signalExistingWorkflow:($,U,J,X)=>this.signal($,U,J,{signalId:X})}}getHandle($){let U=P(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return pX(P(this),$)}async list($,U){return bK(P(this),$,U)}async aggregate($,U){return mB(P(this),$,U)}getRetentionOverview(){return vR(P(this),($)=>lP(P(this),$))}async purge($){return sK(P(this),$,(U)=>w6(P(this),U,this.#Q()))}async cancelAll($,U){return tK(P(this),$,U)}async retryFailedAll($,U){return eK(P(this),$,U)}async signalAll($,U,J,X){if(X===void 0)return MH(P(this),$,U,J);return MH(P(this),$,U,J,X)}async deleteAll($,U){return $N(P(this),$,(J)=>w6(P(this),J,this.#Q()),U)}async tagAll($,U,J){return UN(P(this),$,U,J)}async untagAll($,U,J){return JN(P(this),$,U,J)}async schedule($,U,J,X){if(typeof $==="object"){let _=$,G=typeof _.workflow==="string"?_.workflow:_.workflow.name,Q=_.every!==void 0?{every:_.every}:{cron:_.cron??""};return OP(P(this),G,_.input,Q,{..._.id!==void 0&&{id:_.id},..._.overlapPolicy!==void 0&&{overlap:_.overlapPolicy},..._.backfill!==void 0&&{backfill:_.backfill},..._.jitter!==void 0&&{jitter:_.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return OP(P(this),$,U,J,X)}async getSchedule($){let U=y4($,"scheduleId"),J=await EU(P(this),U);return J?cA(J):null}async listSchedules($){return fA(P(this),$)}async pauseSchedule($){return pA(P(this),$)}async resumeSchedule($){return dA(P(this),$)}async cancelSchedule($){return iA(P(this),$)}async updateSchedule($,U){return lA(P(this),$,U)}[GJ]($){return XN(P(this),$)}[GE](){return P(this).parkedInlineWorkflows.size}[QE](){return P(this).signalWaiters.size}[DE](){return P(this).sleepResolvers.size}async signal($,U,J,X){return cW(P(this),$,l$(U),J,{loadWorkflowState:(_)=>l(P(this),_),dispatchEvent:(_)=>this.dispatchEvent(_),broadcast:(_)=>this.#V(_),getComposedInterceptor:()=>H6(P(this)),resumeParkedInlineWorkflow:(_)=>C6(g3(P(this),_,this.#H()))},X)}async update($,U,J,X){return nW(P(this),$,l$(U),J,X,this.#Z())}async query($,U,J){return $E(P(this),$,l$(U),J)}async getStreamChunks($,U,J){return ZR(P(this),$,U,J)}async getOffload($,U){return sC(P(this),$,U)}async fork($,U){return XJ(P(this)),sH(P(this),$,U,this.#Y())}async resume($){return XJ(P(this)),G3(P(this),$,this.#Y())}async recoverAll($){if(await this.#$(),P(this).disposed)throw new N6;return await UW(P(this)),await wA(P(this)),aH(P(this),this.#Y(),$)}async completeAsyncActivity($,U){await XW(P(this),$,U,{feedOperationResult:(J,X)=>j6(P(this),J,X),finalizeTimeline:(J,X,_)=>R6(P(this),J,X,_)})}async failAsyncActivity($,U){await QW(P(this),$,U,{feedOperationResult:(J,X,_)=>j6(P(this),J,X,_),finalizeTimeline:(J,X,_)=>R6(P(this),J,X,_)})}async cancel($){await GP(P(this),$,this.#Q())}async suspend($){await zP(P(this),$,this.#Q())}async timeout($){await QP(P(this),$,this.#Q())}async get($){let U=await l(P(this),$);if(U?.status==="running"&&cO(P(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=P(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await P(this).storage.get(q.checkpoint($));if(J===null)return null;return H$(J).step}async getAttributes($){return yK(P(this),$)}async setAttributes($,U){return mK(P(this),$,U)}async addTags($,...U){return uK(P(this),$,...U)}async removeTags($,...U){return kK(P(this),$,...U)}async getEvents($){return hR(P(this),$)}async*replayWorkflowFeed($,U,J){yield*QR(P(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return DR(P(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return YR(P(this),$,U,J)}async listCheckpoints($){return IR(P(this),$)}async getCheckpointAt($,U){return yR(P(this),$,U)}async getTimeline($){return mR(P(this),$)}async replayTo($,U){return uR(P(this),$,U)}async listReviews($){return DA(P(this),$)}async getReview($,U){return YA(P(this),$,U)}async submitReview($,U){return ZA(P(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return rW(P(this),$)}async submitCoordinatedUpdate($,U,J,X){return oW(P(this),$,U,J,X,this.#Z())}[Symbol.dispose](){let $=P(this).leaseManager;d3(P(this)),$?.release()}async[Symbol.asyncDispose](){if(!P(this).disposed){let $=P(this).leaseManager;try{await dT(this)}finally{d3(P(this)),await P(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return P(this).storage}get scheduler(){return P(this).scheduler}async fireTimer($){await RH(P(this),$,this.#P())}}});var Wi={};q6(Wi,{shouldEmitEngineLeakWarningForTesting:()=>fT,setNextEngineLeakWarningTokenForTesting:()=>IT,setEngineLeakWarningOverrideForTesting:()=>hT,hasEngineLeakWarningTokenForTesting:()=>uT,getEngineLeakCollectionCountForTesting:()=>mT,clearEngineLeakWarningTokenForTesting:()=>kT,assertCompatiblePersistedDataVersion:()=>Lq,WorkflowTypeNotRegisteredForRecoveryError:()=>a2,WorkflowTeardownPendingError:()=>r2,WorkflowSuspendNotSupportedError:()=>t2,WorkflowNotRegisteredError:()=>OU,WorkflowNotFoundError:()=>p1,WorkflowHandle:()=>QJ,WorkflowConcurrencyLimitExceededError:()=>s2,WorkflowAlreadyExistsError:()=>o$,StartOrSignalConflictError:()=>$J,ScheduleHandle:()=>mJ,PersistedDataIncompatibleError:()=>_4,IdempotencyKeyPurgedError:()=>g4,HANDLE_RESULT_PROMISE:()=>GJ,EngineLeaseNotHeldError:()=>JJ,EngineLeaseCorruptedError:()=>CU,EngineLeaseAcquisitionTimeoutError:()=>d1,EngineDisposedError:()=>N6,EngineCreateNameMismatchError:()=>NU,Engine:()=>dJ,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>DE,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>QE,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>GE,ENGINE_LEASE_LOST_WARNING_NAME:()=>aj,BulkOperationConfirmationError:()=>o2,BulkDeleteRequiresTerminalWorkflowsError:()=>KU,AsyncActivityTokenNotFoundError:()=>jX,ActivityResolutionError:()=>e2,ActivityReconciliationIndeterminateError:()=>P6,ActivityReconciliationConflictError:()=>W3,ActivityReconciliationCapabilityError:()=>B3});var ZE=z(()=>{YE()});function jE($){return $}function n5$($,U){$.register(U)}l6();V6();function uE($){let U=$>>>0;return function(){U+=1831565813;let X=U;return X=Math.imul(X^X>>>15,X|1),X^=X+Math.imul(X^X>>>7,X|61),((X^X>>>14)>>>0)/4294967296}}class U8 extends Error{retryable=!0;constructor($="[chaos] transient fault injected"){super($);this.name="ChaosTransientError"}}class J8 extends Error{retryable=!1;constructor($="[chaos] non-retryable fault injected"){super($);this.name="ChaosNonRetryableError"}}class K0 extends Error{timeoutMilliseconds;[GG]=!0;constructor($){super(`[chaos] timeout fault fired after ${$}ms`);this.name="ChaosTimeoutError",this.timeoutMilliseconds=$}}var kE=50,fE=25;async function wE($){let U=AbortSignal.timeout($);return new Promise((J,X)=>{if(U.aborted){X(new K0($));return}U.addEventListener("abort",()=>X(new K0($)),{once:!0})})}function _8($,U){let J=U.seed!==void 0?uE(U.seed):()=>Math.random(),X=U.faults&&U.faults.length>0?U.faults:["transient","timeout","error","delay"];return async function(G){if(J()<U.faultRate)switch(X[Math.floor(J()*X.length)]){case"transient":throw new U8;case"timeout":return wE(fE);case"error":throw new J8;case"delay":return await F6(kE),$(G)}return $(G)}}async function QG($=3){for(let U=0;U<$;U+=1)await Promise.resolve()}async function N0(){if(typeof MessageChannel<"u")await new Promise(($)=>{let U=new MessageChannel;U.port1.onmessage=()=>{U.port1.close(),U.port2.close(),$()},U.port2.postMessage(void 0)});else await new Promise(($)=>{setTimeout($,0)});await QG()}class dq{#$=[];#U;#J=[];#_;constructor($,U){this.#U=$,this.#_=U}get calls(){return this.#$}get callCount(){return this.#$.length}get lastCall(){return this.#$[this.#$.length-1]}get currentImplementation(){return this.#U}mockImplementation($){this.#U=$}mockReturnValueOnce($){return this.#J.push({type:"return",value:$}),this}mockRejectionOnce($){return this.#J.push({type:"reject",error:$}),this}resetCalls(){this.#$=[]}restore(){this.#_()}async execute($){let U=this.#J.shift(),J=$;if(U?.type==="reject"){let X={input:J,result:void 0,error:U.error,timestamp:Date.now()};throw this.#$.push(X),U.error}if(U?.type==="return"){let X={input:J,result:U.value,error:void 0,timestamp:Date.now()};return this.#$.push(X),U.value}try{let X=await this.#U(J),_={input:J,result:X,error:void 0,timestamp:Date.now()};return this.#$.push(_),X}catch(X){let _=X instanceof Error?X:Error(String(X)),G={input:J,result:void 0,error:_,timestamp:Date.now()};throw this.#$.push(G),_}}}class O0{#$;#U;constructor(){this.#$=new Map,this.#U=new Map}onRestore($,U){if(this.#U.has($))return;this.#U.set($,U)}hasRestoreHook($){return this.#U.has($)}#J($){let U=this.#U.get($);if(!U)return;this.#U.delete($),U()}#_(){let $=Array.from(this.#U.values());this.#U.clear();for(let U of $)U()}mock($,U){let J=new dq(U,this.restore.bind(this,$)),X={implementation:J.execute.bind(J),handle:J};return this.#$.set($,X),J}has($){return this.#$.has($)}get($){return this.#$.get($)}restore($){this.#$.delete($),this.#J($)}restoreAll(){this.#$.clear(),this.#_()}entries(){return this.#$.entries()}}var cE=/(?:WEFT_SUBPROCESS_READY|Weft running on)\s+(\S+)/;var pE=Symbol("SubprocessServerHandle");class YG{[pE]=!0;#$;url;port;databasePath;command;#U;#J;constructor($,U,J,X,_){this.#$=$,this.url=U;let G=new URL(U);if(G.port==="")throw Error(`Subprocess readiness URL must include an explicit port: ${U}`);this.port=Number(G.port),this.databasePath=X.databasePath,this.command=J,this.#U={...X,port:this.port},this.#J=_}get process(){let $=this.#$;return{exited:$.exited,get exitCode(){return $.exitCode},get signalCode(){return rq($.signalCode)},kill:(U)=>{$.kill(U)}}}get stdout(){return this.#J.stdout}get stderr(){return this.#J.stderr}async stop($="SIGTERM"){await aq(this.#$,$,this.#U.exitTimeoutMs)}async[Symbol.asyncDispose](){await this.stop()}get internalProcess(){return this.#$}get internalRestartOptions(){return this.#U}}function rq($){if($==="SIGINT"||$==="SIGKILL"||$==="SIGTERM")return $;return null}function iq($,U){let J=$+U;if(J.length<=32768)return J;return J.slice(J.length-32768)}function dE($){return{entrypoint:$.entrypoint,databasePath:$.databasePath,port:$.port??0,...$.hostname!==void 0?{hostname:$.hostname}:{},...$.cwd!==void 0?{cwd:$.cwd}:{},...$.env!==void 0?{env:$.env}:{},args:$.args??[],readyPattern:$.readyPattern??cE,startupTimeoutMs:$.startupTimeoutMs??5000,exitTimeoutMs:$.exitTimeoutMs??2000}}function iE($){let U=[process.execPath,$.entrypoint,"--port",String($.port),"--database",$.databasePath];if($.hostname!==void 0)U.push("--hostname",$.hostname);return U.push(...$.args),U}function i4($,U,J){if(J!==void 0)$[U]=J}function lE($){let U={};i4(U,"PATH",Bun.env.PATH),i4(U,"HOME",Bun.env.HOME),i4(U,"TMPDIR",Bun.env.TMPDIR),i4(U,"TEMP",Bun.env.TEMP),i4(U,"TMP",Bun.env.TMP),i4(U,"TZ",Bun.env.TZ),i4(U,"NODE_ENV",Bun.env.NODE_ENV);for(let[J,X]of Object.entries($??{}))if(X!==void 0)U[J]=X;return U}function nE($){let U=$.flags.replaceAll("g","").replaceAll("y","");return new RegExp($.source,U)}function lq($,U){return U.lastIndex=0,U.exec($)?.[1]}function rE($,U,J,X){let _=nE(J);return new Promise((G,Q)=>{let D=!1,Y=setTimeout(()=>{if(D)return;D=!0,Q(Error(`Timed out after ${X}ms waiting for subprocess readiness.
53
+ ${J.callerStack}`;let G=X instanceof Error?X.message:String(X);_.finalizePendingTimelineEntry(U,"failed",G),_.feedOperationResult(U,{status:"failed",error:G,...X instanceof Error?{errorName:X.name}:{},failureCategory:W0(X,{defaultErrorCategory:"application"})},{value:X})}async function QC($,U,J,X,_){try{let G=await X();uJ($,U,G,_)}catch(G){kJ($,U,J,G,_)}}async function DC($,U,J,X,_){try{await X()}catch(G){kJ($,U,J,G,_)}}var V3=z(()=>{l6()});async function ZC($,U,J,X){return X.runOperationWithResult(U,J,()=>TP($,U,J,RP($,U),X))}function RP($,U){let J=Fp($,U);if(J+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${J+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return J}function Fp($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function Vp($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function Mp($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function Bp($,U,J){return $.type===U.workflowType&&KB($.input,U.input)&&$.executionStateOwnerId===J}async function Wp($,U,J,X,_){let G=await _.loadWorkflowState($);if(!G)throw X;if(!Bp(G,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:X});return _.getHandle($)}async function Kp($,U,J,X,_){E9(J.options,"ctx.startChild"),Vp($,X);try{return await _.start(J.workflowType,J.input,{id:U})}catch(G){if(!(G instanceof o$))throw G;return Wp(U,J,X.pendingExecutionStateOwnerId??void 0,G,_)}finally{Mp($,X)}}async function TP($,U,J,X,_){let G=J.options?.id,Q=typeof G==="string"?G:crypto.randomUUID(),D=$.workflowHeaders.get(U)??new Map,Y=await _.loadWorkflowState(U),Z=Np(J),j=Z==="abandon"?null:Y?.executionStateOwnerId??U,H=async()=>{let F={pendingNestingDepth:X+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:j},W=await Kp($,Q,J,F,_);if(Z==="abandon")return YC(W.id);if(Z==="request-cancel")return E4($,U,{conditions:[],operations:hO($,U,W.id)}),lH($,U,W.id,_),YC(W.id);return W.result()},L=_.getComposedWorkflowInterceptor();if(!L)return H();return L.childWorkflow({workflowId:U,childWorkflowId:Q,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:D},H)}function Np($){return $.options?.parentClosePolicy??"await"}function YC($){return{id:$}}var EP=z(()=>{t6();rH();z$();$$()});function HC($){return{[jC]:!0,finalize:$}}function Op($){return typeof $==="object"&&$!==null&&$[jC]===!0}async function H0($){if(Op($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>H0(U)));return $}var jC;var M3=z(()=>{jC=Symbol("weft.deferredConsume")});function PC($,U){return Math.min(Math.max(0,$-U),Ap)}function qC($,U,J){J?.throwIfAborted();let X=$.abortController.signal;if(X.aborted)return Promise.reject(X.reason??Error("aborted"));if(PC(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((_,G)=>{let Q,D=()=>{J?.removeEventListener("abort",Y),X.removeEventListener("abort",Y)},Y=()=>{clearTimeout(Q),D(),G(J?.reason??X.reason??Error("aborted"))},Z=()=>{let j=PC(U.scheduledFireAt,$.options.getNow());if(j===0){D(),_();return}Q=setTimeout(Z,j)};J?.addEventListener("abort",Y,{once:!0}),X.addEventListener("abort",Y,{once:!0}),Z()})}function zC($,U,J,X){X?.throwIfAborted();let{signalName:_}=J,G=`${U}:${_}`,Q=$.abortController.signal;return new Promise((D,Y)=>{let Z=!1,j=!1,{promise:H,resolve:L}=Promise.withResolvers(),F=()=>{X?.removeEventListener("abort",E),Q.removeEventListener("abort",E)},W=async()=>{let p=await n2($,U,_);return p.found?p.payload:void 0},E=()=>{if(Z)return;if(Z=!0,F(),j)l2($,U,G,L);Y(X?.reason??Q.reason??Error("aborted"))},m=()=>{if(Z)return;Z=!0,F(),D(HC(W))},a=(p)=>{if(Z)return;if(Z=!0,F(),j)l2($,U,G,L);Y(p)};if(X?.addEventListener("abort",E,{once:!0}),Q.addEventListener("abort",E,{once:!0}),Q.aborted){E();return}(async()=>{let p=await fj($,U,_);if(Z)return;if(p.found){m();return}$.signalWaiters.set(G,L),x4($.signalWaitersByWorkflow,U,G),j=!0;let y=await fj($,U,_);if(Z)return;if(y.found){l2($,U,G,L),m();return}if(await H,Z)return;m()})().catch(a)})}var Ap=2147483647;var LC=z(()=>{M3();S4()});function Cp($,U,J,X){let _=$.lastHeartbeatDetailsByStep.get(U);if(_===void 0)_=new Map,$.lastHeartbeatDetailsByStep.set(U,_);_.set(J,X)}function FC($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function xP($,U,J){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)return;if(X.delete(J),X.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function VC($,U,J,X){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(X<=1)return;if(FC($,U,J)!==void 0)return;$.engine.dispatchEvent(new C4(U,`Activity retry (attempt ${X}) at step ${J} has no lastHeartbeatDetails. Either the previous attempt never recorded heartbeat details (it never called heartbeat(), or called it with no details), or the engine process restarted and discarded the in-memory heartbeat (it is not durable). The resumable-batch pattern only resumes across in-process retries; design the activity to restart cleanly when lastHeartbeatDetails is undefined.`,[`step.${J}.lastHeartbeatDetails`]))}function MC($,U,J,X,_){return{signal:X,lastHeartbeatDetails:FC($,U,J),heartbeat:(G)=>{$.heartbeatDetails.set(U,G),Cp($,U,J,G)},completeAsync:_}}var BC=z(()=>{_$()});async function KC($,U,J){let X=await xp(J);return{idempotencyKeyDigest:X,key:q.activityReconciliation($,U,X)}}function NC($,U){let J=$?.idempotencyKey?.(U.input);if(J!==void 0)return J;let X=U.options?.idempotencyKey;return typeof X==="string"?X:void 0}async function OC($,U){let J=await $.get(U);if(J===null)return null;return Ep(R(J))}function K3($,U){return K6($,U,"activity result"),B($)}async function Rp($,U,J){if(!$.capabilities().conditionalBatch)throw new B3;return X$($,"conditionalBatch","activity result reconciliation"),G$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:B(J)}])}function SP($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function AC($,U,J,X,_,G,Q){let D=await OC($.storage,X.key);if(D===null){let j=await bp($,U,J,X,Q);if(j.didClaim)return j.record;D=j.record}if(D.status==="completed")return{completedResult:D.result};if(!_?.verify)throw new P6(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=Tp(await vp(_,U,J,G,D));if(Y==="not-completed"){let j={...D,attempt:D.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await WC($.storage,X,D,j),j}if(Y==="completed-result-unavailable")throw new P6(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new P6(`Activity "${J.activityName}" reconciliation is indeterminate.`);K3(Y.result,$.options.payloadSizePolicy.maxBytes);let Z=SP(D,Y.result,$.options.getNow());return await WC($.storage,X,D,Z),{completedResult:Y.result}}async function WC($,U,J,X){let _=RC(U,J,X);if(!await G$($,_.conditions,_.operations))throw new W3("Activity reconciliation completion lost compare-and-set ownership.")}function CC($,U,J,X,_){E4($,U,RC(J,X,_))}function RC($,U,J){return{conditions:[{key:$.key,expectedValue:B(U)}],operations:[{type:"put",key:$.key,value:B(J)}]}}function Tp($){if($==="not-completed")return"not-completed";if($==="completed-result-unavailable")return"completed-result-unavailable";if($==="indeterminate")return"indeterminate";if(typeof $==="object"&&$!==null&&"status"in $){let U=$;if(U.status==="completed-with-result")return{result:U.result}}throw new P6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function bP($,U,J,X,_,G,Q){return{phase:$,workflowId:U,operationId:J,activityName:X,input:_,...G===void 0?{}:{idempotencyKey:G},attempt:Q}}function Ep($){if(typeof $!=="object"||$===null)throw new P6("Activity reconciliation record is not an object.");let U=$;if(!gp(U))throw new P6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new P6("Activity reconciliation record has an unsupported status.")}async function xp($){let U=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(J)].map((X)=>X.toString(16).padStart(2,"0")).join("")}function Sp($,U,J,X,_){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:J.idempotencyKeyDigest,attempt:X,ownerId:crypto.randomUUID(),createdAt:_,updatedAt:_}}async function bp($,U,J,X,_){let G=Sp(U,J,X,_,$.options.getNow());if(await Rp($.storage,X,G))return{didClaim:!0,record:G};let D=await OC($.storage,X.key);if(D===null)throw new P6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:D}}async function vp($,U,J,X,_){try{return await $.verify(void 0,bP("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,X,_.attempt))}catch(G){let Q=G instanceof Error?G.message:String(G);throw new P6(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Q}`)}}function gp($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],J=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((X)=>typeof $[X]==="string")&&J.every((X)=>typeof $[X]==="number")}var B3,W3,P6;var vP=z(()=>{b();I();T4();U$();B3=class B3 extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};W3=class W3 extends v{constructor($){super("ActivityReconciliationConflictError",$)}};P6=class P6 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function TC($,U,J){let X=$.workflowTypeByWorkflowId.get(U);if(X!==void 0){let G=$.activityRegistriesByWorkflow.get(X);if(G!==void 0){let D=G.resolve(J);if(D)return{fn:D,workflowType:X}}let Q=$.activityRegistry.resolve(J);if(Q)return{fn:Q,workflowType:X};return}let _=$.activityRegistry.resolve(J);if(_)return{fn:_,workflowType:"<unknown>"};return}function gP($,U,J){let X=TC($,U,J.activityName);if(X)return X.fn;if(typeof J.fn==="function")return J.fn;return}function EC($,U,J){let X=TC($,U,J.activityName);if(X)return X.fn;if(J.fn)return J.fn;let _=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new e2(_,J.activityName)}var xC=z(()=>{z$()});function hp($,U,J,X,_){return(async()=>{let G=await J?.(_,X);if(typeof G!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!G)throw Error(`Verification failed for activity "${U}"`)})()}function Ip($,U,J,X){let _=gP($,U,J);if(!_?.compensate)return;return async()=>{await _.compensate?.(J.input,X)}}async function yp($,U,J,X,_){let G=$.activityWorkerDispatcher;if(!G)throw Error(`No activity worker dispatcher available for "${J}"`);let Q=await G.execute({operationId:U,activityName:J,input:X,attempt:_});if(Q.status==="failed"){let D=Error(Q.error);if(Q.errorName!==void 0)D.name=Q.errorName;throw D}return Q.value}function mp($,U,J,X,_,G){let Q=EC($,U,J);return k2(Q,G,X)}function SC($,U){if(U.size>0)$.headers=[...U.entries()]}function hP($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function bC($,U,J,X,_=hP(J),G){let Q=J.input,D=J.step??0;VC($,U,D,_);let Y=eB(U,D,_),{perAttemptTimeoutMs:Z,attemptAbortController:j,activitySignal:H}=qA($,U,J,G),L=MC($,U,D,H,()=>{throw new ZX(Y)}),F=$.activityWorkerDispatcher?(y,k)=>yp($,J.operationId,y,k,_):(y,k)=>H3(mp($,U,J,L,y,k),Z,y,_,j),W=X.getComposedActivityInterceptor(),E=async(y,k,w)=>{if(!W)return F(y,k);let E$={workflowId:U,activityName:y,input:k,attempt:_,headers:w};return await W.execute(E$,async(IU)=>{return F(y,IU.input)})},m=X.getComposedWorkflowInterceptor();if(m){let y={workflowId:U,activityName:J.activityName,input:Q,attempt:_,headers:new Map};function*k(){return yield E(J.activityName,y.input,y.headers)}let w=m.activity(y,k),E$=await GW(w);return SC(J,y.headers),E$}let a=new Map,p=await E(J.activityName,Q,a);return SC(J,a),p}async function fJ($,U,J,X,_,G){let Q=gP($,U,J),D=NC(Q,J),Y=hP(J);if(D!==void 0){let j=await KC(U,J.activityName,D),H=await AC($,U,J,j,Q,D,Y);if("completedResult"in H)return K3(H.completedResult,$.options.payloadSizePolicy.maxBytes),H.completedResult;let L=await bC($,U,J,X,H.attempt,_);K3(L,$.options.payloadSizePolicy.maxBytes),await vC($,U,J,L,Q,D,H.attempt,G,!0);let F=SP(H,L,$.options.getNow());if(CC($,U,j,H,F),!G)xP($,U,J.step??0);return L}let Z=await bC($,U,J,X,Y,_);if(K6(Z,$.options.payloadSizePolicy.maxBytes,"activity result"),await vC($,U,J,Z,Q,D,Y,G),!G)xP($,U,J.step??0);return Z}async function vC($,U,J,X,_,G,Q,D,Y=!1){let Z=D?Ip($,U,J,X):void 0;if(Z)D?.recordCompensation(Z);if(_?.verify){let j=bP("post-execution-validation",U,J.operationId,J.activityName,J.input,G,Q),H=hp($,J.activityName,_.verify,j,X);if(D){if(D.recordVerification(H),Y)await H}else await H}}async function gC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{try{return await fJ($,U,J,X)}catch(_){if(_ instanceof ZX)return $W($,_,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:hP(J)},{feedOperationResult:X.feedOperationResult,finalizeTimeline:X.finalizePendingTimelineEntry});throw _}})}var N3=z(()=>{T4();BC();YP();vP();xC();f1();$$()});function O3($){let U=new Set,J=(X)=>{for(let _ of X)if(_.type==="wait-signal"){if(U.has(_.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${_.signalName}": sibling wait-signal branches share one waiter and would clobber each other. Wait on the signal once, or use distinct signal names.`);U.add(_.signalName)}else if(_.type==="race"||_.type==="parallel")J(_.operations)};J($)}async function hC($,U,J,X){let _=$.abortController.signal,G=`${U}:${J.signalName}`;while(!0){if(_.aborted)return;let Q=await n2($,U,J.signalName);if(Q.found){X.completeOperation(U,Q.payload);return}let{promise:D,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(G,Y),x4($.signalWaitersByWorkflow,U,G),_.aborted){$.signalWaiters.delete(G),G6($.signalWaitersByWorkflow,U,G);return}let Z=await n2($,U,J.signalName);if(Z.found){if($.signalWaiters.get(G)===Y)$.signalWaiters.delete(G),G6($.signalWaitersByWorkflow,U,G);X.completeOperation(U,Z.payload);return}if(await D,_.aborted)return}}async function IC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{O3(J.operations);let _=yC(J.resumedCacheEntry),G=J.operations.map((j,H)=>typeof j.operationId==="string"?j.operationId:`parallel:${J.step}:${H}`),{slots:Q,hasFirstError:D,firstError:Y}=await YM(G,_,(j)=>X.executeSubOperation(U,J.operations[j]));if(D)uC(kp($,U),Q,"ctx.all","worker execution mode");await up(Q);let Z=pZ("all",Q);if(mC($,U,J.step,Z),D)throw Y;return ZM(Q)})}async function up($){let J=(await Promise.allSettled($.map(async(X)=>{if(X.status==="fulfilled")X.value=await H0(X.value)}))).find((X)=>X.status==="rejected");if(J)throw J.reason}function yC($){if(!GU($))return;return $.branches}function kp($,U){return $.inlineStrategy?.getContext(U)!==void 0}function mC($,U,J,X){let _=$.inlineStrategy?.getContext(U);if(_===void 0)return!1;return _.accumulatedResults.set(J,X),!0}function uC($,U,J,X){if($||!U.some((_)=>_.status==="fulfilled"))return;throw Error(`${J} partial-failure preservation is not supported in ${X}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function kC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{O3(J.operations);let _=new AbortController,G=J.operations.map((D)=>X.executeSubOperation(U,D,_.signal));Promise.allSettled(G);let Q;try{Q=await Promise.race(G)}finally{_.abort()}return H0(Q)})}async function fC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=Object.keys(J.branches),G=_.map((E)=>`run-all:${J.step}:${E}`),Q=yC(J.resumedCacheEntry),D=pp(Q,_),Y=fp(J.branches,_,D),{outcomes:Z,hasFirstError:j,firstError:H}=await zM(Y,(E,m)=>k2(E,m)),L=wp(_,G,D,Z),F=pZ("run-all",L,_),W=mC($,U,J.step,F);if(j)throw uC(W,L,"ctx.runAll","worker execution mode"),H;return cp(_,L)})}function fp($,U,J){let X={};for(let _ of U)if(J?.get(_)?.status!=="fulfilled"){let G=$[_];if(G!==void 0)X[_]=G}return X}function wp($,U,J,X){let _=new Map;for(let G of X)_.set(G.name,G);return $.map((G,Q)=>{let D=U[Q],Y=J?.get(G);if(Y?.status==="fulfilled")return Y;let Z=_.get(G);if(Z.status==="fulfilled")return{status:"fulfilled",value:Z.value,operationId:D};let j=Z.reason instanceof Error?Z.reason:Error(String(Z.reason));return{status:"rejected",reason:{name:j.name,message:j.message},operationId:D}})}function cp($,U){let J={};for(let X=0;X<$.length;X++){let _=U[X];if(_?.status==="fulfilled")J[$[X]]=_.value}return J}function pp($,U){if($===void 0)return;let J=new Map;for(let X=0;X<U.length;X++){let _=U[X],G=$[X];if(_!==void 0&&G!==void 0)J.set(_,G)}return J}function dp($){return typeof $.execute==="function"}async function wC($,U,J,X,_){return LM(J.branches,(G,Q)=>{if(!_||!dp(G))return k2(G,Q);return fJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:G.name,fn:G,input:Q},X.getActivityOperationCallbacks(),void 0,_)})}var A3=z(()=>{j9();x2();M3();N3();dZ();S4();$$()});async function cC($,U,J,X){return X.runOperationWithoutResult(U,J,()=>X.processReviewOperation(U,J.reviewOptions))}async function C3($,U,J,X,_,G){_?.throwIfAborted();let Q=ip[J.type];if(!Q)throw Error(`Unsupported sub-operation type: ${J.type}`);return Q({internals:$,workflowId:U,callbacks:X,signal:_,speculativeState:G},J)}async function lp($,U,J,X,_,G){return fJ($,U,J,X.createActivityOperationCallbacks(),_,G)}async function np($,U,J,X){return TP($,U,J,RP($,U),X.createChildWorkflowOperationCallbacks())}async function rp($,U){return JU($.storage,O4(U.scope,U.key),U)}async function op($,U,J){let X=O4(U.scope,U.key),_=U.mode==="delete"?await A2($.storage,X,U.expectedVersion):await O2($.storage,X,U.expectedVersion,U.value);if(_.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return _}async function ap($,U,J,X,_,G){_?.throwIfAborted();let Q=new AbortController,D=()=>{Q.abort(_?.reason)};_?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>C3($,U,Z,X,Q.signal,G));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{_?.removeEventListener("abort",D),Q.abort()}}async function sp($,U,J,X,_,G){_?.throwIfAborted();let Q=new AbortController,D=()=>{Q.abort(_?.reason)};_?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>C3($,U,Z,X,Q.signal,G));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{_?.removeEventListener("abort",D),Q.abort()}}var ip;var IP=z(()=>{_U();EP();LC();N3();A3();$$();ip={activity:($,U)=>lp($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>np($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(g9(U.fn)),"state-read":($,U)=>rp($.internals,U),"state-commit":($,U)=>op($.internals,U,$.callbacks),parallel:($,U)=>ap($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>sp($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>wC($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>qC($.internals,U,$.signal),"wait-signal":($,U)=>zC($.internals,$.workflowId,U,$.signal),"wait-condition":()=>{throw Error("ctx.waitUntil() cannot be used as a ctx.race() / ctx.all() / ctx.speculate() branch. Use `yield* ctx.waitUntil(...)` directly, or gate it behind a signal/update the coordinator resolves.")}}});function yP($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),start:(U,J,X)=>Y6(P($),U,J,X,void 0,T$($)),loadWorkflowState:(U)=>l(P($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>H6(P($))}}function R3($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),finalizePendingTimelineEntry:(U,J,X)=>R6(P($),U,J,X),feedOperationResult:(U,J,X)=>j6(P($),U,J,X),getComposedActivityInterceptor:()=>EO(P($)),getComposedWorkflowInterceptor:()=>H6(P($))}}function P0($){return{completeOperation:(U,J)=>x3($,U,J),runOperationWithResult:(U,J,X)=>p4($,U,J,X),executeSubOperation:(U,J,X,_)=>mP($,U,J,X,_),getActivityOperationCallbacks:()=>R3($)}}function dC($){return{completeOperation:(U,J)=>x3($,U,J),failOperation:(U,J,X)=>tp($,U,J,X),isWorkflowRunning:async(U)=>{return(await l(P($),U))?.status==="running"},scheduleConditionDeadline:(U,J,X)=>P($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:X,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>P($).scheduler.cancel(`cond:${U}:${J}`,U)}}function wJ($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X)}}function T3($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),ensureTerminalCleanupTracked:(U)=>vJ(P($),U)}}function iC($){return{runOperationWithResult:(U,J,X)=>p4($,U,J,X),handleCleanupError:(U,J,X)=>e($).handleCleanupError(U,J,X)}}function E3($){return{completeOperation:(U,J)=>x3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(P($),U),failWorkflow:(U,J)=>s$(P($),U,J,e($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(P($),U,J),beginWorkflowExecution:(U,J,X,_,G,Q,D)=>tX(P($),U,J,X,_,G,Q,D,T$($)),workflowVersionTupleFromState:(U)=>dX(P($),U,T$($)),setWorkflowStartHeaders:(U,J)=>X4(P($),U,J,T$($)),loadWorkflowStartHeaders:(U)=>bU(P($),U,T$($)),parseStartOptionDuration:(U,J)=>X0(P($),U,J,T$($)),runDeferredTerminalCleanup:(U,J)=>hH(P($),U,J,e($)),runWorkflowFinalizer:(U,J)=>qP(P($),U,J,e($)),handleScheduleTimer:(U)=>eA($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,X)=>e($).handleCleanupError(U,J,X)}}function q0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>b4(P($),U,d6($)),completeOperation:(U,J)=>x3($,U,J),guardTerminalWorkflow:(U)=>CP(P($),U,F3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>JC(P($),U,J,F3($)),persistCoordinatedUpdateResponse:(U,J,X,_,G)=>pC($,U,J,X,_,G),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,X)=>eW(P($),U,J,X,q0($)),dispatchPendingUpdateReceived:(U,J,X)=>_K(P($),U,J,X,d6($)),createCoordinatedUpdateResponder:(U,J,X)=>tW(P($),U,J,X,{persistCoordinatedUpdateResponse:(_,G,Q,D,Y)=>pC($,_,G,Q,D,Y)}),findPendingUpdateByName:(U,J)=>$K(P($),U,J),schedulePendingInlineUpdateDrain:(U)=>oO(P($),U,IJ($))}}async function pC($,U,J,X,_,G){let Q=P($),D=Q.updateCoordinator.buildResponseOperations(X,U,G,void 0,_);try{await Z$(Q,D,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new f6(X,U,J,G)),b4(Q,{type:"update:completed",workflowId:U,updateId:X},d6($))}catch(Y){e($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function x3($,U,J){return uJ(P($),U,J,yJ($))}function tp($,U,J,X){return kJ(P($),U,J,X,yJ($))}async function p4($,U,J,X){return QC(P($),U,J,X,yJ($))}async function lC($,U,J,X){return DC(P($),U,J,X,yJ($))}async function mP($,U,J,X,_){return C3(P($),U,J,{createActivityOperationCallbacks:()=>R3($),createChildWorkflowOperationCallbacks:()=>yP($),createCoordinationOperationCallbacks:()=>P0($),createStateOperationCallbacks:()=>T3($)},X,_)}async function nC($,U,J){return HA(P($),U,J,tA($))}var S3=z(()=>{_$();BX();Z0();$C();O6();_C();c4();f4();V3();eH();Z3();R$();c6();IP();Q4();c1()});async function rC($,U,J,X){return X.runOperationWithResult(U,J,async()=>g9(J.fn))}async function oC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=await J.fn(),G=B(_);return await $.storage.put(q.offload(U,J.key),G),{key:J.key,workflowId:U,sizeBytes:G.byteLength}})}async function aC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let{workflowId:_,key:G,sizeBytes:Q}=J.reference;if(typeof _!=="string"||_!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof G!=="string"||G.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Q!=="number"||!Number.isFinite(Q)||Q<0)throw Error("ctx.load() requires a valid offload reference size");let D=await $.storage.get(q.offload(_,G));if(D===null)throw Error(`Offloaded data not found for key "${G}" in workflow "${_}"`);return R(D)})}async function sC($,U,J){let X=await $.storage.get(q.offload(U,J));if(X===null)return null;return R(X)}async function tC($,U,J,X){return X.runOperationWithResult(U,J,async()=>{await $.storage.put(q.archive(U,J.key),B(J.data));return})}var uP=z(()=>{b();I();$$()});class kP{#$;#U;constructor(){this.#$=[],this.#U=[]}recordVerification($){this.#$.push($.then(()=>({failed:!1}),(U)=>({failed:!0,error:U})))}recordCompensation($){this.#U.push($)}async drainVerifications(){let U=(await Promise.all(this.#$)).find((J)=>J.failed);if(U)throw U.error}async rollback(){for(let $=this.#U.length-1;$>=0;$--)try{await this.#U[$]()}catch{}await Promise.all(this.#$)}}async function eC($,U,J,X){return X.runOperationWithResult(U,J,()=>ep($,U,J,X))}async function ep($,U,J,X){let _=$.inlineStrategy;if(!_)throw Error("ctx.speculate() requires inline execution mode");let G=_.getContext(U);if(!G)throw Error(`No active inline context for workflow "${U}"`);let Q=G.createSpeculativeChild(),D=new kP,Y=$d(J,Q);try{let Z=await Ud(U,Y,D,X);return await D.drainVerifications(),G.commitSpeculativeChild(Q),Z}catch(Z){throw await D.rollback(),Z}}function $d($,U){return $.execute(U)}async function Ud($,U,J,X){let _=async(G,Q)=>{let D=Q===void 0?await U.next(G):await U.throw(Q);if(D.done)return D.value;let Y=D.value;try{if(Y.type==="race"||Y.type==="parallel")O3(Y.operations);let Z=await X.executeSubOperation($,Y,void 0,J),j=await H0(Z);return _(j,void 0)}catch(Z){return _(G,Z instanceof Error?Z:Error(String(Z)))}};return _(void 0,void 0)}var $R=z(()=>{M3();A3()});async function UR($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=O4(J.scope,J.key);return JU($.storage,_,J)})}async function JR($,U,J,X){return X.runOperationWithResult(U,J,async()=>{let _=O4(J.scope,J.key);if(J.mode==="delete"){let Q=await A2($.storage,_,J.expectedVersion);if(Q.applied&&J.scope.type==="execution")await X.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q}let G=await O2($.storage,_,J.expectedVersion,J.value);if(G.applied&&J.scope.type==="execution")await X.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return G})}var _R=z(()=>{_U()});function _d($){if(!Jd.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function z0($,U,J,X){let _=X?.after,G=q.streamChunkPrefix(U,J),Q=[],D=_!==void 0&&_>=0?{gt:q.streamChunk(U,J,_)}:void 0;for await(let[Y,Z]of $.scan(G,D)){let j=Y.slice(G.length),H=_d(j);if(H===void 0)continue;Q.push({sequence:H,value:R(Z)})}return Q}function XR($){return B({sequence:$})}function Xd($){if(typeof $!=="object"||$===null||Array.isArray($))return null;if(!("sequence"in $))return null;let U=$.sequence;if(typeof U!=="number"||!Number.isSafeInteger(U)||U<-1)return null;return U}async function GR($,U,J){let X=await $.get(q.streamTail(U,J));if(X===null)return null;try{return Xd(R(X))}catch{return null}}var Jd;var fP=z(()=>{b();I();Jd=/^\d+$/});async function*QR($,U,J,X){if(J==="events"){yield*Qd($,U,X);return}yield*Dd($,U,X)}async function DR($,U,J){if(J==="events"){let Q=$.eventLogHeads.get(U);if(Q)return Q.sequence;return(await new a$($.storage,U).loadHead()).sequence}let X=await GR($.storage,U,hU);if(X!==null)return X;let _=await z0($.storage,U,hU);if(_.length===0)return-1;let G=-1;for(let Q of _)if(Q.sequence>G)G=Q.sequence;return G}function YR($,U,J,X){let _=y1(U,J),G=$.workflowFeedListeners.get(_);if(!G)G=new Set,$.workflowFeedListeners.set(_,G);return G.add(X),()=>{let Q=$.workflowFeedListeners.get(_);if(!Q)return;if(Q.delete(X),Q.size===0)$.workflowFeedListeners.delete(_)}}async function*Qd($,U,J){let X=new a$($.storage,U),_=J<0?0:J+1,G=await u4($.storage,U);if(G!==null&&_<G.sequence)yield{workflowId:U,selector:"events",kind:Gd,sequence:G.sequence-1,timestamp:0,payload:{compactedBefore:G.sequence,requestedFrom:_}},_=G.sequence;for await(let Q of X.scan({fromSequence:_}))yield{workflowId:U,selector:"events",kind:Q.type,sequence:Q.sequence,timestamp:Q.timestamp,payload:Q.payload}}async function*Dd($,U,J){let X=J>=0?await z0($.storage,U,hU,{after:J}):await z0($.storage,U,hU),_=Date.now();for(let G of X)yield{workflowId:U,selector:"tokens",kind:wP,sequence:G.sequence,timestamp:_,payload:G.value}}function b3($,U,J,X){let _=$.workflowFeedListeners.get(y1(U,J));if(!_||_.size===0)return;let G=[..._];for(let Q of G)try{let D=Q(X);if(D&&typeof D.then==="function")D.catch(()=>{})}catch{}}var hU="tokens",wP="stream:chunk",Gd="workflow:compaction-boundary";var v3=z(()=>{SU();MJ();$$();fP()});async function ZR($,U,J,X){return z0($.storage,U,J,X)}async function jR($,U,J,X){return X.runOperationWithResult(U,J,()=>Yd($,U,J,X))}async function Yd($,U,J,X){let _={heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q)}},G=[];try{let Q=await Zd($,U,J,J.fn(_),G),D={key:J.key,workflowId:U,chunkCount:Q.chunkCount,totalSizeBytes:Q.totalSizeBytes};return await $.storage.put(q.streamMetadata(U,J.key),B(D)),D}catch(Q){throw await jd($,U,J.key,G,X),Q}}async function Zd($,U,J,X,_){let G=0,Q=0;for await(let D of X){let Y=B(D),Z=G,j=q.streamChunk(U,J.key,Z);if(J.key===hU)await $.storage.batch([{type:"put",key:j,value:Y},{type:"put",key:q.streamTail(U,J.key),value:XR(Z)}]);else await $.storage.put(j,Y);if(_.push(j),Q+=Y.byteLength,G++,J.key===hU)b3($,U,"tokens",{workflowId:U,selector:"tokens",kind:wP,sequence:Z,timestamp:Date.now(),payload:D})}return{chunkCount:G,totalSizeBytes:Q}}async function jd($,U,J,X,_){await qM($.storage,U,J,X,jM(_.handleCleanupError,U))}var cP=z(()=>{b();I();x2();fP();v3()});function PR($,U,J){if(U())return{done:!0,value:J===void 0?void 0:!0};if(J!==void 0&&$.options.getNow()>=J)return{done:!0,value:!1};return{done:!1}}async function qR($,U,J,X){let _=$.abortController.signal,{predicate:G,deadline:Q}=J,D=!1,Y=(Z)=>{if(D)return;D=!0,X.completeOperation(U,Z)};if(_.aborted)return;try{let Z=PR($,G,Q);if(Z.done){Y(Z.value);return}if(Q!==void 0)await X.scheduleConditionDeadline(U,J.step,Q);try{let j=await HR($,U,G,Q,X);while(j.status==="continue")j=await HR($,U,G,Q,X);if(j.status==="complete")Y(j.value)}finally{if(zR($,U),Q!==void 0)await X.cancelConditionDeadline(U,J.step)}}catch(Z){X.failOperation(U,J,Z)}}async function HR($,U,J,X,_){let G=$.abortController.signal;if(G.aborted)return{status:"stop"};let{promise:Q,resolve:D}=Promise.withResolvers();$.conditionWaiters.set(U,D);let Y=G.aborted?{done:!0,value:void 0,aborted:!0}:{...PR($,J,X),aborted:!1};if(Y.done)return zR($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await Q,G.aborted)return{status:"stop"};if(!await _.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function zR($,U){$.conditionWaiters.delete(U)}function pP($){return{processActivityOperation:(U,J)=>gC(P($),U,J,R3($)),processSleepOperation:(U,J)=>zN(P($),U,J,E3($)),processWaitSignalOperation:(U,J)=>hC(P($),U,J,P0($)),processWaitUpdateOperation:(U,J)=>aW(P($),U,J,q0($)),processWaitConditionOperation:(U,J)=>qR(P($),U,J,dC($)),processGetVersionOperation:async(U,J)=>{uJ(P($),U,J.version,{finalizePendingTimelineEntry:(X,_,G)=>R6(P($),X,_,G),feedOperationResult:(X,_,G)=>j6(P($),X,_,G)})},processParallelOperation:(U,J)=>IC(P($),U,J,P0($)),processRaceOperation:(U,J)=>kC(P($),U,J,P0($)),processMemoOperation:(U,J)=>rC(P($),U,J,wJ($)),processChildWorkflowOperation:(U,J)=>ZC(P($),U,J,yP($)),processOffloadOperation:(U,J)=>oC(P($),U,J,wJ($)),processLoadOperation:(U,J)=>aC(P($),U,J,wJ($)),processArchiveOperation:(U,J)=>tC(P($),U,J,wJ($)),processStateReadOperation:(U,J)=>UR(P($),U,J,T3($)),processStateCommitOperation:(U,J)=>JR(P($),U,J,T3($)),processRunAllOperation:(U,J)=>fC(P($),U,J,P0($)),processSpeculateOperation:(U,J)=>eC(P($),U,J,{runOperationWithResult:(X,_,G)=>p4($,X,_,G),executeSubOperation:(X,_,G,Q)=>mP($,X,_,G,Q)}),processStreamOperation:(U,J)=>jR(P($),U,J,iC($)),processWaitReviewOperation:(U,J)=>cC(P($),U,J,{runOperationWithoutResult:(X,_,G)=>lC($,X,_,G),processReviewOperation:(X,_)=>nC($,X,_)}),finalizePendingTimelineEntry:(U,J,X)=>R6(P($),U,J,X),feedOperationResult:(U,J,X)=>j6(P($),U,J,X)}}var LR=z(()=>{S3();EP();c4();N3();A3();uP();V3();$R();_R();cP();oX();c6();IP();Q4();c1();bA(($)=>pP($))});function FR($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function VR($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function MR($){let U=g($).exposedValues;return U!==void 0&&U.size>0}var dP=z(()=>{w1()});function BR($,U,J,X,_,G){let Q=D0($,U),D=$.workflowVersionTuples.get(U);if(Q)G.push(Q);let Y={step:X,operationType:J.type,operationLabel:zB(J),inputSummary:LB(J),timestamp:_,status:"running",...D?{versionTuple:D}:{}};return G.push({type:"put",key:q.timeline(U,X),value:B(Y)}),{startedAt:_,entry:Y}}async function WR($,U,J,X,_){if($.inlineStrategy?.getContext(U))await Hd($,U,J,_);else if(X&&X.byteLength>0)await Pd($,U,J,X,_)}async function Hd($,U,J,X){let _=$.checkpoints.get(U),G=$.inlineStrategy?.getContext(U);if(!_||!G)return;let Q={..._.searchAttributes},D=G.checkpointPendingAttributeChanges,Y=FR(G),Z=yZ(_,G.checkpointLocals,{accumulatedResults:G.checkpointAccumulatedResults,now:$.options.getNow(),...D!==void 0?{searchAttributes:D}:{}}),j=Dj(Z,OR(J,G.stepIndex)),H=KR($,U,j.checkpoint,L$(Yj(j.checkpoint,j.replayPayload)),j.replayPayload);if(qd(U,H,Q,D,Y,X),await NR($,U,J,H,X),Y)X.dispatchEvent(new r9(U,{...D}))}async function Pd($,U,J,X,_){let G=new Uint8Array(X),Q=H$(G),D=h1(Q),Y=Dj(Q,OR(J,Q.step)),Z=A9(D,Y.replayPayload),j=L$(Yj(Y.checkpoint,Z));await NR($,U,J,KR($,U,Y.checkpoint,j,Z),_)}function KR($,U,J,X,_){let G=[{type:"put",key:q.checkpoint(U),value:X}];if($.options.checkpointHistory>0)G.push({type:"put",key:q.checkpointHistory(U,J.step),value:X});let Q=xK($,U);return{checkpoint:J,serialized:X,..._===void 0?{}:{replayPayload:_},...Q!==void 0?{expectedSerialized:Q}:{},step:J.step,timestamp:J.createdAt,operations:G}}function qd($,U,J,X,_,G){if(!_)return;G.validateAttributeValueSizes(X??{}),U.operations.push({type:"put",key:q.attribute($),value:B(U.checkpoint.searchAttributes)}),U.operations.push(...K$($,J,U.checkpoint.searchAttributes))}async function NR($,U,J,X,_){Md($,U,X,_);let G=_.appendTimelineBatchOperations(U,J,X.step,X.timestamp,X.operations),{newHead:Q,timestamp:D}=Bd($,U,X),Y=$.options.historyPolicy.retentionWindow,Z=Y===null?null:await GN($.storage,U,Q.sequence,Y,X.operations),j=VX($,U);if(j!==void 0)X.operations.push(...j.operations);let H=$.storage.capabilities().conditionalBatch,L=zd(j,H),F=Ld(U,X,H,L);if(await Z$($,X.operations,F,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),j!==void 0)MX($,U);if(X.expectedSerialized!==void 0)gX($,U,X.serialized);if($.pendingTimelineEntries.set(U,G),$.checkpoints.set(U,X.checkpoint),$.eventLogHeads.set(U,Q),Z!==null)Vd($,U,Z,_);if(b3($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Q.sequence,timestamp:D,payload:{step:X.step}}),_.swallowPromiseRejection(_.pruneCheckpointHistory(U,X.step)),Fd($,Q.sequence))await _.enforceHistoryCircuitBreaker(U)}function zd($,U){if(!U)return[];return $?.conditions??[]}function Ld($,U,J,X){let _=[];if(J&&U.expectedSerialized!==void 0)_.push({key:q.checkpoint($),expectedValue:U.expectedSerialized});return _.push(...X),_}function Fd($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function Vd($,U,J,X){let _=$.options.archiveAdapter;if(_===null||J.deletedEntries.length===0)return;let{from:G,to:Q}=J.deletedRange,D=`events:${G}-${Q}`,Y=QN(J.deletedEntries);X.swallowPromiseRejection(Promise.resolve().then(()=>_.store(U,D,Y)))}function Md($,U,J,X){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)X.dispatchEvent(new t9(U,J.serialized.byteLength,J.step))}function Bd($,U,J){return new a$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:cM(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??jU,$.workflowVersionTuples.get(U))}function OR($,U){let J="step"in $?$.step:void 0;if(typeof J==="number"&&Number.isSafeInteger(J)&&J>=0)return J;return Math.max(0,U-1)}async function AR($,U,J){let X=$.options.checkpointHistory;if(X<=0)return;let _=J-X;if(_<1)return;let G=q.checkpointHistory(U,_);await $.storage.delete(G)}function CR($,U,J){if(!$.options.development)return;let X=$.inlineStrategy?.getContext(U);if(!X)return;let _=X.stepIndex,G=$.checkpoints.get(U);if(!G)return;let Q=mZ({...G,locals:X.checkpointLocals,accumulatedResults:X.checkpointAccumulatedResults});if(!Q.valid){let D=Q.divergences.map((Z)=>Z.path),Y=`Checkpoint at step ${_} has ${Q.divergences.length} non-serializable field(s)`;J.dispatchEvent(new C4(U,Y,D))}}var RR=z(()=>{b();J6();I();dP();SU();_$();w$();xU();qU();MJ();O6();$$();Q4();v3()});async function TR($,U,J){let X=$.inlineStrategy?.getContext(U);if(!X)return!1;let G=$.registrations.get(X.workflowType)?.constraints;if(!G||G.length===0)return!1;let Q={id:U,type:X.workflowType,status:"running"};for(let D of G){if(!await Wd(D,Q))continue;if(Kd(J,U,D),D.onViolation==="warn"){Nd(U,D);continue}let Z=Error(`Constraint violated: ${D.name} (scope: ${D.scope})`);if(D.onViolation==="fail")await Od(J,U,Z);else Ad(J,U,Z);return!0}return!1}async function Wd($,U){try{let J=$.check(U);return!(J instanceof Promise?await J:J)}catch(J){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,J),!0}}function Kd($,U,J){$.dispatchEvent(new _X(U,J.name,J.scope,J.onViolation))}function Nd($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function Od($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function Ad($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}var ER=z(()=>{_$()});async function xR($,U,J,X){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let _=$.inlineStrategy,G=_.getContext(U);if(G&&(VR(G)||MR(G)))return!1;if(await X.hasBufferedSignal(U,J.signalName))return!1;if(!await X.runSerializedWorkflowStateWrite(U,async()=>{let D=await X.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!D||D.status!=="running")return!1;return _.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await X.hasBufferedSignal(U,J.signalName))await X.resumeParkedInlineWorkflow(U);return!0}async function g3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await EJ($,U,!1,J.createLifecycleCallbacks())}catch(X){let _=await J.getParkedWorkflowResumeDisposition(U);if(_==="resumable")throw $.parkedInlineWorkflows.add(U),X;if(_==="corrupt")throw X}}async function SR($,U,J){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let X=await J.loadWorkflowState(U);if(!X||X.status!=="running")return"terminal-or-missing";if(!await J.readCheckpointBytes(U))return"corrupt";return"resumable"}async function bR($,U,J){switch(U.type){case"completed":await DP($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let X=Error(U.error);if(U.errorStack)X.stack=U.errorStack;await s$($,U.workflowId,X,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let X=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,X,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,X))break;if(X.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,X).catch((G)=>{let Q=G instanceof Error?G:Error(String(G));return s$($,U.workflowId,Q,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,X);break}}}var iP=z(()=>{dP();f4();Q4()});function h3($){if($.options.retention!==null)return!0;for(let U of $.registrations.values())if(U.retention!==void 0&&U.retention!==null)return!0;return!1}function I3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function y3($,U){if(!U.hasConfiguredRetention()){if($.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null;return}if($.retentionSweepInterval!==null)return;U.setNextRetentionSweepAt(),$.retentionSweepInterval=setInterval(()=>{if(U.setNextRetentionSweepAt(),$.retentionSweepInFlight!==null)return;let X=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===X)$.retentionSweepInFlight=null});$.retentionSweepInFlight=X},$.options.retentionSweepIntervalMs)}async function m3($,U,J){try{await PJ($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(X){U("retentionSweep",X)}}function lP($,U){let J=$.registrations.get(U);if(J?.retention)return{type:U,source:"workflow",retention:J.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function vR($,U=(J)=>lP($,J)){let J=[...$.registrations.keys()].toSorted().map((X)=>U(X));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}var nP=z(()=>{cX()});function cJ($){return{createLifecycleCallbacks:()=>T$($),createTerminationCallbacks:()=>e($),evaluateConstraints:(U)=>TR(P($),U,SA($)),getParkedWorkflowResumeDisposition:(U)=>SR(P($),U,cJ($)),hasBufferedSignal:(U,J)=>dW(P($),U,J),loadWorkflowState:(U)=>l(P($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>xR(P($),U,J,cJ($)),persistCheckpoint:(U,J,X)=>Cd($,U,J,X),processOperation:(U,J)=>GC(P($),U,J,pP($)),readCheckpointBytes:(U)=>P($).storage.get(q.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>g3(P($),U,cJ($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(P($),U,J),translateOperationRequest:(U)=>XC(P($),U),validateDevelopmentCheckpoint:(U)=>CR(P($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function Cd($,U,J,X){return WR(P($),U,J,X,{appendTimelineBatchOperations:(_,G,Q,D,Y)=>BR(P($),_,G,Q,D,Y),swallowPromiseRejection:(_)=>{C6(_)},validateAttributeValueSizes:o1,pruneCheckpointHistory:(_,G)=>AR(P($),_,G),dispatchEvent:(_)=>{$.dispatchEvent(_)},enforceHistoryCircuitBreaker:(_)=>gU(P($),_,"timed-out",e($),i_)})}function Rd($){y3(P($),{hasConfiguredRetention:()=>h3(P($)),runRetentionSweep:()=>m3(P($),(U,J)=>e($).handleCleanupError(U,J),(U)=>w6(P($),U,e($))),setNextRetentionSweepAt:()=>I3(P($))})}var gR=z(()=>{b();n$();a1();Z0();LR();RR();ER();iP();c4();V3();nP();S4();R$();c6();Q4();S3();Z0();xA(($)=>Rd($))});async function hR($,U){let J=[],X=new a$($.storage,U);for await(let _ of X.scan())J.push({type:_.type,timestamp:_.timestamp,data:Wj(_.payload)});return J}async function IR($,U){if($.options.checkpointHistory<=0)return[];let J=`${q.checkpoint(U)}:`,X=[];for await(let[,_]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let G=H$(_);X.push({step:G.step,timestamp:G.createdAt,sizeBytes:_.byteLength})}return X}async function yR($,U,J){let X=await $.storage.get(q.checkpointHistory(U,J));if(!X)return null;let _=await PU($.storage,U,H$(X));return Bj({step:_.step,locals:_.locals,searchAttributes:_.searchAttributes,version:_.version,createdAt:_.createdAt})}async function mR($,U){let J=[];for await(let[,X]of $.storage.scan(q.timelinePrefix(U))){let _;try{_=R(X)}catch{continue}if(YB(_))J.push({..._,inputSummary:Kj(_.inputSummary)??_.inputSummary,..._.outputSummary!==void 0?{outputSummary:Kj(_.outputSummary)??_.outputSummary}:{}})}return J.sort((X,_)=>X.step-_.step),J}async function uR($,U,J){let X=await $.storage.get(q.checkpointHistory(U,J));if(!X)return null;let G=await new a$($.storage,U).replay(Math.max(J-1,-1)),Q=await PU($.storage,U,H$(X)),D=await u4($.storage,U);return{checkpoint:Bj({step:Q.step,locals:Q.locals,searchAttributes:Q.searchAttributes,version:Q.version,createdAt:Q.createdAt}),accumulatedResults:Q.accumulatedResults.map(([Y,Z])=>[Y,ZU(Z)]),events:G.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:Wj(Y.payload)})),...D!==null?{compactedBefore:D.sequence}:{}}}var kR=z(()=>{b();J6();I();g2();SU();qU();MJ();$$();Y$()});function fR($,U){let J=0,X=$.length;while(J<X){let _=J+X>>>1;if($[_].timestamp<U)J=_+1;else X=_}return J}class rP{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#J++;this.#_($)}rate($){if(this.#_($),this.#U.length===0)return 0;return this.#J/this.#U.length}#_($){let U=$-this.#$,J=fR(this.#U,U);if(J===0)return;for(let X=0;X<J;X++)if(this.#U[X].failed)this.#J--;this.#U.splice(0,J)}}class oP{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#_(U),this.#G($)}percentile($,U){if(this.#G(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#_($){let U=0,J=this.#J.length;while(U<J){let X=U+J>>>1;if(this.#J[X]<$)U=X+1;else J=X}this.#J.splice(U,0,$)}#X($){let U=0,J=this.#J.length;while(U<J){let X=U+J>>>1;if(this.#J[X]<$)U=X+1;else J=X}if(U<this.#J.length&&this.#J[U]===$)this.#J.splice(U,1)}#G($){let U=$-this.#$,J=fR(this.#U,U);if(J===0)return;for(let X=0;X<J;X++)this.#X(this.#U[X].value);this.#U.splice(0,J)}}var Td=1e4,aP;var wR=z(()=>{_$();D$();aP=class aP{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#Y=J,this.#G=0,this.#D=new Set,this.#X=[],this.#J=[];for(let X of U.rules)this.#J.push({rule:X,status:"idle",currentValue:0});this.#_=new Map;for(let X=0;X<U.rules.length;X++){let _=U.rules[X],G=_.window?J$(_.window):60000;if(_.metric==="workflow.failure_rate")this.#_.set(X,new rP(G));else if(_.metric==="activity.p99_duration")this.#_.set(X,new oP(G))}this.#q(),this.#Q=setInterval(this.#j.bind(this),Td)}#j(){for(let $=0;$<this.#U.rules.length;$++)this.#Z($)}#q(){let $=this.#U.rules.some((X)=>X.metric==="workflow.failure_rate"),U=this.#U.rules.some((X)=>X.metric==="activity.p99_duration");if($){let X=(_)=>{let G=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="workflow.failure_rate")continue;this.#_.get(Q).record(G,_),this.#Z(Q)}};this.#H("workflow:completed",()=>X(!1));for(let _ of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(_,()=>X(!0))}if(U)this.#H("activity:completed",(X)=>{if(!(X instanceof l9))return;let _=this.#Y();for(let G=0;G<this.#U.rules.length;G++){if(this.#U.rules[G].metric!=="activity.p99_duration")continue;this.#_.get(G).record(_,X.duration),this.#Z(G)}});if(this.#U.rules.some((X)=>X.metric==="storage.size"))this.#H("storage:size-reported",(X)=>{if(!(X instanceof $X))return;this.#G=X.sizeBytes;for(let _=0;_<this.#U.rules.length;_++){if(this.#U.rules[_].metric!=="storage.size")continue;this.#Z(_)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#Z($){let U=this.#U.rules[$],J=this.#J[$],X=this.#Y(),_=0,G=U.threshold;if(U.metric==="workflow.failure_rate")_=this.#_.get($).rate(X);else if(U.metric==="activity.p99_duration")_=this.#_.get($).percentile(99,X);else if(U.metric==="storage.size")_=this.#G;if(J.currentValue=_,_>=G&&J.status==="idle")J.status="firing",J.lastFiredAt=X,this.#$.dispatchEvent(new UX(U.metric,G,_,U.window)),this.#P(U,"alert:fired",_);else if(_<G&&J.status==="firing")J.status="idle",J.lastResolvedAt=X,this.#$.dispatchEvent(new JX(U.metric,G,_,U.window)),this.#P(U,"alert:resolved",_)}#P($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#z($,U,J)}#z($,U,J){let X=this.#U.webhooks??[];for(let _ of X){if(!_.events.includes(U))continue;let G=new AbortController;this.#D.add(G);let Q={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#Y()}};fetch(_.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q),signal:AbortSignal.any([G.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#D.delete.bind(this.#D,G))}}get states(){return this.#J}[Symbol.dispose](){if(this.#Q!==null)clearInterval(this.#Q),this.#Q=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#D)$.abort();this.#D.clear()}}});var sP;var cR=z(()=>{sP=class sP{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((X)=>{let _=!1,G=(j)=>{if(_)return;_=!0,Z(),X(j)},Q=(j)=>{if(j.data.operationId===$.operationId)G(j.data)},D=(j)=>{G({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${j.message??"unknown error"}`})},Y=setTimeout(()=>{G({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),J=!0,U.terminate()},this.#U),Z=()=>{clearTimeout(Y),U.removeEventListener("message",Q),U.removeEventListener("error",D)};U.addEventListener("message",Q),U.addEventListener("error",D),U.postMessage($)})}finally{if(!J)this.#$.release(U)}}get availableCount(){return this.#$.availableCount}get totalCount(){return this.#$.totalCount}get pendingCount(){return this.#$.pendingCount}[Symbol.dispose](){this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){await this.#$[Symbol.asyncDispose]()}}});var u3;var pR=z(()=>{u3=class u3{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#_=new Map,this.#X=$.concurrency,this.#G=$.workerUrl,this.#D=$.smol??!1,this.#Y=!1,this.#Q=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#j();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((J,X)=>{let _=this.#_.get($)??[];_.push({resolve:J,reject:X}),this.#_.set($,_)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#Z($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#z(),this.#L()}release($){if(this.#Y&&!this.#Q)return;let U=this.#_.get($);if(U&&U.length>0){let X=U.shift();if(U.length===0)this.#_.delete($);X.resolve($);return}let J=this.#J.shift();if(J){J.resolve($);return}this.#U.push($),this.#L()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#_.values())$+=U.length;return this.#J.length+$}[Symbol.dispose](){if(this.#Y)return;this.#Y=!0,this.#q()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#P(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#q();return}return new Promise(($)=>{this.#Q=()=>{this.#q(),$()}})}#j(){let $={};if(this.#D)$.smol=!0;let U=new Worker(this.#G,$);return this.#$.add(U),U}#q(){this.#P(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#_.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#Z($,U){let J=this.#_.get($);if(!J)return;this.#_.delete($);for(let X of J)X.reject(U)}#P($){let U=this.#J.splice(0);for(let J of U)J.reject($);for(let J of this.#_.values())for(let X of J)X.reject($);this.#_.clear()}#z(){if(this.#Y)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#J.shift()?.resolve(this.#j());continue}return}}#L(){if(this.#Q&&this.#U.length===this.#$.size)this.#Q(),this.#Q=null}}});function dR($,U,J,X){return{workflowId:J.workflowId,workflowType:J.workflowType,startedAt:J.startedAt??$.getNow(),abortController:X,getNow:$.getNow,nestingDepth:J.nestingDepth??0,executionStateOwnerId:J.executionStateOwnerId??J.workflowId,...J.sleepReferenceTime!==void 0&&{sleepReferenceTime:J.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...J.deadline!==void 0&&{deadline:J.deadline},...Ed($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...xd($)}}function Ed($,U){let{registerCancelHandler:J,recordFinalizerState:X}=$;return{...J!==void 0&&{registerCancelHandler:(_)=>J(U,_)},...X!==void 0&&{recordFinalizerState:(_)=>X(U,_)}}}function xd($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function iR($){return{...$.getComposedWorkflowInterceptor!==void 0&&{getComposedWorkflowInterceptor:$.getComposedWorkflowInterceptor},...$.registerCancelHandler!==void 0&&{registerCancelHandler:$.registerCancelHandler},...$.recordFinalizerState!==void 0&&{recordFinalizerState:$.recordFinalizerState},...$.getWorkflowServices!==void 0&&{getWorkflowServices:$.getWorkflowServices},...$.getLogSink!==void 0&&{getLogSink:$.getLogSink}}}var tP;var lR=z(()=>{_3();l6();tP=class tP{#$;#U;#J;#_;#X;#G;#D;#Y;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#_=new Map,this.#X=new Map,this.#G=new Map,this.#D=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#Z({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let X=new k4(dR(this.#$,U,$,J)),_=this.#$.getComposedWorkflowInterceptor?.()??null;if(G0(X,_),this.#$.development)X.explain(!0);this.#_.set($.workflowId,X);let G=U.handler(X,$.input);this.#U.set($.workflowId,G),this.#Q($.workflowId,G,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#Z({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let J=$.operationResult.status==="completed"?$.operationResult.value:void 0,X=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,_=$.operationResult.status==="failed"?$8($.operationResult):void 0;if(_)this.#j($.workflowId,U,_,X);else this.#Q($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#P($)}parkWorkflow($,U){let J=U?.retainContext?this.#_.get($)??this.#X.get($):void 0;if(this.#P($),J!==void 0)this.#X.set($,J)}getContext($){return this.#_.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#J.get($)}waitForWorkflowTurn($){return this.#D.get($)}waitForWorkflowAdvance($){return this.#G.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#Q($,J,U)}throwIntoWorkflow($,U,J){let X=this.#U.get($);if(!X)return;this.#j($,X,U,J)}adoptWorkflow($,U,J,X){this.#X.delete($),this.#U.set($,U),this.#_.set($,J),this.#J.set($,X)}[Symbol.dispose](){this.#U.clear(),this.#J.clear(),this.#_.clear(),this.#X.clear(),this.#G.clear(),this.#D.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Q($,U,J){return this.#q($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let _=await U.next(J);if(_.done){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#Z({type:"completed",workflowId:$,result:_.value});return}let G=_.value;this.#Z({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:G})}catch(X){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let _={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:W0(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)_.errorStack=X.stack;this.#Z(_)}})())}#j($,U,J,X){return this.#q($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let G=await U.throw(J);if(G.done){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#Z({type:"completed",workflowId:$,result:G.value});return}let Q=G.value;this.#Z({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(_){this.#P($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let G={type:"failed",workflowId:$,error:_ instanceof Error?_.message:String(_),failureCategory:X??W0(_,{defaultErrorCategory:"application"})};if(_ instanceof Error&&_.stack!==void 0)G.errorStack=_.stack;this.#Z(G)}})())}#q($,U){let J=U.finally(()=>{if(this.#G.get($)===J)this.#G.delete($)});return J.catch(()=>{}),this.#G.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#D.get($)===J)this.#D.delete($)});return J.catch(()=>{}),this.#D.set($,J),J}#Z($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#D.delete($.workflowId)}#P($,U){if(this.#U.delete($),this.#J.delete($),this.#_.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#G.delete($);if(!U?.preserveTrackedTurn)this.#D.delete($)}}});class eP{#$=new Map;#U=new Map;resetWorkflow($){this.#$.delete($),this.#U.delete($)}clear(){this.#$.clear(),this.#U.clear()}recordResume($){this.#$.set($,(this.#$.get($)??0)+1)}beginCheckpointHandling($){if($.type!=="checkpoint")return null;return this.#U.set($.workflowId,(this.#U.get($.workflowId)??0)+1),this.#$.get($.workflowId)??0}finishCheckpointHandling($,U,J){if(U===null)return;let X=(this.#U.get($)??1)-1;if(X>0){this.#U.set($,X);return}this.#U.delete($),this.forgetWorkflowIfClosed($,J)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function WQ$($){let U=new Uint8Array($.byteLength);return U.set($),U.buffer}function bd($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function k3($){if(typeof $!=="object"||$===null)return!1;let U=$;return Sd.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&bd(U.attributes)}function nR($){return typeof $==="object"&&$!==null&&$.type==="log"}var Sd;var f3=z(()=>{Sd=new Set(["debug","info","warn","error"])});function yd($){let U=0;return B(L0($,[],(X)=>{U+=X})).byteLength+U}function pJ($,U){let J=yd($);if(U!==void 0&&J>U)throw new F0(J,U);return J}function UT($){let U=md($);ud(U),kd(U)}function md($){if(typeof $!=="object"||$===null)throw new N$("Worker outbound message must be an object");return $}function ud($){if(typeof $.workflowId!=="string")throw new N$("Worker outbound message must include workflowId");oR($,"protocolVersion"),oR($,"turnId")}function oR($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new N$(`Worker outbound message ${U} must be an integer`)}function kd($){switch($.type){case"checkpoint":fd($);return;case"completed":return;case"failed":wd($);return;case"log":cd($);return;default:throw new N$("Worker outbound message has an unsupported type")}}function fd($){if(!($.checkpoint instanceof ArrayBuffer))throw new N$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new N$("Worker checkpoint message must include operationRequest")}function wd($){if(typeof $.error!=="string")throw new N$("Worker failed message must include an error string")}function cd($){if(!k3($.record))throw new N$("Worker log message must include a valid log record")}function L0($,U,J){let X=pd($,U,J);if(X.handled)return X.value;if(U.includes($))throw new N$("Worker protocol message cannot include cyclic values");if(!K2($).valid)throw new N$("Worker protocol message contains non-cloneable values");return ld($,U,J)}function pd($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new N$("Worker protocol message cannot include functions or symbols");let X=dd($,J);if(X.handled)return X;let _=id($,U,J);if(_.handled)return _;if(Array.isArray($))return{handled:!0,value:$.map((G)=>L0(G,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function dd($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[rR]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[rR]:$.byteLength}};return{handled:!1}}function id($,U,J){if($ instanceof Date)return{handled:!0,value:{[vd]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[gd]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[hd]:[...$.entries()].map(([X,_])=>[L0(X,U,J),L0(_,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Id]:[...$.values()].map((X)=>L0(X,U,J))}};return{handled:!1}}function ld($,U,J){U.push($);try{let X={};for(let _ of Object.keys($).toSorted())X[_]=L0($[_],U,J);return X}finally{U.pop()}}var D4=1,aR=1000,sR=1048576,$q=4096,tR=60000,eR=5000,$T=5,rR="__weftBinaryBytes",vd="__weftDate",gd="__weftError",hd="__weftMap",Id="__weftSet",N$,F0;var d4=z(()=>{I();f3();N$=class N$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};F0=class F0 extends N${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class Uq{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let J=await this.#$.pool.acquire();this.#$.ownership.setActive($,J),this.#$.attachWorkerListeners(J),this.#U(J,$,U,"run")}catch(J){this.#$.emit({type:"failed",workflowId:$,error:J instanceof Error?J.message:String(J)})}}postResumeMessage($,U,J){this.#U($,U.workflowId,J,"resume")}async resumeParkedWorkflow($,U,J){try{let X=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,X)){this.#$.pool.release(X);return}this.#$.attachWorkerListeners(X),this.postResumeMessage(X,$,J)}catch(X){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:X instanceof Error?X.message:String(X)})}}async cancelParkedWorkflow($,U){try{let J=await this.#$.pool.acquireSpecificWorker(U),X={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())X.protocolVersion=D4;J.postMessage(X),this.#$.detachWorkerListenersIfIdle(J),this.#$.pool.release(J)}catch{}}#U($,U,J,X){if(!this.#$.validateHostToWorkerMessage(U,J,$))return;try{this.#$.beginTurn($,U,J.turnId??0,X),$.postMessage(J,[nd(J.checkpoint)])}catch(_){this.#J($,U,_,X)}}#J($,U,J,X){if(this.#$.clearTurn($),X==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:J instanceof Error?J.message:String(J),otherCategory:"system",otherError:"Worker was discarded after resume postMessage failed"});return}this.#$.ownership.forgetWorkflow(U),this.#$.detachWorkerListenersIfIdle($),this.#$.pool.release($),this.#$.emit({type:"failed",workflowId:U,error:J instanceof Error?J.message:String(J),failureCategory:"system"})}}function nd($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var JT=z(()=>{d4()});class Jq{#$=new Map;#U=new Map;#J=new Map;#_=new Set;resetWorkflow($){this.#_.delete($)}markCancelled($){this.#_.add($)}consumeCancelled($){return this.#_.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#J.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#J.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#J.delete(U),this.#U.set($,U),!0}activateParked($,U){if(this.#U.get($)!==U)return!1;return this.#U.delete($),this.setActive($,U),!0}deleteParked($){this.#U.delete($)}isWorkflowClosed($){return!this.#$.has($)&&!this.#U.has($)}activeWorkflowIds(){return[...this.#$.keys()]}workflowIdsForWorker($){let U=[],J=this.#J.get($);if(J)U.push(J);for(let[X,_]of this.#U)if(_===$)U.push(X);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#J.delete(U);this.#$.delete($),this.#U.delete($),this.#_.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#J.clear(),this.#_.clear()}workerIsIdle($){if(this.#J.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function _T($,U){let J={type:"run",protocolVersion:D4,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)J.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)J.deadline=$.deadline;if($.headers)J.headers=$.headers;if(U.hasLogSink)J.hostHasLogSink=!0;return J}function _q($,U){let J={type:"resume",protocolVersion:D4,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)J.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)J.hostHasLogSink=!0;return J}var XT=z(()=>{d4()});class Xq{#$=new Map;attach($,U){if(this.#$.has($))return;let J={message:(X)=>{U.message(X.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,J),$.addEventListener("message",J.message),$.addEventListener("error",J.error),$.addEventListener("messageerror",J.messageerror)}detach($){let U=this.#$.get($);if(!U)return;$.removeEventListener("message",U.message),$.removeEventListener("error",U.error),$.removeEventListener("messageerror",U.messageerror),this.#$.delete($)}detachIfIdle($,U){if(U($))this.detach($)}detachAll(){for(let $ of this.#$.keys())this.detach($)}}function GT($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function QT($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function DT($,U,J){if(J!==void 0)try{pJ($,J)}catch(_){return _ instanceof F0?"dropped-oversize":"dropped-invalid"}if(!k3($.record))return"dropped-invalid";let X=$.record;if(X.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(X)}catch{J3(X)}return"accepted-valid"}var Gq=z(()=>{pH();f3();d4()});class ZT{#$;#U;#J;#_;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#J=$.strikeThreshold,this.#_=$.getNow}recordArrival($){let U=this.#_(),J=this.#G($),X=U-J.windowStartedAt;if(X>=this.#$||X<0)J.windowStartedAt=U,J.arrivalsInWindow=0;return J.arrivalsInWindow+=1,J.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let J=this.#G($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#G($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#_(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class jT{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new ZT({floodWindowMs:$.floodWindowMs??tR,floodThreshold:$.floodThreshold??eR,strikeThreshold:$.strikeThreshold??$T,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return YT("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let X=DT(U,this.#U,this.#J);if(this.#$.recordOutcome($,X)==="discard")return YT("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function YT($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function HT($,U){return new jT({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var PT=z(()=>{Gq();d4()});class Qq{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return pJ($,this.#$),null}catch(U){return qT(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(UT(U),pJ(U,this.#$),this.#U)this.#_($,U);return{accepted:!0,message:U}}catch(J){let X=rd(U);return{accepted:!1,failure:qT(J,{...X===void 0?{}:{targetWorkflowId:X},otherError:X===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${X}`})}}}#_($,U){if(U.protocolVersion!==D4)throw new N$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new N$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new N$("Worker message did not match the active turn")}}function qT($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof F0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function rd($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var zT=z(()=>{d4()});class Dq{#$=new Map;#U;#J;constructor($,U){this.#U=$,this.#J=U}begin($,U,J,X){this.clear($);let _={worker:$,workflowId:U,turnId:J,kind:X,timeout:null};if(this.#U!==void 0)_.timeout=setTimeout(()=>{if(this.#$.get($)===_)this.#J(_)},this.#U);this.#$.set($,_)}clear($){let U=this.#$.get($);if(!U)return;if(U.timeout!==null)clearTimeout(U.timeout);this.#$.delete($)}clearAll(){for(let $ of this.#$.keys())this.clear($)}get($){return this.#$.get($)}}var Yq;var LT=z(()=>{JT();XT();PT();Gq();zT();f3();d4();Yq=class Yq{#$;#U;#J;#_;#X;#G;#D;#Y;#Q;#j;#q;#H;#Z;#P;#z;#L;#V;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:X,requireProtocolVersion:_=!1,discardOnCancel:G=!1,broadcastEvents:Q=!1}=U??{};if(this.#$=$,this.#U=new Jq,this.#J=new Xq,this.#G=new eP,this.#D=J,this.#Y=X,this.#Q=_,this.#j=G,this.#q=HT(U,X),this.#H=new Dq(this.#D,(D)=>{this.#S(D)}),this.#Z=new Qq(this.#Y,this.#Q,this.#H),this.#P=new Uq({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#L,requireProtocolVersion:()=>this.#Q,validateHostToWorkerMessage:(D,Y,Z)=>this.#O(D,Y,Z),attachWorkerListeners:(D)=>{this.#E(D)},detachWorkerListenersIfIdle:(D)=>{this.#N(D)},beginTurn:(D,Y,Z,j)=>{this.#H.begin(D,Y,Z,j)},clearTurn:(D)=>{this.#H.clear(D)},discardWorkerAndFailWorkflows:(D,Y)=>{this.#F(D,Y)},emit:(D)=>{this.#W(D)}}),this.#z=null,this.#_=null,this.#X=null,this.#L=!1,this.#V=1,Q)try{this.#_=new BroadcastChannel("weft:events"),this.#X=(D)=>{this.#b(D.data)},this.#_.addEventListener("message",this.#X)}catch{}}onMessage($){this.#z=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#G.resetWorkflow($.workflowId);let U=_T($,this.#M());if(!this.#O($.workflowId,U))return;this.#P.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#G.recordResume($.workflowId);let X=_q($,this.#M());this.#P.postResumeMessage(U,$,X);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let X=_q($,this.#M());this.#P.resumeParkedWorkflow($,J,X);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#L)this.#W({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#M(){return{turnId:this.#V++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#q.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#j){this.#F(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let X={type:"cancel",workflowId:$};if(this.#Q)X.protocolVersion=D4;U.postMessage(X),this.#K($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#j){this.#F(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#P.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#B(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#B(),await this.#$[Symbol.asyncDispose]()}#B(){if(this.#L=!0,this.#_){if(this.#X)this.#_.removeEventListener("message",this.#X);this.#_.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#K(U);this.#J.detachAll(),this.#U.clear(),this.#G.clear(),this.#z=null}async#A($,U){if(nR(U)){let G=(D)=>this.#U.getTargetWorker(D)===$,Q=this.#q.handle($,U,G);if(Q)this.#F($,Q);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#G.beginCheckpointHandling(U),X=GT(this.#z,U),_=X instanceof Promise?await X:X;try{if(this.#C($,U))return;if(_)return;this.#R($,U,J)}finally{this.#G.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#K(U.workflowId),this.#N($),this.#G.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!QT(U))return;if(this.#G.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#F($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#K($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#N(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#F($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#N($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let X=this.#Z.validateHostToWorkerMessage(U);if(!X)return!0;if(J)return this.#F(J,{targetWorkflowId:$,targetCategory:X.failureCategory,targetError:X.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#W({type:"failed",workflowId:$,error:X.error,failureCategory:X.failureCategory}),!1}#x($,U){let J=this.#Z.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#F($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#S($){this.#F($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#D}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#F($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#q.forget($);return}for(let X of J){let _=X===U.targetWorkflowId;if(this.#U.forgetWorkflow(X),this.#G.forgetWorkflowIfClosed(X,!0),_&&U.skipTarget)continue;this.#W({type:"failed",workflowId:X,error:_?U.targetError??U.otherError:U.otherError,failureCategory:_?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#q.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#W($){let U=this.#z?.($);if(U instanceof Promise)U.catch(()=>{})}}});function BT($){let U=od($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:FT,leaseRenewIntervalMs:VT,leaseWaitTimeoutMs:MT};let J=W6($?.leaseTtl,"options.leaseTtl")??FT,X=W6($?.leaseRenewInterval,"options.leaseRenewInterval")??VT,_=W6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??MT;return ad(J,X,_),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:X,leaseWaitTimeoutMs:_}}function od($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function ad($,U,J){if($<=0||U<=0||J<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${J}ms).`);if(U>=$)throw Error(`ownership: 'lease' requires leaseRenewInterval (${U}ms) to be strictly less than leaseTtl (${$}ms), so a renewal fires before the lease can lapse.`)}var FT=30000,VT=5000,MT=60000;var WT=z(()=>{Y$()});function Zq($){return Object.entries($??{})}function w3($,U){return $}function NT($){return sd($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function sd($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function td($){return $?.development===!0||NT("WEFT_DEV_WARNINGS")==="1"||NT("NODE_ENV")==="development"}function CT($){let J=$?.storage??void 0;if(J===void 0){if(!KT&&td($))KT=!0,console.warn("[weft] Engine started with no `storage` configured \u2014 falling back to MemoryStorage. "+"Workflow state is held only in memory and is lost when the process exits, so a crash or restart discards every in-flight workflow. Pass a durable adapter (e.g. SQLiteStorage) via `new Engine({ storage })` for anything beyond tests and local dev. (This warning appears only in development.)");J=new uU}if(!$?.compression)return J;return new _G(J,$.compression)}function RT($){return $?.interceptors?[...$.interceptors]:[]}function jq($,U){return{type:$,version:U.version,tags:U.tags===void 0?[]:[...U.tags],...U.description===void 0?{}:{description:U.description},...U.inputSchema===void 0?{}:{inputSchema:U.inputSchema},...U.outputSchema===void 0?{}:{outputSchema:U.outputSchema},...U.searchAttributes===void 0?{}:{searchAttributes:U.searchAttributes},...U.concurrency===void 0?{}:{concurrency:U.concurrency}}}function ed($){return{retention:S9($?.retention,"options.retention"),retentionSweepIntervalMs:W6($?.retentionSweepInterval,"options.retentionSweepInterval")??$z,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):Uz}}function V0($,U){return $??U}function $i($){return{development:V0($?.development,!1),broadcastEvents:V0($?.broadcastEvents,!1)}}function Ui($){return{checkpointHistory:V0($?.checkpointHistory,10),checkpointSizeWarningThreshold:V0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:V0($?.maxNestingDepth,10)}}function Ji($){return{historyPolicy:ZB($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:jB($?.payloadSize,"options.payloadSize")}}function _i($){let U=V0($?.detectSecondInstance,!1),J=U?W6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??OT:OT;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function TT($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...$i(U),...Ui(U),...ed(U),...Ji(U),..._i(U),...BT(U)}}function Xi($){let U=Gi($?.workflowExecutionMode),J=Qi($,U);if(!J)return{mode:"inline",workerExecution:null};return Di(J)}function Gi($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Qi($,U){if(U==="inline"){if($?.workerExecution!==void 0)throw Error('options.workerExecution cannot be provided when workflowExecutionMode is "inline"');return null}if(U==="worker"){if($?.workerExecution===void 0)throw Error('options.workerExecution is required when workflowExecutionMode is "worker"');return $.workerExecution}if($?.workerExecution!==void 0)throw Error('options.workflowExecutionMode must be "worker" when options.workerExecution is provided');return null}function Di($){let U=AT($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??aR,J=AT($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??sR;if(J<$q)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${$q}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function AT($,U,J){if($===void 0)return J;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function ET($){let{options:U,getNow:J,maxNestingDepth:X,development:_,broadcastEvents:G,getRegistration:Q,getComposedWorkflowInterceptor:D,resolveWorkflowType:Y,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:H,getLogSink:L}=$,F=Xi(U);if(F.mode==="worker"){let E=new u3({workerUrl:F.workerExecution.workerUrl,concurrency:F.workerExecution.poolSize??4,smol:F.workerExecution.smol??!1}),m=L?.(),a={broadcastEvents:G,requireProtocolVersion:F.requireProtocolVersion,discardOnCancel:F.discardOnCancel,workflowTurnTimeoutMs:F.workflowTurnTimeoutMs,maxProtocolMessageBytes:F.maxProtocolMessageBytes,getNow:J,...m!==void 0&&{onLog:m}};return{strategy:new Yq(E,a),inlineStrategy:null}}let W=new tP({getRegistration:Q,getNow:J,maxNestingDepth:X,development:_,resolveWorkflowType:Y,...iR({getComposedWorkflowInterceptor:D,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:H,getLogSink:L})});return{strategy:W,inlineStrategy:W}}function xT($){if(!$)return null;return new sP(new u3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function ST($,U,J){return U?new aP($,U,J):null}var KT=!1,OT=15000;var bT=z(()=>{wR();cq();t3();cR();pR();lR();n$();LT();d4();WT();Y$()});function gT(){if(Hq!==void 0)return Hq;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function hT($){Hq=$}function IT($){Pq=$}function yT(){let $=Pq;return Pq=void 0,$}function mT(){return vT}function uT($){return qq.has($)}function kT($){qq.delete($)}function fT(){return gT()}var Hq,vT=0,Pq,qq,c3;var p3=z(()=>{qq=new Set,c3=new FinalizationRegistry(($)=>{if(vT++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&gT()){if($.testToken!==void 0)qq.add($.testToken);process.emitWarning("WeftEngineLeakWarning: A Weft Engine was garbage-collected without calling [Symbol.dispose](). Use `using`, `await using`, or call engine[Symbol.dispose]() to clear background timers and release runtime resources.")}})});function wT($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function cT($){let U=T$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>C6(J)}}function pT($,U){return function(){let X=$.deref();if(X===void 0){U.port1.close(),U.port2.close();return}P(X).queuedInlineWorkflowStartFlushScheduled=!1,C6(xJ(P(X),cT(X)))}}async function dT($){await fO(P($),cT($))}function iT($,U){return function(){let X=$.deref();if(X===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let _=P(X);PM(_.updateCoordinator,(G,Q)=>e(X).handleCleanupError(G,Q))()}}function lT($){return function(){let J=$.deref();if(J===void 0)return null;let X=P(J);if(X.disposed)return null;return X.secondInstanceDetector}}function nT($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,c3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var zq=z(()=>{x2();Z0();p3();w4();c4();c6()});function d3($){$.disposed=!0,$.alertManager?.[Symbol.dispose](),$.alertManager=null,$.abortController.abort();for(let U of $.signalWaiters.values())U();$.signalWaiters.clear(),$.signalWaitersByWorkflow.clear();for(let U of $.conditionWaiters.values())U();if($.conditionWaiters.clear(),wO($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,nT($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,Yi($),Zi($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new N6);$.resultResolvers.clear(),$.updateWaiters.clear(),$.updateWaitersByWorkflow.clear(),$.reviewWaiters.clear(),$.reviewWaitersByWorkflow.clear(),$.reviewEscalationHandlers.clear(),$.workflowReviewIds.clear(),$.parkedInlineWorkflows.clear(),$.terminalizingWorkflows.clear(),$.deliveredPendingUpdateIds.clear(),$.reviewTimerIds.clear();for(let U of $.pendingWebhooks)U.abort();$.pendingWebhooks.clear(),$.sleepResolvers.clear(),$.sleepResolversByWorkflow.clear(),$.checkpoints.clear(),$.pendingExecutionStateOwnerId=void 0,$.workflowNestingDepths.clear(),$.workflowServices.clear(),$.workflowHeaders.clear(),$.pendingStarts.clear(),$.pendingScheduleCreations.clear(),$.eventLogHeads.clear(),$.pendingTimelineEntries.clear(),$.pendingAtomicWorkflowCommitSideEffects.clear(),$.pendingAsyncActivityResolutions.clear(),$.workflowVersionTuples.clear(),$.workflowFeedListeners.clear(),$.activityRegistriesByWorkflow.clear(),$.workflowDefinitionsByName.clear(),$.workflowTypeByWorkflowId.clear(),$.broadcastChannel?.close(),$.broadcastChannel=null}function Yi($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function Zi($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var rT=z(()=>{zq();z$();w4()});function oT($,U,J){if($.terminalizingWorkflows.has(U)){if($.options.development)console.warn(`[weft] ctx.setFinalizerState() called for workflow "${U}" after it began terminalizing; the value is ignored. Record finalizer state while the workflow is still running.`);return}K6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),E4($,U,{conditions:[],operations:[{type:"put",key:q.finalizerState(U),value:B(J)}]})}var aT=z(()=>{b();I();T4()});function sT($){let{storage:U,holderId:J,getNow:X,ttlMs:_,renewIntervalMs:G,waitTimeoutMs:Q}=$,D=$.acquirePollIntervalMs??ji,Y=G,Z=!1,j=null,H=null,L=null,F=null,W=!1,E=null,m=$.delay??((j$)=>new Promise((I$)=>setTimeout(I$,j$)));function a(j$){if(W)return;W=!0,$.onLeaseLost?.(j$)}async function p(){let j$=await U.get(q.leaseHolder()),I$=await U.get(q.leaseEpoch());return{epochRaw:I$,holderRaw:j$,epoch:I$===null?null:KX(I$),holder:j$===null?null:NX(j$)}}async function y(j$,I$,y$){let E6=X()+_,mU=rj({holderId:J,expiresAt:E6,epoch:y$}),Vq=await G$(U,[{key:q.leaseEpoch(),expectedValue:j$},{key:q.leaseHolder(),expectedValue:I$}],[{type:"put",key:q.leaseEpoch(),value:nj(y$)},{type:"put",key:q.leaseHolder(),value:mU}]);if(Vq)j=y$,H=nj(y$),L=mU;return Vq}async function k(){let{epochRaw:j$,holderRaw:I$,epoch:y$,holder:E6}=await p();if(j$!==null&&y$===null)throw new CU('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(j$===null&&I$!==null)throw new CU('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(E6!==null&&X()<E6.expiresAt)return!1;let mU=(y$??0)+1;if(mU>=Number.MAX_SAFE_INTEGER)throw new CU(`the next ownership epoch (${mU}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return y(j$,I$,mU)}async function w(){let j$=X(),I$=j$+Q,y$=null,E6=!0;for(;;){if(Z)return;if(!E6&&X()>=I$)throw new d1(X()-j$,y$);if(E6=!1,await k())return;let yU=await U.get(q.leaseHolder());if(y$=yU===null?null:NX(yU)?.holderId??null,X()>=I$)throw new d1(X()-j$,y$);await m(D)}}async function E$(){if(Z||W||j===null||L===null)return;let j$=X()+_,y$=rj({holderId:J,expiresAt:j$,epoch:j}),E6;try{E6=await G$(U,[{key:q.leaseHolder(),expectedValue:L}],[{type:"put",key:q.leaseHolder(),value:y$}])}catch{let yU=NX(L)?.expiresAt??0;if(X()>=yU-Y)a("renewal-unconfirmable");return}if(E6){L=y$;return}a("deposed")}function T6(){if(E!==null)return;E=E$().catch(()=>{}).finally(()=>{E=null})}function IU(){if(Z||F!==null)return;F=setInterval(()=>{T6()},G),F.unref?.()}function HE(){return H===null?null:H.slice()}function Fq(){if(F!==null)clearInterval(F),F=null}async function PE(){if(Z=!0,Fq(),E!==null)await E;if(L===null)return;try{if(await G$(U,[{key:q.leaseHolder(),expectedValue:L}],[{type:"delete",key:q.leaseHolder()}]))L=null}catch{}}function qE(){Z=!0,Fq()}return{acquire:w,startRenewal:IU,renewOnce:E$,currentEpochBytes:HE,release:PE,stop:qE}}var ji=1000;var tT=z(()=>{b();oj();OX()});async function Lq($){let U=await $.get(ij);if(U!==null){let J=new TextDecoder().decode(U);if(!Hi.test(J))throw new _4(null,WU);let X=Number(J);if(!Number.isSafeInteger(X))throw new _4(null,WU);if(X!==WU)throw new _4(X,WU);return}for(let J of Pi)for await(let X of $.scan(J,{limit:1}))throw new _4(null,WU);await $.put(ij,new TextEncoder().encode(String(WU)))}var Hi,Pi;var eT=z(()=>{lj();Hi=/^(?:0|[1-9]\d*)$/,Pi=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function $E($,U,J,X){if(J==="activityProgress")return $.heartbeatDetails.get(U);let _=$.inlineStrategy;if(!_)throw Error("Workflow queries are not supported when using the worker execution strategy.");let G=_.getContext(U)??_.getParkedContext(U);if(!G)return;let Q=G.queryHandlers.get(J);if(Q)return Q(X);let D=G.exposedAccessors.get(J);if(!D)return;return D()}function Li($){return qi.encode(JSON.stringify($))}async function i3($){try{await $()}catch{}}function Fi($){let{instanceId:U,heartbeatAt:J,sequence:X}=$;return typeof U==="string"&&U.length>0&&typeof J==="number"&&Number.isFinite(J)&&typeof X==="number"&&Number.isInteger(X)&&X>=0}function Vi($){let U;try{U=JSON.parse(zi.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return Fi(J)?J:null}function JE($){let{storage:U,instanceId:J,getNow:X,intervalMs:_}=$,G=$.warn??((p)=>process.emitWarning(p,Mi)),Q=_*(UE+1),D=0,Y=!1,Z=!1,j=new Map,H=new Set;async function L(){let p=[];for await(let[y,k]of U.scan(q.livenessPrefix())){let w=Vi(k);if(w!==null&&w.instanceId!==J)p.push({key:y,heartbeat:w})}return p}async function F(p,y){let k=y-Q*Bi;for(let w of p)if(w.heartbeat.heartbeatAt<k)await i3(()=>U.delete(w.key))}function W(p){let y=new Set;for(let{key:k,heartbeat:w}of p){if(q.liveness(w.instanceId)!==k)continue;y.add(w.instanceId);let E$=j.get(w.instanceId),IU=E$!==void 0&&w.sequence>E$.sequence?E$.advances+1:0;if(j.set(w.instanceId,{sequence:w.sequence,advances:IU}),IU>=UE&&!H.has(w.instanceId))H.add(w.instanceId),G(`another engine instance (${w.instanceId}) is writing to this durable store. Weft supports one engine process per store; running two can cause duplicate workflow execution. Enforce a single instance at the infrastructure layer (for example, one replica with a Recreate deploy strategy).`)}for(let k of Array.from(j.keys()))if(!y.has(k))j.delete(k)}let E=!1;async function m(){if(Z||E)return;E=!0;let p=!1;try{let y=X(),k=await L();if(!Y)Y=!0,await F(k,y);if(W(k),Z)return;D+=1;let w={instanceId:J,heartbeatAt:y,sequence:D};p=!0,await i3(()=>U.put(q.liveness(J),Li(w)))}finally{if(E=!1,p&&Z)await i3(()=>U.delete(q.liveness(J)))}}async function a(){Z=!0,await i3(()=>U.delete(q.liveness(J)))}return{tick:m,stop:a}}function _E($,U){return function(){let X=$();if(X===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}X.tick().catch(()=>{})}}var qi,zi,Mi="WeftSecondInstanceWarning",Bi=10,UE=2;var XE=z(()=>{b();qi=new TextEncoder,zi=new TextDecoder});var GE,QE,DE,dJ;var YE=z(()=>{b();BZ();_U();J6();x2();rZ();D$();n$();S1();uB();f1();BX();cX();S3();gR();kR();bT();rT();p3();zq();z$();O6();aT();WH();h4();w4();iP();c4();tT();f4();HJ();uP();cP();oX();eT();$P();nP();Z3();AP();XE();S4();R$();c6();Q4();c1();EX();v3();vP();f1();z$();h4();OX();p3();GE=Symbol("engineParkedWorkflowCountForTesting"),QE=Symbol("engineSignalWaiterCountForTesting"),DE=Symbol("engineSleepResolverCountForTesting");dJ=class dJ extends EventTarget{static async create($){let U=new dJ($);try{await Lq(P(U).storage);for(let[X,_]of Zq($.activities)){if(X!==_.name)throw new NU("activity",X,_.name);U.#M(_)}for(let[X,_]of Zq($.workflows)){if(X!==_.name)throw new NU("workflow",X,_.name);U.register(_)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{});if($.startScheduler??$.recover!==!1)P(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();nO(this),P(this).registrations=new Map,P(this).workflowTypesByHandler=new WeakMap;let U=CT($),J=$?.getNow??Date.now,X=TT(U,$,J),_=ET({options:$,getNow:J,maxNestingDepth:X.maxNestingDepth,development:X.development,broadcastEvents:X.broadcastEvents,getRegistration:P(this).registrations.get.bind(P(this).registrations),getComposedWorkflowInterceptor:()=>H6(P(this)),resolveWorkflowType:this.#z.bind(this),registerCancelHandler:(Z,j)=>RJ(P(this),Z,j),recordFinalizerState:(Z,j)=>oT(P(this),Z,j),getWorkflowServices:(Z)=>P(this).workflowServices.get(Z),getLogSink:()=>X.onLog??void 0});P(this).storage=U,P(this).abortController=new AbortController,P(this).disposed=!1,P(this).handleCache=new Map,P(this).resultResolvers=new Map,P(this).signalWaiters=new Map,P(this).signalWaitersByWorkflow=new Map,P(this).conditionWaiters=new Map,P(this).updateWaiters=new Map,P(this).updateWaitersByWorkflow=new Map,P(this).sleepResolvers=new Map,P(this).sleepResolversByWorkflow=new Map,P(this).interceptors=RT($),P(this).composedWorkflowInterceptor=void 0,P(this).composedActivityInterceptor=void 0,P(this).updateCoordinator=new sZ(U),P(this).activityRegistry=new F2,P(this).activityRegistriesByWorkflow=new Map,P(this).workflowDefinitionsByName=new Map,P(this).workflowTypeByWorkflowId=new Map,P(this).activityWorkerDispatcher=null,P(this).checkpoints=new Map,P(this).broadcastChannel=null,P(this).pendingNestingDepth=void 0,P(this).pendingParentHeaders=void 0,P(this).pendingExecutionStateOwnerId=void 0,P(this).workflowNestingDepths=new Map,P(this).workflowHeaders=new Map,P(this).workflowStateWriteChains=new Map,P(this).finalizationRegistry=new FinalizationRegistry(HM(P(this).handleCache)),P(this).options=X,P(this).scheduler=new F9({storage:U,onTimerFired:(Z)=>RH(P(this),Z,this.#P()),getNow:J,commitTimerCleanup:(Z)=>Z$(P(this),Z,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),P(this).strategy=_.strategy,P(this).inlineStrategy=_.inlineStrategy,P(this).queuedInlineWorkflowStarts=[],P(this).queuedInlineWorkflowStartIds=new Set,P(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,P(this).queuedInlineWorkflowStartFlushScheduled=!1;let G=new WeakRef(this),Q=_.inlineStrategy!==null?new MessageChannel:null;if(P(this).queuedInlineWorkflowStartChannel=Q,Q!==null)Q.port1.onmessage=pT(G,Q);P(this).heartbeatDetails=new Map,P(this).lastHeartbeatDetailsByStep=new Map,P(this).workflowServices=new Map,P(this).pendingAsyncActivities=new Map,P(this).pendingAsyncActivityResolutions=new Map,P(this).pendingStarts=new Set,P(this).pendingScheduleCreations=new Set,P(this).workflowsNeedingTerminalCleanup=new Set,P(this).reviewCoordinator=new nZ(U,J),P(this).reviewWaiters=new Map,P(this).reviewWaitersByWorkflow=new Map,P(this).reviewEscalationHandlers=new Map,P(this).workflowReviewIds=new Map,P(this).parkedInlineWorkflows=new Set,P(this).terminalizingWorkflows=new Set,P(this).deliveredPendingUpdateIds=new Map,P(this).cancelHandlersByWorkflow=new Map,P(this).reviewTimerIds=new Map,P(this).pendingWebhooks=new Set,P(this).pendingTimelineEntries=new Map,P(this).pendingAtomicWorkflowCommitSideEffects=new Map,P(this).cleanupIntervalDisposalTracker=null;let D={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:yT()},Y=setInterval(iT(G,D),60000);D.cleanupInterval=Y,P(this).cleanupInterval=Y,P(this).cleanupIntervalDisposalTracker=D,c3.register(this,D,D),P(this).retentionSweepInterval=null,P(this).retentionSweepInFlight=null,P(this).nextRetentionSweepAt=null,P(this).secondInstanceDetectionInterval=null,P(this).secondInstanceDetector=null,P(this).leaseManager=null,P(this).inFlightLeaseAcquire=null,P(this).deposed=!1,P(this).tearDownAfterDeposition=()=>{this.#U()},P(this).eventLogHeads=new Map,P(this).workflowFeedListeners=new Map,P(this).workflowVersionTuples=new Map,P(this).workflowVisibilityWatermark=void 0,P(this).workflowVisibilityWatermarkExpiresAt=void 0,P(this).activityWorkerDispatcher=xT($?.activityExecution),P(this).strategy.onMessage(this.#L.bind(this)),P(this).alertManager=ST(this,$?.alerts,J),this.#G(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=P(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new N6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=sT({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(X)=>{if(X==="deposed"){UJ($);return}process.emitWarning("engine ownership lease renewal could not be confirmed (transient storage error); another instance may take over if this persists. Weft supports one engine process "+"per store \u2014 keep infrastructure-level single-instance enforcement in place.",aj)}});$.leaseManager=U;let J=(async()=>{try{await U.acquire()}catch(X){if($.leaseManager===U)$.leaseManager=null;throw X}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new N6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=P(this);if($.disposed)return;let U=$.leaseManager;d3($),U?.release().catch(()=>{})}#J(){let $=P(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=JE({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let J=$.cleanupIntervalDisposalTracker;if(J===null)return;let X=new WeakRef(this),_=setInterval(_E(lT(X),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=_,J.secondInstanceDetectionInterval=_}#_(){return h3(P(this))}#X(){I3(P(this))}#G(){y3(P(this),{hasConfiguredRetention:()=>this.#_(),runRetentionSweep:()=>this.#D(),setNextRetentionSweepAt:()=>this.#X()})}async#D(){return m3(P(this),($,U)=>this.#Q().handleCleanupError($,U),($)=>w6(P(this),$,this.#Q()))}#Y(){return T$(this)}#Q(){return e(this)}#j(){return L3(this)}#q(){return d6(this)}#H(){return cJ(this)}#Z(){return q0(this)}#P(){return E3(this)}#z($){return D3(P(this),$,this.#j())}get state(){let $=P(this).storage;return{execution:(U,J,X)=>new R1($,q.stateExecution(U,J),X),workflow:(U,J,X)=>new R1($,q.stateWorkflow(U,J),X)}}async#L($){return bR(P(this),$,this.#H())}#V($){return b4(P(this),$,this.#q())}register($){if(wT($))return this.#M($),w3(this);return tO(P(this),$,this.#j()),w3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new NU("workflow",U,J.name);this.register(J)}return w3(this)}addInterceptor($){P(this).interceptors.push($),P(this).composedWorkflowInterceptor=void 0,P(this).composedActivityInterceptor=void 0}#M($){P(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return P(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){P(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){P(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=P(this).registrations.get($);return U===void 0?void 0:jq($,U)}listWorkflowDefinitions(){return[...P(this).registrations.entries()].map(([$,U])=>jq($,U))}getActivityDefinition($){return P(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return P(this).activityRegistry.listDefinitions()}async start($,U,J){if(XJ(P(this)),J?.idempotencyKey!==void 0)return fH(P(this),$,U,J,this.#Y());return Y6(P(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,X){return XJ(P(this)),wH(P(this),$,U,J,X,this.#B())}#B(){return{...this.#Y(),signalExistingWorkflow:($,U,J,X)=>this.signal($,U,J,{signalId:X})}}getHandle($){let U=P(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return pX(P(this),$)}async list($,U){return bK(P(this),$,U)}async aggregate($,U){return mB(P(this),$,U)}getRetentionOverview(){return vR(P(this),($)=>lP(P(this),$))}async purge($){return sK(P(this),$,(U)=>w6(P(this),U,this.#Q()))}async cancelAll($,U){return tK(P(this),$,U)}async retryFailedAll($,U){return eK(P(this),$,U)}async signalAll($,U,J,X){if(X===void 0)return MH(P(this),$,U,J);return MH(P(this),$,U,J,X)}async deleteAll($,U){return $N(P(this),$,(J)=>w6(P(this),J,this.#Q()),U)}async tagAll($,U,J){return UN(P(this),$,U,J)}async untagAll($,U,J){return JN(P(this),$,U,J)}async schedule($,U,J,X){if(typeof $==="object"){let _=$,G=typeof _.workflow==="string"?_.workflow:_.workflow.name,Q=_.every!==void 0?{every:_.every}:{cron:_.cron??""};return OP(P(this),G,_.input,Q,{..._.id!==void 0&&{id:_.id},..._.overlapPolicy!==void 0&&{overlap:_.overlapPolicy},..._.backfill!==void 0&&{backfill:_.backfill},..._.jitter!==void 0&&{jitter:_.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return OP(P(this),$,U,J,X)}async getSchedule($){let U=y4($,"scheduleId"),J=await EU(P(this),U);return J?cA(J):null}async listSchedules($){return fA(P(this),$)}async pauseSchedule($){return pA(P(this),$)}async resumeSchedule($){return dA(P(this),$)}async cancelSchedule($){return iA(P(this),$)}async updateSchedule($,U){return lA(P(this),$,U)}[GJ]($){return XN(P(this),$)}[GE](){return P(this).parkedInlineWorkflows.size}[QE](){return P(this).signalWaiters.size}[DE](){return P(this).sleepResolvers.size}async signal($,U,J,X){return cW(P(this),$,l$(U),J,{loadWorkflowState:(_)=>l(P(this),_),dispatchEvent:(_)=>this.dispatchEvent(_),broadcast:(_)=>this.#V(_),getComposedInterceptor:()=>H6(P(this)),resumeParkedInlineWorkflow:(_)=>C6(g3(P(this),_,this.#H()))},X)}async update($,U,J,X){return nW(P(this),$,l$(U),J,X,this.#Z())}async query($,U,J){return $E(P(this),$,l$(U),J)}async getStreamChunks($,U,J){return ZR(P(this),$,U,J)}async getOffload($,U){return sC(P(this),$,U)}async fork($,U){return XJ(P(this)),sH(P(this),$,U,this.#Y())}async resume($){return XJ(P(this)),G3(P(this),$,this.#Y())}async recoverAll($){if(await this.#$(),P(this).disposed)throw new N6;return await UW(P(this)),await wA(P(this)),aH(P(this),this.#Y(),$)}async completeAsyncActivity($,U){await XW(P(this),$,U,{feedOperationResult:(J,X)=>j6(P(this),J,X),finalizeTimeline:(J,X,_)=>R6(P(this),J,X,_)})}async failAsyncActivity($,U){await QW(P(this),$,U,{feedOperationResult:(J,X,_)=>j6(P(this),J,X,_),finalizeTimeline:(J,X,_)=>R6(P(this),J,X,_)})}async cancel($){await GP(P(this),$,this.#Q())}async suspend($){await zP(P(this),$,this.#Q())}async timeout($){await QP(P(this),$,this.#Q())}async get($){let U=await l(P(this),$);if(U?.status==="running"&&cO(P(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=P(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await P(this).storage.get(q.checkpoint($));if(J===null)return null;return H$(J).step}async getAttributes($){return yK(P(this),$)}async setAttributes($,U){return mK(P(this),$,U)}async addTags($,...U){return uK(P(this),$,...U)}async removeTags($,...U){return kK(P(this),$,...U)}async getEvents($){return hR(P(this),$)}async*replayWorkflowFeed($,U,J){yield*QR(P(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return DR(P(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return YR(P(this),$,U,J)}async listCheckpoints($){return IR(P(this),$)}async getCheckpointAt($,U){return yR(P(this),$,U)}async getTimeline($){return mR(P(this),$)}async replayTo($,U){return uR(P(this),$,U)}async listReviews($){return DA(P(this),$)}async getReview($,U){return YA(P(this),$,U)}async submitReview($,U){return ZA(P(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return rW(P(this),$)}async submitCoordinatedUpdate($,U,J,X){return oW(P(this),$,U,J,X,this.#Z())}[Symbol.dispose](){let $=P(this).leaseManager;d3(P(this)),$?.release()}async[Symbol.asyncDispose](){if(!P(this).disposed){let $=P(this).leaseManager;try{await dT(this)}finally{d3(P(this)),await P(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return P(this).storage}get scheduler(){return P(this).scheduler}async fireTimer($){await RH(P(this),$,this.#P())}}});var Wi={};q6(Wi,{shouldEmitEngineLeakWarningForTesting:()=>fT,setNextEngineLeakWarningTokenForTesting:()=>IT,setEngineLeakWarningOverrideForTesting:()=>hT,hasEngineLeakWarningTokenForTesting:()=>uT,getEngineLeakCollectionCountForTesting:()=>mT,clearEngineLeakWarningTokenForTesting:()=>kT,assertCompatiblePersistedDataVersion:()=>Lq,WorkflowTypeNotRegisteredForRecoveryError:()=>a2,WorkflowTeardownPendingError:()=>r2,WorkflowSuspendNotSupportedError:()=>t2,WorkflowNotRegisteredError:()=>OU,WorkflowNotFoundError:()=>p1,WorkflowHandle:()=>QJ,WorkflowConcurrencyLimitExceededError:()=>s2,WorkflowAlreadyExistsError:()=>o$,StartOrSignalConflictError:()=>$J,ScheduleHandle:()=>mJ,PersistedDataIncompatibleError:()=>_4,IdempotencyKeyPurgedError:()=>g4,HANDLE_RESULT_PROMISE:()=>GJ,EngineLeaseNotHeldError:()=>JJ,EngineLeaseCorruptedError:()=>CU,EngineLeaseAcquisitionTimeoutError:()=>d1,EngineDisposedError:()=>N6,EngineCreateNameMismatchError:()=>NU,Engine:()=>dJ,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>DE,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>QE,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>GE,ENGINE_LEASE_LOST_WARNING_NAME:()=>aj,BulkOperationConfirmationError:()=>o2,BulkDeleteRequiresTerminalWorkflowsError:()=>KU,AsyncActivityTokenNotFoundError:()=>jX,ActivityResolutionError:()=>e2,ActivityReconciliationIndeterminateError:()=>P6,ActivityReconciliationConflictError:()=>W3,ActivityReconciliationCapabilityError:()=>B3});var ZE=z(()=>{YE()});function jE($){return $}function n5$($,U){$.register(U)}l6();V6();function uE($){let U=$>>>0;return function(){U+=1831565813;let X=U;return X=Math.imul(X^X>>>15,X|1),X^=X+Math.imul(X^X>>>7,X|61),((X^X>>>14)>>>0)/4294967296}}class U8 extends Error{retryable=!0;constructor($="[chaos] transient fault injected"){super($);this.name="ChaosTransientError"}}class J8 extends Error{retryable=!1;constructor($="[chaos] non-retryable fault injected"){super($);this.name="ChaosNonRetryableError"}}class K0 extends Error{timeoutMilliseconds;[GG]=!0;constructor($){super(`[chaos] timeout fault fired after ${$}ms`);this.name="ChaosTimeoutError",this.timeoutMilliseconds=$}}var kE=50,fE=25;async function wE($){let U=AbortSignal.timeout($);return new Promise((J,X)=>{if(U.aborted){X(new K0($));return}U.addEventListener("abort",()=>X(new K0($)),{once:!0})})}function _8($,U){let J=U.seed!==void 0?uE(U.seed):()=>Math.random(),X=U.faults&&U.faults.length>0?U.faults:["transient","timeout","error","delay"];return async function(G){if(J()<U.faultRate)switch(X[Math.floor(J()*X.length)]){case"transient":throw new U8;case"timeout":return wE(fE);case"error":throw new J8;case"delay":return await F6(kE),$(G)}return $(G)}}async function QG($=3){for(let U=0;U<$;U+=1)await Promise.resolve()}async function N0(){if(typeof MessageChannel<"u")await new Promise(($)=>{let U=new MessageChannel;U.port1.onmessage=()=>{U.port1.close(),U.port2.close(),$()},U.port2.postMessage(void 0)});else await new Promise(($)=>{setTimeout($,0)});await QG()}class dq{#$=[];#U;#J=[];#_;constructor($,U){this.#U=$,this.#_=U}get calls(){return this.#$}get callCount(){return this.#$.length}get lastCall(){return this.#$[this.#$.length-1]}get currentImplementation(){return this.#U}mockImplementation($){this.#U=$}mockReturnValueOnce($){return this.#J.push({type:"return",value:$}),this}mockRejectionOnce($){return this.#J.push({type:"reject",error:$}),this}resetCalls(){this.#$=[]}restore(){this.#_()}async execute($){let U=this.#J.shift(),J=$;if(U?.type==="reject"){let X={input:J,result:void 0,error:U.error,timestamp:Date.now()};throw this.#$.push(X),U.error}if(U?.type==="return"){let X={input:J,result:U.value,error:void 0,timestamp:Date.now()};return this.#$.push(X),U.value}try{let X=await this.#U(J),_={input:J,result:X,error:void 0,timestamp:Date.now()};return this.#$.push(_),X}catch(X){let _=X instanceof Error?X:Error(String(X)),G={input:J,result:void 0,error:_,timestamp:Date.now()};throw this.#$.push(G),_}}}class O0{#$;#U;constructor(){this.#$=new Map,this.#U=new Map}onRestore($,U){if(this.#U.has($))return;this.#U.set($,U)}hasRestoreHook($){return this.#U.has($)}#J($){let U=this.#U.get($);if(!U)return;this.#U.delete($),U()}#_(){let $=Array.from(this.#U.values());this.#U.clear();for(let U of $)U()}mock($,U){let J=new dq(U,this.restore.bind(this,$)),X={implementation:J.execute.bind(J),handle:J};return this.#$.set($,X),J}has($){return this.#$.has($)}get($){return this.#$.get($)}restore($){this.#$.delete($),this.#J($)}restoreAll(){this.#$.clear(),this.#_()}entries(){return this.#$.entries()}}var cE=/(?:WEFT_SUBPROCESS_READY|Weft running on)\s+(\S+)/;var pE=Symbol("SubprocessServerHandle");class YG{[pE]=!0;#$;url;port;databasePath;command;#U;#J;constructor($,U,J,X,_){this.#$=$,this.url=U;let G=new URL(U);if(G.port==="")throw Error(`Subprocess readiness URL must include an explicit port: ${U}`);this.port=Number(G.port),this.databasePath=X.databasePath,this.command=J,this.#U={...X,port:this.port},this.#J=_}get process(){let $=this.#$;return{exited:$.exited,get exitCode(){return $.exitCode},get signalCode(){return rq($.signalCode)},kill:(U)=>{$.kill(U)}}}get stdout(){return this.#J.stdout}get stderr(){return this.#J.stderr}async stop($="SIGTERM"){await aq(this.#$,$,this.#U.exitTimeoutMs)}async[Symbol.asyncDispose](){await this.stop()}get internalProcess(){return this.#$}get internalRestartOptions(){return this.#U}}function rq($){if($==="SIGINT"||$==="SIGKILL"||$==="SIGTERM")return $;return null}function iq($,U){let J=$+U;if(J.length<=32768)return J;return J.slice(J.length-32768)}function dE($){return{entrypoint:$.entrypoint,databasePath:$.databasePath,port:$.port??0,...$.hostname!==void 0?{hostname:$.hostname}:{},...$.cwd!==void 0?{cwd:$.cwd}:{},...$.env!==void 0?{env:$.env}:{},args:$.args??[],readyPattern:$.readyPattern??cE,startupTimeoutMs:$.startupTimeoutMs??5000,exitTimeoutMs:$.exitTimeoutMs??2000}}function iE($){let U=[process.execPath,$.entrypoint,"--port",String($.port),"--database",$.databasePath];if($.hostname!==void 0)U.push("--hostname",$.hostname);return U.push(...$.args),U}function i4($,U,J){if(J!==void 0)$[U]=J}function lE($){let U={};i4(U,"PATH",Bun.env.PATH),i4(U,"HOME",Bun.env.HOME),i4(U,"TMPDIR",Bun.env.TMPDIR),i4(U,"TEMP",Bun.env.TEMP),i4(U,"TMP",Bun.env.TMP),i4(U,"TZ",Bun.env.TZ),i4(U,"NODE_ENV",Bun.env.NODE_ENV);for(let[J,X]of Object.entries($??{}))if(X!==void 0)U[J]=X;return U}function nE($){let U=$.flags.replaceAll("g","").replaceAll("y","");return new RegExp($.source,U)}function lq($,U){return U.lastIndex=0,U.exec($)?.[1]}function rE($,U,J,X){let _=nE(J);return new Promise((G,Q)=>{let D=!1,Y=setTimeout(()=>{if(D)return;D=!0,Q(Error(`Timed out after ${X}ms waiting for subprocess readiness.
54
54
  ${A0(U)}`))},X);function Z(H){if(D)return;D=!0,clearTimeout(Y),G(H)}function j(H){if(D)return;D=!0,clearTimeout(Y),Q(H)}$.exited.then(async(H)=>{await Bun.sleep(0);let L=lq(U.stdout,_);if(L!==void 0){Z(L);return}j(Error(`Subprocess exited with code ${H} before readiness.
55
55
  ${A0(U)}`));return}),nq($.stdout,(H)=>{U.stdout=iq(U.stdout,H);let L=lq(U.stdout,_);if(L!==void 0)Z(L)}).catch((H)=>{j(H instanceof Error?H:Error(String(H)))}),nq($.stderr,(H)=>{U.stderr=iq(U.stderr,H)}).catch((H)=>{j(H instanceof Error?H:Error(String(H)))})})}async function oE($,U,J){let X=Math.min(50,Math.max(1,J)),_=await Promise.race([$.exited,Bun.sleep(X).then(()=>{return})]);if(_!==void 0)throw Error(`Subprocess exited with code ${_} after readiness.
56
56
  ${A0(U)}`)}async function nq($,U){if($===null)return;let J=$.getReader(),X=new TextDecoder;try{while(!0){let{done:_,value:G}=await J.read();if(_)return;U(X.decode(G,{stream:!0}))}}finally{J.releaseLock()}}function A0($){return[`stdout: