@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.
package/dist/mcp/cli.js CHANGED
@@ -54,7 +54,7 @@ Checkpoint shape changes:
54
54
  ${$.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(`
55
55
  `)}`}function oy($){return $!==void 0&&($.workflowVersion!==void 0||$.agentVersion!==void 0||($.toolVersions?.length??0)>0)}function ay($){let{workflowId:U,workflowType:J,storedVersion:G,registeredVersion:X,fieldDiffs:Q,versionDiff:_}=$;return(G===X&&((Q?.length??0)>0||oy(_))?`Version mismatch for workflow "${J}" (${U}): stored version ${G} matches registered version ${X}, but the persisted state is incompatible with the registered definition`:`Version mismatch for workflow "${J}" (${U}): stored version ${G} does not match registered version ${X}`)+(Q&&Q.length>0?ry(Q):"")+(_?lM(_):"")}var iM="0.0.0",Sj;var xj=F(()=>{r();Sj=class Sj extends E{workflowId;storedVersion;registeredVersion;workflowType;fieldDiffs;versionDiff;constructor($,U,J,G,X,Q){let _=X?ny(X.oldShape,X.newShape):void 0;super("VersionMismatchError",ay({workflowId:$,workflowType:U,storedVersion:J,registeredVersion:G,fieldDiffs:_,versionDiff:Q}));this.workflowId=$,this.workflowType=U,this.storedVersion=J,this.registeredVersion=G,this.fieldDiffs=_,this.versionDiff=Q}}});function ty($){return $}function aM($){if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function sM($){if(!k6($)||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 rM($){return typeof $==="number"&&Number.isFinite($)}function $m($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=1}function tM($){if(!k6($))return!1;return Um.every((U)=>U($))}function iU($,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 Jm($){return $===void 0||AM($)}function n($){let U=R($),J=k6(U)?U:void 0;if(J!==void 0)Gm(J);let G=U;if(!Jm(G.tags))console.warn(`[weft] Decoded workflow state for "${String(G.id)}" has invalid tags; dropping the malformed tag list from the decoded state.`),delete G.tags;if(G.failureCategory!==void 0&&G.failureCategory!==null){let X=E3(G.failureCategory);if(X===void 0)delete G.failureCategory;else G.failureCategory=X}if(G.executionStateOwnerId!==void 0)try{W1(G.executionStateOwnerId,"executionStateOwnerId")}catch{console.warn(`[weft] Decoded workflow state for "${String(G.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 G.executionStateOwnerId}return J===void 0?G:Xm(G,J)}function Xm($,U){for(let J of Object.keys(U))if(!ey.has(J))delete U[J];return $}function Gm($){let U=$.version,J=typeof U==="string";if(sM($.versionTuple)){delete $.version,delete $.agentVersion,delete $.toolVersions;return}let{agentVersion:G,toolVersions:X}=$,Q={workflowVersion:J?U:iM,...typeof G==="string"&&{agentVersion:G},...Array.isArray(X)&&X.every((_)=>typeof _==="string")&&{toolVersions:X}};$.versionTuple=Q,delete $.version,delete $.agentVersion,delete $.toolVersions}function W6($,U){if($===void 0)return;let J=n2($,U);return Math.ceil(J)}function eM($,U){return{maxEvents:oM($?.maxEvents,`${U}.maxEvents`),retentionWindow:oM($?.retentionWindow,`${U}.retentionWindow`)}}function oM($,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 $W($,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 w3($,U){if(!$)return null;let J={},G=W6($.completed,`${U}.completed`),X=W6($.failed,`${U}.failed`),Q=W6($.cancelled,`${U}.cancelled`),_=W6($.timedOut,`${U}.timedOut`);if(G!==void 0)J.completed=G;if(X!==void 0)J.failed=X;if(Q!==void 0)J.cancelled=Q;if(_!==void 0)J.timedOut=_;return J.completed===void 0&&J.failed===void 0&&J.cancelled===void 0&&J.timedOut===void 0?null:J}function UW($,U){switch(U){case"completed":return $?.completed;case"failed":return $?.failed;case"cancelled":return $?.cancelled;case"timed-out":return $?.timedOut;default:return}}function M$($){return $==="completed"||$==="failed"||$==="cancelled"||$==="timed-out"}function bj($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}var sy,ey,Um;var _$=F(()=>{I();c2();S4();$4();xj();D6();sy=new Set(["running","completed","failed","cancelled","timed-out"]);ey=new Set(ty(["id","type","status","tags","input","result","error","errorStack","failureCategory","terminationReason","versionTuple","executionStateOwnerId","createdAt","startedAt","updatedAt","terminalCleanupToken","executionDeadline","forkedFrom"]));Um=[($)=>$m($.step),($)=>typeof $.operationType==="string",($)=>typeof $.operationLabel==="string",($)=>typeof $.inputSummary==="string",($)=>rM($.timestamp),($)=>sy.has($.status),($)=>$.outputSummary===void 0||typeof $.outputSummary==="string",($)=>$.duration===void 0||rM($.duration),($)=>$.versionTuple===void 0||sM($.versionTuple)]});function p3($){return`${Ij}${$}`}function JW($){if(!$.startsWith(Ij))return null;let U=$.slice(Ij.length);return U.length===0?null:U}function XW($){if(typeof $!=="object"||$===null)return!1;let U=$;return(U.status==="owed"||U.status==="running")&&typeof U.token==="string"&&_m(U.attempts)&&Dm(U.claimedAt)}function _m($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Dm($){return $===void 0||typeof $==="number"&&Number.isFinite($)&&$>=0}function nU($,U){return`${$}\x00${U}`}function r2($,U,J){return $(U,J)}function d3($){return $()}function F$($){return EM($)}function GW($){if(Ym.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 Zm($){if(typeof $!=="object"||$===null||!("type"in $))return;return $.type}function Hm($){if(jm.has($.type))return F$({key:$.key});switch($.type){case"load":return F$({key:$.reference.key});case"archive":return F$({key:$.key,data:$.data});case"state-read":return F$({key:$.key,scope:$.scope});case"state-commit":return F$({key:$.key,mode:$.mode,scope:$.scope});default:return}}function Pm($){let U=Hm($);if(U!==void 0)return U;switch($.type){case"sleep":return F$({duration:$.duration});case"wait-signal":return F$({signalName:$.signalName});case"wait-update":return F$({updateName:$.updateName});case"get-version":return F$({changeId:$.changeId,minSupported:$.minSupported,maxSupported:$.maxSupported,version:$.version});case"parallel":case"race":return F$({operationCount:$.operations.length});case"speculate":return F$({branch:"speculative"});default:return F$(void 0)}}function QW($){switch($.type){case"activity":return F$($.input);case"child-workflow":return F$({workflowType:$.workflowType,input:$.input});case"run-all":return F$({branches:Object.keys($.branches)});case"wait-review":return F$({reviewers:$.reviewOptions.reviewers,artifactType:Zm($.reviewOptions.artifact)});default:return Pm($)}}function zm($){let U=L1($);return k6(U)?U:{}}function Fm($){let U=L1($);if(!k6(U))return{};let J={};for(let[G,X]of Object.entries(U))if(aM(X))J[G]=X;return J}function yj($){return{step:$.step,locals:zm($.locals),searchAttributes:Fm($.searchAttributes),version:$.version,createdAt:$.createdAt}}function mj($){let U=L1($);return k6(U)?gM(U):{value:U}}function uj($){if($===void 0)return;try{return F$(JSON.parse($))}catch{return $}}function _W($){if(!Number.isSafeInteger($)||$<0)throw Error("options.fromStep must be a non-negative safe integer");return $}function l3($){return M([...$.entries()])}function DW($){let U=R($);return new Map(U)}function i3($){if(!$||$.size===0)return;let U=new Map;for(let[J,G]of $){let X=J.toLowerCase();if(!Qm.has(X))continue;U.set(X,G)}return U.size>0?U:void 0}function n3($){let[U,...J]=$;if(!U)return null;let G=new Set(U);for(let X of J)for(let Q of G)if(!X.has(Q))G.delete(Q);return G}function Lm($,U){if(U.status===void 0)return!0;return(Array.isArray(U.status)?U.status:[U.status]).includes($.status)}function qm($,U){return Lm($,U)&&(U.type===void 0||$.type===U.type)&&(U.idPrefix===void 0||$.id.startsWith(U.idPrefix))}function Vm($,U){if(U.createdAt!==void 0&&!vj($.createdAt,U.createdAt))return!1;if(U.updatedAt!==void 0&&!vj($.updatedAt,U.updatedAt))return!1;if(U.executionDeadline===void 0)return!0;return $.executionDeadline!==void 0&&vj($.executionDeadline,U.executionDeadline)}function Bm($,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 rU($){return($?.attributes?.length??0)>0}function Mm($){if(typeof $==="string"||typeof $==="number"||typeof $==="boolean"||$ instanceof Date)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function N1($){if($===null)return null;let U=R($);if(!bj(U))return null;let J={};for(let[G,X]of Object.entries(U))if(Mm(X))J[G]=X;return J}function kj($){if($.value===void 0)return null;if(Array.isArray($.value))return[...$.value];return[$.value]}function YW($){return Array.isArray($)?$:[$]}function Wm($,U){if($ instanceof Date||U instanceof Date)return $ instanceof Date&&U instanceof Date&&$.getTime()===U.getTime();return $===U}function Nm($,U){if(U.length===0)return!1;for(let J of YW($))if(U.some((G)=>Wm(J,G)))return!0;return!1}function Km($,U){if(U.gte!==void 0&&$<K$(U.gte))return!1;if(U.gt!==void 0&&$<=K$(U.gt))return!1;if(U.lte!==void 0&&$>K$(U.lte))return!1;if(U.lt!==void 0&&$>=K$(U.lt))return!1;return!0}function Om($,U){for(let J of YW($))if(Km(K$(J),U))return!0;return!1}function Am($,U){let J=$[R$(U.key)];if(J===void 0)return!1;let G=kj(U);if(G!==null)return Nm(J,G);return Om(J,U)}function Cm($,U){if(!rU(U))return!0;if($===null||$===void 0)return!1;return U.attributes.every((J)=>Am($,J))}function U4($,U,J,G,X){if(J!==null&&!J.has($.id))return!1;if(!CM($.tags,G))return!1;if(U===void 0)return!0;if(!qm($,U))return!1;if(!Vm($,U))return!1;if(!Bm($,U))return!1;if(!Cm(X,U))return!1;return!0}function vj($,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 ZW($,U){return jW($,U)}function jW($,U){let J=U?.offset??0,G=U?.limit??$.length;return{items:$.slice(J,J+G),total:$.length,offset:J,limit:G}}function c3($){if(Array.isArray($))return $.map((J)=>c3(J));if(!bj($))return $;let U={};for(let J of Object.keys($).toSorted())U[J]=c3($[J]);return U}function HW($,U){let J=M(c3($)),G=M(c3(U));if(J.byteLength!==G.byteLength)return!1;for(let X=0;X<J.byteLength;X++)if(J[X]!==G[X])return!1;return!0}function PW($,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 zW($,U){let J=$.toSorted((G,X)=>{if(G.createdAt!==X.createdAt)return G.createdAt-X.createdAt;return G.id.localeCompare(X.id)});return jW(J,U)}function oU($){return`schedule:${$}`}function aU($,U){return $?`${hj}${U}`:`${gj}${U}`}function FW($){let U=(J)=>{let G=$.slice(J.length);return G.length===0?null:G};if($.startsWith(hj)){let J=U(hj);return J===null?null:{includeOutputArtifacts:!0,terminalCleanupToken:J}}if($.startsWith(gj)){let J=U(gj);return J===null?null:{includeOutputArtifacts:!1,terminalCleanupToken:J}}return null}function r3($){let{currentWorkflowId:U,...J}=$;return J}var Qm,gj="terminal-cleanup:preserve-output:",hj="terminal-cleanup:full:",Ij="teardown:",Ym,jm;var U$=F(()=>{I();c2();d$();G6();D6();M1();_$();Qm=new Set(["traceparent","tracestate"]);Ym=new Set(["memo","offload","archive","stream","state-read","state-commit"]);jm=new Set(["memo","offload","stream"])});function qW($){let U=[z.workflowVisibilityStatus($.status,$.id),z.workflowVisibilityType($.type,$.id),z.workflowVisibilityCreated($.createdAt,$.id),z.workflowVisibilityUpdated($.updatedAt,$.id)];if($.executionDeadline!==void 0)U.push(z.workflowVisibilityDeadline($.executionDeadline,$.id));return U.toSorted()}function o3($,U,J){return VW($,U?.keys??[],U!==null,J)}function y$($,U,J){let G=U?qW(U):[];return VW($,G,U!==null,J)}function VW($,U,J,G){let X=z.workflowVisibilityManifest($);if(G===null){let j=[];for(let P of U)j.push({type:"delete",key:P});if(J)j.push({type:"delete",key:X});return{batchOps:j,nextManifestKeys:null}}let Q=qW(G),_=new Set(U),D=new Set(Q),Y=[];for(let j of U)if(!D.has(j))Y.push({type:"delete",key:j});for(let j of Q)if(!_.has(j))Y.push({type:"put",key:j,value:Rm});let Z={version:LW,keys:Q};return Y.push({type:"put",key:X,value:M(Z)}),{batchOps:Y,nextManifestKeys:Q}}async function Em($){let U=await $.get(z.workflowVisibilityMetaVersion());if(!U)return"stale";let J;try{J=R(U)}catch{return"stale"}if(typeof J!=="number")return"stale";return J>=LW?"current":"stale"}async function BW($){let{workflowVisibilityWatermark:U,workflowVisibilityWatermarkExpiresAt:J}=$,G=Date.now();if(U!==void 0&&J!==void 0&&G<J)return U;let X=await Em($.storage);return $.workflowVisibilityWatermark=X,$.workflowVisibilityWatermarkExpiresAt=G+Tm,X}var LW=1,f6=1e6,K1,Rm,Tm=1000;var s$=F(()=>{v();I();r();K1=class K1 extends E{cap;constructor($){super("WorkflowListScanCapExceededError",`Listing workflows would exceed the scan cap of ${$}. Narrow the filter or run the visibility-index backfill.`);this.cap=$}};Rm=new Uint8Array(0)});async function*a3($,U){let J=B$(U?.tags),G=await fj($,U,J);if(G!==null){let X=[...G];for(let Q=0;Q<X.length;Q+=Y6){let _=X.slice(Q,Q+Y6),D=await Promise.all(_.map((Y)=>xm($,Y,U,G,J)));for(let Y of D){if(Y===null)continue;yield Y}}return}for await(let[X,Q]of $.storage.scan("wf:")){if(!o2(X))continue;let _=n(Q),D=await MW($,_.id,U);if(!U4(_,U,G,J,D))continue;yield _}}async function xm($,U,J,G,X){let Q=await $.storage.get(z.workflow(U));if(!Q)return null;let _=n(Q),D=await MW($,U,J);if(!U4(_,J,G,X,D))return null;return _}async function MW($,U,J){if(!rU(J))return null;return N1(await $.storage.get(z.attribute(U)))}async function fj($,U,J){let G=U?.attributes,X=G!==void 0&&G.length>0,Q=J!==void 0&&J.length>0;if(!X&&!Q)return null;let _=bm($,J,G);return n3(await vm(_))}async function wj($,U){let J=new Set,G=R$(U.key),X=`idx:${G}:`;if(U.value!==void 0)await hm($,U,G,J);else await Im($,U,X,J);return J}function bm($,U,J){return[...U?.map((G)=>()=>mm($,G))??[],...J?.map((G)=>()=>wj($,G))??[]]}async function vm($){let U=Array.from({length:$.length}),J=0,G=async()=>{while(J<$.length){let Q=J;J+=1,U[Q]=await $[Q]()}},X=Math.max(1,Math.min(Sm,$.length));return await Promise.all(Array.from({length:X},()=>G())),U.map(gm)}function gm($){if($===void 0)throw Error("Attribute index query did not produce a workflow ID set.");return $}async function hm($,U,J,G){let X=kj(U);if(X===null)return;let Q=[];for(let _ of X)if(U.key==="failureCategory"&&wU(_))Q.push(...WM(_));else Q.push(_);for(let _ of Q){let D=`idx:${J}:${K$(_)}:`;for await(let[Y]of $.storage.scan(D))WW(G,Y.slice(D.length))}}async function Im($,U,J,G){for await(let[X]of $.storage.scan(J,ym(U))){let Q=X.slice(J.length),_=Q.lastIndexOf(":");if(_>=0)WW(G,Q.slice(_+1))}}function ym($){let U={};if($.gte!==void 0)U.gte=`idx:${R$($.key)}:${K$($.gte)}:`;if($.gt!==void 0)U.gt=`idx:${R$($.key)}:${K$($.gt)}:\xFF`;if($.lte!==void 0)U.lte=`idx:${R$($.key)}:${K$($.lte)}:\xFF`;if($.lt!==void 0)U.lt=`idx:${R$($.key)}:${K$($.lt)}:`;return U}function WW($,U){let J=S6(U);if(J!==null)$.add(J)}async function mm($,U){let J=new Set,G=`tag:${N(U)}:`;for await(let[X]of $.storage.scan(G)){let Q=S6(X.slice(G.length));if(Q!==null)J.add(Q)}return J}function o2($){return!$.slice(3).includes(":")}var Sm=8;var a2=F(()=>{v();S4();d$();D6();U$();_$()});function s3($){return Number.isFinite($)&&$>=0}function t3($){return String($).padStart(16,"0")}async function cj($,U,J){let G=new Set;for await(let[X]of $.scan(U,J)){let Q=X.slice(X.lastIndexOf(":")+1),_=S6(Q);if(_!==null)G.add(_)}return G}async function NW($,U){let J=new Set;for(let G of U){let X=`wf-idx-status:${N(G)}:`;for(let Q of await cj($,X))J.add(Q)}return J}async function KW($,U){let J=`wf-idx-type:${N(U)}:`;return cj($,J)}async function e3($,U,J){let G=`wf-idx-${U}:`,X={};if(J.gte!==void 0&&s3(J.gte))X.gte=`${G}${t3(J.gte)}:`;if(J.gt!==void 0&&s3(J.gt))X.gt=`${G}${t3(J.gt)}:\xFF`;if(J.lte!==void 0&&s3(J.lte))X.lte=`${G}${t3(J.lte)}:\xFF`;if(J.lt!==void 0&&s3(J.lt))X.lt=`${G}${t3(J.lt)}:`;return cj($,G,X)}async function OW($,U){let J=new Set,G=`wf:${N(U)}`;for await(let[X]of $.scan(G)){let Q=X.slice(3);if(Q.includes(":"))continue;let _=S6(Q);if(_!==null)J.add(_)}return J}var AW=F(()=>{v()});function um($,U){let J=Array.isArray(U)?U:[U];return NW($.storage,J)}function km($,U){return KW($.storage,U)}function fm($,U){return e3($.storage,"created",U)}function wm($,U){return e3($.storage,"updated",U)}function cm($,U){return e3($.storage,"deadline",U)}function pm($,U){return OW($.storage,U)}function CW($,U,J){let G=[];for(let X of J){let Q=U[X];if(Q===void 0)continue;let _=dm[X];G.push(_($,Q))}return G}async function $X($,U,J){let[G,X]=await Promise.all([fj($,U,J),lm($,U?.failureCategory)]);if(await BW($)==="stale"){let Z=U===void 0?[]:CW($,U,["idPrefix"]),j=await Promise.all(Z);return pj([G,X,...j])}let D=U===void 0?[]:CW($,U,["status","type","createdAt","updatedAt","executionDeadline","idPrefix"]);if(D.length===0)return pj([G,X]);let Y=await Promise.all(D);return pj([G,X,...Y])}async function lm($,U){if(U===void 0)return null;let J=Array.isArray(U)?U:[U],G=await Promise.all(J.map((Q)=>wj($,{key:"failureCategory",value:Q}))),X=new Set;for(let Q of G)for(let _ of Q)X.add(_);return X}function pj($){let U=$.filter((J)=>J!==null);if(U.length===0)return null;return n3(U)}var dm;var dj=F(()=>{U$();s$();a2();AW();dm={status:um,type:km,createdAt:fm,updatedAt:wm,executionDeadline:cm,idPrefix:pm}});async function UX($,U,J){let G=new Map;if(!rU(J))return G;let X=U.flatMap((_)=>_===null?[]:[n(_)]),Q=await Promise.all(X.map((_)=>$.storage.get(z.attribute(_.id))));for(let _=0;_<X.length;_+=1)G.set(X[_].id,N1(Q[_]??null));return G}async function JX($,U,J){if(!rU(J))return null;return N1(await $.storage.get(z.attribute(U)))}var lj=F(()=>{v();U$();_$()});function nm($,U){let J=!1,G=!1;for(let X of $.registrations.values())if(X.searchAttributes!==void 0){if(J=!0,U in X.searchAttributes){G=!0;break}}if(J&&!G)throw new RW(U)}function rm($,U,J,G){let X=x3({...U,limit:void 0,offset:void 0}),Q=BM(J),{groupBy:_}=Q;if(typeof _==="object")nm($,_.attribute);return{normalizedFilter:X,groupBy:_,requestedLimit:Q.limit??LM,distinctKeyCap:G.distinctKeyCap??qM}}function om($,U,J){let G=J.counts.get($);if(G===void 0){if(J.counts.size>=U)throw new Fj(U);J.counts.set($,1)}else J.counts.set($,G+1);J.total+=1}async function am($,U,J,G=new Map){if(J==="status")return U.map((X)=>X.status);if(J==="type")return U.map((X)=>X.type);if(J==="failureCategory")return U.map((X)=>X.failureCategory??null);return sm($,U,J,G)}async function sm($,U,J,G){let X=[];for(let Q=0;Q<U.length;Q+=Y6){let _=U.slice(Q,Q+Y6),D=_.filter((Z)=>!G.has(Z.id)),Y=new Map;await Promise.all(D.map(async(Z)=>{Y.set(Z.id,await $.storage.get(z.attribute(Z.id)))}));for(let Z of _){let j=G.has(Z.id)?G.get(Z.id)??null:N1(Y.get(Z.id)??null);if(j===null){X.push(null);continue}X.push(im(j[J.attribute]))}}return X}async function ij($,U,J,G,X,Q){let _=await am($,U,J,Q);for(let D of _)om(D,G,X)}async function tm($,U,J,G,X,Q,_){let D=[...U];if(D.length>f6)throw new K1(f6);for(let Y=0;Y<D.length;Y+=Y6){let Z=D.slice(Y,Y+Y6),j=await Promise.all(Z.map((q)=>$.storage.get(z.workflow(q)))),P=await UX($,j,J),L=[];for(let q of j){if(!q)continue;let W=n(q);if(!U4(W,J,U,G,P.get(W.id)??null))continue;L.push(W)}await ij($,L,X,Q,_,P)}}async function em($,U,J,G,X,Q){let _=0,D=[],Y=new Map;for await(let[Z,j]of $.storage.scan("wf:")){if(!o2(Z))continue;if(_+=1,_>f6)throw new K1(f6);let P=n(j),L=await JX($,P.id,U);if(!U4(P,U,null,J,L))continue;if(D.push(P),L!==null)Y.set(P.id,L);if(D.length===Y6)await ij($,D,G,X,Q,Y),D=[],Y=new Map}if(D.length>0)await ij($,D,G,X,Q,Y)}function $u($,U){let J=[...$.counts.entries()].map(([Q,_])=>({key:Q,count:_})).toSorted((Q,_)=>{if(Q.count!==_.count)return _.count-Q.count;let D=Q.key??"",Y=_.key??"";if(D<Y)return-1;if(D>Y)return 1;return 0}),G=J.length>U,X=G?J.slice(0,U):J;return{total:$.total,groups:X,truncated:G}}async function TW($,U,J,G={}){let{normalizedFilter:X,groupBy:Q,requestedLimit:_,distinctKeyCap:D}=rm($,U,J,G),Y=B$(X.tags),Z=await $X($,X,Y),j={counts:new Map,total:0};if(Z!==null)await tm($,Z,X,Y,Q,D,j);else await em($,X,Y,Q,D,j);return $u(j,_)}var im=($)=>{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($)},RW;var EW=F(()=>{v();MM();Vj();r();D6();dj();lj();U$();_$();s$();a2();RW=class RW extends E{attribute;constructor($){super("UnknownAggregateAttributeError",`Unknown search attribute "${$}". Aggregate groupBy requires a declared attribute.`);this.attribute=$}}});var SW,XX,GX,xW,bW;var vW=F(()=>{SW=class SW extends Event{static type="activity:started";operationId;workflowId;activityName;attempt;constructor($,U,J,G){super(SW.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.attempt=G}};XX=class XX extends Event{static type="activity:completed";operationId;workflowId;activityName;duration;constructor($,U,J,G){super(XX.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.duration=G}};GX=class GX extends Event{static type="activity:async-pending";token;operationId;workflowId;activityName;attempt;constructor($,U,J,G,X){super(GX.type);this.token=$,this.operationId=U,this.workflowId=J,this.activityName=G,this.attempt=X}};xW=class xW extends Event{static type="activity:failed";operationId;workflowId;activityName;error;attempt;constructor($,U,J,G,X){super(xW.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.error=G,this.attempt=X}};bW=class bW extends Event{static type="task:dead-lettered";operationId;workflowId;activityName;queue;workerId;reason;errorMessage;constructor({operationId:$,workflowId:U,activityName:J,queue:G,workerId:X,errorMessage:Q}){super(bW.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.queue=G,this.workerId=X,this.reason="result-resolution-storage-exhausted",this.errorMessage=Q}}});var QX;var gW=F(()=>{QX=class QX extends Event{static type="attributes:changed";workflowId;changes;constructor($,U){super(QX.type);this.workflowId=$,this.changes=U}}});var _X,DX;var nj=F(()=>{_X=class _X extends Event{static type="schedule:fired";scheduleId;workflowId;firedAt;occurrence;constructor($,U,J,G){super(_X.type);this.scheduleId=$,this.workflowId=U,this.firedAt=J,this.occurrence=G}};DX=class DX extends Event{static type="schedule:missed-fire";scheduleId;missedCount;windowStart;windowEnd;constructor($,U,J,G){super(DX.type);this.scheduleId=$,this.missedCount=U,this.windowStart=J,this.windowEnd=G}}});var YX,hW;var IW=F(()=>{YX=class YX extends Event{static type="signal:received";workflowId;signalName;payload;constructor($,U,J){super(YX.type);this.workflowId=$,this.signalName=U,this.payload=J}};hW=class hW extends Event{static type="signal:delivered";workflowId;signalName;constructor($,U){super(hW.type);this.workflowId=$,this.signalName=U}}});var ZX,x4,jX,HX,yW,mW,PX,zX,FX;var uW=F(()=>{ZX=class ZX extends Event{static type="checkpoint:size-warning";workflowId;sizeBytes;step;constructor($,U,J){super(ZX.type);this.workflowId=$,this.sizeBytes=U,this.step=J}};x4=class x4 extends Event{static type="development:warning";workflowId;message;fieldPaths;constructor($,U,J){super(x4.type);this.workflowId=$,this.message=U,this.fieldPaths=J}};jX=class jX extends Event{static type="cleanup:warning";source;error;workflowId;constructor($,U,J){super(jX.type);this.source=$,this.error=U,this.workflowId=J}};HX=class HX extends Event{static type="storage:size-reported";sizeBytes;constructor($){super(HX.type);this.sizeBytes=$}};yW=class yW extends Event{static type="worker:connected";workerId;queue;activities;concurrency;constructor($,U,J,G){super(yW.type);this.workerId=$,this.queue=U,this.activities=J,this.concurrency=G}};mW=class mW extends Event{static type="worker:disconnected";workerId;inFlightTaskCount;constructor($,U){super(mW.type);this.workerId=$,this.inFlightTaskCount=U}};PX=class PX extends Event{static type="alert:fired";metric;threshold;currentValue;window;constructor($,U,J,G){super(PX.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=G}};zX=class zX extends Event{static type="alert:resolved";metric;threshold;currentValue;window;constructor($,U,J,G){super(zX.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=G}};FX=class FX extends Event{static type="constraint:violated";workflowId;constraintName;scope;onViolation;constructor($,U,J,G){super(FX.type);this.workflowId=$,this.constraintName=U,this.scope=J,this.onViolation=G}}});var J4,w6;var kW=F(()=>{J4=class J4 extends Event{static type="update:received";updateId;workflowId;name;payload;constructor($,U,J,G){super(J4.type);this.updateId=$,this.workflowId=U,this.name=J,this.payload=G}};w6=class w6 extends Event{static type="update:completed";updateId;workflowId;name;result;error;constructor($,U,J,G,X){super(w6.type);this.updateId=$,this.workflowId=U,this.name=J,this.result=G,this.error=X}}});var O1,b4,A1,X4,C1,G4,fW,LX,qX,VX,R1;var rj=F(()=>{O1=class O1 extends Event{static type="workflow:definition-registered";workflowType;constructor($){super(O1.type);this.workflowType=$}};b4=class b4 extends Event{static type="workflow:started";workflowId;workflowType;input;constructor($,U,J){super(b4.type);this.workflowId=$,this.workflowType=U,this.input=J}};A1=class A1 extends Event{static type="workflow:completed";workflowId;result;duration;constructor($,U,J){super(A1.type);this.workflowId=$,this.result=U,this.duration=J}};X4=class X4 extends Event{static type="workflow:failed";workflowId;error;constructor($,U){super(X4.type);this.workflowId=$,this.error=U}};C1=class C1 extends Event{static type="workflow:cancelled";workflowId;constructor($){super(C1.type);this.workflowId=$}};G4=class G4 extends Event{static type="workflow:timed-out";workflowId;timeoutType;elapsed;reason;constructor($,U,J,G){super(G4.type);if(this.workflowId=$,this.timeoutType=U,this.elapsed=J,G!==void 0)this.reason=G}};fW=new Set([A1.type,X4.type,C1.type,G4.type]);LX=class LX extends Event{static type="workflow:resumed";workflowId;fromStep;constructor($,U){super(LX.type);this.workflowId=$,this.fromStep=U}};qX=class qX extends Event{static type="workflow:suspended";workflowId;constructor($){super(qX.type);this.workflowId=$}};VX=class VX extends Event{static type="workflow:recovery-skipped";workflowId;workflowType;reason;constructor($,U,J){super(VX.type);this.workflowId=$,this.workflowType=U,this.reason=J}};R1=class R1 extends Event{static type="workflow:teardown";workflowId;workflowType;status;attempts;error;constructor($,U,J,G,X){super(R1.type);this.workflowId=$,this.workflowType=U,this.status=J,this.attempts=G,this.error=X}}});var wW=F(()=>{vW();gW();nj();IW();uW();kW();rj()});var J$=F(()=>{wW()});function N6($,U,J){if(U===null)return;let G=M($).byteLength;if(G>U)throw new oj(J,G,U)}function s2($,U,J){let G=M($);if(U!==null&&G.byteLength>U)throw new oj(J,G.byteLength,U);return G}var oj;var v4=F(()=>{I();r();oj=class oj extends E{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 BX($){return`${cW}${N($)}:`}function Ju($){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 pW($,U,J){return`${Uu}:${$}:${U}:${J}`}function Xu($,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(z.asyncActivity(U.workflowId,U.token),M(J))}async function Gu($,U){let J=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await Xu($.storage,U),!J)$.engine.dispatchEvent(new GX(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function dW($,U,J,G){let X=Yu($,J.workflowId,U.token);if(X!==void 0)return iW(J.workflowId,X,G),new Promise(()=>{});return await Gu($,{token:U.token,createdAt:$.options.getNow(),...J}),new Promise(()=>{})}async function lW($){for await(let[,U]of $.storage.scan(cW)){let J=R(U);if(!Ju(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 Qu($,U){let J=$.pendingAsyncActivities.get(U);if(!J)throw new WX(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(z.asyncActivity(J.workflowId,U))}catch(G){throw $.pendingAsyncActivities.set(U,J),G}return J}function _u($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function Du($,U,J){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U)??[];G.push(J),$.pendingAsyncActivityResolutions.set(U,G)}function Yu($,U,J){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U);if(G===void 0)return;let X=G.findIndex((_)=>_.token===J);if(X===-1)return;let Q=G[X];if(Q===void 0)return;if(G.splice(X,1),G.length===0)$.pendingAsyncActivityResolutions.delete(U);return Q}function iW($,U,J){J.finalizeTimeline($,U.timelineStatus,U.timelineOutput),J.feedOperationResult($,U.outcome,U.originalReason)}async function nW($,U,J,G,X){let Q=await Qu($,U),_=J.status==="completed"?J.value:J.error,D={token:U,outcome:J,timelineStatus:J.status,timelineOutput:_,...X!==void 0?{originalReason:X}:{}};if(_u($,Q.workflowId)){Du($,Q.workflowId,D);return}iW(Q.workflowId,D,G)}async function rW($,U,J,G){N6(J,$.options.payloadSizePolicy.maxBytes,"activity result"),await nW($,U,{status:"completed",value:J},G)}async function oW($){let U=$.next();while(!U.done){let J=U.value;if(J instanceof Promise){let G;try{G=await J}catch(X){U=$.throw(X);continue}U=$.next(G)}else U=$.next(J)}return U.value}async function aW($,U,J,G){let X=J instanceof Error?J.message:String(J),Q=J instanceof Error?J.name:void 0;N6({message:X,name:Q},$.options.payloadSizePolicy.maxBytes,"activity result"),await nW($,U,{status:"failed",error:X,...J instanceof Error?{errorName:J.name}:{},failureCategory:"application"},G,{value:J})}var Uu="async-act:v1",cW="async-act:v1:",MX,WX;var sU=F(()=>{v();I();J$();v4();r();MX=class MX 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=$}};WX=class WX extends E{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 NX($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function aj($){return NX($)&&$.version===1&&NX($.attempts)&&($.completedRetrySleeps===void 0||NX($.completedRetrySleeps))&&($.dispatchedAt===void 0||NX($.dispatchedAt))}function sW($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function tW($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!aj(J))return;let G=J.attempts[String(U)];if(G===void 0)return;return sW(G,U),G}function eW($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!aj(J))return 0;let G=J.completedRetrySleeps?.[String(U)];if(G===void 0)return 0;if(!Number.isInteger(G)||G<0||G>1e4)throw Error(`Invalid checkpointed activity retry sleep count ${String(G)} for step ${String(U)}`);return G}function KX($){let U=$.checkpointLocals.__weftActivityRetryState;return aj(U)?U:void 0}function OX($,U,J,G){let{["__weftActivityRetryState"]:X,...Q}=$.checkpointLocals,_=Object.keys(U).length>0,D=J!==void 0&&Object.keys(J).length>0,Y=G!==void 0&&Object.keys(G).length>0;if(!_&&!D&&!Y){$.checkpointLocals=Q;return}$.checkpointLocals={...Q,["__weftActivityRetryState"]:{version:1,attempts:U,...D?{completedRetrySleeps:J}:{},...Y?{dispatchedAt:G}:{}}}}function $N($,U,J){sW(J,U);let G=KX($),X=G?{...G.attempts}:{};X[String(U)]=J,OX($,X,G?.completedRetrySleeps,G?.dispatchedAt)}function Zu($,U){let J=KX($);if(!J)return;let G={...J.attempts};delete G[String(U)],OX($,G,J.completedRetrySleeps,J.dispatchedAt)}function UN($,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(Zu($,U),J===0)return;let G=KX($),X=G?{...G.attempts}:{},Q=G?{...G.completedRetrySleeps}:{};Q[String(U)]=J,OX($,X,Q,G?.dispatchedAt)}function JN($,U,J){let G=KX($),X=G?.dispatchedAt?.[String(U)];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed activity dispatch anchor ${String(X)} for step ${String(U)}`);let Q=G?{...G.attempts}:{},_=G?.dispatchedAt?{...G.dispatchedAt}:{};return _[String(U)]=J,OX($,Q,G?.completedRetrySleeps,_),J}function QN($){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=Z$($);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>XN)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${XN}ms (~24.8 days).`);return U}function _N($){return $===void 0?void 0:Z$($)}function DN($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function YN($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function ju($,U){return U-$.dispatchedAt>=$.budgetMs}function tj($,U,J,G){if($===void 0)return;if(!ju($,G??J))return;throw new GN(U,J-$.dispatchedAt,$.budgetMs,G!==void 0&&J-$.dispatchedAt<$.budgetMs?G-$.dispatchedAt:void 0)}var GN,sj,XN=2147483647;var ej=F(()=>{z$();r();GN=class GN extends E{activityName;elapsed;budget;projectedNextDispatchElapsed;constructor($,U,J,G){super("ActivityScheduleToCloseTimeoutError",G===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 ${G}ms after first dispatch, at or beyond the deadline)`);if(this.activityName=$,this.elapsed=U,this.budget=J,G!==void 0)this.projectedNextDispatchElapsed=G}};sj=class sj extends E{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 CX($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let J of U)if(!zu.has(J))return!1;for(let J of U)if(Fu.has(J))return!0;return!1}function t2($,U){let J=U===void 0?[]:Object.entries(U).filter(([G])=>G!==F3&&G!==Pu);if($===void 0){if(J.length===0)return Hu;return Object.fromEntries(J)}return{...Object.fromEntries(J),[F3]:$}}function ZN($,U){$.stateSession=U,$.checkpointLocals=t2(U,$.checkpointLocals)}function jN($,U,J){if(mU(U),$.stateSession&&nZ($.stateSession,U))return E4($.stateSession[U]);return J===void 0?void 0:E4(J)}function HN($,U,J){mU(U);let G=h2($.stateSession)??g2();return G[U]=E4(J),oZ(G),ZN($,G),E4(G[U])}function Lu($,U,J,G){return HN($,U,G(jN($,U,J)))}function qu($,U){if(mU(U),!$.stateSession||!nZ($.stateSession,U))return;let J=h2($.stateSession)??g2();delete J[U],ZN($,Object.keys(J).length===0?void 0:J)}function Vu($){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&&CX($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!CX(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function AX($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return $.accumulatedResults.get(J);let G=U();return $.accumulatedResults??=new Map,$.accumulatedResults.set(J,G),G}function PN($,U,J,G){let X=G!==void 0&&"initial"in G,Q=X?E4(G.initial):void 0;return{get:()=>AX(U,()=>jN(U,J,X?Q:void 0)),set:(P)=>AX(U,()=>HN(U,J,P)),update:(P)=>AX(U,()=>Lu(U,J,X?Q:void 0,P)),delete:()=>{AX(U,()=>{qu(U,J);return})},increment(P=1){return this.update((L)=>(L??0)+P)},decrement(P=1){return this.update((L)=>(L??0)-P)},merge(P){return this.update((L)=>({...L??{},...P}))},append(P){return this.update((L)=>[...L??[],P])},removeFirst(){let P;return this.update((L)=>{let q=[...L??[]];return P=q.shift(),q}),P},removeLast(){let P;return this.update((L)=>{let q=[...L??[]];return P=q.pop(),q}),P},run:(P,...L)=>{let q=Vu(L);if(!q.hasInput)return $.run(P,q.options);return $.run(P,q.input,q.options)}}}var Hu,Pu="sessionState",zu,Fu;var e2=F(()=>{I2();Hu=Object.freeze({}),zu=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),Fu=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"])});function FN($,U,J){let G={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:J,checkpointLocals:t2(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};zN.set($,G)}function g($){let U=zN.get($);if(!U)throw Error("Context internals not initialized");return U}var zN;var tU=F(()=>{e2();zN=new WeakMap});function Mu($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function Wu($,U){let J=U.at(-1);return U.length>0&&CX(J)&&(U.length>1||typeof $!=="string"&&Mu($))}function Nu($,U){let J=[...U],G=Wu($,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:G}}function Ku($,U,J){let G=_N(J);if(G===void 0)return;return{budgetMs:G,dispatchedAt:JN($,U,$.getNow())}}function Ou($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function Au($){return typeof $==="function"?$:void 0}function Cu($,U,J,G){let X=$.accumulatedResults?.has(U)??!1;if(X){let _=$.accumulatedResults?.get(U);if($.stepIndex+=eW($,U),$.explainMode)console.log(`[weft] ctx.run(${J}) \u2192 Returning cached result from step ${U}`);return{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:X,cachedResult:_,retryAttempt:1}}let Q=tW($,U);if(Q!==void 0)return $.stepIndex+=Q-2,{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:!1,retryAttempt:Q};return{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:X,retryAttempt:1}}function Ru($,U,J,G,X,Q){let _=Q?.queue??"default";if($.explainMode)console.log(`[weft] ctx.run(${J}, ${JSON.stringify(X)})`),console.log(` \u2192 Creating checkpoint at step ${U}`),console.log(` \u2192 Dispatching activity "${J}" to queue "${_}"`);return{type:"activity",operationId:crypto.randomUUID(),activityName:J,step:U,...G!==void 0?{fn:G}:{},input:X,callerStack:e(),...Q!==void 0?{options:Q}:{}}}function Tu($,U){let J=typeof $==="string"?void 0:$.retry,G=U?.retry;if(J===void 0&&G===void 0)return;return{...pV,...J,...G}}function Eu($,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 Su($,U,J){return U!==void 0&&J<U.maxAttempts&&!Eu($,U)}function xu($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function bu($,U,J,G){let{input:X,options:Q}=Nu(U,J),_=Ou(U,G),D=Au(U),Y=g($),Z=Y.stepIndex++,j=Cu(Y,Z,_,X);if(j.hasCachedResult)return j;let P=Tu(U,Q),L=DN(U,Q),q=YN(U,Q),W=q===void 0?Q:{...Q,timeout:q};return{request:Ru(Y,Z,_,D,X,W),step:Z,hasCachedResult:!1,retryAttempt:j.retryAttempt,...P===void 0?{}:{retryPolicy:P},...L===void 0?{}:{scheduleToCloseTimeout:L}}}function*LN($,U,J,G){let{request:X,step:Q,hasCachedResult:_,cachedResult:D,retryAttempt:Y,retryPolicy:Z,scheduleToCloseTimeout:j}=bu($,U,J,G);if(_)return D;let P=g($),L=Z===void 0?void 0:Ku(P,Q,j),q=Y;if(q>1){if(Z===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${q}`);yield*$.sleep(N3(q-1,Z))}while(!0){if(q>1)tj(L,X.activityName,P.getNow());try{let W=yield xu(X,q);return $.accumulatedResults.set(Q,W),UN(P,Q,q-1),W}catch(W){if(!Su(W,Z,q))throw W;let S=N3(q,Z),m=P.getNow();tj(L,X.activityName,m,m+S);let s=q+1;$N(P,Q,s),yield*$.sleep(S),q=s}}}var qN=F(()=>{z$();G6();ej();tU();e2()});class vu{workflowId;signal;#$=[];#U;#J=!1;constructor($,U){this.workflowId=$,this.signal=U}async step($,U){let{promise:J,resolve:G,reject:X}=Promise.withResolvers();return this.#$.push({name:$,fn:U,resolve:G,reject:X}),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*$H(){yield void 0}async function*UH(){yield void 0}function gu(){return $H().next(),UH().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf($H),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(UH),syncGeneratorPrototype:Object.getPrototypeOf($H.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(UH.prototype)}}function VN($){return Object.getPrototypeOf($)===hu}function BN($){return Object.getPrototypeOf($)===Iu}function MN($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let J=Object.getPrototypeOf(U);return J===yu||J===mu}var hu,Iu,yu,mu;var JH=F(()=>{({syncGeneratorFunctionPrototype:hu,asyncGeneratorFunctionPrototype:Iu,syncGeneratorPrototype:yu,asyncGeneratorPrototype:mu}=gu())});function $J($,U){let J=$.conditionWaiters.get(U);if(J)J()}function ku($){return uu.encode($).byteLength<=128}function RX($){if($.length===0)throw Error("signalId must be non-empty");if(!ku($))throw Error(`signalId must be at most ${String(128)} bytes`)}var uu;var WN=F(()=>{uu=new TextEncoder});async function CN($,U,J,G,X){let Q=z.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await fu($.storage,U,async()=>{let _=await $.storage.get(Q),D=await AN($,U,_),Y=ON($,U,J,D,Q);G(Y),await $.storage.batch(Y),X()});return}X$($.storage,"conditionalBatch","anonymous signal ordering");for(let _=0;_<NN;_+=1){let D=await $.storage.get(Q),Y=await AN($,U,D),Z=ON($,U,J,Y,Q);if(G(Z),await G$($.storage,[{key:Q,expectedValue:D}],Z)){X();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${NN} attempts`)}async function fu($,U,J){let G=KN.get($);if(!G)G=new Map,KN.set($,G);let X=G.get(U)??Promise.resolve(),Q,_=new Promise((Y)=>{Q=Y}),D=X.then(()=>_,()=>_);G.set(U,D);try{await X.catch(()=>{}),await J()}finally{if(Q(),G.get(U)===D)G.delete(U)}}function ON($,U,J,G,X){let Q=J.map(({signalName:_,payload:D},Y)=>({type:"put",key:z.signal(U,_,wu(G+Y)),value:s2(D,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return Q.push({type:"put",key:X,value:M(G+J.length)}),Q}function wu($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function AN($,U,J){if(J!==null)return du(J);return cu($,U)}async function cu($,U){let J=`sig:${N(U)}:`,G=0;for await(let[X]of $.storage.scan(J)){let Q=pu(X);if(Q!==null&&Q>=G)G=Q+1}return G}function pu($){let J=$.lastIndexOf(":anonymous%3A");if(J===-1)return null;let G=J+13,X=$.indexOf("%3A",G);if(X===-1)return null;let Q=Number($.slice(G,X));return Number.isSafeInteger(Q)&&Q>=0?Q:null}function du($){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 NN=5,KN;var RN=F(()=>{v();I();v4();KN=new WeakMap});function g4($,U,J){if(J.conditions.length===0&&J.operations.length===0)return;let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0){$.pendingAtomicWorkflowCommitSideEffects.set(U,{conditions:[...J.conditions],operations:[...J.operations]});return}G.conditions.push(...J.conditions),G.operations.push(...J.operations)}function TX($,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 EX($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function TN($,U,J){let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0)return!1;return G.operations.some((X)=>X.type==="put"&&X.key===J)}async function vN($,U,J,G,X,Q={}){let _=async(Y,Z,j)=>{await nu($,Y,[{signalName:Z,payload:j}],X,Q)},D=X.getComposedInterceptor();if(D){let Y,Z=!1;try{D.signalReceived({workflowId:U,signalName:J,payload:G,headers:new Map},(j)=>{if(Z)throw Error("signalReceived interceptor called next() more than once");Z=!0,Y=_(j.workflowId,j.signalName,j.payload)})}catch(j){if(Y)await Y;throw j}if(!Y)return;await Y}else await _(U,J,G)}function UJ($,U,J,G){let X=$.signalWaiters.get(J);if(!X)return;if(G&&X!==G)return;$.signalWaiters.delete(J),Z6($.signalWaitersByWorkflow,U,J)}async function nu($,U,J,G,X={}){if(J.length===0)return;let Q=await G.loadWorkflowState(U);if(Q&&M$(Q.status))return;let _=tu(J,X);if(eu(J,X,_),_!==void 0)X$($.storage,"conditionalBatch","signal idempotency");if(_!==void 0){let D=ru($,U,J,_);EN($,U,D);let Y=J[0],Z=z.signalAcceptedResponse(U,Y.signalName,_),j=M(bN);if(await $.storage.get(Z)!==null)return;if(!await G$($.storage,[{key:Z,expectedValue:null}],[...D,{type:"put",key:Z,value:j}]))return;SN($,U),xN($,U,J,G);return}await CN($,U,J,(D)=>EN($,U,D),()=>SN($,U)),xN($,U,J,G)}function ru($,U,J,G){return J.map(({signalName:X,payload:Q})=>({type:"put",key:z.signal(U,X,G),value:s2(Q,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function gN($,U,J,G,X){RX(X);let Q=z.startSignal(U,J,X),_=z.signalAcceptedResponse(U,J,X);return{operations:[{type:"put",key:Q,value:s2(G,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:_,value:M(bN)}],condition:{key:_,expectedValue:null}}}function EN($,U,J){if($.workflowsNeedingTerminalCleanup.has(U))return;J.push({type:"put",key:z.terminalCleanupNeeded(U),value:lu})}function SN($,U){$.workflowsNeedingTerminalCleanup.add(U)}function xN($,U,J,G){let X=!1;for(let{signalName:Q,payload:_,options:D}of J){if(D?.emitPublicEvent!==!1)G.dispatchEvent(new YX(U,Q,_)),G.broadcast({type:"signal:received",workflowId:U,signalName:Q});let Y=`${U}:${Q}`,Z=$.signalWaiters.get(Y);if(Z){UJ($,U,Y,Z),Z();continue}if($.parkedInlineWorkflows.has(U))X=!0}if(X)G.resumeParkedInlineWorkflow(U)}async function hN($,U,J){return await GH($,U,J)!==null}async function JJ($,U,J){let G=await GH($,U,J);if(G===null)return{found:!1};return g4($,U,{conditions:[{key:G.key,expectedValue:new Uint8Array(G.value)}],operations:[{type:"delete",key:G.key}]}),{found:!0,payload:R(G.value)}}async function XH($,U,J){let G=await GH($,U,J);return G===null?{found:!1}:{found:!0,payload:R(G.value)}}async function GH($,U,J){let G=N(U),X=N(J),Q=au(G,X);return await ou($,Q,G,X)}async function ou($,U,J,G){for await(let[X,Q]of $.storage.scan(U,{limit:1}))if(su(X,J,G))return{key:X,value:Q};return null}function au($,U){return`sig:${$}:${U}:`}function su($,U,J){let G=$.split(":");return G.length===iu&&G[0]==="sig"&&G[1]===U&&G[2]===J&&(G[3]==="0"||G[3]==="1")&&G[4]!==""}function tu($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function eu($,U,J){if(J!==void 0){RX(J);return}for(let G of $){let X=G.options?.signalId??U.signalId;if(X!==void 0)RX(X)}}function h4($,U,J){let G=$.get(U);if(!G){$.set(U,J);return}if(typeof G==="string"){if(G===J)return;$.set(U,new Set([G,J]));return}G.add(J)}function Z6($,U,J){let G=$.get(U);if(!G)return;if(typeof G==="string"){if(G===J)$.delete(U);return}if(G.delete(J),G.size===0){$.delete(U);return}if(G.size===1){let[X]=G;if(X!==void 0)$.set(U,X)}}var lu,bN,iu=5;var I4=F(()=>{v();I();J$();v4();WN();RN();_$();lu=new Uint8Array(0),bN={ok:!0}});async function IN($,U,J,G){let{promise:X,resolve:Q}=Promise.withResolvers(),_=!1;G({payload:U,respond:(Z)=>{if(_)return;_=!0,Q(Z)}});let Y;try{return await Promise.race([X,new Promise((Z,j)=>{Y=setTimeout(()=>j(new R3($,J)),J)})])}finally{clearTimeout(Y)}}var yN=F(()=>{fU()});async function mN($,U,J,G,X,Q){let _=X?.timeout??30000;await lN($,U,J,G),await Q.guardTerminalWorkflow(U);let D=await $k($,U,J,G,Q);if(D.handled)return D.value;let Y=await Uk($,U,J,G,_,Q);if(Y.handled)return Y.value;return await Jk($,U,J,G,_,Q)}async function $k($,U,J,G,X){let Q=$.inlineStrategy?.getContext(U)?.updateHandlers.get(J);if(!Q)return{handled:!1};let _=crypto.randomUUID();X.dispatchEvent(new J4(_,U,J,G));try{let D=await QH($,J,Q,G);return X.dispatchEvent(new w6(_,U,J,D)),X.broadcast({type:"update:completed",workflowId:U,updateId:_}),$J($,U),{handled:!0,value:D}}catch(D){let Y=D instanceof Error?D.message:String(D);throw X.dispatchEvent(new w6(_,U,J,void 0,Y)),X.broadcast({type:"update:completed",workflowId:U,updateId:_}),$J($,U),D}}async function Uk($,U,J,G,X,Q){let _=`${U}:${J}`,D=$.updateWaiters.get(_);if(!D)return{handled:!1};let Y=await Q.findPendingUpdateByName(U,J);if($.updateWaiters.get(_)!==D||Y)return{handled:!1};$.updateWaiters.delete(_),Z6($.updateWaitersByWorkflow,U,_);let Z=crypto.randomUUID();Q.dispatchEvent(new J4(Z,U,J,G));let j=await IN(Z,G,X,D);return Q.dispatchEvent(new w6(Z,U,J,j)),Q.broadcast({type:"update:completed",workflowId:U,updateId:Z}),{handled:!0,value:j}}async function Jk($,U,J,G,X,Q){let _=await $.updateCoordinator.createRequest(U,J,G);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,_),Q.dispatchEvent(new J4(_,U,J,G)),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:_,workflowId:U,name:J,payload:G,createdAt:Date.now()});let D=await $.updateCoordinator.waitForResponse(_,X);if(D.error)throw Error(D.error);return D.result}async function uN($,U){return $.updateCoordinator.getResponse(U)}async function kN($,U,J,G,X,Q){let _=X?.timeout??30000,D=X?.idempotencyKey;if(D!==void 0){let L=await $.updateCoordinator.checkIdempotency(U,D);if(L!==null)return{updateId:L.updateId,result:L.result}}await lN($,U,J,G),await Q.guardTerminalWorkflow(U);let Y={timeout:_};if(D!==void 0)Y.idempotencyKey=D;let Z=await $.updateCoordinator.createRequest(U,J,G,Y);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,Z),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Z,workflowId:U,name:J,payload:G,createdAt:Date.now(),idempotencyKey:D},!0);let j=await $.updateCoordinator.waitForResponse(Z,_),P={updateId:j.updateId,result:j.result};if(j.error!==void 0)P.error=j.error;return P}async function fN($,U,J,G){let X=`${U}:${J.updateName}`,Q=await G.findPendingUpdateByName(U,J.updateName);if(Q){await $.updateCoordinator.deleteRequest(U,Q.updateId),G.dispatchPendingUpdateReceived(U,J.updateName,Q),G.completeOperation(U,{payload:Q.payload,respond:G.createCoordinatedUpdateResponder(U,J.updateName,Q)});return}let{promise:_,resolve:D}=Promise.withResolvers();$.updateWaiters.set(X,D),h4($.updateWaitersByWorkflow,U,X);let Y=await G.findPendingUpdateByName(U,J.updateName);if(Y){if($.updateWaiters.get(X)===D)$.updateWaiters.delete(X),Z6($.updateWaitersByWorkflow,U,X);await $.updateCoordinator.deleteRequest(U,Y.updateId),G.dispatchPendingUpdateReceived(U,J.updateName,Y),G.completeOperation(U,{payload:Y.payload,respond:G.createCoordinatedUpdateResponder(U,J.updateName,Y)});return}G.completeOperation(U,await _)}function wN($,U,J,G,X){X.dispatchEvent(new J4(G.updateId,U,J,G.payload))}function cN($,U,J,G,X){let Q=!1;return(_)=>{if(Q)return;Q=!0,X.persistCoordinatedUpdateResponse(U,J,G.updateId,G.idempotencyKey,_)}}async function pN($,U,J,G=!1,X){let Q=`${U}:${J.name}`,_=$.updateWaiters.get(Q);if(!_)return!1;let D=await X.findPendingUpdateByName(U,J.name);if(!D||D.updateId!==J.updateId)return!1;if(await $.updateCoordinator.deleteRequest(U,J.updateId),$.updateWaiters.delete(Q),Z6($.updateWaitersByWorkflow,U,Q),G)X.dispatchPendingUpdateReceived(U,J.name,J);return _({payload:J.payload,respond:X.createCoordinatedUpdateResponder(U,J.name,J)}),!0}async function dN($,U,J){return(await $.updateCoordinator.getPendingUpdates(U)).find((X)=>X.name===J)}async function QH($,U,J,G){let X=J(G);if(MN(X))throw TypeError(`Update handler "${U}" returned a generator. Update handlers must return a plain value or a Promise, not a generator.`);return await X}async function lN($,U,J,G){let X=$.inlineStrategy?.getContext(U)?.updateValidators.get(J);if(X===void 0)return;let Q;try{Q=await X(G)}catch(D){let Y=D instanceof Error?D.message:String(D);throw new P1(J,[{message:Y}])}let _=_H(Q);if(_!==null&&_.length>0)throw new P1(J,_)}function _H($){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 G=J;if(typeof G.message!=="string")return[];let X={message:G.message};if(Array.isArray(G.path)&&G.path.length>0)X.path=G.path.reduce((Q,_)=>{let D=_!==null&&typeof _==="object"&&"key"in _?String(_.key):String(_);return Q+"/"+D.replace(/~/g,"~0").replace(/\//g,"~1")},"");return[X]})}var eU=F(()=>{J$();JH();fU();I4();yN()});function iN($,U,J,G){let X=$.handleCache.get(U);if(!X)return;let Q=X.ref.deref();if(!Q)return;Q.dispatchEvent(J)}function nN($,U,J,G,X){wN($,U,J,G,{dispatchEvent:X.dispatchEvent})}function y4($,U,J){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var SX=F(()=>{eU()});function Qk($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function _k($){return $.type!==void 0&&$.type.trim().length>0}function Dk($){return(B$($.tags)?.length??0)>0}function Yk($){return $.attributes?.some((U)=>R$(U.key).trim().length>0)??!1}function Zk($){return $.idPrefix!==void 0&&$.idPrefix.length>=Xk}function Hk($){return Object.values(jk).some((U)=>U($))}function m4($){if(!Hk($))throw Error(Gk);return $}var Xk=3,Gk='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (\u22653 chars), or failureCategory paired with status',jk;var DH=F(()=>{d$();D6();jk={status:Qk,type:_k,tags:Dk,attributes:Yk,idPrefix:Zk}});var Q4,T1=1,YH="weft:schema-version";var ZH=F(()=>{r();Q4=class Q4 extends E{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 zk($){let U=$.slice(0,Pk),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}var t$,XJ,E1,GJ,rN=20,Pk=10,QJ,S1,K6,$0,x1,_J,DJ,YJ,ZJ,u4;var L$=F(()=>{r();ZH();t$=class t$ extends E{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}};XJ=class XJ extends E{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=$}};E1=class E1 extends E{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}};GJ=class GJ extends E{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}};QJ=class QJ extends E{registeredTypes;missingTypes;missingWorkflowSamples;missingWorkflowCount;samplesTruncated;constructor($){let U=$.missingWorkflows.length,J=[...new Set($.missingWorkflows.map((Q)=>Q.type))].toSorted(),G=[...$.registeredTypes].toSorted(),X=zk(J);super("WorkflowTypeNotRegisteredForRecoveryError",`Cannot recover ${U} running workflow(s): workflow type(s) not registered: ${X}. Register the missing workflow types before calling \`recoverAll()\`, or pass `+"`{ acknowledgeUnknownWorkflowTypes: true }` (dangerous \u2014 see migration docs).");this.registeredTypes=G,this.missingTypes=J,this.missingWorkflowSamples=$.missingWorkflows.slice(0,rN).map((Q)=>({...Q})),this.missingWorkflowCount=U,this.samplesTruncated=U>rN}};S1=class S1 extends E{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}};K6=class K6 extends E{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}};$0=class $0 extends E{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}};x1=class x1 extends E{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}};_J=class _J extends E{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}};DJ=class DJ extends E{constructor($){super("WorkflowSuspendNotSupportedError",$)}};YJ=class YJ extends E{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}};ZJ=class ZJ extends E{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}};u4=class u4 extends E{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 b1;var xX=F(()=>{r();b1=class b1 extends E{workflowId;timeoutType;elapsed;constructor($,U,J){super("WorkflowTimeoutError",`Workflow "${$}" exceeded ${U} timeout after ${J}ms`);this.workflowId=$,this.timeoutType=U,this.elapsed=J}}});function jH($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function bX($){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 HH($){return Fk.encode(JSON.stringify($))}function qk($){return typeof $==="object"&&$!==null}function vX($){let U;try{U=JSON.parse(Lk.decode($))}catch{return null}if(!qk(U))return null;let{holderId:J,expiresAt:G,epoch:X}=U;if(typeof J!=="string"||typeof G!=="number"||!Number.isSafeInteger(G)||G<0||typeof X!=="number"||!Number.isSafeInteger(X)||X<1)return null;return{holderId:J,expiresAt:G,epoch:X}}var Fk,Lk;var PH=F(()=>{Fk=new TextEncoder,Lk=new TextDecoder});function jJ($){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 zH="WeftEngineLeaseLostWarning";var U0,v1,HJ,PJ;var gX=F(()=>{r();U0=class U0 extends E{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}};v1=class v1 extends E{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).`)}};HJ=class HJ extends E{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()`.")}};PJ=class PJ extends E{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 zJ($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new HJ}async function oN($,U,J){let G=Vk($);if(G===null){if(J.length===0)return await $.storage.batch(U),"committed";return await G$($.storage,J,U)?"committed":"lost-race"}let X=[...J,{key:z.leaseEpoch(),expectedValue:G}];if(await G$($.storage,X,U))return"committed";if(await Mk($,G))throw jJ($),new PJ;return"lost-race"}function Vk($){if($.deposed)throw new PJ;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw jJ($),new PJ;return U}async function D$($,U,J,G){if(await oN($,U,J)==="lost-race")throw G()}async function J0($,U,J){return await oN($,U,J)==="committed"}function Bk($,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 Mk($,U){let J;try{J=await $.storage.get(z.leaseEpoch())}catch{return!0}if(J===null)return!0;if(bX(J)===null)return!0;return!Bk(U,J)}var O6=F(()=>{v();PH();gX()});async function*tN($,U,J){let G={events:[],resolver:void 0},X={done:!1},Q=Wk($,G,X);try{if(!X.done)Kk(G,X,await U(),J);while(!X.done||G.events.length>0){if(G.events.length===0)await Ok(G);while(G.events.length>0)yield G.events.shift()}}finally{Q()}}function Wk($,U,J){let G=eN.bind(void 0,U),X=Nk.bind(void 0,J,U);for(let Q of aN)$.addEventListener(Q,G);for(let Q of sN)$.addEventListener(Q,X);return()=>{for(let Q of aN)$.removeEventListener(Q,G);for(let Q of sN)$.removeEventListener(Q,X)}}function eN($,U){$.events.push(U),$.resolver?.()}function Nk($,U,J){if($.done)return;$.done=!0,eN(U,J)}function Kk($,U,J,G){if(!J||U.done)return;let X=G(J);if(!X)return;$.events.push(X),U.done=!0}async function Ok($){let{promise:U,resolve:J}=Promise.withResolvers();$.resolver=J,await U,$.resolver=void 0}var aN,sN;var $K=F(()=>{rj();aN=["activity:started","activity:completed","signal:received"],sN=fW});function A6($){return $.startedAt??$.createdAt}function UK($){switch($.status){case"completed":{let U=$.updatedAt-A6($);return new A1($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new X4($.id,U)}case"cancelled":return new C1($.id);case"timed-out":{let U=$.updatedAt-A6($);return new G4($.id,"execution",U,$.terminationReason)}default:return null}}var FJ,LJ;var k4=F(()=>{J$();xX();G6();$K();FJ=Symbol("handleResultPromise");LJ=class LJ extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[FJ](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,a$($),U,J)}async update($,U,J){return this.#$.update(this.id,a$($),U,J)}async query($,U){return this.#$.query(this.id,a$($),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*tN(this,()=>this.#$.get(this.id),UK)}[Symbol.observable](){return{subscribe:($)=>{let U=new AbortController,J=$.next?.bind($),G=["workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","activity:started","activity:completed"],X=!1;if(J){let Y=(Z)=>{if(X)return;J(Z)};for(let Z of G)this.addEventListener(Z,Y,{signal:U.signal})}let Q=(Y)=>{if(X)return;if(Y instanceof X4)X=!0,$.error?.(Y.error);else if(Y instanceof G4)X=!0,$.error?.(new b1(Y.workflowId,Y.timeoutType,Y.elapsed))};this.addEventListener("workflow:failed",Q,{signal:U.signal}),this.addEventListener("workflow:timed-out",Q,{signal:U.signal});let _=$.complete?.bind($),D=()=>{if(X)return;X=!0,_?.()};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||X||!Y)return;let Z=UK(Y);if(!Z)return;if(J?.(Z),Z instanceof X4)Q(Z);else if(Z instanceof G4)Q(Z);else D()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}});function Ak($,U,J){if(J===void 0||J<=0)return 0;let G=BigInt(`0x${j8(`${$}\x00${U}`)}`);return Number(G%BigInt(J))}function X0($,U){return U+Ak($.id,U,$.jitterMs)}var hX=F(()=>{x6()});function XK(){return"UTC"}function GK($){let U=JK.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 JK.set($,J),J}function Rk($,U){let G=GK(U).formatToParts(new Date($)).find((Y)=>Y.type==="timeZoneName")?.value,X=/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/.exec(G??"");if(!X)return 0;let Q=X[1]==="-"?-1:1,_=Number.parseInt(X[2],10),D=Number.parseInt(X[3]??"0",10);return Q*(_*60+D)*60000}function FH($,U){let J=GK(U).formatToParts(new Date($)),G=new Map(J.map((_)=>[_.type,_.value])),X=G.get("weekday"),Q=X?Ck.get(X):void 0;if(Q===void 0)throw Error(`Unable to resolve weekday for time zone "${U}"`);return{year:Number.parseInt(G.get("year")??"",10),month:Number.parseInt(G.get("month")??"",10),day:Number.parseInt(G.get("day")??"",10),hour:Number.parseInt(G.get("hour")??"",10),minute:Number.parseInt(G.get("minute")??"",10),second:Number.parseInt(G.get("second")??"",10),dayOfWeek:Q}}function Tk($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function f4($,U,J){let G=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),X=G;for(let D=0;D<6;D+=1){let Y=Rk(X,U),Z=G-Y;if(Z===X)break;X=Z}let Q=new Set;for(let D=-120;D<=120;D+=15)Q.add(X+D*60000);return[...Q].filter((D)=>D>=J).filter((D)=>Tk($,FH(D,U))).toSorted((D,Y)=>D-Y)[0]??null}function IX($,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 qJ($,U){for(let J of $)if(J>U)return{value:J,wrapped:!1};return{value:$[0],wrapped:!0}}function QK($,U){let J=U.daysOfMonth.values.includes($.day),G=U.daysOfWeek.values.includes($.dayOfWeek);if(U.daysOfMonth.wildcard&&U.daysOfWeek.wildcard)return!0;if(U.daysOfMonth.wildcard)return G;if(U.daysOfWeek.wildcard)return J;return J||G}var Ck,JK;var _K=F(()=>{Ck=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),JK=new Map});function DK($,U,J,G){let X=$.toUpperCase();if(U?.has(X))return U.get(X);let Q=Number.parseInt($,10);if(!Number.isInteger(Q))throw Error(`Invalid cron token "${$}"`);let _=G===6&&Q===7?0:Q;if(_<J||_>G)throw Error(`Cron token "${$}" is outside the allowed range ${J}-${G}`);return _}function xk($,U){return{values:Array.from({length:U-$+1},(J,G)=>$+G),wildcard:!0}}function bk($,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 YK($,U,J,G){for(let X=U;X<=J;X+=G)$.add(X)}function vk($,U,J,G,X){let[Q="",_]=U.split("/"),D=bk(U,_);if(Q==="*"||Q==="?"){YK($,J,G,D);return}let[Y,Z]=Q.split("-"),j=DK(Y,X,J,G),P=Z===void 0?j:DK(Z,X,J,G);if(j>P)throw Error(`Invalid cron range "${U}"`);YK($,j,P,D)}function G0($,U,J,G){let X=$.trim();if(X==="*"||X==="?")return xk(U,J);let Q=new Set,_=X.split(",");for(let D of _){let Y=D.trim();if(Y.length===0)throw Error(`Invalid cron field "${$}"`);vk(Q,Y,U,J,G)}return{values:[...Q].toSorted((D,Y)=>D-Y),wildcard:!1}}function g1($){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,[G,X,Q,_,D,Y]=J?U:["0",...U];return{expression:$,hasSeconds:J,seconds:G0(G,0,59),minutes:G0(X,0,59),hours:G0(Q,0,23),daysOfMonth:G0(_,1,31),months:G0(D,1,12,Ek),daysOfWeek:G0(Y,0,6,Sk)}}var Ek,Sk;var LH=F(()=>{Ek=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]]),Sk=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]])});function h1($){return $+1000}function gk($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function hk($,U,J,G){let X=qJ(J.months.values,U.month);return f4({year:U.year+(X.wrapped?1:0),month:X.value,day:1,hour:0,minute:0,second:0},G,h1($))??$+86400000}function ZK($,U,J){return f4(IX(gk(U),{days:1}),J,h1($))??$+86400000}function Ik($,U,J,G){let X=qJ(J.hours.values,U.hour);return f4({year:U.year,month:U.month,day:U.day,hour:X.value,minute:0,second:0},G,h1($))??ZK($,U,G)}function yk($,U,J,G){let X=qJ(J.minutes.values,U.minute),Q=f4({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:X.value,second:0},G,h1($));if(Q!==null)return Q;return f4(IX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),G,h1($))??$+3600000}function mk($,U,J,G){let X=qJ(J.seconds.values,U.second),Q=f4({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:X.value},G,h1($));if(Q!==null)return Q;return f4(IX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),G,h1($))??$+60000}function yX($,U,J){let G=typeof $==="string"?g1($):$,X=J?.timeZone??XK(),Q=T$(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let _=0;_<1e5;_+=1){let D=FH(Q,X);if(!G.months.values.includes(D.month)){Q=hk(Q,D,G,X);continue}if(!QK(D,G)){Q=ZK(Q,D,X);continue}if(!G.hours.values.includes(D.hour)){Q=Ik(Q,D,G,X);continue}if(!G.minutes.values.includes(D.minute)){Q=yk(Q,D,G,X);continue}if(!G.seconds.values.includes(D.second)){Q=mk(Q,D,G,X);continue}return Q}throw Error(`Could not find the next cron occurrence for "${G.expression}"`)}function qH($,U,J,G){let X=typeof $==="string"?g1($):$,Q=[],_=G?.maxOccurrences;if(_!==void 0&&(!Number.isSafeInteger(_)||_<=0))throw Error("Cron occurrence maxOccurrences must be a positive safe integer");let D=_??Number.POSITIVE_INFINITY,Y=U;while(Y<=J&&Q.length<D)Q.push(Y),Y=yX(X,Y,G);return Q}var jK=F(()=>{z$();_K();LH()});var HK=F(()=>{jK();LH()});var VH=F(()=>{HK()});function VJ($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function uk($){return typeof $==="string"&&BH.has($)}function kk($){return typeof $==="string"&&MH.has($)}function mX($){if(typeof $!=="string")return!1;try{return W1($,"schedule id"),!0}catch{return!1}}function w4($,U){return W1($,U)}function FK($){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:G,jitter:X}=$,Q={overlap:"skip",backfill:!1};if(U!==void 0)Q.id=w4(U,"options.id");if(J!==void 0){if(!MH.has(J))throw Error(`options.overlap must be one of ${[...MH].join(", ")}`);Q.overlap=J}if(G!==void 0){if(typeof G!=="boolean")throw Error("options.backfill must be a boolean when provided");Q.backfill=G}if(X!==void 0)Q.jitterMs=fk(X,"options.jitter");return Q}function fk($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let J;try{J=Z$($)}catch(X){let Q=X instanceof Error?X.message:String(X);throw Error(`Invalid ${U}: ${Q}`,{cause:X})}let G=Math.ceil(J);if(!Number.isSafeInteger(G)||G<=0)throw Error(`${U} must resolve to a positive number of milliseconds`);return G}function wk($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=Z$($)}catch(G){let X=G instanceof Error?G.message:String(G);throw Error(`Invalid schedule interval "every": ${X}`,{cause:G})}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 PK($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return g1($),{kind:"cron",cronExpression:$}}function WH($){if(typeof $==="string")return PK($);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?wk($.every):PK($.cron)}function ck($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let J of U)if(!BH.has(J))throw Error(`filter.status must be one of ${[...BH].join(", ")}`)}function pk($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function zK($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function LK($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return ck($.status),pk($.workflowType),zK($.limit,"limit"),zK($.offset,"offset"),$}function W$($,U){let J=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${J} ${U}.`),null}function dk($,U){let{cronExpression:J,intervalMs:G}=$,X=J!==void 0,Q=G!==void 0;if(X===Q)return W$(U,"with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");if(Q){if(typeof G!=="number"||!Number.isSafeInteger(G)||G<=0)return W$(U,"with invalid intervalMs");return{intervalMs:G}}if(typeof J!=="string")return W$(U,"with invalid cronExpression");try{g1(J)}catch{return W$(U,"with invalid cronExpression")}return{cronExpression:J}}function lk($){let U=$.id;if(!mX(U))return W$(void 0,"with invalid id");let J=$.workflowType;if(typeof J!=="string"||J.length===0)return W$(U,"with invalid workflowType");let G=dk($,U);if(!G)return null;let X=$.status;if(!uk(X))return W$(U,"with invalid status");let Q=$.overlap;if(!kk(Q))return W$(U,"with invalid overlap policy");return{id:U,workflowType:J,status:X,overlap:Q,...G}}function ik($,U){let J=$.backfill;if(typeof J!=="boolean")return W$(U,"with invalid backfill flag"),null;return J}function nk($,U){let J=$.jitterMs;if(J===void 0)return;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<=0)return W$(U,"with invalid jitterMs"),null;return J}function rk($,U){let{createdAt:J,updatedAt:G}=$;if(!VJ(J)||!VJ(G))return W$(U,"with invalid timestamps");let X=$.lastFireAt;if(X!==void 0&&!VJ(X))return W$(U,"with invalid lastFireAt");let Q=$.lastMissedFireAt;if(Q!==void 0&&!VJ(Q))return W$(U,"with invalid lastMissedFireAt");return{createdAt:J,updatedAt:G,...X!==void 0&&{lastFireAt:X},...Q!==void 0&&{lastMissedFireAt:Q}}}function ok($,U){let J=$.nextFireAt;if(J===void 0)return W$(U,"with invalid nextFireAt"),{ok:!1};if(J!==null&&!VJ(J))return W$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:J}}function ak($,U){let J=$.currentWorkflowId;if(J===void 0)return{ok:!0};if(!mX(J))return W$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:J}}function sk($,U){let J=$.queuedRuns;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return W$(U,"with invalid queuedRuns"),null;return J}function tk($,U){let J=$.missedFireCount;if(J===void 0)return 0;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return W$(U,"with invalid missedFireCount"),null;return J}function ek($,U){let J=ik($,U);if(J===null)return null;let G=nk($,U);if(G===null)return null;let X=rk($,U);if(X===null)return null;let Q=ok($,U);if(!Q.ok)return null;let _=ak($,U);if(!_.ok)return null;let D=sk($,U);if(D===null)return null;let Y=tk($,U);if(Y===null)return null;return{backfill:J,...G!==void 0&&{jitterMs:G},...X,nextFireAt:Q.value,..._.value!==void 0&&{currentWorkflowId:_.value},missedFireCount:Y,queuedRuns:D}}function BJ($){let U=R($);if(!k6(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let J=lk(U);if(!J)return null;let G=ek(U,J.id);if(!G)return null;return{...J,input:U.input,...G}}var BH,MH;var uX=F(()=>{I();c2();VH();z$();$4();BH=new Set(["active","paused","cancelled"]),MH=new Set(["skip","queue","cancel-running","allow"])});async function j6($,U,J){let X=($.workflowStateWriteChains.get(U)??Promise.resolve()).catch(()=>{return}).then(J),Q=X.then(()=>{return},()=>{return});$.workflowStateWriteChains.set(U,Q);try{return await X}finally{if($.workflowStateWriteChains.get(U)===Q)$.workflowStateWriteChains.delete(U)}}async function i($,U){let J=await $.storage.get(z.workflow(U));if(!J)return null;return n(J)}async function qK($,U){let J=await i($,U);if(!J)throw Error(`Workflow "${U}" not found`);if(J.status==="completed")return J.result;if(J.status==="failed"){let G=Error(J.error??"Workflow failed");if(J.errorStack)G.stack=J.errorStack;throw G}if(J.status==="cancelled")throw Error("Workflow cancelled");if(J.status==="timed-out"){let G=J.executionDeadline?J.executionDeadline-A6(J):0;throw new b1(U,"execution",G)}throw Error(`Workflow "${U}" is still ${J.status}`)}function $f($,U,J,G){let X=G.includePendingAtomicSideEffects?TX($,U):void 0,Q=X===void 0?J:[...J,...X.operations],D=$.storage.capabilities().conditionalBatch?X?.conditions??[]:[];return{operations:Q,conditions:D,hasPendingSideEffects:X!==void 0}}async function kX($,U,J,G={}){let X=$f($,U.id,J,G);if(await D$($,X.operations,X.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),X.hasPendingSideEffects)EX($,U.id)}async function I1($,U){let J=await $.storage.get(z.schedule(U));return J?BJ(J):null}async function MJ($,U){let J=await I1($,U);if(!J)throw Error(`Schedule "${U}" not found`);return J}async function H6($,U,J){let G=[{type:"put",key:z.schedule(U.id),value:M(U)}];if((J?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let Q=X0(U,U.nextFireAt);G.push(...P$({id:oU(U.id),workflowId:U.id,fireAt:Q,kind:"schedule"}))}await $.storage.batch(G)}async function VK($,U){let J=await $.storage.get(z.workflowHeaders(U));if(!J)return;return DW(J)}var E$=F(()=>{v();I();z$();xX();O6();k4();hX();U$();_$();uX()});async function NH($,U,J){if(J===void 0){let X=await $.storage.get(z.attribute(U));if(!X)return;J=R(X)}let G=O$(U,J,{});if(G.push({type:"delete",key:z.attribute(U)}),G.length>0)await $.storage.batch(G)}function fX($,U){return{...Object.fromEntries(Object.entries($).filter(([G])=>G.startsWith("weft:"))),...U}}async function KH($,U,J){if(Object.keys(J).length===0)return;let G=O$(U,{},J);await $.storage.batch([{type:"put",key:z.attribute(U),value:M(J)},...G])}function Q0($,U){let J=[];if(M$($.status))J.push({type:"delete",key:z.terminalWorkflow($.updatedAt,$.id)});if(M$(U.status))J.push({type:"put",key:z.terminalWorkflow(U.updatedAt,U.id),value:Uf});return J}async function OH($,U,J,G={}){return await j6($,U,async()=>{let X=await $.storage.get(z.workflow(U));if(!X)return null;let Q=n(X);if(G.allowedStatuses&&!G.allowedStatuses.includes(Q.status))return null;let _=$.options.getNow(),D={...Q,...J,updatedAt:_},Y=G.buildAdditionalOperations?.(Q,_)??[];return await kX($,Q,[...Q0(Q,D),{type:"put",key:z.workflow(U),value:M(D)},...y$(U,Q,D).batchOps,...Y],{includePendingAtomicSideEffects:M$(D.status)}),{previousState:Q,updatedAt:_}})}async function wX($,U,J,G){return await j6($,U,async()=>{let X=await $.storage.get(z.workflow(U));if(!X)throw new $0(U);let Q=n(X),_=B$(Q.tags)??[],D=Gf(J,"Workflow tags")??[];if(D.length===0)return!1;let Y=Jf(_,D,G);if(Xf(_,Y))return!1;let Z={...Q,updatedAt:$.options.getNow()};if(Y!==void 0)Z.tags=Y;else delete Z.tags;return await $.storage.batch([...Q0(Q,Z),{type:"put",key:z.workflow(U),value:M(Z)},...y$(U,Q,Z).batchOps,...cU(U,_,Y)]),!0})}function Jf($,U,J){let G=new Set($);for(let Q of U)if(J==="add")G.add(Q);else G.delete(Q);let X=B$([...G]);if(J==="add"&&X!==void 0)Ej(X,"Workflow tags");return X}function Xf($,U){return $.length===(U?.length??0)&&$.every((J,G)=>J===U?.[G])}async function BK($,U,J,G,X){m4(U);let Q=X??await Qf($,U),_=0;for(let D of Q){let Y=!1;try{Y=await wX($,D,J,G)}catch(Z){if(!(Z instanceof $0))throw Z}if(Y)_+=1}return{modified:_}}function _0($){for(let[U,J]of Object.entries($))if(Array.isArray(J))for(let G of J)Bj(K$(G),U);else Bj(K$(J),U)}function Gf($,U="options.tags"){if($===void 0)return;return B$(f3($,U))}async function Qf($,U){let J=[],G=iU(U?.offset,"offset")??0,X=iU(U?.limit,"limit");if(X===0)return J;for await(let Q of a3($,U)){if(G>0){G-=1;continue}if(J.push(Q.id),X!==void 0)X-=1;if(X===0)return J}return J}var Uf;var D0=F(()=>{v();DH();I();d$();$4();D6();L$();E$();_$();s$();a2();Uf=new Uint8Array(0)});function pX($,U,J){let G=cX.get($);if(!G)G=new Map,cX.set($,G);G.set(U,new Uint8Array(J))}function MK($,U){let J=cX.get($)?.get(U);return J?new Uint8Array(J):void 0}function c4($,U){cX.get($)?.delete(U)}var cX;var y1=F(()=>{cX=new WeakMap});async function NK($,U,J){let G=U===void 0?void 0:x3(U),X=B$(G?.tags),Q=await $X($,G,X),_=Q!==null?await _f($,Q,G,X,J):await Df($,G,X,J);return ZW(Zf(_),G)}async function _f($,U,J,G,X){let Q=[...U];if(Q.length>f6)throw new K1(f6);let _=[];for(let D=0;D<Q.length;D+=Y6){let Y=Q.slice(D,D+Y6),Z=await Promise.all(Y.map((L)=>$.storage.get(z.workflow(L)))),j=await UX($,Z,J),P=[];for(let L of Z){if(!L)continue;let q=n(L);if(!U4(q,J,U,G,j.get(q.id)??null))continue;P.push(q)}_.push(...await Yf($,P,X))}return _}async function Df($,U,J,G){let X=[],Q=0;for await(let[_,D]of $.storage.scan("wf:")){if(!o2(_))continue;if(Q+=1,Q>f6)throw new K1(f6);let Y=n(D),Z=await JX($,Y.id,U);if(!U4(Y,U,null,J,Z))continue;let j=KK(Y,G)?await $.storage.get(z.attribute(Y.id)):null;X.push(CK(Y,OK(j)))}return X}async function Yf($,U,J){let G=new Map;return await Promise.all(U.map(async(X)=>{if(!KK(X,J))return;G.set(X.id,await $.storage.get(z.attribute(X.id)))})),U.map((X)=>CK(X,OK(G.get(X.id)??null)))}function KK($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function OK($){if($===null)return;let U=R($);if(!AK(U))return;let J=U.failureCategory;if(wU(J))return J;return E3(J)}function AK($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function CK($,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 Zf($){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*AH($,U){yield*a3($,U)}async function*CH($,U){let J=jf(U);if(WK(J))return;let G=[];for await(let X of AH($,U)){if(Hf(J))continue;if(G.push(X),Pf(J),G.length===dX)yield G,G=[];if(WK(J))break}if(G.length>0)yield G}function jf($){return{remainingOffset:iU($?.offset,"offset")??0,remainingLimit:iU($?.limit,"limit")}}function Hf($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function Pf($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function WK($){return $.remainingLimit===0}async function RK($,U){let J=await $.storage.get(z.attribute(U));if(!J)return null;let G=R(J);if(!AK(G))return null;return G}async function TK($,U,J){let G=await $.storage.get(z.workflow(U));if(G){let Z=n(G),j=$.registrations.get(Z.type);if(j?.searchAttributes){let P=j.searchAttributes;for(let[L,q]of Object.entries(J)){if(!(L in P))throw Error(`Unknown search attribute "${L}". Registered attributes: ${Object.keys(P).join(", ")}`);pU(L,q,P[L])}}}_0(J);let X=await $.storage.get(z.attribute(U)),Q=X?R(X):{},_={...Q,...J},D=O$(U,Q,_),Y=[{type:"put",key:z.attribute(U),value:M(_)},...D];await $.storage.batch(Y)}async function EK($,U,...J){await wX($,U,J,"add")}async function SK($,U,...J){await wX($,U,J,"remove")}var dX=1000;var WJ=F(()=>{v();I();S4();Vj();d$();D6();D0();dj();lj();U$();_$();s$();a2()});async function NJ($,U,J,G){let{effectiveLimit:X,manualOffset:Q}=Lf($,U,J.limit);if(X===0)return{deleted:0};let _=Q,D=0,Y=J.expiredOnly&&U===void 0?Ff($,J.now):AH($,U);for await(let Z of Y){if(!await Mf($,Z,J.expiredOnly,J.now))continue;if(_>0){_-=1;continue}if(await RH($,Z,G),D+=1,X!==void 0&&D>=X)break}return{deleted:D}}function zf($){let U=null,J=(G)=>{for(let X of[G?.completed,G?.failed,G?.cancelled,G?.timedOut]){if(X===void 0)continue;U=U===null?X:Math.min(U,X)}};J($.options.retention);for(let G of $.registrations.values())J(G.retention);return U}async function*Ff($,U){let J=zf($);if(J===null)return;let G=z.terminalWorkflowPrefix(),X=U-J,Q=`${G}${String(X).padStart(16,"0")}:\xFF`;for await(let[_]of $.storage.scan(G,{lte:Q})){let D=_.slice(_.lastIndexOf(":")+1),Y=S6(D);if(Y===null)continue;let Z=await $.storage.get(z.workflow(Y));if(!Z){await $.storage.delete(_);continue}let j=n(Z);if(!M$(j.status))continue;yield j}}function Lf($,U,J){return{manualOffset:qf(U?.offset),effectiveLimit:Bf(Vf(U?.limit),J)}}function qf($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function Vf($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function Bf($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function Mf($,U,J,G){if(!M$(U.status))return!1;if(await b$($.storage,z.teardownOwed(U.id)))return!1;if(!J)return!0;let X=Wf($,U);return X!==null&&X<=G}function Wf($,U){if(!M$(U.status))return null;let J=$.registrations.get(U.type)?.retention??$.options.retention,G=UW(J,U.status);if(G===void 0)return null;return U.updatedAt+G}async function RH($,U,J){let G=await TH($,U);await $.storage.batch(G),EH($,U.id,J)}async function TH($,U){let J=U.id,G=await $.storage.get(z.attribute(J)),X=Nf(U,G),Q=await Af($,U);return If(X,Q),X.push(...y$(J,U,null).batchOps),X}function EH($,U,J){c4($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[G,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(G);$.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 Nf($,U){return[...Kf($.id,U),...Of($)]}function Kf($,U){if(!U)return[];let J=R(U);return O$($,J,{}).filter(xK)}function Of($){return cU($.id,B$($.tags),void 0).filter(xK)}function xK($){return $.type==="delete"}async function Af($,U){let J=U.id,G=Cf(U);return Rf(G,U),Tf(G,U),await Sf($.storage,G,J),await bf($.storage,G,J),G}function Cf($){return new Set([z.workflow($.id),z.checkpoint($.id),z.workflowHeaders($.id),z.terminalCleanupNeeded($.id),z.workflowConcurrencyHolder($.id),z.workflowHasServices($.id),z.finalizerState($.id),z.teardownOwed($.id),z.attribute($.id),z.terminalWorkflow($.updatedAt,$.id)])}function Rf($,U){if(U.executionDeadline===void 0)return;$.add(z.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function Tf($,U){if(U.terminalCleanupToken===void 0)return;let J=aU(Ef(U),U.terminalCleanupToken);$.add(z.terminalCleanup(U.updatedAt+lX,J))}function Ef($){return $.status==="cancelled"||$.status==="timed-out"}async function Sf($,U,J){let G=z.updatePrefix(J),X=await bK($,G);for(let Q of X)U.add(Q),xf(U,G,Q)}function xf($,U,J){let G=J.slice(U.length);if(G.length>0)$.add(z.updateResponse(G))}async function bf($,U,J){for(let G of hf(J)){let X=await bK($,G);for(let Q of X)U.add(Q)}await vf($,U,J)}async function vf($,U,J){let G=z.fleetEventByWorkflowPrefix(J);for await(let[X]of $.scan(G)){U.add(X);let Q=gf(G,X);if(Q!==null)U.add(z.fleetEvent(Q))}}function gf($,U){if(!U.startsWith($))return null;let J=U.slice($.length);if(!/^\d+$/.test(J))return null;let G=Number(J);return Number.isSafeInteger(G)?G:null}function hf($){let U=N($);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}:`,BX($),`sigres:v1:${U}:`]}function If($,U){for(let J of U)$.push({type:"delete",key:J})}async function bK($,U){let J=[];for await(let G of Q8($,U))J.push(G);return J}var lX=60000;var iX=F(()=>{v();I();d$();D6();sU();y1();WJ();U$();_$();s$()});function nX($){let U=new WeakSet,J=(G)=>{if(yf(G))return!0;if(mf(G))return!1;if(Array.isArray(G))return uf(G,U,J);if(typeof G==="object")return kf(G,U,J);return!1};return J($)}function vK($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(nX($))return $;try{let U=JSON.stringify($);if(U===void 0)return SH($);let J=JSON.parse(U);return nX(J)?J:SH($)}catch{return SH($)}}function yf($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function mf($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function uf($,U,J){if(U.has($))return!1;U.add($);for(let G of $)if(!J(G))return!1;return U.delete($),!0}function kf($,U,J){if(!ff($))return!1;if(U.has($))return!1;U.add($);for(let G of Object.values($))if(!J(G))return!1;return U.delete($),!0}function SH($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function ff($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function KJ($){let U=xH($);return j8(U)}function xH($){if($===null)return"null";if($===void 0)return wf;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(xH).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((G)=>U[G]!==void 0).map((G)=>`${JSON.stringify(G)}:${xH(U[G])}`).join(",")+"}"}function cf($){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 nX(U.output)&&typeof U.completedAt==="number";if(J==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class pf{#$;#U;#J;#X=0;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}get duplicatesPrevented(){return this.#X}recordReplay(){this.#X++}async lookup($){let U=z.toolEffect(this.#U,this.#J,$),J=await this.#$.get(U);if(!J)return null;let G=R(J);if(!cf(G))return null;return G}async record($,U){let J={status:"in-flight",effectName:U,recordedAt:Date.now()};await this.#G($,J)}async commit($,U,J){let G={status:"committed",effectName:U,output:vK(J),completedAt:Date.now()};await this.#G($,G)}async abort($,U,J){let G={status:"aborted",effectName:U,reason:J,completedAt:Date.now()};await this.#G($,G)}async#G($,U){let J=z.toolEffect(this.#U,this.#J,$);await this.#$.put(J,M(U))}}var wf="\x00undefined";var gK=F(()=>{x6();v();I()});function oX($,U,J){let X=(U.status===void 0?J:Array.isArray(U.status)?U.status:[U.status]).filter((_)=>J.includes(_));if(X.length===0)return{...U,status:[]};if(X.length!==1)return{...U,status:X};let[Q]=X;return{...U,status:Q??[]}}async function OJ($,U,J,G,X,Q){let _=await tf($,J);return vH(U,G,X,_,Q)}function vH($,U,J,G,X){let Q=rf(U),_=nf(Q,G),D=of($,Q,J,_,X),Y=af($,Q,J,G),Z=_.sampleWorkflowIds;return{workflowIds:G.map((j)=>j.id),confirmationToken:Y,scope:_,preview:{dryRun:!0,action:$,matched:G.length,requestId:D,scope:_,sampleWorkflowIds:Z,confirmationToken:Y,confirmationTokenVersion:1}}}function nf($,U){let J=U.slice(0,hK).map((G)=>G.id);return{matched:U.length,filter:$,statuses:bH(U.map((G)=>G.status)),workflowTypes:bH(U.map((G)=>G.type)),sampleWorkflowIds:J,sampleLimit:hK}}function rf($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?bH($.status):$.status;if($.type!==void 0)U.type=$.type;let J=B$($.tags);if(J!==void 0)U.tags=J;if($.attributes!==void 0)U.attributes=$.attributes.map((G)=>({key:R$(G.key),...G.value===void 0?{}:{value:Array.isArray(G.value)?[...G.value]:G.value},...G.gt===void 0?{}:{gt:G.gt},...G.lt===void 0?{}:{lt:G.lt},...G.gte===void 0?{}:{gte:G.gte},...G.lte===void 0?{}:{lte:G.lte}})).toSorted((G,X)=>KJ(G).localeCompare(KJ(X)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function of($,U,J,G,X){let Q=X.requestId?.trim();if(Q!==void 0&&Q.length>0)return Q;return`bulk:${KJ({action:$,actionParameters:rX(J),filterSummary:U,matched:G.matched,sampleWorkflowIds:G.sampleWorkflowIds})}`}function af($,U,J,G){return`bulk:${KJ({version:1,action:$,actionParameters:rX(J),filterSummary:U,workflows:G.map((X)=>({id:X.id,status:X.status}))})}`}function Y0($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new GJ}function Z0($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function j0($,U,J,G,X){let Q=await sf($,U,J,X);return{...G,auditEvent:Q}}async function sf($,U,J,G){let X=$.options.getNow(),Q=J.requestId?.trim(),_=Q!==void 0&&Q.length>0?Q:U.preview.requestId,D={type:"bulk-operation:audit",action:U.preview.action,requestId:_,timestamp:X,principal:J.principal??lf,filterSummary:U.scope.filter,scope:U.scope,affectedCount:G,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(z.bulkOperationAudit(X,_,U.confirmationToken),M(D)),D}function H0($){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>T7)throw Error(`Field "confirmationToken" must be at most ${String(T7)} characters`);if($.requestId!==void 0&&$.requestId.length>R7)throw Error(`Field "requestId" must be at most ${String(R7)} characters`);return $}function AJ($){return $.bulkConcurrency??df}function CJ($,U,J){return{id:U,error:J instanceof Error?J.message:String(J)}}async function tf($,U){let J=[];for await(let G of CH($,U))for(let X of G)J.push(IK(X));return J}function IK($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function bH($){return[...new Set($)].toSorted((U,J)=>U.localeCompare(J))}function rX($){if(ef($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(rX);let U=$,J={};for(let G of Object.keys(U).toSorted())J[G]=rX(U[G]);return J}function ef($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function yK($,U){let J=[];for await(let G of CH($,U))for(let X of G){if(!M$(X.status))throw new E1;J.push(IK(X))}return J}var hK=20,df=1,lf;var mK=F(()=>{v();I();gK();d$();D6();L$();WJ();_$();lf={method:"in-process"}});function P0(){return{holders:[],waiters:[]}}function $w($){if($===void 0)return P0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function Uw($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function gH($,U){let{holderId:J,now:G}=U,X=$w($);return{holders:Uw(X.holders,G).filter((Q)=>Q.holderId!==J),waiters:X.waiters.filter((Q)=>Q!==J)}}var uK=()=>{};function Jw($,U){return{key:D1($),expectedValue:U===0?null:M(U)}}function Xw($){if($===void 0)return P0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function Gw($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function Qw($,U){let J=Xw($),G=Gw(J.holders,U.now);if(G.some((X)=>X.holderId===U.workflowId))return{acquired:!0,record:{holders:G.map((X)=>X.holderId===U.workflowId?{holderId:U.workflowId,leaseExpiresAt:kK}:X),waiters:[]}};if(G.length>=U.limit)return{acquired:!1,record:{holders:G,waiters:[]}};return{acquired:!0,record:{holders:[...G,{holderId:U.workflowId,leaseExpiresAt:kK}],waiters:[]}}}function _w($,U,J){if(J.key===void 0)return $;let G;try{G=J.key(U)}catch(X){throw Error(`workflow("${$}").concurrency.key threw while resolving the partition key: ${X instanceof Error?X.message:String(X)}`,{cause:X})}if(typeof G!=="string")throw TypeError(`workflow("${$}").concurrency.key must return a string partition key`);return G}function Dw($,U){return{version:hH,workflowType:$,partitionKey:U}}function Yw($){let U=R($);if(typeof U!=="object"||U===null)return null;let J=U;if(J.version!==hH||typeof J.workflowType!=="string"||typeof J.partitionKey!=="string")return null;return{version:hH,workflowType:J.workflowType,partitionKey:J.partitionKey}}async function aX($,U,J,G,X){let Q=_w(U,G,X),_=z.workflowConcurrency(U,Q),D=await Y1($.storage,_,{initial:P0()}),Y=Qw(D.value,{workflowId:J,now:$.options.getNow(),limit:X.max});if(!Y.acquired)throw new _J({workflowType:U,limit:X.max,partitionKey:Q});return{stateKey:_,conditions:[Jw(_,D.version)],operations:[{type:"put",key:_,value:M(Y.record)},{type:"put",key:D1(_),value:M(D.version+1)},{type:"put",key:z.workflowConcurrencyHolder(J),value:M(Dw(U,Q))},{type:"put",key:z.terminalCleanupNeeded(J),value:new Uint8Array(0)}]}}async function z0($,U){let J=z.workflowConcurrencyHolder(U),G=await $.storage.get(J);if(G===null)return;let X=Yw(G);if(X===null){await $.storage.delete(J);return}let Q=z.workflowConcurrency(X.workflowType,X.partitionKey);await new yU($.storage,Q,{initial:P0()}).update((D)=>gH(D,{holderId:U,now:$.options.getNow()})),await $.storage.delete(J)}var hH=1,kK;var RJ=F(()=>{v();Z1();I();uK();L$();kK=Number.MAX_SAFE_INTEGER});async function sX($,U,J){let G=[];for(let X=0;X<$.length;X+=U){let Q=$.slice(X,X+U);G.push(...await Promise.all(Q.map(async(_)=>{try{return{item:_,status:"fulfilled",value:await J(_)}}catch(D){return{item:_,status:"rejected",reason:D}}})))}return G}async function wK($,U,J){return NJ($,U,{expiredOnly:!1,now:$.options.getNow()},J)}async function Hw($,U,J={}){J=H0(J),m4(U);let G=oX($,U,fK),X=await OJ($,"cancel",G,U,{},J);if(J.dryRun===!0)return X.preview;Y0(J,X);let Q=X.workflowIds,_=AJ(J),D=0,Y=[],Z=await sX(Q,_,async(P)=>{try{if(await $.engine.cancel(P),(await i($,P))?.status==="cancelled")return{status:"cancelled"};return{status:"failed",error:{id:P,error:"Workflow no longer cancellable"}}}catch(L){return{status:"failed",error:CJ($,P,L)}}});for(let P of Z){if(P.status==="rejected"){Y.push(CJ($,P.item,P.reason));continue}let{value:L}=P;if(L.status==="cancelled"){D+=1;continue}Y.push(L.error)}let j={cancelled:D,failed:Y.length,errors:Y};if(!Z0(J))return j;return j0($,X,J,j,D)}async function cK($,U,J={}){return Hw($,U,J)}async function Pw($,U,J={}){J=H0(J),m4(U);let G=oX($,U,Zw),X=await OJ($,"retry-failed",G,U,{},J);if(J.dryRun===!0)return X.preview;Y0(J,X);let Q=AJ(J),_=0,D=[],Y=await sX(X.workflowIds,Q,async(j)=>{try{return await zw($,j),{status:"retried"}}catch(P){return{status:"failed",error:CJ($,j,P)}}});for(let j of Y){if(j.status==="rejected"){D.push(CJ($,j.item,j.reason));continue}let{value:P}=j;if(P.status==="retried"){_+=1;continue}D.push(P.error)}let Z={retried:_,failed:D.length,errors:D};if(!Z0(J))return Z;return j0($,X,J,Z,_)}async function pK($,U,J={}){return Pw($,U,J)}async function zw($,U){let J=await i($,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(z.checkpoint(U))!==null){await Fw($,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 Fw($,U){let J=await j6($,U.id,async()=>Lw($,U.id));if(J.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(J.terminalCleanupTimerId,U.id)}async function Lw($,U){let J;for(let G=0;G<jw;G+=1){let X=await $.storage.get(z.workflow(U));if(X===null)throw Error("Workflow no longer exists");let Q=n(X);if(Q.status!=="failed")throw Error(`Workflow is ${Q.status}, not failed`);let _=await $.storage.get(z.checkpoint(U));if(_===null)throw Error("Checkpoint no longer exists");let D=H$(_),Y=$.registrations.get(Q.type);if(Y===void 0)throw Error(`No workflow registered with name "${Q.type}" (needed to retry "${U}")`);let Z=Y.concurrency===void 0?void 0:await aX($,Q.type,U,Q.input,Y.concurrency);J=Z?.stateKey??J;let j=Vw($,Q),P=await Bw($,U),L=[...Q0(Q,j),{type:"put",key:z.workflow(U),value:M(j)},...y$(U,Q,j).batchOps,...Mw(U,P,D.searchAttributes),...j.executionDeadline===void 0?[]:P$({id:`deadline:${U}`,workflowId:U,fireAt:j.executionDeadline,kind:"execution-deadline"}),...Z?.operations??[]],q=Z?.conditions??[];if(await qw($,L,q))return{terminalCleanupTimerId:Q.terminalCleanupToken===void 0?void 0:aU(!1,Q.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${J??U}" changed too many times while retrying failed workflow "${U}"`)}async function qw($,U,J){if(J.length===0)return await $.storage.batch(U),!0;return X$($.storage,"conditionalBatch","retry failed workflow"),G$($.storage,J,U)}function Vw($,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 Bw($,U){let J=await $.storage.get(z.attribute(U));if(J===null)return{};return R(J)}function Mw($,U,J){let G=O$($,U,J);if(Object.keys(J).length===0)G.push({type:"delete",key:z.attribute($)});else G.push({type:"put",key:z.attribute($),value:M(J)});return G}async function IH($,U,J,G,X){let Q=H0(X??{});if(m4(U),J.length===0)throw Error('Field "name" must be a non-empty string');let _=oX($,U,fK),D=await OJ($,"signal",_,U,{name:J,payload:G},Q);if(Q.dryRun===!0)return D.preview;Y0(Q,D);let Y=D.workflowIds,Z=AJ(Q),j=0,P=0,L=await sX(Y,Z,async(W)=>{try{return await $.engine.signal(W,J,G),{status:"signalled"}}catch{return{status:"failed"}}});for(let W of L)if(W.status==="fulfilled"&&W.value.status==="signalled")j+=1;else P+=1;let q={signalled:j,failed:P};if(!Z0(Q))return q;return j0($,D,Q,q,j)}async function Ww($,U,J,G={}){G=H0(G),m4(U);let X=await yK($,U),Q=vH("delete",U,{},X,G);if(G.dryRun===!0){let j=[];for(let P of Q.workflowIds)if(await b$($.storage,z.teardownOwed(P)))j.push(P);return j.length>0?{...Q.preview,skippedTeardownPending:j}:Q.preview}Y0(G,Q);let _=AJ(G),D=0,Y=[];for(let j=0;j<Q.workflowIds.length;j+=dX){let P=Q.workflowIds.slice(j,j+dX),L=await Nw($,P),q=[];for(let m of L)if(await b$($.storage,z.teardownOwed(m.id)))Y.push(m.id);else q.push(m);let W=await sX(q,_,async(m)=>{return await RH($,m,J),m.id}),S=[];for(let m of W)if(m.status==="fulfilled")D+=1;else S.push(m.reason);if(S.length>0)throw AggregateError(S,`Bulk delete failed for ${S.length} workflow(s) after deleting ${D} workflow(s)`)}let Z={deleted:D,...Y.length>0?{skippedTeardownPending:Y}:{}};if(!Z0(G))return Z;return j0($,Q,G,Z,D)}async function dK($,U,J,G={}){return Ww($,U,J,G)}async function Nw($,U){let J=[];for(let G of U){let X=await i($,G);if(X===null)continue;if(!M$(X.status))throw new E1;J.push(X)}return J}async function lK($,U,J,G={}){return nK($,U,J,"add",G)}async function iK($,U,J,G={}){return nK($,U,J,"remove",G)}async function nK($,U,J,G,X){X=H0(X),m4(U);let _=await OJ($,G==="add"?"tag:add":"tag:remove",U,U,{tags:J},X);if(X.dryRun===!0)return _.preview;Y0(X,_);let D=await BK($,U,J,G,_.workflowIds);if(!Z0(X))return D;return j0($,_,X,D,D.modified)}var fK,Zw,jw=5;var tX=F(()=>{v();DH();_6();I();z$();d$();D0();iX();mK();L$();WJ();U$();E$();_$();RJ();s$();iX();fK=["pending","running","suspended"],Zw=["failed"]});function eX($,U){let J=new LJ(U,$.engine);return Cw($,U,J),J}function Kw($,U){let{promise:J,resolve:G,reject:X}=Promise.withResolvers(),Q={promise:J,resolve:G,reject:X};return $.resultResolvers.set(U,Q),J.catch(()=>{}),Q}function rK($,U){let J=$.resultResolvers.get(U);if(J)return J.promise;if($.disposed){let X=Promise.reject(new K6);return X.catch(()=>{}),X}let G=Kw($,U);return Ow($,U,G),G.promise}async function Ow($,U,J){try{let G=await i($,U);if(Aw($,U,J))return;if(!G){$.resultResolvers.delete(U),J.reject(Error(`Workflow "${U}" not found in storage`));return}if(G.status==="running"||G.status==="pending"||G.status==="suspended")return;try{let X=await qK($,U);yH($,U,J),J.resolve(X)}catch(X){yH($,U,J),J.reject(X)}}catch(G){yH($,U,J),J.reject(G)}}function Aw($,U,J){let G=$.resultResolvers.get(U);if(G===void 0||G===J)return!1;return G.promise.then(J.resolve,J.reject),!0}function yH($,U,J){if($.resultResolvers.get(U)===J)$.resultResolvers.delete(U)}function Cw($,U,J){let G=$.handleCache.get(U);if(G)$.finalizationRegistry.unregister(G.unregisterToken);let X={};$.handleCache.set(U,{ref:new WeakRef(J),unregisterToken:X}),$.finalizationRegistry.register(J,U,X)}var mH=F(()=>{L$();k4();E$()});function Tw($){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 Ew(U.sequence,U.deletedThrough)}function Ew($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function p4($,U){let J=await $.get(z.eventWatermark(U));if(J===null)return null;let G=R(J);return Tw(G)?G:null}async function oK($,U,J,G,X){if(G===null)return null;let Q=Math.max(0,J-G+1),_=await p4($,U),D=_?.sequence??0,Y=Math.min(Q,D+Rw);if(Y<=D)return null;let Z=await bw($,U,D,Y);if(Z===null)return null;let j=Z8(Z.lastDeletedBytes),P={type:"event-log-watermark",version:1,sequence:Y,prevHash:j,deletedThrough:Y-1,...Sw(xw(_?.checkpointReplay,Z.deletedEntries))};for(let L=D;L<Y;L+=1)X.push({type:"delete",key:z.event(U,L)});return X.push({type:"put",key:z.eventWatermark(U),value:M(P)}),{watermark:P,deletedEntries:Z.deletedEntries,deletedRange:{from:D,to:Y-1}}}function Sw($){return $===void 0?{}:{checkpointReplay:$}}function xw($,U){let J=$;for(let G of U){let X=R(G);if(!e6(X))continue;J=I3(J,lU(X.payload))}return J}async function bw($,U,J,G){let X=[],Q=J,_=z.eventPrefix(U),D=z.event(U,J),Y=z.event(U,G);for await(let[,j]of $.scan(_,{gte:D,lt:Y})){let P=R(j);if(!e6(P)||P.sequence!==Q)return null;X.push(j),Q+=1}if(Q!==G||X.length===0)return null;let Z=X[X.length-1];if(Z===void 0)return null;return{deletedEntries:X,lastDeletedBytes:Z}}function aK($){return M($)}var Rw=1000;var TJ=F(()=>{x6();v();I();l2();M1()});async function sK($,U){for(let G=0;G<5;G+=1){let X=await p4($,U),Q=await d2($,U),_=await vw($,U,X,Q);if(_.outcome==="ok")return{valid:!0};let D=await p4($,U),Y=await d2($,U),Z=(D?.sequence??-1)>(X?.sequence??-1),j=Y.sequence!==Q.sequence||Y.lastHash!==Q.lastHash;if(Z||j)continue;return{valid:!1,firstInvalidSequence:_.firstInvalidSequence}}return{valid:!1,indeterminate:!0,reason:"concurrent-compaction"}}async function vw($,U,J,G){let X=J?.prevHash??p2,Q=J?.sequence??0,_=z.eventPrefix(U),D=J?{gte:z.event(U,J.sequence)}:void 0,Y=await hw($,_,D,X,Q);if(Y.outcome==="invalid")return Y;if(Y.entriesSeen===0&&J!==null)return{outcome:"invalid",firstInvalidSequence:J.sequence};return gw(Y,G)}function gw($,U){if(U.sequence===q1.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 hw($,U,J,G,X){let Q=G,_=0,D=-1;for await(let[,Y]of $.scan(U,J)){let Z=R(Y);if(!e6(Z))continue;let j=Iw(Z,Q,_===0,X);if(j.outcome==="invalid")return j;_+=1,D=Z.sequence,Q=g3(Y)}return{outcome:"scanned",entriesSeen:_,lastSequence:D,lastHash:Q}}function Iw($,U,J,G){if(J&&$.sequence!==G)return{outcome:"invalid",firstInvalidSequence:G};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}var tK=F(()=>{v();I();TJ();l2()});class e${#$;#U;constructor($,U){this.#$=$,this.#U=U}appendToBatch($,U,J,G){let{entry:X,encoded:Q,newHead:_}=this.#J($,J,G);return U.push({type:"put",key:z.event(this.#U,_.sequence),value:Q},{type:"put",key:z.eventHead(this.#U),value:M(_)}),{newHead:_,timestamp:X.timestamp}}async append($,U,J){let G=await this.#X(),{encoded:X,hash:Q,newHead:_}=this.#J($,G,J),D={type:"put",key:z.event(this.#U,_.sequence),value:X},Y={type:"put",key:z.eventHead(this.#U),value:M(_)};if(U)U.push(D,Y);else await this.#$.batch([D,Y]);return{sequence:_.sequence,hash:Q,newHead:_}}async*scan($){let U=$?.fromSequence??0,J=z.eventPrefix(this.#U),G=z.event(this.#U,U);for await(let[,X]of this.#$.scan(J,{gte:G})){let Q=R(X);if(e6(Q))yield Q}}async replay($){let U=[];for await(let J of this.scan()){if(J.sequence>$)break;U.push(J)}return U}async verify(){return sK(this.#$,this.#U)}async loadHead(){return this.#X()}#J($,U,J){let G=U.sequence+1,X=U.lastHash,Q={type:$.type,workflowId:this.#U,sequence:G,prevHash:X,payload:$.payload,timestamp:Date.now()};if(J!==void 0)Q.versionTuple=J;let _=M(Q),D=g3(_);return{entry:Q,encoded:_,hash:D,newHead:{sequence:G,lastHash:D}}}async#X(){return d2(this.#$,this.#U)}}var m1=F(()=>{v();I();l2();tK()});async function uH($,U,J,G){let X=$.options.historyPolicy.maxEvents;if(X===null||J.sequence+1<=X)return!1;return await G.enforceHistoryCircuitBreaker(U),!0}async function $O($,U,J){if($.options.historyPolicy.maxEvents===null)return!1;let G=$.eventLogHeads.get(U)??await new e$($.storage,U).loadHead();return uH($,U,G,J)}function EJ($,U,J){return J.createWorkflowHandleWithResultPromise(U)}function _4($,U,J,G){if(!J||J.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(J)),$.workflowsNeedingTerminalCleanup.add(U)}async function u1($,U,J){return VK($,U)}async function kH($,U,J){if(await b$($.storage,z.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function fH($,U,J,G){if(U===void 0)return;return B$(f3(U,J??"options.tags"))}async function wH($,U,J){try{await J.processPendingUpdatesForHandlers(U)}catch(G){J.handleCleanupError("processPendingUpdates",G,U)}}var eK="weft:forkedFrom",l$;var D4=F(()=>{v();m1();$4();D6();E$();l$=new Uint8Array(0)});function F0($,U,J){return{workflowVersion:U.version}}function $G($,U,J){return U.versionTuple}function UG($,U,J,G,X,Q){let _=nM(G.version,X.version),D=F0($,X,Q),Y=dM($G($,J,Q),D),Z=Y.workflowVersion!==void 0||Y.agentVersion!==void 0||Y.toolVersions!==void 0;if(_==="incompatible"||Z)UO($,U,J,X,Y,Q);return{state:J,checkpoint:G,versionTuple:D,shouldPersistPreparedState:!1}}async function cH($,U,J,G,X,Q,_){let D=UG($,U,J,G,Q,_),Y=await B1($.storage,U,D.checkpoint);return{state:D.state,checkpoint:Y,serializedCheckpoint:X,versionTuple:D.versionTuple}}function UO($,U,J,G,X,Q){throw new Sj(U,J.type,J.versionTuple.workflowVersion,G.version,void 0,X)}var SJ=F(()=>{xj();M1()});async function XG($,U,J,G,X=()=>{}){let Q=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(z.workflowHasServices(U.id))===null)return!1;if(!Q){let D=mw(U.id);X(new x4(U.id,D,[yw]));try{await J(U.id,JG(U.id,D))}catch(Y){G("reprovideRecoveredServices",Y,U.id)}return!0}let _;try{let D=await Q({workflowId:U.id,workflowType:U.type,input:U.input});if(D.status==="available")return $.workflowServices.set(U.id,D.services),!1;_=D.reason}catch(D){_=D instanceof Error?D.message:String(D)}try{await J(U.id,JG(U.id,_))}catch(D){G("reprovideRecoveredServices",D,U.id)}return!0}function JG($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function mw($){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 yw="EngineOptions.resolveWorkflowServices";var GG=F(()=>{v();J$()});function XO($,U,J,G,X){return{id:`delayed-start:${U}`,workflowId:U,fireAt:J,kind:"delayed-start",...G?.executionTimeout!==void 0&&{executionTimeoutMs:X.parseStartOptionDuration(G.executionTimeout,"options.executionTimeout")}}}async function GO($,U,J,G){if(J.scheduledFireAt<=$.options.getNow()){G.completeOperation(U,void 0);return}let{promise:X,resolve:Q}=Promise.withResolvers();if(await $.scheduler.schedule({id:`sleep:${J.operationId}`,workflowId:U,fireAt:J.scheduledFireAt,kind:"sleep"}),uw($,U,J.operationId,Q),await X,(await G.loadWorkflowState(U))?.status==="running")G.completeOperation(U,void 0)}function uw($,U,J,G){$.sleepResolvers.set(`${U}:${J}`,G);let X=$.sleepResolversByWorkflow.get(U);if(!X)X=new Set,$.sleepResolversByWorkflow.set(U,X);X.add(J)}async function kw($,U,J){let G=await J.loadWorkflowState(U.workflowId);if(!G||G.status!=="pending")return;let X=await fw($,U,J);if(!X)return;let Q=$.registrations.get(G.type);if(!Q){await J.failWorkflow(U.workflowId,Error(`No workflow registered with name "${G.type}"`));return}let _=$.options.getNow(),D=await ww(U,_,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 P={...j,status:"running",startedAt:_,updatedAt:_,...D!==void 0&&{executionDeadline:D}},L=[{type:"put",key:z.workflow(U.workflowId),value:M(P)},...y$(U.workflowId,j,P).batchOps];if(D!==void 0)L.push(...P$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:D,kind:"execution-deadline"}));return await D$($,L,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),P});if(!Y)return;if(await XG($,Y,(j,P)=>J.failWorkflow(j,P),J.handleCleanupError,J.dispatchEvent))return;if(await b$($.storage,z.terminalCleanupNeeded(U.workflowId)))$.workflowsNeedingTerminalCleanup.add(U.workflowId);$.checkpoints.set(U.workflowId,X),$.workflowVersionTuples.set(U.workflowId,J.workflowVersionTupleFromState(Y)),J.setWorkflowStartHeaders(U.workflowId,await J.loadWorkflowStartHeaders(U.workflowId)),J.beginWorkflowExecution(U.workflowId,Y.type,Y.input,X,D,Y.executionStateOwnerId??U.workflowId,Q)}async function fw($,U,J){let G=await $.storage.get(z.checkpoint(U.workflowId));if(!G)return await J.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return H$(G)}async function ww($,U,J){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await JO($,J),"invalid";try{return T$(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await JO($,J),"invalid"}}async function JO($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function pH($,U,J){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await pw($,U,J);return}if(U.kind==="delayed-start"){await kw($,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")dw($,U);else if(U.kind==="wait-condition")cw($,U);else if(U.kind==="execution-deadline")await J.timeout(U.workflowId)}function cw($,U){let J=$.conditionWaiters.get(U.workflowId);if(J)J()}async function pw($,U,J){let G=U.id.split(":")[1];if(!G)return;let X=$.reviewEscalationHandlers.get(G);if(!X)return;let Q=await J.loadWorkflowState(U.workflowId);if(!Q||Q.status!=="running")return;await X(U)}function dw($,U){let J=U.id.replace("sleep:",""),G=`${U.workflowId}:${J}`,X=$.sleepResolvers.get(G);if(!X)return;$.sleepResolvers.delete(G),lw($,U.workflowId,J),X()}function lw($,U,J){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;if(G.delete(J),G.size===0)$.sleepResolversByWorkflow.delete(U)}var QG=F(()=>{v();_6();I();z$();O6();GG();s$()});function QO($,U,J,G,X,Q,_,D,Y,Z,j,P){let L=o3(U,null,J).batchOps,q=[...P??[],{type:"put",key:z.workflow(U),value:M(J)},{type:"put",key:z.checkpoint(U),value:V$(G)},...L,...cU(U,void 0,J.tags),...nw($,U,X,Q?.searchAttributes,j),...iw(U,Q,Y),...Z??[]];if(_!==void 0)q.push(...P$({id:`deadline:${U}`,workflowId:U,fireAt:_,kind:"execution-deadline"}));if(D)q.push(...P$(D));return q}function iw($,U,J){let G=J!==void 0&&J.size>0,X=U?.services!==void 0,Q=[];if(G)Q.push({type:"put",key:z.workflowHeaders($),value:l3(J)});if(X)Q.push({type:"put",key:z.workflowHasServices($),value:l$});if(G||X)Q.push({type:"put",key:z.terminalCleanupNeeded($),value:l$});return Q}function nw($,U,J,G,X){if(!G||Object.keys(G).length===0)return[];return rw($,J,G,X),_0(G),[{type:"put",key:z.attribute(U),value:M(G)},...O$(U,{},G)]}function rw($,U,J,G){if(!U.searchAttributes)return;let X=U.searchAttributes;for(let[Q,_]of Object.entries(J)){if(!(Q in X))throw Error(`Unknown search attribute "${Q}". Registered attributes: ${Object.keys(X).join(", ")}`);pU(Q,_,X[Q])}}var _O=F(()=>{v();_6();I();z$();d$();D6();D0();U$();s$();D4()});async function ow($,U,J){if(J.length===0)return await D$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return X$($.storage,"conditionalBatch","start preconditions"),J0($,U,J.map((G)=>G.condition))}async function aw($,U){for(let J of U){if(J.source!=="start-precondition")continue;let G=await $.storage.get(J.condition.key);if(!H4(G,J.condition.expectedValue))return!0}return!1}function sw($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function tw($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function YO($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function ZO($,U){let{internals:J,workflowId:G,state:X,checkpoint:Q,registration:_,options:D}=$,Y=$.buildWorkflowConcurrencyStartOperations===void 0?1:DO,Z;for(let j=0;j<Y;j+=1){let P=U?.(G),L=await $.buildWorkflowConcurrencyStartOperations?.();Z=L?.stateKey??Z;let q=QO(J,G,X,Q,_,D,X.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,YO($.additionalStartOperations,YO(P?.operations,L?.operations)),$.callbacks,$.purgeDeleteOperations),W=[...sw(P?.conditions),...tw(L?.conditions??[])];if(await ow(J,q,W))return;if(await aw(J,W))throw new k1;if(L===void 0)throw new k1}throw new R4(Z??"workflow concurrency admission",DO)}var k1,DO=5;var _G=F(()=>{v();Z1();O6();_O();k1=class k1 extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}});function dH($,U,J,G,X,Q){let _=Q.getComposedWorkflowInterceptor();if(!_)return;let D=new Map;if(X)for(let[Z,j]of X)D.set(Z,j);let Y;return _.workflowStart({workflowId:U,workflowType:J,input:G,headers:D},(Z)=>{Y=new Map(Z.headers)}),Y}function DG($,U,J,G,X,Q,_,D,Y){if(Q!==0)$.workflowNestingDepths.set(U,Q);$.workflowTypeByWorkflowId.set(U,J),$.strategy.startWorkflow({workflowId:U,workflowType:J,input:G,checkpoint:V$(X),nestingDepth:Q,executionStateOwnerId:D,startedAt:X.createdAt,sleepReferenceTime:X.createdAt,..._!==void 0&&{deadline:_},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function YG($,U,J,G,X,Q,_,D,Y,Z){let j=$.pendingNestingDepth??0;if($.pendingNestingDepth=void 0,$.inlineStrategy!==null){Y.queueInlineWorkflowExecutionStart({workflowId:U,workflowType:J,input:G,checkpoint:X,nestingDepth:j,executionDeadline:Q,executionStateOwnerId:_,...Z!==void 0&&{onStarted:Z}});return}Y.dispatchEvent(new b4(U,J,G)),DG($,U,J,G,X,j,Q,_,Y),Z?.()}function jO($,U,J){if(U?.defer!==!1)return;if($.inlineStrategy===null)throw new l('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 l("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 HO($,U,J,G){if(U.isDelayed)return;let X=U.options?.defer===!1?Promise.withResolvers():void 0;if(YG($,J,U.type,U.input,U.checkpoint,U.state.executionDeadline,U.state.executionStateOwnerId??J,U.registration,G,X?()=>X.resolve():void 0),X)await X.promise}var lH=F(()=>{_6();J$();$4()});function ew($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function zO($,U,J){let{waiters:G,byWorkflow:X}=ew($,J),Q=X.get(U);if(!Q)return;if(typeof Q==="string")G.delete(Q);else for(let _ of Q)G.delete(_);X.delete(U)}function $c($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let G of J){let X=`${U}:${G}`,Q=$.sleepResolvers.get(X);if(Q)Q();$.sleepResolvers.delete(X)}$.sleepResolversByWorkflow.delete(U)}function Uc($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let G of J)$.sleepResolvers.delete(`${U}:${G}`);$.sleepResolversByWorkflow.delete(U)}function Jc($,U){let J=$.conditionWaiters.get(U);if(!J)return;J(),$.conditionWaiters.delete(U)}function Xc($,U){$.conditionWaiters.delete(U)}function FO($,U,J){let G=$.workflowReviewIds.get(U);if(!G)return;for(let X of G){$.reviewEscalationHandlers.delete(X);let Q=$.reviewTimerIds.get(X);if(Q){for(let _ of Q)J.swallowPromiseRejection($.scheduler.cancel(_,U));$.reviewTimerIds.delete(X)}}$.workflowReviewIds.delete(U)}function c6($,U,J){for(let G of LO)zO($,U,G);$c($,U),Jc($,U),FO($,U,J),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function nH($,U,J){for(let G of LO)zO($,U,G);Uc($,U),Xc($,U),FO($,U,J)}async function qO($,U,J){let G=N(U),X=[z.activityReconciliationPrefix(U),z.childCancellationPrefix(U),BX(U),z.signalAcceptedResponsePrefix(U),`sig:${G}:`,`state:execution:${G}:`,`tool-effect:${G}:`];if(J)X.push(`offload:${G}:`,`blob:${G}:`);if(await $.storage.delete(z.workflowHeaders(U)),await $.storage.delete(z.signalSequence(U)),await z0($,U),await $.storage.delete(z.workflowHasServices(U)),!await b$($.storage,z.teardownOwed(U)))await $.storage.delete(z.finalizerState(U));if($.storage.deletePrefix){for(let Y of X)await $.storage.deletePrefix(Y);return}let Q=500,_=[],D=async()=>{if(_.length===0)return;await $.storage.batch(_),_=[]};for(let Y of X)for await(let[Z]of $.storage.scan(Y))if(_.push({type:"delete",key:Z}),_.length>=Q)await D();await D()}function rH($,U,J){$.workflowsNeedingTerminalCleanup.delete(U),c4($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[G,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(G);$.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(nU(U,"events")),$.workflowFeedListeners.delete(nU(U,"tokens")),c6($,U,J)}function oH($,U,J){rH($,U,J)}async function ZG($,U,J,G){rH($,U,G),await aH($,U,J,G)}async function aH($,U,J,G){await G.cleanupReviews(U),await qO($,U,J),await $.storage.delete(z.terminalCleanupNeeded(U))}async function sH($,U,J,G){let X=FW(J);if(!X){G.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${J}"`),U);return}let Q=await G.loadWorkflowState(U);if(!Q||!PO.has(Q.status))return;if(Q.terminalCleanupToken!==X.terminalCleanupToken)return;try{await aH($,U,X.includeOutputArtifacts,G)}catch(_){throw G.handleCleanupError("cleanupTerminalWorkflowDurableState",_,U),_}}function xJ($,U,J,G,X){let Q=J instanceof Error?J:Error(String(J));X.dispatchEvent(new jX(U,Q,G))}async function bJ($,U,J){try{await J.handleScheduledWorkflowTerminal(U)}catch(G){J.handleCleanupError("handleScheduledWorkflowTerminal",G,U)}}var PO,iH,LO;var vJ=F(()=>{v();J$();sU();y1();U$();RJ();PO=new Set(["completed","failed","cancelled","timed-out"]),iH=["running","pending","suspended"];LO=["signal","update","review"]});async function VO($,U,J){let G=await $.storage.get(z.workflow(U));if(G===null)return null;if(J?.onTerminalConflict!=="start-new")throw new t$(U);let X=n(G);if(!M$(X.status))throw new t$(U);if(await b$($.storage,z.teardownOwed(U)))throw new XJ(U);return X}async function BO($,U,J){let G=(Q)=>c6($,Q,{swallowPromiseRejection:J.swallowPromiseRejection}),X=await TH($,U);return EH($,U.id,G),X}var MO=F(()=>{v();iX();L$();vJ();_$()});function Gc($,U,J){let G=U?.id!==void 0,X=U?.id!==void 0?W1(U.id,"options.id"):crypto.randomUUID(),Q=$.pendingParentHeaders;$.pendingParentHeaders=void 0;let _=$.pendingExecutionStateOwnerId,D=_===null?void 0:_??X;$.pendingExecutionStateOwnerId=void 0;let Y=$.options.getNow(),Z=WO($,U,Y,J),j=fH($,U?.tags,void 0,J),P=Z!==void 0&&Z>Y?XO($,X,Z,U,{parseStartOptionDuration:(L,q)=>L0($,L,q,J)}):void 0;return{workflowId:X,callerProvidedId:G,parentHeaders:Q,executionStateOwnerId:D,submissionTime:Y,delayedStartTimer:P,normalizedTags:j}}function Qc($,U){c4($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function _c($,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 P6($,U,J,G,X,Q,_){let D=$.registrations.get(U);if(!D)throw new x1(U);let Y=D.concurrency;_c($,G),u3(G);let Z=Gc($,G,Q),{workflowId:j,callerProvidedId:P,parentHeaders:L,executionStateOwnerId:q,delayedStartTimer:W}=Z;if(jO($,G,Boolean(W)),$.pendingStarts.has(j))throw new t$(j);$.pendingStarts.add(j);let S=!1;try{let m=P?await VO($,j,G):null;N6(J,$.options.payloadSizePolicy.maxBytes,"workflow input");let s=F0($,D,Q),p=NO($,j,U,J,s,G,Z.normalizedTags,q,W,Q),y=KO($,j,s.workflowVersion,G,Q),k=dH($,j,U,J,L,Q),w=i3(k),x$=m!==null?await BO($,m,Q):void 0;if($.checkpoints.set(j,y),_4($,j,k,Q),$.workflowVersionTuples.set(j,s),await ZO({internals:$,workflowId:j,state:p,checkpoint:y,registration:D,options:G,delayedStartTimer:W,persistedWorkflowStartHeaders:w,additionalStartOperations:X,buildWorkflowConcurrencyStartOperations:Y===void 0?void 0:()=>aX($,U,j,J,Y),callbacks:Q,purgeDeleteOperations:x$},_),G?.services!==void 0)$.workflowServices.set(j,G.services),$.workflowsNeedingTerminalCleanup.add(j);if(Y!==void 0)$.workflowsNeedingTerminalCleanup.add(j);let T6=EJ($,j,Q);return await HO($,{type:U,input:J,checkpoint:y,state:p,registration:D,options:G,isDelayed:Boolean(W)},j,Q),S=!0,T6}finally{if($.pendingStarts.delete(j),!S)Qc($,j)}}function WO($,U,J,G){if(wM(U?.startAt,U?.startAfter),U?.startAt!==void 0)return cM(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let X=L0($,U.startAfter,"options.startAfter",G);try{return T$(J+X,"options.startAfter")}catch{throw new l("options.startAfter must resolve to a finite, non-negative start time")}}return}function L0($,U,J,G){return n2(U,J)}function Dc($,U,J,G,X,Q,_,D){return{id:$,type:U,status:Q?"pending":"running",input:J,versionTuple:G,...X!==void 0&&{executionStateOwnerId:X},createdAt:_,...!Q&&{startedAt:_},updatedAt:_,...D!==void 0&&{tags:D}}}function Yc($,U,J,G,X){if(U?.executionTimeout===void 0||J)return;let Q=L0($,U.executionTimeout,"options.executionTimeout",X);try{return T$(G+Q,"options.executionTimeout")}catch{throw new l("options.executionTimeout must resolve to a finite, non-negative deadline")}}function NO($,U,J,G,X,Q,_,D,Y,Z){let j=$.options.getNow(),P=Dc(U,J,G,X,D,Y,j,_),L=Yc($,Q,Y,j,Z);if(L!==void 0)P.executionDeadline=L;return P}function KO($,U,J,G,X){let Q=sZ(U,J,$.options.getNow());if(G?.searchAttributes)Q.searchAttributes={...G.searchAttributes};return Q}var jG=F(()=>{_6();v4();z$();$4();y1();L$();QG();U$();RJ();SJ();D4();_G();lH();MO()});async function hJ($,U){let J=await $.storage.get(z.startIdempotency(U));if(J===null)return;return R(J).workflowId}async function eH($,U){if(await i($,U)===null)throw new u4(U);return U}async function Hc($,U){for(let J=0;J<Zc;J+=1){if(!$.pendingStarts.has(U))return;await r6(jc)}}async function $P($,U,J,G,X){let Q=await gJ($,U,J,G,X);if(Q!==void 0)return Q;return await Hc($,U),gJ($,U,J,G,X)}async function gJ($,U,J,G,X){let Q=await i($,U);if(Q===null)return;if(M$(Q.status))throw new ZJ(U,Q.status);return await X.signalExistingWorkflow(U,J.name,J.payload,G),X.getHandle(U)}async function OO($,U,J,G,X,Q){for(let D=0;D<tH;D+=1){let Y=await gJ($,U,J,G,X);if(Y!==void 0)return Y;if(D<tH-1)await r6(Pc)}if(await hJ($,Q)===U)throw new u4(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${tH} attempts.`)}async function HG($,U){let J=await hJ($,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 Zc=5,jc=5,tH=5,Pc=5;var UP=F(()=>{x6();v();I();L$();E$();_$()});function JP($,U,J){return(G)=>{let X=[],Q=[];if(U!==void 0){let _=z.startIdempotency(U);X.push({type:"put",key:_,value:M({workflowId:G})}),Q.push({key:_,expectedValue:null})}if(J!==void 0){let _=gN($,G,J.name,J.payload,J.signalId);X.push(..._.operations),Q.push(_.condition)}return{operations:X,conditions:Q}}}async function CO($,U,J,G,X,Q,_){let D=Q?.idempotencyKey;for(let Y=0;Y<AO;Y+=1){let Z=await Fc($,Q,async()=>{return P6($,U,J,Q,void 0,_,JP($,D,{name:G.name,payload:G.payload,signalId:X}))});if(Z.kind==="created")return{handle:Z.handle,outcome:"started"};if(Z.kind==="lost-keyed")return{handle:await OO($,Z.id,G,X,_,Z.idempotencyKey),outcome:"signalled"};if(Z.kind==="lost-caller-id"){let j=await $P($,Z.id,G,X,_);if(j!==void 0)return{handle:j,outcome:"signalled"}}else{let j=await zc($,U,J,G,X,Q,_);if(j!==void 0)return j}}throw Error(`startOrSignal could not create workflow "${Q?.id??"<generated>"}" after ${AO} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function zc($,U,J,G,X,Q,_){try{return{handle:await P6($,U,J,Q,void 0,_),outcome:"started"}}catch(D){if(!(D instanceof t$))throw D;let Y=await $P($,D.workflowId,G,X,_);return Y===void 0?void 0:{handle:Y,outcome:"signalled"}}}async function Fc($,U,J){try{return{kind:"created",handle:await J()}}catch(G){if(G instanceof t$)return{kind:"lost-caller-id",id:G.workflowId};if(G instanceof k1){let X=U?.idempotencyKey;if(X!==void 0)return{kind:"lost-keyed",id:await HG($,X),idempotencyKey:X};return{kind:"signal-already-buffered"}}throw G}}var AO=5;var RO=F(()=>{v();I();L$();I4();_G();UP();jG()});function Lc($,U){if(U!==void 0)return z.startIdempotencySignalId(U);if($.signalId!==void 0)return $.signalId;throw new l("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 XP($,U,J,G,X){X$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:Q}=G;if(Q===void 0)throw new l("startWithIdempotency requires options.idempotencyKey");m3(Q,"options.idempotencyKey"),Tj(G),u3(G);let _=await hJ($,Q);if(_!==void 0)return X.getHandle(await eH($,_));try{return await P6($,U,J,G,void 0,X,JP($,Q,void 0))}catch(D){if(!(D instanceof k1))throw D}return X.getHandle(await eH($,await HG($,Q)))}function qc($,U){let J=U?.idempotencyKey;if(J===void 0)return;if(m3(J,"options.idempotencyKey"),Tj(U??{}),$.signalId!==void 0)throw new l("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 GP($,U,J,G,X,Q){X$($.storage,"conditionalBatch","startOrSignal"),k3(X,"startOrSignal");let _=X?.idempotencyKey;qc(G,X);let D=Lc(G,_),Y=_!==void 0?await hJ($,_):void 0,Z=Y??X?.id;if(Z!==void 0){let j=await gJ($,Z,G,D,Q);if(j!==void 0)return{handle:j,outcome:"signalled"};if(Y!==void 0)throw new u4(Y)}return CO($,U,J,G,D,X,Q)}var TO=F(()=>{v();$4();L$();_G();RO();UP();jG()});function EO($,U,J){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);pU(U,J,$.searchAttributeSchema[U])}}function SO($,U,J){EO($,U,J),$.searchAttributes[U]=J,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=J}function xO($,U){for(let[J,G]of Object.entries(U))EO($,J,G);for(let[J,G]of Object.entries(U))$.searchAttributes[J]=G,$.pendingAttributeChanges??={},$.pendingAttributeChanges[J]=G}function bO($,U){return $.searchAttributes[U]}function vO($){return{...$.searchAttributes}}var gO=F(()=>{d$()});function IO($,U,J,G){Bc(U,J,G);let X=`version:${U}`,Q=$[X];if(Q===void 0)return{localKey:X,version:G,newlyPinned:!0,checkpointLocals:{...$,[X]:G}};if(typeof Q!=="number"||!Number.isSafeInteger(Q))throw Error(`Invalid checkpointed workflow version patch "${U}" value ${JSON.stringify(Q)}`);let _=Q;return Mc(U,_,J,G),{localKey:X,version:_,newlyPinned:!1,checkpointLocals:$}}function Bc($,U,J){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(hO("minSupported",U),hO("maxSupported",J),U>J)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function hO($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function Mc($,U,J,G){if(U<J)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, below the minimum supported version ${J}`);if(U>G)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, above the maximum supported version ${G}`)}function yO($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return{cached:!0};let G=Z$(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 ${G}ms`);let X=crypto.randomUUID(),Q=e(),_=$.sleepReferenceTime??$.getNow();return $.sleepReferenceTime=void 0,{cached:!1,milliseconds:G,request:{type:"sleep",operationId:X,duration:G,scheduledFireAt:_+G,callerStack:Q},step:J}}function*mO($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*uO($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.waitForSignal("${J}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Waiting for signal "${J}"`);let X=crypto.randomUUID(),Q=e(),_=yield{type:"wait-signal",operationId:X,signalName:J,callerStack:Q};return $.accumulatedResults.set(G,_),_}function Nc($,U,J){if(J===void 0)return;let G=`${Wc}${U}`,X=$.checkpointLocals[G];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed wait-condition deadline ${JSON.stringify(X)} for step ${U}`);let Q=Z$(J),_=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let D=_+Q;return $.checkpointLocals={...$.checkpointLocals,[G]:D},D}function*kO($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let Q=Nc(U,X,G);if(U.explainMode)console.log("[weft] ctx.waitUntil(predicate)"),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(Q===void 0?" \u2192 Waiting indefinitely":` \u2192 Deadline at ${Q}`);let _=crypto.randomUUID(),D=e(),Y=yield{type:"wait-condition",operationId:_,step:X,predicate:J,...Q!==void 0&&{deadline:Q},callerStack:D};return $.accumulatedResults.set(X,Y),Y}function*fO($,U,J,G,X){let Q=U.stepIndex++,_=IO(U.checkpointLocals,J,G,X);if(U.checkpointLocals=_.checkpointLocals,!_.newlyPinned)return _.version;if(U.accumulatedResults?.has(Q)){let j=U.accumulatedResults.get(Q);if(j!==_.version)throw Error(`ctx.getVersion("${J}") replay result ${String(j)} does not match pinned version ${String(_.version)}`);return _.version}if(U.explainMode)console.log(`[weft] ctx.getVersion("${J}", ${G}, ${X})`),console.log(` \u2192 Creating checkpoint at step ${Q}`),console.log(` \u2192 Pinning workflow patch "${J}" to version ${_.version}`);let D=crypto.randomUUID(),Y=e();return yield{type:"get-version",operationId:D,changeId:J,minSupported:G,maxSupported:X,version:_.version,callerStack:Y}}function*wO($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return{payload:U.accumulatedResults.get(G).payload,respond:()=>{}};if(U.explainMode)console.log(`[weft] ctx.waitForUpdate("${J}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Waiting for update "${J}"`);let X=crypto.randomUUID(),Q=e(),D=yield{type:"wait-update",operationId:X,updateName:J,callerStack:Q};return $.accumulatedResults.set(G,{payload:D.payload}),D}function*cO($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.review(${JSON.stringify(J.reviewType??"general")})`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(" \u2192 Pausing for human review");let X=crypto.randomUUID(),Q=e(),_=yield{type:"wait-review",operationId:X,reviewOptions:J,callerStack:Q};return $.accumulatedResults.set(G,_),_}function*pO($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.offload("${J}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Offloading data for key "${J}" to external storage`);let Q=crypto.randomUUID(),_=e(),D=yield{type:"offload",operationId:Q,key:J,fn:G,callerStack:_};return $.accumulatedResults.set(X,D),D}function*dO($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.stream("${J}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Streaming data for key "${J}" to external storage`);let Q=crypto.randomUUID(),_=e(),D=yield{type:"stream",operationId:Q,key:J,fn:G,callerStack:_};return $.accumulatedResults.set(X,D),D}function*lO($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.load("${J.key}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Loading offloaded data for key "${J.key}"`);let X=crypto.randomUUID(),Q=e(),_=yield{type:"load",operationId:X,reference:J,callerStack:Q};return $.accumulatedResults.set(G,_),_}function*iO($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return;if(U.explainMode)console.log(`[weft] ctx.archive("${J}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Archiving data for key "${J}"`);let Q=crypto.randomUUID(),_=e();yield{type:"archive",operationId:Q,key:J,data:G,callerStack:_},$.accumulatedResults.set(X,void 0)}var Wc="__weftConditionDeadline:";var nO=F(()=>{z$()});function*rO($,U){let J=[],G,X=!1,Q=!0,_=g($).registerCancelHandler?.(async()=>{if(!Q||X)return;X=!0;try{await Oc(J)}finally{Q=!1,J.length=0,_?.()}});for(let Y of U){let Z=Y.definition;try{let j=(L,q)=>Z.execute(L,q);Object.defineProperty(j,"name",{value:Z.name,configurable:!0});let P=yield*$.run(j,Y.input);J.push({definition:Z,input:Y.input,output:P}),G=P}catch(j){if(!X){X=!0;for(let P=J.length-1;P>=0;P--){let L=J[P];if(L.definition.compensate!==void 0){let{input:q,output:W,definition:S}=L,m=async()=>S.compensate?.(q,W);Object.defineProperty(m,"name",{value:`compensate:${L.definition.name}`,configurable:!0});try{yield*$.run(m)}catch{}}}}throw D(),j}}return D(),G;function D(){Q=!1,J.length=0,_?.()}}async function Oc($){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 oO=F(()=>{tU()});function*aO($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);let X=crypto.randomUUID(),Q=e(),_=yield{type:"speculate",operationId:X,execute:J,callerStack:Q};return $.accumulatedResults.set(G,_),_}var sO=()=>{};function z6($){return $===void 0?void 0:new Map($)}function tO($){return $===void 0?void 0:{...$}}function Rc($,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 Tc($,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},G=z6(U.accumulatedResults);if(G!==void 0)J.accumulatedResults=G;return Rc(J,U),J}function Ec($,U){$.pendingAttributeChanges=tO(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 eO($,U){let J=g($),G=U(Tc($,J));return Ec(g(G),J),G}function $A($,U){let J=g($),G=g(U);J.stepIndex=G.stepIndex,J.accumulatedResults=z6(G.accumulatedResults),J.stateSession=h2(G.stateSession),J.checkpointLocals=t2(J.stateSession,G.checkpointLocals),J.searchAttributes={...G.searchAttributes},J.pendingAttributeChanges=tO(G.pendingAttributeChanges),J.updateHandlers=z6(G.updateHandlers),J.updateValidators=z6(G.updateValidators),J.queryHandlers=z6(G.queryHandlers),J.exposedValues=z6(G.exposedValues),J.memoCache=z6(G.memoCache),J.sleepReferenceTime=G.sleepReferenceTime}var UA=F(()=>{I2();tU();e2()});function JA($,U){let J=Sc($,U);return{session:(G,X)=>PN($,U,G,X),execution:(G,X)=>new QP({type:"execution",ownerWorkflowId:U.executionStateOwnerId},G,X,J),workflow:(G,X)=>new QP({type:"workflow",workflowType:$.workflowType},G,X,J)}}function Sc($,U){return{nextStep:()=>U.stepIndex++,has:(J)=>U.accumulatedResults?.has(J)??!1,get:(J)=>U.accumulatedResults?.get(J),set:(J,G)=>{$.accumulatedResults.set(J,G)}}}var QP;var XA=F(()=>{Z1();e2();QP=class QP extends EventTarget{#$;#U;#J;#X;#G;#Q;constructor($,U,J,G){super();this.#$=$,this.#U=U,this.#J=T4($,U),this.#X=J?.maxRetries??10,this.#G=J&&"initial"in J?{initial:J.initial}:void 0,this.#Q=G}*get(){return(yield*this.#_()).value}*set($){return yield*this.update(()=>$)}*update($){for(let U=0;U<this.#X;U++){let J=yield*this.#_(),G=$(J.value),X=yield*this.#D(J.version,"set",G);if(X.applied)return this.dispatchEvent(new O4(G,J.value,X.version)),G;this.dispatchEvent(new A4(this.#J,U+1))}throw this.dispatchEvent(new C4(this.#J,this.#X)),new R4(this.#J,this.#X)}*delete(){for(let $=0;$<this.#X;$++){let U=yield*this.#_(),J=yield*this.#D(U.version,"delete");if(J.applied){this.dispatchEvent(new O4(void 0,U.value,J.version));return}this.dispatchEvent(new A4(this.#J,$+1))}throw this.dispatchEvent(new C4(this.#J,this.#X)),new R4(this.#J,this.#X)}*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}),$}*#_(){return yield*this.#Y({type:"state-read",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,...this.#G!==void 0?{initial:this.#G.initial}:{},callerStack:e()})}*#D($,U,J){return yield*this.#Y({type:"state-commit",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,expectedVersion:$,mode:U,...U==="set"?{value:J}:{},callerStack:e()})}*#Y($){let U=this.#Q;if(U===void 0)return yield $;let J=U.nextStep();if(U.has(J))return U.get(J);let G=yield $;return U.set(J,G),G}}});function GA($,U,J,G){if(VN(J)||BN(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),G?.validator!==void 0)$.updateValidators??=new Map,$.updateValidators.set(U,G.validator);else $.updateValidators?.delete(U)}function QA($,U,J){$.queryHandlers??=new Map,$.queryHandlers.set(U,J)}function _A($,U){$.exposedValues??=new Map;for(let[J,G]of Object.entries(U))$.exposedValues.set(J,G)}var DA=F(()=>{JH()});function PG($){console[vc[$.level]]($)}function gc($,U,J,G){return{level:U,message:J,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...G!==void 0&&{attributes:G}}}function hc($){let U=(J,G,X)=>{if($.isReplaying())return;let Q=gc($,J,G,X);if($.sink!==void 0){try{$.sink(Q)}catch{PG(Q)}return}PG(Q)};return{debug:(J,G)=>U("debug",J,G),info:(J,G)=>U("info",J,G),warn:(J,G)=>U("warn",J,G),error:(J,G)=>U("error",J,G)}}function YA($,U,J,G){return hc({workflowId:$,workflowType:U,isReplaying:()=>{let X=J();return X.accumulatedResults?.has(X.stepIndex)??!1},now:()=>J().getNow(),...G!==void 0&&{sink:G}})}var vc;var _P=F(()=>{vc={debug:"debug",info:"info",warn:"warn",error:"error"}});function q0($,U){g($).workflowInterceptor=U}class d4{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=rZ($.locals);FN(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.#$??=YA(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 eO(this,($)=>new d4($))}commitSpeculativeChild($){$A(this,$)}get state(){return JA(this,g(this))}*run($,...U){return yield*LN(this,$,U)}*sleep($){let U=g(this),J=yO(U,$);if(J.cached)return;let G=()=>mO(this,J);if(!U.workflowInterceptor)return yield*G();return yield*U.workflowInterceptor.sleep({workflowId:this.workflowId,duration:J.milliseconds,headers:new Map},G)}*suspendUntil($){return yield*this.waitForSignal($)}*waitForSignal($){let U=g(this),J=a$($),G=()=>uO(this,U,J);if(U.accumulatedResults?.has(U.stepIndex))return yield*G();if(!U.workflowInterceptor)return yield*G();return yield*U.workflowInterceptor.waitForSignal({workflowId:this.workflowId,signalName:J,payload:void 0,headers:new Map},G)}*waitForUpdate($){return yield*wO(this,g(this),a$($))}*waitUntil($,U){return yield*kO(this,g(this),$,U)}*getVersion($,U,J){return yield*fO(this,g(this),$,U,J)}*review($){return yield*cO(this,g(this),$)}*all($){return yield*nB(this,g(this),[...$])}*race($){return yield*rB(this,g(this),[...$])}*memo($,U){return yield*oB(this,g(this),$,U)}*offload($,U){return yield*pO(this,g(this),$,U)}*stream($,U){return yield*dO(this,g(this),$,U)}*load($){return yield*lO(this,g(this),$)}*archive($,U){return yield*iO(this,g(this),$,U)}*runAll($){return yield*aB(this,g(this),$)}*saga($){return yield*rO(this,$)}*startChild($,U,J){return yield*wB(this,g(this),$,U,J)}*pipe($,U){return yield*cB(this,g(this),$,U)}*map($,U,J){return yield*pB(this,g(this),$,U,J)}*reduce($,U,J,G){return yield*dB(this,g(this),$,U,J,G)}explain($=!0){g(this).explainMode=$}*speculate($){return yield*aO(this,g(this),$)}setAttribute($,U){SO(g(this),R$($),U)}setAttributes($){xO(g(this),$)}getAttribute($){return bO(g(this),R$($))}getAttributes(){return vO(g(this))}onUpdate($,U,J){GA(g(this),a$($),U,J)}onQuery($,U){QA(g(this),a$($),U)}expose($){_A(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 ZA=F(()=>{I2();G6();gO();Uj();nO();tU();M3();qN();oO();sO();UA();XA();DA();_P()});var zG=F(()=>{ZA()});function IJ($,U,J){$.cancelHandlersByWorkflow??=new Map;let G=$.cancelHandlersByWorkflow.get(U);if(G===void 0)G=[],$.cancelHandlersByWorkflow.set(U,G);return G.push(J),()=>{let X=$.cancelHandlersByWorkflow.get(U);if(X===void 0)return;let Q=X.indexOf(J);if(Q!==-1)X.splice(Q,1);if(X.length===0)$.cancelHandlersByWorkflow.delete(U)}}function FG($,U){return(J)=>IJ($,U,J)}function yJ($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function jA($,U){$.cancelHandlersByWorkflow??=new Map;let J=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),J}function HA($){return{async execute(U,J){let G=J;for(let X=$.length-1;X>=0;X--){let Q=$[X];if(Q.execute){let _=G,D=Q.execute.bind(Q);G=(Y)=>{return D(Y,_)}}}return G(U)}}}var PA;var DP=F(()=>{PA=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"])});function YP($){let U=[],J=[];for(let G of $){if(PA.some((X)=>zA(G,X)))U.push(G);if(zA(G,"execute"))J.push(G)}return{workflow:U,activity:J}}function zA($,U){return typeof $[U]==="function"}var FA=F(()=>{DP()});function Ic($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.activity){let D=X,Y=_.activity.bind(_);X=function*(Z){return yield*Y(Z,D)}}}return yield*X(J)}}function yc($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.sleep){let D=X,Y=_.sleep.bind(_);X=function*(Z){yield*Y(Z,D)}}}yield*X(J)}}function mc($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.waitForSignal){let D=X,Y=_.waitForSignal.bind(_);X=function*(Z){return yield*Y(Z,D)}}}return yield*X(J)}}function uc($){return function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.workflowStart){let D=X,Y=_.workflowStart.bind(_);X=(Z)=>{Y(Z,D)}}}X(J)}}function kc($){return async function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.childWorkflow){let D=X,Y=_.childWorkflow.bind(_);X=(Z)=>{return Y(Z,D)}}}return X(J)}}function fc($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.query){let D=X,Y=_.query.bind(_);X=function*(Z){return yield*Y(Z,D)}}}return yield*X(J)}}function wc($){return function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let _=$[Q];if(_.signalReceived){let D=X,Y=_.signalReceived.bind(_);X=(Z)=>{Y(Z,D)}}}X(J)}}function LA($){return{activity:Ic($),sleep:yc($),waitForSignal:mc($),workflowStart:uc($),childWorkflow:kc($),query:fc($),signalReceived:wc($)}}var qA=F(()=>{DP();FA()});var VA=F(()=>{qA()});function F6($,U,J,G){if($.inlineStrategy){if(J.status==="completed")$.inlineStrategy.continueWorkflow(U,J.value);else $.inlineStrategy.throwIntoWorkflow(U,G!==void 0?G.value:S3(J),J.failureCategory);return}let X=$.checkpoints.get(U),Q=X?V$(X):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:Q,operationResult:J})}async function C6($){if(!$)return;try{await $}catch{}}function L6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=YP($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:LA(U),$.composedWorkflowInterceptor}function BA($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=YP($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:HA(U),$.composedActivityInterceptor}var p6=F(()=>{_6();S4();VA()});function MA($,U,J,G){return{workflowId:U,step:J.step}}function WA($,U,J,G){return{...U.searchAttributes,[eK]:J.workflowId}}function NA($,U,J,G,X,Q,_){return{id:U,type:J.type,status:"running",input:J.input,versionTuple:G,executionStateOwnerId:U,createdAt:Q,startedAt:Q,updatedAt:Q,forkedFrom:X}}function KA($,U,J,G,X,Q,_){let D=[{type:"put",key:z.workflow(U),value:M(J)},{type:"put",key:z.checkpoint(U),value:X},...o3(U,null,J).batchOps];if(Object.keys(G.searchAttributes).length>0)D.push({type:"put",key:z.attribute(U),value:M(G.searchAttributes)},...O$(U,{},G.searchAttributes));if(Q&&Q.size>0)D.push({type:"put",key:z.workflowHeaders(U),value:l3(Q)},{type:"put",key:z.terminalCleanupNeeded(U),value:l$});return D}var OA=F(()=>{v();I();d$();U$();s$();D4()});function AA($,U,J){let G=[{type:"put",key:z.childCancellation(U,J),value:l$}],X=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),X)G.push({type:"put",key:z.terminalCleanupNeeded(U),value:l$});return G}function ZP($,U,J,G){IJ($,U,()=>G.getHandle(J).cancel())}async function jP($,U,J){for await(let[G]of $.storage.scan(z.childCancellationPrefix(U))){let X=cc(U,G);if(X===null)continue;ZP($,U,X,J)}}function cc($,U){let J=z.childCancellationPrefix($);if(!U.startsWith(J))return null;let G=U.slice(J.length);if(G.length===0||G.includes(":"))return null;return GF(G)}var HP=F(()=>{v();D4()});async function pc($,U,J){return XG($,U,J.failWorkflowForUnavailableServices,J.handleCleanupError,J.dispatchEvent)}function CA($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function dc($,U){let{workflowId:J,resumeCheckpoint:G,serializedCheckpoint:X,registeredVersionTuple:Q,restoredHead:_,callbacks:D}=U;$.checkpoints.set(J,G),pX($,J,X),$.workflowVersionTuples.set(J,Q),$.eventLogHeads.set(J,_),_4($,J,U.workflowStartHeaders,D),$.parkedInlineWorkflows.delete(J)}async function lc($,U,J){let{workflowId:G,resumeCheckpoint:X,registration:Q,callbacks:_}=J,D=new Map(X.accumulatedResults),Y=new AbortController;yJ($,G),await jP($,G,_);let Z=new d4({workflowId:G,workflowType:U.type,startedAt:A6(U),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:_.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??G,accumulatedResults:D,locals:X.locals,searchAttributes:X.searchAttributes,registerCancelHandler:FG($,G),...Q.searchAttributes&&{searchAttributeSchema:Q.searchAttributes},sleepReferenceTime:X.createdAt,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},services:$.workflowServices.get(G),...$.options.onLog!=null&&{logSink:$.options.onLog}});if(q0(Z,L6($)),$.options.development)Z.explain(!0);let j=Q.handler(Z,U.input),P=$.inlineStrategy;P.adoptWorkflow(G,j,Z,Y),P.continueWorkflow(G,void 0)}async function ic($,U,J){let{workflowId:G,resumeCheckpoint:X,workflowStartHeaders:Q,callbacks:_}=J;yJ($,G),await jP($,G,_);let D=V$(X);$.strategy.startWorkflow({workflowId:G,workflowType:U.type,input:U.input,checkpoint:D,nestingDepth:$.workflowNestingDepths.get(G)??0,executionStateOwnerId:U.executionStateOwnerId??G,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},...Q!==void 0&&Q.size>0&&{headers:[...Q]}})}async function nc($,U){let{workflowId:J}=U;CA($,J);let G=await i($,J);if(CA($,J),!G)throw Error(`Workflow "${J}" not found in storage`);if(G.status!=="running"&&G.status!=="suspended")throw Error(`Cannot resume workflow "${J}": status is "${G.status}", expected "running" or "suspended"`);if(await rc($,G),dc($,U),$.inlineStrategy){await lc($,G,U);return}await ic($,G,U)}async function rc($,U){if(U.status!=="suspended")return;let J={...U};U.status="running",U.updatedAt=$.options.getNow(),await D$($,[{type:"put",key:z.workflow(U.id),value:M(U)},...y$(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 mJ($,U,J,G){let X=await $.storage.get(z.workflow(U));if(!X)throw Error(`Workflow "${U}" not found in storage`);let Q=n(X);if(Q.status!=="running"&&Q.status!=="suspended")throw Error(`Cannot resume workflow "${U}": status is "${Q.status}", expected "running" or "suspended"`);let _=await $.storage.get(z.checkpoint(U));if(!_)throw Error(`Checkpoint not found for workflow "${U}"`);let D=H$(_),Y=$.registrations.get(Q.type);if(!Y)throw Error(`No workflow registered with name "${Q.type}" (needed to resume "${U}")`);let Z=await cH($,U,Q,D,_,Y,G),j=Z.checkpoint,P=Z.versionTuple,q=await new e$($.storage,U).loadHead();if(await uH($,U,q,G))return G.getHandle(U);let W=await u1($,U,G);if(await kH($,U,G),await pc($,Q,G))return G.getHandle(U);let S=G.getHandle(U);if(await G.runSerializedWorkflowStateWrite(U,()=>nc($,{workflowId:U,resumeCheckpoint:j,serializedCheckpoint:Z.serializedCheckpoint,registeredVersionTuple:P,restoredHead:q,workflowStartHeaders:W,registration:Y,callbacks:G})),J)G.dispatchEvent(new LX(U,j.step));if($.inlineStrategy)G.swallowPromiseRejection(G.processPendingUpdatesAfterInlineAdvance(U));return S}var PP=F(()=>{v();_6();I();zG();m1();J$();z$();y1();HP();O6();k4();E$();p6();_$();s$();SJ();GG();D4()});function oc($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function ac($,U,J){let G=U.hasLocalCheckpointOwnership(J.id,J.status);if(J.status==="pending"||U.isInlineWorkflowLocallyOwned(J.id,J.status)||G)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 sc($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function tc($,U){let J={entries:[],missingWorkflows:[]};for await(let[G,X]of $.storage.scan("wf:")){if(oc(G))continue;sc(J,ac($,U,n(X)))}return J}async function zP($,U,J){let G=await tc($,U),X=[];if(G.missingWorkflows.length>0&&J?.acknowledgeUnknownWorkflowTypes!==!0)throw new QJ({registeredTypes:$.registrations.keys(),missingWorkflows:G.missingWorkflows});for(let Q of G.entries){if(Q.kind==="local"){X.push(U.getHandle(Q.workflowId));continue}if(Q.kind==="missing"){U.dispatchEvent(new VX(Q.workflow.workflowId,Q.workflow.type,"type-not-registered"));continue}try{X.push(await LG($,Q.workflowId,U))}catch(_){if(_ instanceof E2){await U.failWorkflowForCheckpointDecodeError(Q.workflowId,_);continue}throw _}}return X}async function LG($,U,J){let G=await i($,U);if(G!==null){if(J.isInlineWorkflowLocallyOwned(U,G.status)||J.hasLocalCheckpointOwnership(U,G.status))return await $O($,U,J),J.getHandle(U)}return mJ($,U,!0,J)}async function FP($,U,J,G){let X=await i($,U);if(!X)throw Error(`Workflow "${U}" not found`);let Q=$.registrations.get(X.type);if(!Q)throw Error(`No workflow registered with name "${X.type}" (needed to fork "${U}")`);let _=J?.fromStep!==void 0?_W(J.fromStep):void 0,D=_!==void 0?z.checkpointHistory(U,_):z.checkpoint(U),Y=await $.storage.get(D);if(!Y){if(_!==void 0)throw Error(`Checkpoint not found at step ${String(_)} for workflow "${U}"`);throw Error(`Checkpoint not found for workflow "${U}"`)}let Z=H$(Y),j=await B1($.storage,U,Z),P=UG($,U,X,j,Q,G),L=$.workflowHeaders.get(U)??await u1($,U,G),q=i3(L),W=crypto.randomUUID(),S=$.options.getNow(),m=MA($,U,j,G),{accumulatedResultReplayWatermark:s,...p}=P.checkpoint,y={...p,createdAt:S,workflowId:W,searchAttributes:WA($,P.checkpoint,m,G)},k=NA($,W,P.state,P.versionTuple,m,S,G),w=!1;try{let x$=V$(y);await D$($,KA($,W,k,y,x$,q,G),[],()=>Error(`Fork of workflow "${W}" lost its CAS race.`)),$.eventLogHeads.set(W,q1),_4($,W,q,G);let T6=RA($,W,k,y,Q,G);return w=!0,T6}finally{if(!w)c4($,W),$.checkpoints.delete(W),$.workflowVersionTuples.delete(W),$.eventLogHeads.delete(W),$.workflowHeaders.delete(W)}}function ec($,U,J,G,X,Q){let _=$.inlineStrategy;if(!_)throw Error("Inline workflow launch requested without an inline strategy.");let D=new Map(G.accumulatedResults),Y=new AbortController;yJ($,U);let Z=new d4({workflowId:U,workflowType:J.type,startedAt:A6(J),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:J.executionStateOwnerId??U,accumulatedResults:D,searchAttributes:G.searchAttributes,registerCancelHandler:FG($,U),...X.searchAttributes&&{searchAttributeSchema:X.searchAttributes},sleepReferenceTime:G.createdAt,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(q0(Z,L6($)),$.options.development)Z.explain(!0);let j=X.handler(Z,J.input);_.adoptWorkflow(U,j,Z,Y),_.continueWorkflow(U,void 0),Q.swallowPromiseRejection(Q.processPendingUpdatesAfterInlineAdvance(U))}function $p($,U,J,G){let X=V$(G);$.strategy.startWorkflow({workflowId:U,workflowType:J.type,input:J.input,checkpoint:X,executionStateOwnerId:J.executionStateOwnerId??U,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function RA($,U,J,G,X,Q){$.checkpoints.set(U,G),$.workflowVersionTuples.set(U,F0($,X,Q));let _=EJ($,U,Q);if(Q.dispatchEvent(new b4(U,J.type,J.input)),$.inlineStrategy)ec($,U,J,G,X,Q);else $p($,U,J,G);return _}var TA=F(()=>{v();_6();iZ();zG();m1();J$();y1();M1();L$();O6();k4();U$();E$();p6();_$();OA();SJ();PP();D4()});var l4=F(()=>{D4();SJ();jG();TO();lH();TA();PP()});function EA($,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(uJ($,J))},0)}function LP($,U){for(let J of U)$.queuedInlineWorkflowStartIds.delete(J.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(J.workflowId),J.onStarted?.()}async function uJ($,U){if($.abortController.signal.aborted){let G=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],LP($,G);return}if($.queuedInlineWorkflowStarts.length===0)return;let J=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let G of J)await U.swallowPromiseRejection(Up($,G,U))}async function SA($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await uJ($,U)}async function xA($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let J=0,G=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&J<G)J+=1,await U.swallowPromiseRejection(uJ($,U))}async function Up($,U,J){try{let G=await i($,U.workflowId);if(!G||G.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new b4(U.workflowId,U.workflowType,U.input)),DG($,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 qG($,U){if($.queuedInlineWorkflowStarts.length===0)return!1;let J=$.queuedInlineWorkflowStarts.length,G=[];if($.queuedInlineWorkflowStarts=$.queuedInlineWorkflowStarts.filter((X)=>{if(X.workflowId===U)return G.push(X),!1;return!0}),$.queuedInlineWorkflowStarts.length!==J)LP($,G);return $.queuedInlineWorkflowStarts.length!==J}function bA($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],LP($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let J=$.queuedInlineWorkflowStartChannel;if(J!==null)J.port1.close(),J.port2.close(),$.queuedInlineWorkflowStartChannel=null}function vA($,U){return $.queuedInlineWorkflowStartIds.has(U)}function Jp($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function gA($){return $==="running"||$==="pending"}function hA($,U,J){if(!gA(J))return!1;if(Jp($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function IA($,U,J){return $.checkpoints.has(U)&&gA(J)}var i4=F(()=>{J$();l4();E$()});function mA($){let U={engine:$};yA.set($,U)}function H($){let U=yA.get($);if(!U)throw Error("Engine internals not initialized \u2014 initializeInternals(this) was not called in the Engine constructor");return U}var yA;var n4=F(()=>{yA=new WeakMap});async function Xp(){await new Promise(($)=>{setTimeout($,0)})}async function Gp($,U){let J=$.inlineStrategy;if(J===null)return!1;let G=J.getContext(U);if(G&&G.updateHandlers.size>0)return!0;let X=J.waitForWorkflowAdvance(U);if(X){if(await X,G=J.getContext(U),G&&G.updateHandlers.size>0)return!0}for(let Q=0;Q<5;Q++)if(await Xp(),G=J.getContext(U),G&&G.updateHandlers.size>0)return!0;return!1}async function Qp($,U,J,G){return QH($,U,J,G)}async function uA($,U,J){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await Gp($,U))return;await kJ($,U,J)}function kA($,U,J){if($.inlineStrategy===null)return;setTimeout(()=>{kJ($,U,J).catch(()=>{})},0)}async function _p($,U,J){let G;try{G=await $(J)}catch(Q){let _=Q instanceof Error?Q.message:String(Q);return new P1(U,[{message:_}]).message}let X=_H(G);if(X!==null&&X.length>0)return new P1(U,X).message;return null}async function kJ($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.updateHandlers;if(X.size===0)return;let Q=await $.updateCoordinator.getPendingUpdates(U);if(Q.length===0)return;let _=!1;try{for(let D of Q){let Y=X.get(D.name);if(!Y)continue;if(!Dp($,U,D.updateId))continue;let Z=await Yp(G,D);if(Z!==null){await Zp($,U,D,Z,J);continue}_=!0,await jp($,U,D,Y,J)}}finally{if(_)$J($,U)}}function Dp($,U,J){let G=$.deliveredPendingUpdateIds.get(U);if(G===void 0)G=new Set,$.deliveredPendingUpdateIds.set(U,G);if(G.has(J))return!1;return G.add(J),!0}async function Yp($,U){let J=$.updateValidators?.get(U.name);if(J===void 0)return null;return _p(J,U.name,U.payload)}async function Zp($,U,J,G,X){let Q=$.updateCoordinator.buildResponseOperations(J.updateId,U,void 0,G,J.idempotencyKey);await D$($,Q,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}async function jp($,U,J,G,X){X.dispatchEvent(new J4(J.updateId,U,J.name,J.payload));let Q,_;try{Q=await Qp($,J.name,G,J.payload)}catch(Y){_=Y instanceof Error?Y.message:String(Y)}let D=$.updateCoordinator.buildResponseOperations(J.updateId,U,Q,_,J.idempotencyKey);await D$($,D,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),X.dispatchEvent(new w6(J.updateId,U,J.name,Q,_)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}var qP=F(()=>{J$();fU();O6();eU()});function Hp($){return $===void 0?void 0:[...$]}function wA($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function Pp($,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 zp($,U){let J=Hp(U.tags),G=w3(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:K4(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:K4(U.outputSchema,`registration("${$}").outputSchema`)},...G!==null&&{retention:G},...U.concurrency!==void 0?{concurrency:Fp(U.concurrency,`registration("${$}").concurrency`)}:{}}}function Fp($,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 Lp($,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 qp($,U){let J=zp($,U);return Lp(J,U),J}function fA($,U,J){let G=U.name;P4(G,"workflow"),Pp($,G,U);let X=qp(G,U);$.registrations.set(G,X),J.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,G),J.dispatchEvent(new O1(G))}function fJ($,U){if(!(U in $))return!1;let J=$[U];return typeof J==="object"&&J!==null}function Vp($){if(!wA($))return!1;return fJ($,"activities")&&fJ($,"signals")&&fJ($,"updates")&&fJ($,"queries")&&fJ($,"searchAttributes")}function Bp($){let U=new A2;for(let J of Object.values($)){let G=SU(J),X=cF(G);U.register(X.name,X)}return U}function Mp($,U,J){let G=$.workflowDefinitionsByName.get(U);if(G===void 0)return{kind:"register"};if(G===J)return{kind:"idempotent"};throw Error(`Workflow "${U}" is already registered with a different definition`)}function cA($,U,J){if(!wA(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(Vp(U)){if(Mp($,U.name,U).kind==="idempotent")return;let X=Bp(U.activities);fA($,U,J),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,X);return}fA($,U,J)}function VG($,U,J){if(typeof U==="string")return U;let G=$.workflowTypesByHandler.get(U);if(G)return G;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 VP=F(()=>{IZ();J$();G6();g0();_$()});function d6($,U,J){if(J!==void 0)$[U]=J}function pA($){return{status:"pending",...$}}function Kp($){let U={reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt};return d6(U,"timeout",$.timeout),d6(U,"webhookUrl",$.webhookUrl),U}function BG($){let U;try{U=R($)}catch{return null}let J=Wp.safeParse(U);if(!J.success)return null;return Kp(J.data)}function dA($,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 d6(J,"timeout",$.timeout),d6(J,"webhookUrl",$.webhookUrl),d6(J,"feedback",U.feedback),d6(J,"sectionDecisions",U.sectionDecisions),J}function Op($){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 d6(U,"timeout",$.timeout),d6(U,"webhookUrl",$.webhookUrl),d6(U,"feedback",$.feedback),d6(U,"sectionDecisions",$.sectionDecisions),U}function BP($){let U;try{U=R($)}catch{return null}let J=Np.safeParse(U);if(!J.success)return null;return Op(J.data)}var Wp,Np;var MP=F(()=>{N2();I();Wp=b.object({reviewId:b.string(),workflowId:b.string(),artifact:b.unknown().nonoptional(),reviewType:b.string(),reviewers:b.array(b.string()),allowPartial:b.boolean(),timeout:b.number().optional(),webhookUrl:b.string().optional(),createdAt:b.number()}),Np=b.object({status:b.literal("completed"),reviewId:b.string(),workflowId:b.string(),artifact:b.unknown().nonoptional(),reviewType:b.string(),reviewers:b.array(b.string()),allowPartial:b.boolean(),timeout:b.number().optional(),webhookUrl:b.string().optional(),createdAt:b.number(),decision:b.enum(["approved","rejected","needs-changes"]),reviewer:b.string(),feedback:b.string().optional(),sectionDecisions:b.record(b.string(),b.enum(["approved","rejected"])).optional(),timestamp:b.number()})});function WP($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function NP($){if($===void 0)return"review-decision:";return`review-decision:${N($)}:`}function Ap($,U){return`${NP($)}${N(U)}`}async function lA($,U,J,G=()=>!0){for await(let[X,Q]of U){if(!G(X))continue;let _=BP(Q);if(_!==null&&WP(_,J))$.push(_)}}async function iA($,U){let J=[],G=U.workflowId===void 0?null:NP(U.workflowId);if(G!==null)await lA(J,$.scan(G),U);return await lA(J,$.scan("review-decision:"),U,(X)=>G===null||!X.startsWith(G)),J}async function nA($,U,J,G){let X=dA(J,G);await $.batch([{type:"put",key:Ap(J.workflowId,J.reviewId),value:M(X)},{type:"delete",key:U}])}async function rA($,U){let J=NP(U),G=[];if($.deletePrefix)await $.deletePrefix(J);else for await(let[X]of $.scan(J))G.push({type:"delete",key:X});for await(let[X,Q]of $.scan("review-decision:")){if(X.startsWith(J))continue;if(BP(Q)?.workflowId===U)G.push({type:"delete",key:X})}if(G.length>0)await $.batch(G)}var oA=F(()=>{v();I();MP()});function Cp($){if($.workflowId===void 0)return"review:";return`review:${N($.workflowId)}:`}async function Rp($,U){let J=[];for await(let[,G]of $.storage.scan(Cp(U))){let X=BG(G);if(X!==null&&WP(X,U))J.push(pA(X))}return J}async function aA($,U,J,G,X){await nA($.storage,U,J,G),X(new W3(J.workflowId,J.reviewId,G.decision,G.reviewer,G.timestamp-J.createdAt))}async function sA($,U={}){if(U.status==="completed")return iA($.storage,U);return Rp($,U)}async function tA($,U,J){return $.reviewCoordinator.getReview(U,J)}async function Tp($,U){for await(let[J,G]of $.storage.scan("review:")){let X=BG(G);if(X!==null&&X.reviewId===U)return{reviewKey:J,reviewData:X,workflowId:X.workflowId}}return null}async function Ep($,U,J){if(J!==void 0){let G=z.review(J,U),X=await $.storage.get(G);return X===null?null:{reviewKey:G,reviewData:BG(X),workflowId:J}}return Tp($,U)}function Sp($,U,J){let{decision:G,reviewer:X,feedback:Q,sectionDecisions:_}=U,D={reviewId:$,decision:G,reviewer:X,timestamp:J};if(Q!==void 0)D.feedback=Q;if(_!==void 0)D.sectionDecisions=_;return D}function xp($,U,J,G){let X=`${U}:${J}`,Q=$.reviewWaiters.get(X);if(!Q)return;$.reviewWaiters.delete(X),Z6($.reviewWaitersByWorkflow,U,X),Q(G)}async function eA($,U,J,G){let X=await Ep($,U,J.workflowId);if(X===null)throw Error(`Review "${U}" not found`);if(X.reviewData===null)throw Error(`Review "${U}" could not be loaded`);let Q=Sp(U,J,$.options.getNow());await aA($,X.reviewKey,X.reviewData,Q,G.dispatchEvent),xp($,X.workflowId,U,Q)}function bp($,U){$({ok:!0,value:U})}async function vp($,U,J,G,X,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(G),Z6($.reviewWaitersByWorkflow,U,G);let P=$.options.getNow()-X.createdAt;await $.storage.delete(z.review(U,J));let L=new Yj(J,P);return await Y.failWorkflow(U,L),_({ok:!1,error:L}),!0}if(!Q.escalation)return!1;let Z=$.reviewCoordinator.checkEscalations(X,Q.escalation,$.options.getNow());if(!Z)return!1;if(Z.type==="escalate")return Q.onEscalation?.(Z),!1;$.reviewWaiters.delete(G),Z6($.reviewWaitersByWorkflow,U,G);let j={reviewId:J,decision:Z.decision,reviewer:"system",feedback:Z.auditReason,timestamp:$.options.getNow()};return await aA($,z.review(U,J),X,j,Y.dispatchEvent),_({ok:!0,value:j}),!0}async function gp($,U,J,G,X){try{await fetch(G,{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:X.signal})}catch(Q){if(!(Q instanceof DOMException&&Q.name==="AbortError"))console.warn(`[weft] Failed to send review webhook for ${J.reviewId}`,Q)}finally{$.pendingWebhooks.delete(X)}}async function $C($,U){let J=`review:${N(U)}:`,G=[];if($.storage.deletePrefix)await $.storage.deletePrefix(J);else for await(let[X]of $.storage.scan(J))G.push({type:"delete",key:X});if(G.length>0)await $.storage.batch(G);await rA($.storage,U)}function V0($,U,J){if(J!==void 0)$[U]=J}function hp($){let U={artifact:$.artifact};return V0(U,"reviewType",$.reviewType),V0(U,"reviewers",$.reviewers),V0(U,"allowPartial",$.allowPartial),V0(U,"timeout",$.timeout),V0(U,"escalation",$.escalation),V0(U,"webhookUrl",$.webhookUrl),U}async function Ip($,U,J,G,X){let Q=[];for(let _ of G.escalation??[]){let D=`review-escalation:${J}:${_.after}`;Q.push(D),await $.scheduler.schedule({id:D,workflowId:U,fireAt:X+_.after,kind:"sleep"})}if(G.timeout!==void 0){let _=`review-timeout:${J}`;Q.push(_),await $.scheduler.schedule({id:_,workflowId:U,fireAt:X+G.timeout,kind:"sleep"})}return Q}function yp($,U,J){let{promise:G,resolve:X}=Promise.withResolvers(),Q=`${U}:${J}`;return $.reviewWaiters.set(Q,(_)=>bp(X,_)),h4($.reviewWaitersByWorkflow,U,Q),{promise:G,resolve:X,waiterKey:Q}}function mp($,U,J,G,X){let Q=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.set(J,X),G.length>0)$.reviewTimerIds.set(J,G);if(!Q)Q=new Set,$.workflowReviewIds.set(U,Q);Q.add(J)}function up($,U,J){let G=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.delete(J),$.reviewTimerIds.delete(J),G?.delete(J),G?.size===0)$.workflowReviewIds.delete(U)}async function UC($,U,J,G){let X=$.options.getNow();await G.ensureTerminalCleanupTracked(U);let Q=await $.reviewCoordinator.createReview(U,hp(J)),_=Q.reviewId;if(G.dispatchEvent(new kU(U,_,Q.reviewType,Q.reviewers)),J.webhookUrl!==void 0){let L=new AbortController;$.pendingWebhooks.add(L),gp($,U,Q,J.webhookUrl,L)}let D=await Ip($,U,_,J,X),{promise:Y,resolve:Z,waiterKey:j}=yp($,U,_);mp($,U,_,D,(L)=>vp($,U,_,j,Q,J,Z,L,G));let P=await Y;up($,U,_);for(let L of D)await $.scheduler.cancel(L,U);if(!P.ok)return;G.feedOperationResult(U,{status:"completed",value:P.value})}var MG=F(()=>{v();Dj();jj();oA();MP();I4()});async function kp($,U,J){for(let G of $)try{await G()}catch(X){U.handleCleanupError("cancel-handler",X,J)}}async function fp($,U,J,G){if(J!=="cancelled")return;let X=jA($,U);await kp(X,G,U)}async function KP($,U,J){await f1($,U,"cancelled",J)}async function OP($,U,J){await f1($,U,"timed-out",J)}async function f1($,U,J,G,X){$.terminalizingWorkflows.add(U),qG($,U),$.strategy.cancelWorkflow(U);try{let Q=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,_=await $.storage.get(z.attribute(U)),D=_?R(_):{},Y=await $.storage.get(z.finalizerState(U))!==null||TN($,U,z.finalizerState(U)),Z=fX(D),j=J==="timed-out"?"Workflow timed out":"Workflow cancelled",P=await OH($,U,{status:J,...X!==void 0?{terminationReason:X}:{},...Q!==void 0?{terminalCleanupToken:Q}:{}},{allowedStatuses:iH,buildAdditionalOperations:(s,p)=>{R6($,U,J,j,p);let y=B0($,U);return[...y?[y]:[],...Q!==void 0?WG($,U,!0,p,Q):[],...np(U,Y,p)]}});if(!P)return;await fp($,U,J,G),await z0($,U);let{previousState:L,updatedAt:q}=P,W=q-A6(L);if(await NH($,U,D),await KH($,U,Z),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),L.status==="pending")G.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let S=$.resultResolvers.get(U),m=wp(U,J,W);try{await ZG($,U,!0,G);let s=cp(U,J,W,X);if(G.dispatchEvent(s),G.forwardEventToHandle(U,s),S)S.reject(m);bJ($,U,G)}catch(s){if(S)S.reject(m);throw s}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function wp($,U,J){return U==="timed-out"?new b1($,"execution",J):Error("Workflow cancelled")}function cp($,U,J,G){return U==="timed-out"?new G4($,"execution",J,G):new C1($)}function pp($,U,J,G){return{...$,status:"completed",result:U,updatedAt:J,...G!==void 0?{terminalCleanupToken:G}:{}}}function dp($,U,J){if(J===void 0||Object.keys(J).length===0)return;let G=fX(J);if($.push(...O$(U,J,G)),Object.keys(G).length>0)$.push({type:"put",key:z.attribute(U),value:M(G)});else $.push({type:"delete",key:z.attribute(U)})}function lp($,U,J,G){let X=y$(U,J,G).batchOps,Q=[...Q0(J,G),{type:"put",key:z.workflow(U),value:M(G)},...X],_=B0($,U);if(_)Q.push(_);return Q}function ip($,U,J,G,X){X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let Q=$.resultResolvers.get(U);try{oH($,U,X);let _=new A1(U,J,G);if(X.dispatchEvent(_),X.forwardEventToHandle(U,_),X.broadcast({type:"workflow:completed",workflowId:U}),Q)Q.resolve(J);bJ($,U,X)}catch(_){if(Q)Q.resolve(J);throw _}finally{$.resultResolvers.delete(U)}}async function AP($,U,J,G){let X=await G.runSerializedWorkflowStateWrite(U,async()=>{let Q=await G.loadWorkflowState(U);if(!Q||Q.status!=="running")return null;let _=T$($.options.getNow(),"Workflow completion timestamp"),D=_-A6(Q),Y=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Z=pp(Q,J,_,Y),j=lp($,U,Q,Z),P=$.checkpoints.get(U)?.searchAttributes;if(P===void 0){let L=await $.storage.get(z.attribute(U));if(L)P=R(L)}if(dp(j,U,P),Y!==void 0)j.push(...WG($,U,!1,_,Y));return await G.commitWorkflowStateOperations(Q,j,{includePendingAtomicSideEffects:!0}),{duration:D}});if(!X)return;await z0($,U),ip($,U,J,X.duration,G)}async function $6($,U,J,G,X="system"){let Q=await $.storage.get(z.attribute(U)),_=Q?R(Q):{},D=fX(_,{failureCategory:X}),Y={status:"failed",error:J.message,failureCategory:X},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 OH($,U,Y,{allowedStatuses:iH,buildAdditionalOperations:(L,q)=>{R6($,U,"failed",J.message,q);let W=B0($,U);return[...W?[W]:[],...Z!==void 0?WG($,U,!1,q,Z):[]]}}))return;await z0($,U),await NH($,U,_),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await KH($,U,D);let P=$.resultResolvers.get(U);try{await ZG($,U,!1,G);let L=new X4(U,J);if(G.dispatchEvent(L),G.forwardEventToHandle(U,L),P)P.reject(J);bJ($,U,G)}catch(L){if(P)P.reject(J);throw L}finally{$.resultResolvers.delete(U)}}function WG($,U,J,G,X){return P$({id:aU(J,X),workflowId:U,fireAt:G+lX,kind:"terminal-cleanup"})}function np($,U,J){if(!U)return[];let G=crypto.randomUUID(),X={status:"owed",attempts:0,token:G};return[{type:"put",key:z.teardownOwed($),value:M(X)},...P$({id:p3(G),workflowId:$,fireAt:J,kind:"teardown"})]}async function wJ($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(z.terminalCleanupNeeded(U),l$)}function R6($,U,J,G,X=$.options.getNow()){let Q=$.pendingTimelineEntries.get(U);if(!Q)return;let _=Q.entry.status;if(_===J)return;if(_!=="running"&&!(_==="completed"&&(J==="failed"||J==="cancelled"||J==="timed-out")))return;Q.entry.status=J,Q.entry.outputSummary=F$(G),Q.entry.duration=X-Q.startedAt}function B0($,U){let J=$.pendingTimelineEntries.get(U);if(!J)return null;return{type:"put",key:z.timeline(U,J.entry.step),value:M(J.entry)}}var JC=F(()=>{v();I();J$();z$();d$();xX();D0();tX();k4();i4();l4();U$();RJ();s$();vJ()});function XC($,U,J,G){let X=$.inlineStrategy?.getAbortController(U),Q=$.activityWorkerDispatcher?void 0:QN(J.options?.timeout),_=Q===void 0?void 0:new AbortController,D=rp(X?.signal,_?.signal,G);return{perAttemptTimeoutMs:Q,attemptAbortController:_,activitySignal:D}}function rp($,U,J){let G=[$,U,J].filter((Q)=>Q!==void 0),[X]=G;if(X===void 0)return new AbortController().signal;if(G.length===1)return X;return AbortSignal.any(G)}async function NG($,U,J,G,X){if(U===void 0)return $;let Q=Promise.resolve($);Q.catch(()=>{});let _,D=new Promise((Y,Z)=>{_=setTimeout(()=>{let j=new sj(J,G,U);Z(j),X?.abort(j)},U)});try{return await Promise.race([Q,D])}finally{if(_!==void 0)clearTimeout(_)}}var CP=F(()=>{ej()});async function GC($,U,J,G){let X=$.timeout===void 0?void 0:Z$($.timeout),Q=new AbortController,_=()=>Q.abort(G.reason);if(G.aborted)Q.abort(G.reason);else G.addEventListener("abort",_,{once:!0});let D={signal:Q.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 NG($.execute(U,D),X,$.name,J,Q),G.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:G.reason}),abortedByShutdown:!0};return{ok:!0}}catch(Y){return{ok:!1,error:Y,abortedByShutdown:G.aborted}}finally{G.removeEventListener("abort",_)}}var QC=F(()=>{z$();CP()});function DC($){let U=$-1;return RP[U]??RP[RP.length-1]}function YC($){return($.timeout===void 0?op:Z$($.timeout))+ap}function ZC($,U,J){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=YC(J)}function KG($,U,J){return P$({id:p3($),workflowId:U,fireAt:J,kind:"teardown"})}function TP($,U){return M({status:"owed",attempts:$,token:U})}function sp($,U,J){return M({status:"running",attempts:$,token:U,claimedAt:J})}async function cJ($,U,J,G){let X=$.options.getNow()+G;try{await D$($,KG(J,U,X),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function jC($,U,J){try{return await J0($,[{type:"delete",key:z.teardownOwed(U)}],[{key:z.teardownOwed(U),expectedValue:J}])}catch{return!1}}async function HC($,U,J,G,X){let Q=sp(G,X,$.options.getNow());return await J0($,[{type:"put",key:z.teardownOwed(U),value:Q}],[{key:z.teardownOwed(U),expectedValue:J}])?Q:null}async function pJ($,U,J,G){return J0($,G,[{key:z.teardownOwed(U),expectedValue:J}])}async function EP($,U,J,G,X,Q){let _={type:J,lastError:Q.lastError,attempts:G,deadLetteredAt:$.options.getNow(),...Q.finalizerInput===void 0?{}:{finalizerInput:Q.finalizerInput}};return pJ($,U,X,[{type:"delete",key:z.teardownOwed(U)},{type:"delete",key:z.finalizerState(U)},{type:"put",key:z.teardownDeadLetter(U),value:M(_)}])}var _C=8,RP,op=300000,ap=30000,M0=30000;var PC=F(()=>{v();I();z$();O6();U$();RP=[60000,300000,900000,3600000]});function ep($){return $ instanceof Error?$.message:String($)}async function OG($,U,J){await cJ($,U,J,M0)}async function SP($,U,J,G){return await jC($,U,G)?{kind:"cleared"}:{kind:"rearm",token:J}}async function $d($,U,J,G){let X;try{X=R(G)}catch{return SP($,U,J,G)}if(!XW(X))return SP($,U,J,G);return{kind:"claim",claim:X}}async function Ud($,U,J,G){let X=await $.storage.get(z.teardownOwed(U));if(X===null)return{kind:"cleared"};let Q=await $d($,U,J,X);if(Q.kind!=="claim")return Q;let _=Q.claim;if(_.token!==J)return{kind:"cleared"};let D=await G.loadWorkflowState(U);if(D===null||!tp.has(D.status))return SP($,U,J,X);let Y=$.registrations.get(D.type)?.finalizer;if(Y===void 0)return{kind:"rearm",token:J};let Z=Y;if(!ZC($,_,Z))return{kind:"rearm",token:J};let j=await $.storage.get(z.finalizerState(U));if(j===null)return await Jd($,U,D.type,_.attempts,X,G),{kind:"cleared"};return{kind:"run",drive:{state:D,claim:_,markerBytes:X,finalizer:Z,finalizerInput:R(j)}}}async function Jd($,U,J,G,X,Q){if(await EP($,U,J,G,X,{lastError:"finalizer state missing \u2014 recorded resource cannot be torn down",finalizerInput:void 0}))Q.dispatchEvent(new R1(U,J,"dead-lettered",G,"finalizer state missing \u2014 recorded resource cannot be torn down"))}async function xP($,U,J,G){let X=JW(J);if(X===null)return;try{let Q=await Ud($,U,X,G);if(Q.kind==="cleared")return;if(Q.kind==="rearm"){await cJ($,U,Q.token,M0);return}await Xd($,U,X,Q.drive,G)}catch(Q){await cJ($,U,X,M0),G.handleCleanupError("runWorkflowFinalizer",Q,U)}}async function Xd($,U,J,G,X){let{state:Q,claim:_,markerBytes:D,finalizer:Y,finalizerInput:Z}=G,j=_.attempts+1,P=await HC($,U,D,_.attempts,J);if(P===null){await cJ($,U,J,M0);return}let L=await GC(Y,Z,j,$.abortController.signal);if(L.ok){await Gd($,U,Q.type,J,j,P,X);return}if(L.abortedByShutdown){let q=$.options.getNow()+M0;if(!await pJ($,U,P,[{type:"put",key:z.teardownOwed(U),value:TP(_.attempts,J)},...KG(J,U,q)]))await OG($,U,J);return}await Qd($,U,Q,j,J,P,L.error,X)}async function Gd($,U,J,G,X,Q,_){if(!await pJ($,U,Q,[{type:"delete",key:z.teardownOwed(U)},{type:"delete",key:z.finalizerState(U)}])){await OG($,U,G);return}_.dispatchEvent(new R1(U,J,"completed",X))}async function Qd($,U,J,G,X,Q,_,D){let Y=ep(_);if(G>=_C){let P=await $.storage.get(z.finalizerState(U));if(!await EP($,U,J.type,G,Q,{lastError:Y,finalizerInput:P===null?void 0:R(P)})){await OG($,U,X);return}D.dispatchEvent(new R1(U,J.type,"dead-lettered",G,Y));return}let Z=$.options.getNow()+DC(G);if(!await pJ($,U,Q,[{type:"put",key:z.teardownOwed(U),value:TP(G,X)},...KG(X,U,Z)])){await OG($,U,X);return}D.dispatchEvent(new R1(U,J.type,"failed",G,Y))}var tp;var zC=F(()=>{v();I();J$();U$();QC();PC();tp=new Set(["cancelled","timed-out"])});async function bP($,U,J){if(!await J.runSerializedWorkflowStateWrite(U,async()=>{let Q=await J.loadWorkflowState(U);if(!Q||Q.status!=="running")return!1;if($.inlineStrategy===null)throw new DJ("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),qG($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),nH($,U,J);let _=$.options.getNow(),D={...Q,status:"suspended",updatedAt:_};return await J.commitWorkflowStateOperations(Q,[{type:"put",key:z.workflow(U),value:M(D)},...y$(U,Q,D).batchOps,..._d(U,Q.executionDeadline)]),!0}))return;let X=new qX(U);J.dispatchEvent(X),J.forwardEventToHandle(U,X)}function _d($,U){if(U===void 0)return[];let J=`deadline:${$}`;return[{type:"delete",key:z.deadline(U,J)},{type:"delete",key:`timer-idx:${J}`}]}var FC=F(()=>{v();I();J$();L$();i4();s$();vJ()});var Y4=F(()=>{vJ();JC();zC();FC()});function dJ($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>y4(H($),U,l6($))}}function AG($){return{processPendingUpdatesAfterInlineAdvance:(U)=>LC($,U),swallowPromiseRejection:(U)=>C6(U)}}async function LC($,U){try{await uA(H($),U,dJ($))}catch(J){$$($).handleCleanupError("processPendingUpdates",J,U)}}function S$($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>eX(H($),U),runSerializedWorkflowStateWrite:(U,J)=>j6(H($),U,J),getComposedWorkflowInterceptor:()=>L6(H($)),resolveWorkflowTypeTarget:(U)=>VG(H($),U,CG($)),processPendingUpdatesAfterReplay:(U)=>{wH(H($),U,{processPendingUpdatesForHandlers:(J)=>kJ(H($),J,dJ($)),handleCleanupError:(J,G,X)=>$$($).handleCleanupError(J,G,X)})},processPendingUpdatesAfterInlineAdvance:(U)=>LC($,U),processPendingUpdatesForHandlers:(U)=>kJ(H($),U,dJ($)),queueInlineWorkflowExecutionStart:(U)=>EA(H($),U,AG($)),isInlineWorkflowLocallyOwned:(U,J)=>hA(H($),U,J),hasLocalCheckpointOwnership:(U,J)=>IA(H($),U,J),handleCleanupError:(U,J,G)=>$$($).handleCleanupError(U,J,G),swallowPromiseRejection:(U)=>C6(U),enforceHistoryCircuitBreaker:(U)=>f1(H($),U,"timed-out",$$($),$3),failWorkflowForUnavailableServices:(U,J)=>$6(H($),U,J,$$($),"system"),failWorkflowForCheckpointDecodeError:(U,J)=>$6(H($),U,J,$$($),"system")}}function Dd($,U){let J=(G)=>{$.dispatchEvent(G)};return{dispatchEvent:J,forwardEventToHandle:(G,X)=>iN(H($),G,X,l6($)),broadcast:(G)=>y4(H($),G,l6($)),swallowPromiseRejection:(G)=>C6(G),handleCleanupError:(G,X,Q)=>xJ(H($),G,X,Q,{dispatchEvent:J}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(G)=>i(H($),G),runSerializedWorkflowStateWrite:(G,X)=>j6(H($),G,X),commitWorkflowStateOperations:(G,X,Q)=>kX(H($),G,X,Q),cleanupReviews:(G)=>$C(H($),G)}}function VC($){qC=$}function $$($){return Dd($,(U)=>qC($,U))}function CG($){return{ensureRetentionSweepInterval:()=>Yd($),dispatchEvent:(U)=>$.dispatchEvent(U)}}function MC($){BC=$}function Yd($){BC($)}function l6($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function RG($){return{deleteRequestIfUnconsumed:(U,J)=>H($).updateCoordinator.deleteRequestIfUnconsumed(U,J),getUpdateResponse:(U)=>H($).updateCoordinator.getResponse(U)}}function WC($){return{cancelWorkflowInStrategy:(U)=>H($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,J)=>$6(H($),U,J,$$($)),feedOperationResult:(U,J,G)=>F6(H($),U,J,G)}}var qC=async()=>{return},BC=()=>{return};var W0=F(()=>{G6();SX();mH();i4();n4();l4();qP();VP();MG();E$();p6();Y4()});function NC($){vP=$}function lJ($){if(vP===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 vP($)}var vP;class iJ{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 KC($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function gP($,U,J){KC(U);let G=T$($,"Interval anchor"),X=T$(J,"Interval occurrence candidate");if(X<G)return G+U;let Q=X-G,_=Math.floor(Q/U),D=G+(_+1)*U;return T$(D,"Interval occurrence")}function OC($,U,J,G,X){KC(U);let Q=X?.maxOccurrences;if(Q!==void 0&&(!Number.isSafeInteger(Q)||Q<=0))throw Error("Interval occurrence maxOccurrences must be a positive safe integer");let _=Q??Number.POSITIVE_INFINITY,D=[],Y=J;while(Y<=G&&D.length<_)D.push(Y),Y=gP($,U,Y);return D}var AC=F(()=>{z$()});function CC($){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=CC($);if(J.kind==="interval")return gP(J.anchor,J.intervalMs,U);return yX(J.cronExpression,U)}function RC($,U,J,G){let X=CC($);if(X.kind==="interval")return OC(X.anchor,X.intervalMs,U,J,{maxOccurrences:G});return qH(X.cronExpression,U,J,{maxOccurrences:G})}var hP=F(()=>{VH();AC()});async function IP($,U,J,G){let X=crypto.randomUUID(),Q=U.overlap==="allow"?[]:[{type:"put",key:z.scheduleRun(X),value:M(U.id)}],_=await Zd($,X,U);if(_!==null){if(Q.push({type:"put",key:z.workflowHasServices(X),value:l$},{type:"put",key:z.terminalCleanupNeeded(X),value:l$}),$.workflowsNeedingTerminalCleanup.add(X),_.status==="available")$.workflowServices.set(X,_.services)}if(await J.startWorkflow(U.workflowType,U.input,{id:X},Q),$.engine.dispatchEvent(new _X(U.id,X,$.options.getNow(),G)),_!==null&&_.status==="unavailable"){let D=JG(X,_.reason);try{await J.failWorkflow(X,D)}catch(Y){J.handleCleanupError("startScheduledRun",Y,X)}}return X}async function Zd($,U,J){let G=$.options.resolveWorkflowServices;if($.inlineStrategy===null||!G)return null;try{return await G({workflowId:U,workflowType:J.workflowType,input:J.input})}catch(X){return{status:"unavailable",reason:X instanceof Error?X.message:String(X)}}}var TC=F(()=>{v();I();J$();GG();D4()});async function kP($,U,J){let G=await I1($,U.workflowId);if(!Pd(G,U))return;let X=G;try{let Q=$.options.getNow(),_=zd(G,U,Q);if(!_)return;if(_.occurrencesToProcess.length===0){if(X={...X,updatedAt:Q,nextFireAt:yP(X,_,Q),..._.missedOccurrences&&{lastMissedFireAt:_.missedOccurrences.lastMissedFireAt,missedFireCount:X.missedFireCount+_.missedOccurrences.count}},await mP($,X),_.missedOccurrences)$.engine.dispatchEvent(new DX(X.id,_.missedOccurrences.count,_.missedOccurrences.windowStart,_.missedOccurrences.windowEnd));return}X=await Ld($,G,_,Q,J,{onProcessedState:(D)=>{X=D}})}catch(Q){if(Q instanceof uP)throw Q;await qd($,X,Q)}}function Pd($,U){return $?.status==="active"&&$.nextFireAt!==null&&X0($,$.nextFireAt)===U.fireAt}function zd($,U,J){let G=RC($,$.nextFireAt,Math.max(J,U.fireAt),$.backfill?EC:2);if(G.length===0)return null;if(!$.backfill&&J-U.fireAt>jd)return{dueOccurrences:G,missedOccurrences:Fd($,$.nextFireAt,J),occurrencesToProcess:[],skipMissedOccurrences:!0};let X=$.backfill?G:G.slice(0,1);return{dueOccurrences:G,occurrencesToProcess:X,skipMissedOccurrences:!1}}function Fd($,U,J){let G=0,X=U,Q=U;while(X<=J&&G<Hd){G+=1,Q=X;let D=i6($,X);if(D<=X)throw Error(`Schedule "${$.id}" produced a non-advancing occurrence`);X=D}let _=X<=J;return{count:G,lastMissedFireAt:Q,windowStart:U,windowEnd:_?Q:J}}function yP($,U,J){if(U.skipMissedOccurrences)return i6($,U.missedOccurrences?.lastMissedFireAt??J);let G=U.occurrencesToProcess.at(-1)??U.dueOccurrences.at(-1);return i6($,G)}async function Ld($,U,J,G,X,Q){let _=U;for(let[D,Y]of J.occurrencesToProcess.entries()){let Z=D===J.occurrencesToProcess.length-1;if(_={...await X.applyScheduleOccurrence(_,Y),lastFireAt:Y,updatedAt:G},Z)_={..._,nextFireAt:yP(_,J,G)};if(Q.onProcessedState(_),await mP($,_,{includeTimer:Z}),U.backfill&&_.currentWorkflowId!==void 0){if(_=await X.settleBackfillScheduleState(_),Z)_={..._,updatedAt:G,nextFireAt:yP(_,J,G)},await mP($,_);Q.onProcessedState(_)}}return _}async function mP($,U,J){try{await H6($,U,J)}catch(G){throw new uP(U.id,G)}}async function qd($,U,J){let G=$.options.getNow(),X={...U,status:"paused",updatedAt:G,nextFireAt:i6(U,G)};await H6($,X,{includeTimer:!1}),console.error(`[weft] Paused schedule "${X.id}" after timer processing failed:`,J)}var jd=1000,EC=256,Hd,uP;var SC=F(()=>{nj();hX();hP();E$();Hd=EC;uP=class uP extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}});async function fP($,U,J,G,X){if(!$.registrations.has(U))throw new x1(U);let Q=WH(G),_=FK(X),D=_.id??crypto.randomUUID();if($.pendingScheduleCreations.has(D))throw Error(`Schedule with id "${D}" already exists`);$.pendingScheduleCreations.add(D);try{if(await $.storage.get(z.schedule(D)))throw Error(`Schedule with id "${D}" already exists`);let Y=$.options.getNow(),Z=Q.kind==="interval"?{intervalMs:Q.intervalMs}:{cronExpression:Q.cronExpression},j={id:D,workflowType:U,input:J,...Z,status:"active",overlap:_.overlap,backfill:_.backfill,..._.jitterMs!==void 0&&{jitterMs:_.jitterMs},createdAt:Y,updatedAt:Y,nextFireAt:i6({...Z,createdAt:Y},Y),missedFireCount:0,queuedRuns:0};return await H6($,j),new iJ(D,$.engine)}finally{$.pendingScheduleCreations.delete(D)}}async function xC($,U){let J=LK(U),G=[];for await(let[X,Q]of $.storage.scan("schedule:")){if(X.slice(9).includes(":"))continue;let D=BJ(Q);if(!D||!PW(D,J))continue;let{input:Y,...Z}=D;G.push(Z)}return zW(G,J)}async function bC($){for await(let[U,J]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let X=BJ(J);if(!Vd(X))continue;if(await Bd($,X))continue;await H6($,X)}}function Vd($){return $?.status==="active"&&$.nextFireAt!==null}async function Bd($,U){let J=z.scheduleTick(X0(U,U.nextFireAt),U.id);if(await $.storage.get(J)===null)return!1;let X=await $.storage.get(`timer-idx:${oU(U.id)}`);return X!==null&&R(X)===J}function vC($){let{input:U,...J}=$;return J}async function gC($,U){let J=w4(U,"scheduleId"),G=await MJ($,J);if(G.status!=="active")return;await $.scheduler.cancel(oU(J),J);let X=$.options.getNow(),Q={...G,status:"paused",updatedAt:X,nextFireAt:i6(G,X),queuedRuns:0};await H6($,Q,{includeTimer:!1})}async function hC($,U){let J=w4(U,"scheduleId"),G=await MJ($,J);if(G.status==="cancelled")throw Error(`Schedule "${J}" has been cancelled and cannot be resumed`);if(G.status==="active")return;let X=$.options.getNow(),Q={...G,status:"active",updatedAt:X,nextFireAt:i6(G,X)};await H6($,Q)}async function IC($,U){let J=w4(U,"scheduleId"),G=await MJ($,J);if(G.status==="active")await $.scheduler.cancel(oU(J),J);let X={...G,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await H6($,X,{includeTimer:!1})}async function yC($,U,J){let G=w4(U,"scheduleId"),X=WH(J),Q=await MJ($,G),_=$.options.getNow(),{cronExpression:D,intervalMs:Y,...Z}=Q,j=X.kind==="interval"?{intervalMs:X.intervalMs}:{cronExpression:X.cronExpression},P=X.kind==="interval"?{createdAt:_}:{},L={...Z,...j,...P,updatedAt:_,nextFireAt:Q.status==="cancelled"?null:i6({...j,createdAt:_},_)};await H6($,L,{includeTimer:Q.status==="active"})}function mC($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function uC($,U,J){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let G=await J.loadWorkflowState(U.currentWorkflowId);if(mC(G))return{state:U,currentWorkflowState:G};return await $.storage.delete(z.scheduleRun(U.currentWorkflowId)),{state:r3(U),currentWorkflowState:G??null}}function Md($){return mC($)}async function Wd($,U,J,G){if(!U)return{...$,currentWorkflowId:await J.startScheduledRun($,G)};if($.overlap==="cancel-running"){if($.currentWorkflowId)J.getWorkflowResult($.currentWorkflowId).catch(()=>{}),await J.cancelWorkflow($.currentWorkflowId);let X=r3($);return{...$,currentWorkflowId:await J.startScheduledRun(X,G)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function kC($,U,J,G){let{state:X,currentWorkflowState:Q}=await J.refreshScheduledWorkflowState(U),_=Md(Q);if(X.overlap==="allow")return await J.startScheduledRun(X,G),X;return Wd(X,_,J,G)}async function fC($,U,J){if(!U.currentWorkflowId)return U;await J.flushQueuedInlineWorkflowStartsDirectly();let G=$.inlineStrategy?.waitForWorkflowTurn(U.currentWorkflowId);if(G)await G;return(await J.refreshScheduledWorkflowState(U)).state}async function wC($,U,J){let G=await $.storage.get(z.scheduleRun(U));if(!G)return;await $.storage.delete(z.scheduleRun(U));let X=R(G);if(!mX(X))return;let _=await I1($,X);if(!_||_.currentWorkflowId!==U)return;let D=$.options.getNow(),Y={...r3(_),updatedAt:D};if(Y.status==="active"&&Y.overlap==="queue"&&Y.queuedRuns>0){let Z=await J.startScheduledRun(Y);await H6($,{...Y,currentWorkflowId:Z,queuedRuns:Y.queuedRuns-1,updatedAt:D},{includeTimer:!1});return}await H6($,Y,{includeTimer:!1})}var wP=F(()=>{v();I();L$();hX();hP();U$();E$();uX();TC();SC()});function N0($){return{startWorkflow:async(U,J,G,X)=>{await P6(H($),U,J,G,X,S$($))},loadWorkflowState:(U)=>i(H($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>Nd($,U),startScheduledRun:(U,J)=>Kd($,U,J),applyScheduleOccurrence:(U,J)=>Od($,U,J),settleBackfillScheduleState:(U)=>Ad($,U),flushQueuedInlineWorkflowStartsDirectly:()=>SA(H($),AG($)),failWorkflow:(U,J)=>$6(H($),U,J,$$($)),handleCleanupError:(U,J,G)=>xJ(H($),U,J,G,{dispatchEvent:(X)=>$.dispatchEvent(X)})}}function cC($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,J)=>$6(H($),U,J,$$($)),feedOperationResult:(U,J)=>F6(H($),U,J),ensureTerminalCleanupTracked:(U)=>wJ(H($),U)}}async function Nd($,U){return uC(H($),U,N0($))}async function Kd($,U,J){return IP(H($),U,N0($),J)}async function Od($,U,J){return kC(H($),U,N0($),J)}async function Ad($,U){return fC(H($),U,N0($))}async function pC($,U){return kP(H($),U,N0($))}async function Cd($,U){return wC(H($),U,N0($))}var dC=F(()=>{W0();i4();n4();l4();wP();E$();p6();Y4();VC(($,U)=>Cd($,U))});async function cP($,U,J){let G=await $.storage.get(z.workflow(U));if(!G)return;let X=n(G);if(Td.has(X.status))throw new T3(U,X.status)}async function Ed($,U,J,G){for(let X=0;X<lC;X++){if(await G.getUpdateResponse(J)!==null)return!0;if(await $.storage.get(z.update(U,J))===null)return!0;if(X<lC-1)await r6(Rd)}return!1}async function iC($,U,J,G){try{await cP($,U,G)}catch(X){if(X instanceof T3){if(await Ed($,U,J,G))return;if(await G.deleteRequestIfUnconsumed(U,J)!==null)return}throw X}}var lC=5,Rd=5,Td;var nC=F(()=>{x6();v();fU();_$();Td=new Set(["completed","failed","cancelled","timed-out"])});function rC($,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 G=J.kind,Q={activity:"activity",timer:"sleep","signal-wait":"wait-signal","child-workflow":"child-workflow"}[G]??G;return{...J,type:Q,operationId:J.id??crypto.randomUUID(),activityName:J.activityName??"",input:J.input}}throw Error("Unsupported operation request shape received from execution strategy")}async function oC($,U,J,G){let X=xd(J,G);if(X)return X(U,J);let Q=String(J.type);rJ($,U,J,Error(`Unsupported operation type: ${Q}`),G)}function Sd($){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 xd($,U){return Sd(U)[$.type]}function nJ($,U,J,G){G.finalizePendingTimelineEntry(U,"completed",J),G.feedOperationResult(U,{status:"completed",value:J})}function rJ($,U,J,G,X){if(G instanceof Error&&J.callerStack)G.stack=`${G.stack}
56
56
  --- workflow call site ---
57
- ${J.callerStack}`;let Q=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...G instanceof Error?{errorName:G.name}:{},failureCategory:k2(G,{defaultErrorCategory:"application"})},{value:G})}async function aC($,U,J,G,X){try{let Q=await G();nJ($,U,Q,X)}catch(Q){rJ($,U,J,Q,X)}}async function sC($,U,J,G,X){try{await G()}catch(Q){rJ($,U,J,Q,X)}}var TG=F(()=>{S4()});async function eC($,U,J,G){return G.runOperationWithResult(U,J,()=>dP($,U,J,pP($,U),G))}function pP($,U){let J=bd($,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 bd($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function vd($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function gd($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function hd($,U,J){return $.type===U.workflowType&&HW($.input,U.input)&&$.executionStateOwnerId===J}async function Id($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!hd(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function yd($,U,J,G,X){k3(J.options,"ctx.startChild"),vd($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof t$))throw Q;return Id(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{gd($,G)}}async function dP($,U,J,G,X){let Q=J.options?.id,_=typeof Q==="string"?Q:crypto.randomUUID(),D=$.workflowHeaders.get(U)??new Map,Y=await X.loadWorkflowState(U),Z=md(J),j=Z==="abandon"?null:Y?.executionStateOwnerId??U,P=async()=>{let q={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:j},W=await yd($,_,J,q,X);if(Z==="abandon")return tC(W.id);if(Z==="request-cancel")return g4($,U,{conditions:[],operations:AA($,U,W.id)}),ZP($,U,W.id,X),tC(W.id);return W.result()},L=X.getComposedWorkflowInterceptor();if(!L)return P();return L.childWorkflow({workflowId:U,childWorkflowId:_,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:D},P)}function md($){return $.options?.parentClosePolicy??"await"}function tC($){return{id:$}}var lP=F(()=>{$4();HP();L$();U$()});function UR($){return{[$R]:!0,finalize:$}}function ud($){return typeof $==="object"&&$!==null&&$[$R]===!0}async function K0($){if(ud($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>K0(U)));return $}var $R;var EG=F(()=>{$R=Symbol("weft.deferredConsume")});function JR($,U){return Math.min(Math.max(0,$-U),kd)}function XR($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(JR(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let _,D=()=>{J?.removeEventListener("abort",Y),G.removeEventListener("abort",Y)},Y=()=>{clearTimeout(_),D(),Q(J?.reason??G.reason??Error("aborted"))},Z=()=>{let j=JR(U.scheduledFireAt,$.options.getNow());if(j===0){D(),X();return}_=setTimeout(Z,j)};J?.addEventListener("abort",Y,{once:!0}),G.addEventListener("abort",Y,{once:!0}),Z()})}function GR($,U,J,G){G?.throwIfAborted();let{signalName:X}=J,Q=`${U}:${X}`,_=$.abortController.signal;return new Promise((D,Y)=>{let Z=!1,j=!1,{promise:P,resolve:L}=Promise.withResolvers(),q=()=>{G?.removeEventListener("abort",S),_.removeEventListener("abort",S)},W=async()=>{let p=await JJ($,U,X);return p.found?p.payload:void 0},S=()=>{if(Z)return;if(Z=!0,q(),j)UJ($,U,Q,L);Y(G?.reason??_.reason??Error("aborted"))},m=()=>{if(Z)return;Z=!0,q(),D(UR(W))},s=(p)=>{if(Z)return;if(Z=!0,q(),j)UJ($,U,Q,L);Y(p)};if(G?.addEventListener("abort",S,{once:!0}),_.addEventListener("abort",S,{once:!0}),_.aborted){S();return}(async()=>{let p=await XH($,U,X);if(Z)return;if(p.found){m();return}$.signalWaiters.set(Q,L),h4($.signalWaitersByWorkflow,U,Q),j=!0;let y=await XH($,U,X);if(Z)return;if(y.found){UJ($,U,Q,L),m();return}if(await P,Z)return;m()})().catch(s)})}var kd=2147483647;var QR=F(()=>{EG();I4()});function fd($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function _R($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function iP($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function DR($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(_R($,U,J)!==void 0)return;$.engine.dispatchEvent(new x4(U,`Activity retry (attempt ${G}) 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 YR($,U,J,G,X){return{signal:G,lastHeartbeatDetails:_R($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),fd($,U,J,Q)},completeAsync:X}}var ZR=F(()=>{J$()});async function HR($,U,J){let G=await dd(J);return{idempotencyKeyDigest:G,key:z.activityReconciliation($,U,G)}}function PR($,U){let J=$?.idempotencyKey?.(U.input);if(J!==void 0)return J;let G=U.options?.idempotencyKey;return typeof G==="string"?G:void 0}async function zR($,U){let J=await $.get(U);if(J===null)return null;return pd(R(J))}function bG($,U){return N6($,U,"activity result"),M($)}async function wd($,U,J){if(!$.capabilities().conditionalBatch)throw new SG;return X$($,"conditionalBatch","activity result reconciliation"),G$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(J)}])}function nP($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function FR($,U,J,G,X,Q,_){let D=await zR($.storage,G.key);if(D===null){let j=await id($,U,J,G,_);if(j.didClaim)return j.record;D=j.record}if(D.status==="completed")return{completedResult:D.result};if(!X?.verify)throw new q6(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=cd(await nd(X,U,J,Q,D));if(Y==="not-completed"){let j={...D,attempt:D.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await jR($.storage,G,D,j),j}if(Y==="completed-result-unavailable")throw new q6(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new q6(`Activity "${J.activityName}" reconciliation is indeterminate.`);bG(Y.result,$.options.payloadSizePolicy.maxBytes);let Z=nP(D,Y.result,$.options.getNow());return await jR($.storage,G,D,Z),{completedResult:Y.result}}async function jR($,U,J,G){let X=qR(U,J,G);if(!await G$($,X.conditions,X.operations))throw new xG("Activity reconciliation completion lost compare-and-set ownership.")}function LR($,U,J,G,X){g4($,U,qR(J,G,X))}function qR($,U,J){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(J)}]}}function cd($){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 q6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function rP($,U,J,G,X,Q,_){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:_}}function pd($){if(typeof $!=="object"||$===null)throw new q6("Activity reconciliation record is not an object.");let U=$;if(!rd(U))throw new q6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new q6("Activity reconciliation record has an unsupported status.")}async function dd($){let U=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(J)].map((G)=>G.toString(16).padStart(2,"0")).join("")}function ld($,U,J,G,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:J.idempotencyKeyDigest,attempt:G,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function id($,U,J,G,X){let Q=ld(U,J,G,X,$.options.getNow());if(await wd($.storage,G,Q))return{didClaim:!0,record:Q};let D=await zR($.storage,G.key);if(D===null)throw new q6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:D}}async function nd($,U,J,G,X){try{return await $.verify(void 0,rP("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,G,X.attempt))}catch(Q){let _=Q instanceof Error?Q.message:String(Q);throw new q6(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${_}`)}}function rd($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],J=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((G)=>typeof $[G]==="string")&&J.every((G)=>typeof $[G]==="number")}var SG,xG,q6;var oP=F(()=>{v();I();v4();r();SG=class SG extends E{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};xG=class xG extends E{constructor($){super("ActivityReconciliationConflictError",$)}};q6=class q6 extends E{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function VR($,U,J){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let Q=$.activityRegistriesByWorkflow.get(G);if(Q!==void 0){let D=Q.resolve(J);if(D)return{fn:D,workflowType:G}}let _=$.activityRegistry.resolve(J);if(_)return{fn:_,workflowType:G};return}let X=$.activityRegistry.resolve(J);if(X)return{fn:X,workflowType:"<unknown>"};return}function aP($,U,J){let G=VR($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function BR($,U,J){let G=VR($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new YJ(X,J.activityName)}var MR=F(()=>{L$()});function od($,U,J,G,X){return(async()=>{let Q=await J?.(X,G);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function ad($,U,J,G){let X=aP($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function sd($,U,J,G,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${J}"`);let _=await Q.execute({operationId:U,activityName:J,input:G,attempt:X});if(_.status==="failed"){let D=Error(_.error);if(_.errorName!==void 0)D.name=_.errorName;throw D}return _.value}function td($,U,J,G,X,Q){let _=BR($,U,J);return r2(_,Q,G)}function WR($,U){if(U.size>0)$.headers=[...U.entries()]}function sP($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function NR($,U,J,G,X=sP(J),Q){let _=J.input,D=J.step??0;DR($,U,D,X);let Y=pW(U,D,X),{perAttemptTimeoutMs:Z,attemptAbortController:j,activitySignal:P}=XC($,U,J,Q),L=YR($,U,D,P,()=>{throw new MX(Y)}),q=$.activityWorkerDispatcher?(y,k)=>sd($,J.operationId,y,k,X):(y,k)=>NG(td($,U,J,L,y,k),Z,y,X,j),W=G.getComposedActivityInterceptor(),S=async(y,k,w)=>{if(!W)return q(y,k);let x$={workflowId:U,activityName:y,input:k,attempt:X,headers:w};return await W.execute(x$,async(i1)=>{return q(y,i1.input)})},m=G.getComposedWorkflowInterceptor();if(m){let y={workflowId:U,activityName:J.activityName,input:_,attempt:X,headers:new Map};function*k(){return yield S(J.activityName,y.input,y.headers)}let w=m.activity(y,k),x$=await oW(w);return WR(J,y.headers),x$}let s=new Map,p=await S(J.activityName,_,s);return WR(J,s),p}async function oJ($,U,J,G,X,Q){let _=aP($,U,J),D=PR(_,J),Y=sP(J);if(D!==void 0){let j=await HR(U,J.activityName,D),P=await FR($,U,J,j,_,D,Y);if("completedResult"in P)return bG(P.completedResult,$.options.payloadSizePolicy.maxBytes),P.completedResult;let L=await NR($,U,J,G,P.attempt,X);bG(L,$.options.payloadSizePolicy.maxBytes),await KR($,U,J,L,_,D,P.attempt,Q,!0);let q=nP(P,L,$.options.getNow());if(LR($,U,j,P,q),!Q)iP($,U,J.step??0);return L}let Z=await NR($,U,J,G,Y,X);if(N6(Z,$.options.payloadSizePolicy.maxBytes,"activity result"),await KR($,U,J,Z,_,D,Y,Q),!Q)iP($,U,J.step??0);return Z}async function KR($,U,J,G,X,Q,_,D,Y=!1){let Z=D?ad($,U,J,G):void 0;if(Z)D?.recordCompensation(Z);if(X?.verify){let j=rP("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,_),P=od($,J.activityName,X.verify,j,G);if(D){if(D.recordVerification(P),Y)await P}else await P}}async function OR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await oJ($,U,J,G)}catch(X){if(X instanceof MX)return dW($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:sP(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}var vG=F(()=>{v4();ZR();CP();oP();MR();sU();U$()});function gG($){let U=new Set,J=(G)=>{for(let X of G)if(X.type==="wait-signal"){if(U.has(X.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${X.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(X.signalName)}else if(X.type==="race"||X.type==="parallel")J(X.operations)};J($)}async function AR($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let _=await JJ($,U,J.signalName);if(_.found){G.completeOperation(U,_.payload);return}let{promise:D,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(Q,Y),h4($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),Z6($.signalWaitersByWorkflow,U,Q);return}let Z=await JJ($,U,J.signalName);if(Z.found){if($.signalWaiters.get(Q)===Y)$.signalWaiters.delete(Q),Z6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,Z.payload);return}if(await D,X.aborted)return}}async function CR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{gG(J.operations);let X=RR(J.resumedCacheEntry),Q=J.operations.map((j,P)=>typeof j.operationId==="string"?j.operationId:`parallel:${J.step}:${P}`),{slots:_,hasFirstError:D,firstError:Y}=await sB(Q,X,(j)=>G.executeSubOperation(U,J.operations[j]));if(D)ER($l($,U),_,"ctx.all","worker execution mode");await ed(_);let Z=Qj("all",_);if(TR($,U,J.step,Z),D)throw Y;return tB(_)})}async function ed($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await K0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function RR($){if(!H1($))return;return $.branches}function $l($,U){return $.inlineStrategy?.getContext(U)!==void 0}function TR($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function ER($,U,J,G){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${J} partial-failure preservation is not supported in ${G}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function SR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{gG(J.operations);let X=new AbortController,Q=J.operations.map((D)=>G.executeSubOperation(U,D,X.signal));Promise.allSettled(Q);let _;try{_=await Promise.race(Q)}finally{X.abort()}return K0(_)})}async function xR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=Object.keys(J.branches),Q=X.map((S)=>`run-all:${J.step}:${S}`),_=RR(J.resumedCacheEntry),D=Gl(_,X),Y=Ul(J.branches,X,D),{outcomes:Z,hasFirstError:j,firstError:P}=await XM(Y,(S,m)=>r2(S,m)),L=Jl(X,Q,D,Z),q=Qj("run-all",L,X),W=TR($,U,J.step,q);if(j)throw ER(W,L,"ctx.runAll","worker execution mode"),P;return Xl(X,L)})}function Ul($,U,J){let G={};for(let X of U)if(J?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)G[X]=Q}return G}function Jl($,U,J,G){let X=new Map;for(let Q of G)X.set(Q.name,Q);return $.map((Q,_)=>{let D=U[_],Y=J?.get(Q);if(Y?.status==="fulfilled")return Y;let Z=X.get(Q);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 Xl($,U){let J={};for(let G=0;G<$.length;G++){let X=U[G];if(X?.status==="fulfilled")J[$[G]]=X.value}return J}function Gl($,U){if($===void 0)return;let J=new Map;for(let G=0;G<U.length;G++){let X=U[G],Q=$[G];if(X!==void 0&&Q!==void 0)J.set(X,Q)}return J}function Ql($){return typeof $.execute==="function"}async function bR($,U,J,G,X){return GM(J.branches,(Q,_)=>{if(!X||!Ql(Q))return r2(Q,_);return oJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:_},G.getActivityOperationCallbacks(),void 0,X)})}var hG=F(()=>{M3();m2();EG();vG();_j();I4();U$()});async function vR($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function IG($,U,J,G,X,Q){X?.throwIfAborted();let _=_l[J.type];if(!_)throw Error(`Unsupported sub-operation type: ${J.type}`);return _({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:Q},J)}async function Dl($,U,J,G,X,Q){return oJ($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function Yl($,U,J,G){return dP($,U,J,pP($,U),G.createChildWorkflowOperationCallbacks())}async function Zl($,U){return Y1($.storage,T4(U.scope,U.key),U)}async function jl($,U,J){let G=T4(U.scope,U.key),X=U.mode==="delete"?await v2($.storage,G,U.expectedVersion):await b2($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Hl($,U,J,G,X,Q){X?.throwIfAborted();let _=new AbortController,D=()=>{_.abort(X?.reason)};X?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>IG($,U,Z,G,_.signal,Q));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{X?.removeEventListener("abort",D),_.abort()}}async function Pl($,U,J,G,X,Q){X?.throwIfAborted();let _=new AbortController,D=()=>{_.abort(X?.reason)};X?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>IG($,U,Z,G,_.signal,Q));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{X?.removeEventListener("abort",D),_.abort()}}var _l;var tP=F(()=>{Z1();lP();QR();vG();hG();U$();_l={activity:($,U)=>Dl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Yl($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(d3(U.fn)),"state-read":($,U)=>Zl($.internals,U),"state-commit":($,U)=>jl($.internals,U,$.callbacks),parallel:($,U)=>Hl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Pl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>bR($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>XR($.internals,U,$.signal),"wait-signal":($,U)=>GR($.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 eP($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),start:(U,J,G)=>P6(H($),U,J,G,void 0,S$($)),loadWorkflowState:(U)=>i(H($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>L6(H($))}}function yG($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>R6(H($),U,J,G),feedOperationResult:(U,J,G)=>F6(H($),U,J,G),getComposedActivityInterceptor:()=>BA(H($)),getComposedWorkflowInterceptor:()=>L6(H($))}}function O0($){return{completeOperation:(U,J)=>kG($,U,J),runOperationWithResult:(U,J,G)=>r4($,U,J,G),executeSubOperation:(U,J,G,X)=>$z($,U,J,G,X),getActivityOperationCallbacks:()=>yG($)}}function hR($){return{completeOperation:(U,J)=>kG($,U,J),failOperation:(U,J,G)=>zl($,U,J,G),isWorkflowRunning:async(U)=>{return(await i(H($),U))?.status==="running"},scheduleConditionDeadline:(U,J,G)=>H($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>H($).scheduler.cancel(`cond:${U}:${J}`,U)}}function aJ($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G)}}function mG($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),ensureTerminalCleanupTracked:(U)=>wJ(H($),U)}}function IR($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),handleCleanupError:(U,J,G)=>$$($).handleCleanupError(U,J,G)}}function uG($){return{completeOperation:(U,J)=>kG($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>i(H($),U),failWorkflow:(U,J)=>$6(H($),U,J,$$($)),runSerializedWorkflowStateWrite:(U,J)=>j6(H($),U,J),beginWorkflowExecution:(U,J,G,X,Q,_,D)=>YG(H($),U,J,G,X,Q,_,D,S$($)),workflowVersionTupleFromState:(U)=>$G(H($),U,S$($)),setWorkflowStartHeaders:(U,J)=>_4(H($),U,J,S$($)),loadWorkflowStartHeaders:(U)=>u1(H($),U,S$($)),parseStartOptionDuration:(U,J)=>L0(H($),U,J,S$($)),runDeferredTerminalCleanup:(U,J)=>sH(H($),U,J,$$($)),runWorkflowFinalizer:(U,J)=>xP(H($),U,J,$$($)),handleScheduleTimer:(U)=>pC($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>$$($).handleCleanupError(U,J,G)}}function A0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>y4(H($),U,l6($)),completeOperation:(U,J)=>kG($,U,J),guardTerminalWorkflow:(U)=>cP(H($),U,RG($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>iC(H($),U,J,RG($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>gR($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>pN(H($),U,J,G,A0($)),dispatchPendingUpdateReceived:(U,J,G)=>nN(H($),U,J,G,l6($)),createCoordinatedUpdateResponder:(U,J,G)=>cN(H($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,_,D,Y)=>gR($,X,Q,_,D,Y)}),findPendingUpdateByName:(U,J)=>dN(H($),U,J),schedulePendingInlineUpdateDrain:(U)=>kA(H($),U,dJ($))}}async function gR($,U,J,G,X,Q){let _=H($),D=_.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await D$(_,D,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new w6(G,U,J,Q)),y4(_,{type:"update:completed",workflowId:U,updateId:G},l6($))}catch(Y){$$($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function kG($,U,J){return nJ(H($),U,J,lJ($))}function zl($,U,J,G){return rJ(H($),U,J,G,lJ($))}async function r4($,U,J,G){return aC(H($),U,J,G,lJ($))}async function yR($,U,J,G){return sC(H($),U,J,G,lJ($))}async function $z($,U,J,G,X){return IG(H($),U,J,{createActivityOperationCallbacks:()=>yG($),createChildWorkflowOperationCallbacks:()=>eP($),createCoordinationOperationCallbacks:()=>O0($),createStateOperationCallbacks:()=>mG($)},G,X)}async function mR($,U,J){return UC(H($),U,J,cC($))}var fG=F(()=>{J$();SX();W0();dC();O6();nC();n4();l4();TG();qP();MG();E$();p6();tP();Y4();eU()});async function uR($,U,J,G){return G.runOperationWithResult(U,J,async()=>d3(J.fn))}async function kR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=M(X);return await $.storage.put(z.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function fR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let{workflowId:X,key:Q,sizeBytes:_}=J.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof Q!=="string"||Q.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof _!=="number"||!Number.isFinite(_)||_<0)throw Error("ctx.load() requires a valid offload reference size");let D=await $.storage.get(z.offload(X,Q));if(D===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return R(D)})}async function wR($,U,J){let G=await $.storage.get(z.offload(U,J));if(G===null)return null;return R(G)}async function cR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(z.archive(U,J.key),M(J.data));return})}var Uz=F(()=>{v();I();U$()});class Jz{#$;#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 pR($,U,J,G){return G.runOperationWithResult(U,J,()=>Fl($,U,J,G))}async function Fl($,U,J,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let Q=X.getContext(U);if(!Q)throw Error(`No active inline context for workflow "${U}"`);let _=Q.createSpeculativeChild(),D=new Jz,Y=Ll(J,_);try{let Z=await ql(U,Y,D,G);return await D.drainVerifications(),Q.commitSpeculativeChild(_),Z}catch(Z){throw await D.rollback(),Z}}function Ll($,U){return $.execute(U)}async function ql($,U,J,G){let X=async(Q,_)=>{let D=_===void 0?await U.next(Q):await U.throw(_);if(D.done)return D.value;let Y=D.value;try{if(Y.type==="race"||Y.type==="parallel")gG(Y.operations);let Z=await G.executeSubOperation($,Y,void 0,J),j=await K0(Z);return X(j,void 0)}catch(Z){return X(Q,Z instanceof Error?Z:Error(String(Z)))}};return X(void 0,void 0)}var dR=F(()=>{EG();hG()});async function lR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=T4(J.scope,J.key);return Y1($.storage,X,J)})}async function iR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=T4(J.scope,J.key);if(J.mode==="delete"){let _=await v2($.storage,X,J.expectedVersion);if(_.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return _}let Q=await b2($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var nR=F(()=>{Z1()});function Bl($){if(!Vl.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function C0($,U,J,G){let X=G?.after,Q=z.streamChunkPrefix(U,J),_=[],D=X!==void 0&&X>=0?{gt:z.streamChunk(U,J,X)}:void 0;for await(let[Y,Z]of $.scan(Q,D)){let j=Y.slice(Q.length),P=Bl(j);if(P===void 0)continue;_.push({sequence:P,value:R(Z)})}return _}function rR($){return M({sequence:$})}function Ml($){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 oR($,U,J){let G=await $.get(z.streamTail(U,J));if(G===null)return null;try{return Ml(R(G))}catch{return null}}var Vl;var Xz=F(()=>{v();I();Vl=/^\d+$/});async function*aR($,U,J,G){if(J==="events"){yield*Nl($,U,G);return}yield*Kl($,U,G)}async function sR($,U,J){if(J==="events"){let _=$.eventLogHeads.get(U);if(_)return _.sequence;return(await new e$($.storage,U).loadHead()).sequence}let G=await oR($.storage,U,w1);if(G!==null)return G;let X=await C0($.storage,U,w1);if(X.length===0)return-1;let Q=-1;for(let _ of X)if(_.sequence>Q)Q=_.sequence;return Q}function tR($,U,J,G){let X=nU(U,J),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(G),()=>{let _=$.workflowFeedListeners.get(X);if(!_)return;if(_.delete(G),_.size===0)$.workflowFeedListeners.delete(X)}}async function*Nl($,U,J){let G=new e$($.storage,U),X=J<0?0:J+1,Q=await p4($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Wl,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let _ of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:_.type,sequence:_.sequence,timestamp:_.timestamp,payload:_.payload}}async function*Kl($,U,J){let G=J>=0?await C0($.storage,U,w1,{after:J}):await C0($.storage,U,w1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:Gz,sequence:Q.sequence,timestamp:X,payload:Q.value}}function wG($,U,J,G){let X=$.workflowFeedListeners.get(nU(U,J));if(!X||X.size===0)return;let Q=[...X];for(let _ of Q)try{let D=_(G);if(D&&typeof D.then==="function")D.catch(()=>{})}catch{}}var w1="tokens",Gz="stream:chunk",Wl="workflow:compaction-boundary";var cG=F(()=>{m1();TJ();U$();Xz()});async function eR($,U,J,G){return C0($.storage,U,J,G)}async function $T($,U,J,G){return G.runOperationWithResult(U,J,()=>Ol($,U,J,G))}async function Ol($,U,J,G){let X={heartbeat:(_)=>{$.heartbeatDetails.set(U,_)}},Q=[];try{let _=await Al($,U,J,J.fn(X),Q),D={key:J.key,workflowId:U,chunkCount:_.chunkCount,totalSizeBytes:_.totalSizeBytes};return await $.storage.put(z.streamMetadata(U,J.key),M(D)),D}catch(_){throw await Cl($,U,J.key,Q,G),_}}async function Al($,U,J,G,X){let Q=0,_=0;for await(let D of G){let Y=M(D),Z=Q,j=z.streamChunk(U,J.key,Z);if(J.key===w1)await $.storage.batch([{type:"put",key:j,value:Y},{type:"put",key:z.streamTail(U,J.key),value:rR(Z)}]);else await $.storage.put(j,Y);if(X.push(j),_+=Y.byteLength,Q++,J.key===w1)wG($,U,"tokens",{workflowId:U,selector:"tokens",kind:Gz,sequence:Z,timestamp:Date.now(),payload:D})}return{chunkCount:Q,totalSizeBytes:_}}async function Cl($,U,J,G,X){await JM($.storage,U,J,G,eB(X.handleCleanupError,U))}var Qz=F(()=>{v();I();m2();Xz();cG()});function JT($,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 XT($,U,J,G){let X=$.abortController.signal,{predicate:Q,deadline:_}=J,D=!1,Y=(Z)=>{if(D)return;D=!0,G.completeOperation(U,Z)};if(X.aborted)return;try{let Z=JT($,Q,_);if(Z.done){Y(Z.value);return}if(_!==void 0)await G.scheduleConditionDeadline(U,J.step,_);try{let j=await UT($,U,Q,_,G);while(j.status==="continue")j=await UT($,U,Q,_,G);if(j.status==="complete")Y(j.value)}finally{if(GT($,U),_!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(Z){G.failOperation(U,J,Z)}}async function UT($,U,J,G,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:_,resolve:D}=Promise.withResolvers();$.conditionWaiters.set(U,D);let Y=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...JT($,J,G),aborted:!1};if(Y.done)return GT($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await _,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function GT($,U){$.conditionWaiters.delete(U)}function _z($){return{processActivityOperation:(U,J)=>OR(H($),U,J,yG($)),processSleepOperation:(U,J)=>GO(H($),U,J,uG($)),processWaitSignalOperation:(U,J)=>AR(H($),U,J,O0($)),processWaitUpdateOperation:(U,J)=>fN(H($),U,J,A0($)),processWaitConditionOperation:(U,J)=>XT(H($),U,J,hR($)),processGetVersionOperation:async(U,J)=>{nJ(H($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>R6(H($),G,X,Q),feedOperationResult:(G,X,Q)=>F6(H($),G,X,Q)})},processParallelOperation:(U,J)=>CR(H($),U,J,O0($)),processRaceOperation:(U,J)=>SR(H($),U,J,O0($)),processMemoOperation:(U,J)=>uR(H($),U,J,aJ($)),processChildWorkflowOperation:(U,J)=>eC(H($),U,J,eP($)),processOffloadOperation:(U,J)=>kR(H($),U,J,aJ($)),processLoadOperation:(U,J)=>fR(H($),U,J,aJ($)),processArchiveOperation:(U,J)=>cR(H($),U,J,aJ($)),processStateReadOperation:(U,J)=>lR(H($),U,J,mG($)),processStateCommitOperation:(U,J)=>iR(H($),U,J,mG($)),processRunAllOperation:(U,J)=>xR(H($),U,J,O0($)),processSpeculateOperation:(U,J)=>pR(H($),U,J,{runOperationWithResult:(G,X,Q)=>r4($,G,X,Q),executeSubOperation:(G,X,Q,_)=>$z($,G,X,Q,_)}),processStreamOperation:(U,J)=>$T(H($),U,J,IR($)),processWaitReviewOperation:(U,J)=>vR(H($),U,J,{runOperationWithoutResult:(G,X,Q)=>yR($,G,X,Q),processReviewOperation:(G,X)=>mR($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>R6(H($),U,J,G),feedOperationResult:(U,J,G)=>F6(H($),U,J,G)}}var QT=F(()=>{fG();lP();n4();vG();hG();Uz();TG();dR();nR();Qz();QG();p6();tP();Y4();eU();NC(($)=>_z($))});function _T($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function DT($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function YT($){let U=g($).exposedValues;return U!==void 0&&U.size>0}var Dz=F(()=>{tU()});function ZT($,U,J,G,X,Q){let _=B0($,U),D=$.workflowVersionTuples.get(U);if(_)Q.push(_);let Y={step:G,operationType:J.type,operationLabel:GW(J),inputSummary:QW(J),timestamp:X,status:"running",...D?{versionTuple:D}:{}};return Q.push({type:"put",key:z.timeline(U,G),value:M(Y)}),{startedAt:X,entry:Y}}async function jT($,U,J,G,X){if($.inlineStrategy?.getContext(U))await Rl($,U,J,X);else if(G&&G.byteLength>0)await Tl($,U,J,G,X)}async function Rl($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let _={...X.searchAttributes},D=Q.checkpointPendingAttributeChanges,Y=_T(Q),Z=tZ(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...D!==void 0?{searchAttributes:D}:{}}),j=Aj(Z,zT(J,Q.stepIndex)),P=HT($,U,j.checkpoint,V$(Cj(j.checkpoint,j.replayPayload)),j.replayPayload);if(El(U,P,_,D,Y,G),await PT($,U,J,P,G),Y)G.dispatchEvent(new QX(U,{...D}))}async function Tl($,U,J,G,X){let Q=new Uint8Array(G),_=H$(Q),D=lU(_),Y=Aj(_,zT(J,_.step)),Z=I3(D,Y.replayPayload),j=V$(Cj(Y.checkpoint,Z));await PT($,U,J,HT($,U,Y.checkpoint,j,Z),X)}function HT($,U,J,G,X){let Q=[{type:"put",key:z.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:z.checkpointHistory(U,J.step),value:G});let _=MK($,U);return{checkpoint:J,serialized:G,...X===void 0?{}:{replayPayload:X},..._!==void 0?{expectedSerialized:_}:{},step:J.step,timestamp:J.createdAt,operations:Q}}function El($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:z.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...O$($,J,U.checkpoint.searchAttributes))}async function PT($,U,J,G,X){gl($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:_,timestamp:D}=hl($,U,G),Y=$.options.historyPolicy.retentionWindow,Z=Y===null?null:await oK($.storage,U,_.sequence,Y,G.operations),j=TX($,U);if(j!==void 0)G.operations.push(...j.operations);let P=$.storage.capabilities().conditionalBatch,L=Sl(j,P),q=xl(U,G,P,L);if(await D$($,G.operations,q,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),j!==void 0)EX($,U);if(G.expectedSerialized!==void 0)pX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,_),Z!==null)vl($,U,Z,X);if(wG($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:_.sequence,timestamp:D,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),bl($,_.sequence))await X.enforceHistoryCircuitBreaker(U)}function Sl($,U){if(!U)return[];return $?.conditions??[]}function xl($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:z.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function bl($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function vl($,U,J,G){let X=$.options.archiveAdapter;if(X===null||J.deletedEntries.length===0)return;let{from:Q,to:_}=J.deletedRange,D=`events:${Q}-${_}`,Y=aK(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,D,Y)))}function gl($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new ZX(U,J.serialized.byteLength,J.step))}function hl($,U,J){return new e$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:vM(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??q1,$.workflowVersionTuples.get(U))}function zT($,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 FT($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=z.checkpointHistory(U,X);await $.storage.delete(Q)}function LT($,U,J){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let _=eZ({...Q,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!_.valid){let D=_.divergences.map((Z)=>Z.path),Y=`Checkpoint at step ${X} has ${_.divergences.length} non-serializable field(s)`;J.dispatchEvent(new x4(U,Y,D))}}var qT=F(()=>{v();_6();I();Dz();m1();J$();d$();y1();M1();TJ();O6();U$();Y4();cG()});async function VT($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let Q=$.registrations.get(G.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let _={id:U,type:G.workflowType,status:"running"};for(let D of Q){if(!await Il(D,_))continue;if(yl(J,U,D),D.onViolation==="warn"){ml(U,D);continue}let Z=Error(`Constraint violated: ${D.name} (scope: ${D.scope})`);if(D.onViolation==="fail")await ul(J,U,Z);else kl(J,U,Z);return!0}return!1}async function Il($,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 yl($,U,J){$.dispatchEvent(new FX(U,J.name,J.scope,J.onViolation))}function ml($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function ul($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function kl($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}var BT=F(()=>{J$()});async function MT($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(DT(Q)||YT(Q)))return!1;if(await G.hasBufferedSignal(U,J.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let D=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!D||D.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,J.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function pG($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await mJ($,U,!1,J.createLifecycleCallbacks())}catch(G){let X=await J.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),G;if(X==="corrupt")throw G}}async function WT($,U,J){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let G=await J.loadWorkflowState(U);if(!G||G.status!=="running")return"terminal-or-missing";if(!await J.readCheckpointBytes(U))return"corrupt";return"resumable"}async function NT($,U,J){switch(U.type){case"completed":await AP($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await $6($,U.workflowId,G,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,G,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,G).catch((Q)=>{let _=Q instanceof Error?Q:Error(String(Q));return $6($,U.workflowId,_,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}var Yz=F(()=>{Dz();l4();Y4()});function dG($){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 lG($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function iG($,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 G=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===G)$.retentionSweepInFlight=null});$.retentionSweepInFlight=G},$.options.retentionSweepIntervalMs)}async function nG($,U,J){try{await NJ($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function Zz($,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 KT($,U=(J)=>Zz($,J)){let J=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}var jz=F(()=>{tX()});function sJ($){return{createLifecycleCallbacks:()=>S$($),createTerminationCallbacks:()=>$$($),evaluateConstraints:(U)=>VT(H($),U,WC($)),getParkedWorkflowResumeDisposition:(U)=>WT(H($),U,sJ($)),hasBufferedSignal:(U,J)=>hN(H($),U,J),loadWorkflowState:(U)=>i(H($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>MT(H($),U,J,sJ($)),persistCheckpoint:(U,J,G)=>fl($,U,J,G),processOperation:(U,J)=>oC(H($),U,J,_z($)),readCheckpointBytes:(U)=>H($).storage.get(z.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>pG(H($),U,sJ($)),runSerializedWorkflowStateWrite:(U,J)=>j6(H($),U,J),translateOperationRequest:(U)=>rC(H($),U),validateDevelopmentCheckpoint:(U)=>LT(H($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function fl($,U,J,G){return jT(H($),U,J,G,{appendTimelineBatchOperations:(X,Q,_,D,Y)=>ZT(H($),X,Q,_,D,Y),swallowPromiseRejection:(X)=>{C6(X)},validateAttributeValueSizes:_0,pruneCheckpointHistory:(X,Q)=>FT(H($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>f1(H($),X,"timed-out",$$($),$3)})}function wl($){iG(H($),{hasConfiguredRetention:()=>dG(H($)),runRetentionSweep:()=>nG(H($),(U,J)=>$$($).handleCleanupError(U,J),(U)=>c6(H($),U,$$($))),setNextRetentionSweepAt:()=>lG(H($))})}var OT=F(()=>{v();G6();D0();W0();QT();qT();BT();Yz();n4();TG();jz();I4();E$();p6();Y4();fG();W0();MC(($)=>wl($))});async function AT($,U){let J=[],G=new e$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:mj(X.payload)});return J}async function CT($,U){if($.options.checkpointHistory<=0)return[];let J=`${z.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=H$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function RT($,U,J){let G=await $.storage.get(z.checkpointHistory(U,J));if(!G)return null;let X=await B1($.storage,U,H$(G));return yj({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function TT($,U){let J=[];for await(let[,G]of $.storage.scan(z.timelinePrefix(U))){let X;try{X=R(G)}catch{continue}if(tM(X))J.push({...X,inputSummary:uj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:uj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function ET($,U,J){let G=await $.storage.get(z.checkpointHistory(U,J));if(!G)return null;let Q=await new e$($.storage,U).replay(Math.max(J-1,-1)),_=await B1($.storage,U,H$(G)),D=await p4($.storage,U);return{checkpoint:yj({step:_.step,locals:_.locals,searchAttributes:_.searchAttributes,version:_.version,createdAt:_.createdAt}),accumulatedResults:_.accumulatedResults.map(([Y,Z])=>[Y,L1(Z)]),events:Q.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:mj(Y.payload)})),...D!==null?{compactedBefore:D.sequence}:{}}}var ST=F(()=>{v();_6();I();c2();m1();M1();TJ();U$();_$()});function xT($,U){let J=0,G=$.length;while(J<G){let X=J+G>>>1;if($[X].timestamp<U)J=X+1;else G=X}return J}class Hz{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#J++;this.#X($)}rate($){if(this.#X($),this.#U.length===0)return 0;return this.#J/this.#U.length}#X($){let U=$-this.#$,J=xT(this.#U,U);if(J===0)return;for(let G=0;G<J;G++)if(this.#U[G].failed)this.#J--;this.#U.splice(0,J)}}class Pz{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#X(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#X($){let U=0,J=this.#J.length;while(U<J){let G=U+J>>>1;if(this.#J[G]<$)U=G+1;else J=G}this.#J.splice(U,0,$)}#G($){let U=0,J=this.#J.length;while(U<J){let G=U+J>>>1;if(this.#J[G]<$)U=G+1;else J=G}if(U<this.#J.length&&this.#J[U]===$)this.#J.splice(U,1)}#Q($){let U=$-this.#$,J=xT(this.#U,U);if(J===0)return;for(let G=0;G<J;G++)this.#G(this.#U[G].value);this.#U.splice(0,J)}}var cl=1e4,zz;var bT=F(()=>{J$();z$();zz=class zz{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#D=J,this.#Q=0,this.#_=new Set,this.#G=[],this.#J=[];for(let G of U.rules)this.#J.push({rule:G,status:"idle",currentValue:0});this.#X=new Map;for(let G=0;G<U.rules.length;G++){let X=U.rules[G],Q=X.window?Z$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#X.set(G,new Hz(Q));else if(X.metric==="activity.p99_duration")this.#X.set(G,new Pz(Q))}this.#j(),this.#Y=setInterval(this.#Z.bind(this),cl)}#Z(){for(let $=0;$<this.#U.rules.length;$++)this.#P($)}#j(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let Q=this.#D();for(let _=0;_<this.#U.rules.length;_++){if(this.#U.rules[_].metric!=="workflow.failure_rate")continue;this.#X.get(_).record(Q,X),this.#P(_)}};this.#H("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>G(!0))}if(U)this.#H("activity:completed",(G)=>{if(!(G instanceof XX))return;let X=this.#D();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#X.get(Q).record(X,G.duration),this.#P(Q)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#H("storage:size-reported",(G)=>{if(!(G instanceof HX))return;this.#Q=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#P(X)}})}#H($,U){this.#G.push({type:$,handler:U}),this.#$.addEventListener($,U)}#P($){let U=this.#U.rules[$],J=this.#J[$],G=this.#D(),X=0,Q=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#X.get($).rate(G);else if(U.metric==="activity.p99_duration")X=this.#X.get($).percentile(99,G);else if(U.metric==="storage.size")X=this.#Q;if(J.currentValue=X,X>=Q&&J.status==="idle")J.status="firing",J.lastFiredAt=G,this.#$.dispatchEvent(new PX(U.metric,Q,X,U.window)),this.#z(U,"alert:fired",X);else if(X<Q&&J.status==="firing")J.status="idle",J.lastResolvedAt=G,this.#$.dispatchEvent(new zX(U.metric,Q,X,U.window)),this.#z(U,"alert:resolved",X)}#z($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#F($,U,J)}#F($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#_.add(Q);let _={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#D()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(_),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#_.delete.bind(this.#_,Q))}}get states(){return this.#J}[Symbol.dispose](){if(this.#Y!==null)clearInterval(this.#Y),this.#Y=null;for(let{type:$,handler:U}of this.#G)this.#$.removeEventListener($,U);this.#G=[];for(let $ of this.#_)$.abort();this.#_.clear()}}});var Fz;var vT=F(()=>{Fz=class Fz{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((G)=>{let X=!1,Q=(j)=>{if(X)return;X=!0,Z(),G(j)},_=(j)=>{if(j.data.operationId===$.operationId)Q(j.data)},D=(j)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${j.message??"unknown error"}`})},Y=setTimeout(()=>{Q({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",_),U.removeEventListener("error",D)};U.addEventListener("message",_),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 rG;var gT=F(()=>{rG=class rG{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#X=new Map,this.#G=$.concurrency,this.#Q=$.workerUrl,this.#_=$.smol??!1,this.#D=!1,this.#Y=null}async acquire(){if(this.#D)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#G)return this.#Z();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#D)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,G)=>{let X=this.#X.get($)??[];X.push({resolve:J,reject:G}),this.#X.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#P($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#F(),this.#L()}release($){if(this.#D&&!this.#Y)return;let U=this.#X.get($);if(U&&U.length>0){let G=U.shift();if(U.length===0)this.#X.delete($);G.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.#X.values())$+=U.length;return this.#J.length+$}[Symbol.dispose](){if(this.#D)return;this.#D=!0,this.#j()}async[Symbol.asyncDispose](){if(this.#D)return;if(this.#D=!0,this.#z(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#j();return}return new Promise(($)=>{this.#Y=()=>{this.#j(),$()}})}#Z(){let $={};if(this.#_)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#j(){this.#z(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#X.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#P($,U){let J=this.#X.get($);if(!J)return;this.#X.delete($);for(let G of J)G.reject(U)}#z($){let U=this.#J.splice(0);for(let J of U)J.reject($);for(let J of this.#X.values())for(let G of J)G.reject($);this.#X.clear()}#F(){if(this.#D)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#G){this.#J.shift()?.resolve(this.#Z());continue}return}}#L(){if(this.#Y&&this.#U.length===this.#$.size)this.#Y(),this.#Y=null}}});function hT($,U,J,G){return{workflowId:J.workflowId,workflowType:J.workflowType,startedAt:J.startedAt??$.getNow(),abortController:G,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},...pl($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...dl($)}}function pl($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function dl($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function IT($){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 Lz;var yT=F(()=>{zG();S4();Lz=class Lz{#$;#U;#J;#X;#G;#Q;#_;#D;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#X=new Map,this.#G=new Map,this.#Q=new Map,this.#_=new Map,this.#D=null}onMessage($){this.#D=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#P({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let G=new d4(hT(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(q0(G,X),this.#$.development)G.explain(!0);this.#X.set($.workflowId,G);let Q=U.handler(G,$.input);this.#U.set($.workflowId,Q),this.#Y($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#P({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let J=$.operationResult.status==="completed"?$.operationResult.value:void 0,G=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?S3($.operationResult):void 0;if(X)this.#Z($.workflowId,U,X,G);else this.#Y($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#z($)}parkWorkflow($,U){let J=U?.retainContext?this.#X.get($)??this.#G.get($):void 0;if(this.#z($),J!==void 0)this.#G.set($,J)}getContext($){return this.#X.get($)}getParkedContext($){return this.#G.get($)}clearParkedContext($){this.#G.delete($)}getAbortController($){return this.#J.get($)}waitForWorkflowTurn($){return this.#_.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#Y($,J,U)}throwIntoWorkflow($,U,J){let G=this.#U.get($);if(!G)return;this.#Z($,G,U,J)}adoptWorkflow($,U,J,G){this.#G.delete($),this.#U.set($,U),this.#X.set($,J),this.#J.set($,G)}[Symbol.dispose](){this.#U.clear(),this.#J.clear(),this.#X.clear(),this.#G.clear(),this.#Q.clear(),this.#_.clear(),this.#D=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Y($,U,J){return this.#j($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let X=await U.next(J);if(X.done){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#P({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#P({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(G){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:k2(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#P(X)}})())}#Z($,U,J,G){return this.#j($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let Q=await U.throw(J);if(Q.done){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#P({type:"completed",workflowId:$,result:Q.value});return}let _=Q.value;this.#P({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:_})}catch(X){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??k2(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#P(Q)}})())}#j($,U){let J=U.finally(()=>{if(this.#Q.get($)===J)this.#Q.delete($)});return J.catch(()=>{}),this.#Q.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#_.get($)===J)this.#_.delete($)});return J.catch(()=>{}),this.#_.set($,J),J}#P($){let U=this.#D?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#_.delete($.workflowId)}#z($,U){if(this.#U.delete($),this.#J.delete($),this.#X.delete($),this.#G.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#_.delete($)}}});class qz{#$=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 G=(this.#U.get($)??1)-1;if(G>0){this.#U.set($,G);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 f_$($){let U=new Uint8Array($.byteLength);return U.set($),U.buffer}function il($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function oG($){if(typeof $!=="object"||$===null)return!1;let U=$;return ll.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&il(U.attributes)}function mT($){return typeof $==="object"&&$!==null&&$.type==="log"}var ll;var aG=F(()=>{ll=new Set(["debug","info","warn","error"])});function sl($){let U=0;return M(R0($,[],(G)=>{U+=G})).byteLength+U}function tJ($,U){let J=sl($);if(U!==void 0&&J>U)throw new T0(J,U);return J}function lT($){let U=tl($);el(U),$i(U)}function tl($){if(typeof $!=="object"||$===null)throw new A$("Worker outbound message must be an object");return $}function el($){if(typeof $.workflowId!=="string")throw new A$("Worker outbound message must include workflowId");kT($,"protocolVersion"),kT($,"turnId")}function kT($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new A$(`Worker outbound message ${U} must be an integer`)}function $i($){switch($.type){case"checkpoint":Ui($);return;case"completed":return;case"failed":Ji($);return;case"log":Xi($);return;default:throw new A$("Worker outbound message has an unsupported type")}}function Ui($){if(!($.checkpoint instanceof ArrayBuffer))throw new A$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new A$("Worker checkpoint message must include operationRequest")}function Ji($){if(typeof $.error!=="string")throw new A$("Worker failed message must include an error string")}function Xi($){if(!oG($.record))throw new A$("Worker log message must include a valid log record")}function R0($,U,J){let G=Gi($,U,J);if(G.handled)return G.value;if(U.includes($))throw new A$("Worker protocol message cannot include cyclic values");if(!S2($).valid)throw new A$("Worker protocol message contains non-cloneable values");return Di($,U,J)}function Gi($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new A$("Worker protocol message cannot include functions or symbols");let G=Qi($,J);if(G.handled)return G;let X=_i($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>R0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function Qi($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[uT]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[uT]:$.byteLength}};return{handled:!1}}function _i($,U,J){if($ instanceof Date)return{handled:!0,value:{[nl]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[rl]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[ol]:[...$.entries()].map(([G,X])=>[R0(G,U,J),R0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[al]:[...$.values()].map((G)=>R0(G,U,J))}};return{handled:!1}}function Di($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=R0($[X],U,J);return G}finally{U.pop()}}var Z4=1,fT=1000,wT=1048576,Vz=4096,cT=60000,pT=5000,dT=5,uT="__weftBinaryBytes",nl="__weftDate",rl="__weftError",ol="__weftMap",al="__weftSet",A$,T0;var o4=F(()=>{I();aG();A$=class A$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};T0=class T0 extends A${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class Bz{#$;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 G=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,G)){this.#$.pool.release(G);return}this.#$.attachWorkerListeners(G),this.postResumeMessage(G,$,J)}catch(G){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:G instanceof Error?G.message:String(G)})}}async cancelParkedWorkflow($,U){try{let J=await this.#$.pool.acquireSpecificWorker(U),G={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())G.protocolVersion=Z4;J.postMessage(G),this.#$.detachWorkerListenersIfIdle(J),this.#$.pool.release(J)}catch{}}#U($,U,J,G){if(!this.#$.validateHostToWorkerMessage(U,J,$))return;try{this.#$.beginTurn($,U,J.turnId??0,G),$.postMessage(J,[Yi(J.checkpoint)])}catch(X){this.#J($,U,X,G)}}#J($,U,J,G){if(this.#$.clearTurn($),G==="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 Yi($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var iT=F(()=>{o4()});class Mz{#$=new Map;#U=new Map;#J=new Map;#X=new Set;resetWorkflow($){this.#X.delete($)}markCancelled($){this.#X.add($)}consumeCancelled($){return this.#X.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[G,X]of this.#U)if(X===$)U.push(G);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#J.delete(U);this.#$.delete($),this.#U.delete($),this.#X.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#J.clear(),this.#X.clear()}workerIsIdle($){if(this.#J.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function nT($,U){let J={type:"run",protocolVersion:Z4,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 Wz($,U){let J={type:"resume",protocolVersion:Z4,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 rT=F(()=>{o4()});class Nz{#$=new Map;attach($,U){if(this.#$.has($))return;let J={message:(G)=>{U.message(G.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 oT($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function aT($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function sT($,U,J){if(J!==void 0)try{tJ($,J)}catch(X){return X instanceof T0?"dropped-oversize":"dropped-invalid"}if(!oG($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{PG(G)}return"accepted-valid"}var Kz=F(()=>{_P();aG();o4()});class eT{#$;#U;#J;#X;#G=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#J=$.strikeThreshold,this.#X=$.getNow}recordArrival($){let U=this.#X(),J=this.#Q($),G=U-J.windowStartedAt;if(G>=this.#$||G<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.#Q($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#G.delete($)}#Q($){let U=this.#G.get($);if(!U)U={windowStartedAt:this.#X(),arrivalsInWindow:0,lifetimeStrikes:0},this.#G.set($,U);return U}}class $E{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new eT({floodWindowMs:$.floodWindowMs??cT,floodThreshold:$.floodThreshold??pT,strikeThreshold:$.strikeThreshold??dT,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return tT("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=sT(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return tT("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function tT($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function UE($,U){return new $E({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var JE=F(()=>{Kz();o4()});class Oz{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return tJ($,this.#$),null}catch(U){return XE(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(lT(U),tJ(U,this.#$),this.#U)this.#X($,U);return{accepted:!0,message:U}}catch(J){let G=Zi(U);return{accepted:!1,failure:XE(J,{...G===void 0?{}:{targetWorkflowId:G},otherError:G===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${G}`})}}}#X($,U){if(U.protocolVersion!==Z4)throw new A$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new A$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new A$("Worker message did not match the active turn")}}function XE($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof T0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Zi($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var GE=F(()=>{o4()});class Az{#$=new Map;#U;#J;constructor($,U){this.#U=$,this.#J=U}begin($,U,J,G){this.clear($);let X={worker:$,workflowId:U,turnId:J,kind:G,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#J(X)},this.#U);this.#$.set($,X)}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 Cz;var QE=F(()=>{iT();rT();JE();Kz();GE();aG();o4();Cz=class Cz{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;#Z;#j;#H;#P;#z;#F;#L;#V;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:_=!1}=U??{};if(this.#$=$,this.#U=new Mz,this.#J=new Nz,this.#Q=new qz,this.#_=J,this.#D=G,this.#Y=X,this.#Z=Q,this.#j=UE(U,G),this.#H=new Az(this.#_,(D)=>{this.#x(D)}),this.#P=new Oz(this.#D,this.#Y,this.#H),this.#z=new Bz({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#L,requireProtocolVersion:()=>this.#Y,validateHostToWorkerMessage:(D,Y,Z)=>this.#O(D,Y,Z),attachWorkerListeners:(D)=>{this.#E(D)},detachWorkerListenersIfIdle:(D)=>{this.#K(D)},beginTurn:(D,Y,Z,j)=>{this.#H.begin(D,Y,Z,j)},clearTurn:(D)=>{this.#H.clear(D)},discardWorkerAndFailWorkflows:(D,Y)=>{this.#q(D,Y)},emit:(D)=>{this.#W(D)}}),this.#F=null,this.#X=null,this.#G=null,this.#L=!1,this.#V=1,_)try{this.#X=new BroadcastChannel("weft:events"),this.#G=(D)=>{this.#b(D.data)},this.#X.addEventListener("message",this.#G)}catch{}}onMessage($){this.#F=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=nT($,this.#B());if(!this.#O($.workflowId,U))return;this.#z.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let G=Wz($,this.#B());this.#z.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=Wz($,this.#B());this.#z.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#L)this.#W({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#B(){return{turnId:this.#V++,maxProtocolMessageBytes:this.#D,hasLogSink:this.#j.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#Z){this.#q(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#Y)G.protocolVersion=Z4;U.postMessage(G),this.#N($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#Z){this.#q(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#z.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#M(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#M(),await this.#$[Symbol.asyncDispose]()}#M(){if(this.#L=!0,this.#X){if(this.#G)this.#X.removeEventListener("message",this.#G);this.#X.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#N(U);this.#J.detachAll(),this.#U.clear(),this.#Q.clear(),this.#F=null}async#A($,U){if(mT(U)){let Q=(D)=>this.#U.getTargetWorker(D)===$,_=this.#j.handle($,U,Q);if(_)this.#q($,_);return}if(!this.#S($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=oT(this.#F,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.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.#N(U.workflowId),this.#K($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!aT(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#q($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#N($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#K(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#q($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#K($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let G=this.#P.validateHostToWorkerMessage(U);if(!G)return!0;if(J)return this.#q(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#W({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#S($,U){let J=this.#P.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#q($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#x($){this.#q($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#_}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#q($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#j.forget($);return}for(let G of J){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#Q.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#W({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#j.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.#F?.($);if(U instanceof Promise)U.catch(()=>{})}}});function ZE($){let U=ji($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:_E,leaseRenewIntervalMs:DE,leaseWaitTimeoutMs:YE};let J=W6($?.leaseTtl,"options.leaseTtl")??_E,G=W6($?.leaseRenewInterval,"options.leaseRenewInterval")??DE,X=W6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??YE;return Hi(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function ji($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Hi($,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 _E=30000,DE=5000,YE=60000;var jE=F(()=>{_$()});function Rz($){return Object.entries($??{})}function sG($,U){return $}function PE($){return Pi($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function Pi($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function zi($){return $?.development===!0||PE("WEFT_DEV_WARNINGS")==="1"||PE("NODE_ENV")==="development"}function LE($){let J=$?.storage??void 0;if(J===void 0){if(!HE&&zi($))HE=!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 D8}if(!$?.compression)return J;return new A7(J,$.compression)}function qE($){return $?.interceptors?[...$.interceptors]:[]}function Tz($,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 Fi($){return{retention:w3($?.retention,"options.retention"),retentionSweepIntervalMs:W6($?.retentionSweepInterval,"options.retentionSweepInterval")??dF,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):lF}}function E0($,U){return $??U}function Li($){return{development:E0($?.development,!1),broadcastEvents:E0($?.broadcastEvents,!1)}}function qi($){return{checkpointHistory:E0($?.checkpointHistory,10),checkpointSizeWarningThreshold:E0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:E0($?.maxNestingDepth,10)}}function Vi($){return{historyPolicy:eM($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:$W($?.payloadSize,"options.payloadSize")}}function Bi($){let U=E0($?.detectSecondInstance,!1),J=U?W6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??zE:zE;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function VE($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...Li(U),...qi(U),...Fi(U),...Vi(U),...Bi(U),...ZE(U)}}function Mi($){let U=Wi($?.workflowExecutionMode),J=Ni($,U);if(!J)return{mode:"inline",workerExecution:null};return Ki(J)}function Wi($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Ni($,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 Ki($){let U=FE($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??fT,J=FE($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??wT;if(J<Vz)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${Vz}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function FE($,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 BE($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:_,getComposedWorkflowInterceptor:D,resolveWorkflowType:Y,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:P,getLogSink:L}=$,q=Mi(U);if(q.mode==="worker"){let S=new rG({workerUrl:q.workerExecution.workerUrl,concurrency:q.workerExecution.poolSize??4,smol:q.workerExecution.smol??!1}),m=L?.(),s={broadcastEvents:Q,requireProtocolVersion:q.requireProtocolVersion,discardOnCancel:q.discardOnCancel,workflowTurnTimeoutMs:q.workflowTurnTimeoutMs,maxProtocolMessageBytes:q.maxProtocolMessageBytes,getNow:J,...m!==void 0&&{onLog:m}};return{strategy:new Cz(S,s),inlineStrategy:null}}let W=new Lz({getRegistration:_,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:Y,...IT({getComposedWorkflowInterceptor:D,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:P,getLogSink:L})});return{strategy:W,inlineStrategy:W}}function ME($){if(!$)return null;return new Fz(new rG({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function WE($,U,J){return U?new zz($,U,J):null}var HE=!1,zE=15000;var NE=F(()=>{bT();BF();M7();vT();gT();yT();G6();QE();o4();jE();_$()});function OE(){if(Ez!==void 0)return Ez;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function AE($){Ez=$}function CE($){Sz=$}function RE(){let $=Sz;return Sz=void 0,$}function TE(){return KE}function EE($){return xz.has($)}function SE($){xz.delete($)}function xE(){return OE()}var Ez,KE=0,Sz,xz,tG;var eG=F(()=>{xz=new Set,tG=new FinalizationRegistry(($)=>{if(KE++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&OE()){if($.testToken!==void 0)xz.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 bE($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function vE($){let U=S$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>C6(J)}}function gE($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}H(G).queuedInlineWorkflowStartFlushScheduled=!1,C6(uJ(H(G),vE(G)))}}async function hE($){await xA(H($),vE($))}function IE($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=H(G);UM(X.updateCoordinator,(Q,_)=>$$(G).handleCleanupError(Q,_))()}}function yE($){return function(){let J=$.deref();if(J===void 0)return null;let G=H(J);if(G.disposed)return null;return G.secondInstanceDetector}}function mE($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,tG.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var bz=F(()=>{m2();W0();eG();i4();n4();p6()});function $7($){$.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(),bA($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,mE($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,Oi($),Ai($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new K6);$.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 Oi($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function Ai($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var uE=F(()=>{bz();L$();i4()});function kE($,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}N6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),g4($,U,{conditions:[],operations:[{type:"put",key:z.finalizerState(U),value:M(J)}]})}var fE=F(()=>{v();I();v4()});function wE($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:_}=$,D=$.acquirePollIntervalMs??Ci,Y=Q,Z=!1,j=null,P=null,L=null,q=null,W=!1,S=null,m=$.delay??((Y$)=>new Promise((u$)=>setTimeout(u$,Y$)));function s(Y$){if(W)return;W=!0,$.onLeaseLost?.(Y$)}async function p(){let Y$=await U.get(z.leaseHolder()),u$=await U.get(z.leaseEpoch());return{epochRaw:u$,holderRaw:Y$,epoch:u$===null?null:bX(u$),holder:Y$===null?null:vX(Y$)}}async function y(Y$,u$,k$){let E6=G()+X,r1=HH({holderId:J,expiresAt:E6,epoch:k$}),rz=await G$(U,[{key:z.leaseEpoch(),expectedValue:Y$},{key:z.leaseHolder(),expectedValue:u$}],[{type:"put",key:z.leaseEpoch(),value:jH(k$)},{type:"put",key:z.leaseHolder(),value:r1}]);if(rz)j=k$,P=jH(k$),L=r1;return rz}async function k(){let{epochRaw:Y$,holderRaw:u$,epoch:k$,holder:E6}=await p();if(Y$!==null&&k$===null)throw new v1('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(Y$===null&&u$!==null)throw new v1('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(E6!==null&&G()<E6.expiresAt)return!1;let r1=(k$??0)+1;if(r1>=Number.MAX_SAFE_INTEGER)throw new v1(`the next ownership epoch (${r1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return y(Y$,u$,r1)}async function w(){let Y$=G(),u$=Y$+_,k$=null,E6=!0;for(;;){if(Z)return;if(!E6&&G()>=u$)throw new U0(G()-Y$,k$);if(E6=!1,await k())return;let n1=await U.get(z.leaseHolder());if(k$=n1===null?null:vX(n1)?.holderId??null,G()>=u$)throw new U0(G()-Y$,k$);await m(D)}}async function x$(){if(Z||W||j===null||L===null)return;let Y$=G()+X,k$=HH({holderId:J,expiresAt:Y$,epoch:j}),E6;try{E6=await G$(U,[{key:z.leaseHolder(),expectedValue:L}],[{type:"put",key:z.leaseHolder(),value:k$}])}catch{let n1=vX(L)?.expiresAt??0;if(G()>=n1-Y)s("renewal-unconfirmable");return}if(E6){L=k$;return}s("deposed")}function T6(){if(S!==null)return;S=x$().catch(()=>{}).finally(()=>{S=null})}function i1(){if(Z||q!==null)return;q=setInterval(()=>{T6()},Q),q.unref?.()}function gS(){return P===null?null:P.slice()}function nz(){if(q!==null)clearInterval(q),q=null}async function hS(){if(Z=!0,nz(),S!==null)await S;if(L===null)return;try{if(await G$(U,[{key:z.leaseHolder(),expectedValue:L}],[{type:"delete",key:z.leaseHolder()}]))L=null}catch{}}function IS(){Z=!0,nz()}return{acquire:w,startRenewal:i1,renewOnce:x$,currentEpochBytes:gS,release:hS,stop:IS}}var Ci=1000;var cE=F(()=>{v();PH();gX()});async function vz($){let U=await $.get(YH);if(U!==null){let J=new TextDecoder().decode(U);if(!Ri.test(J))throw new Q4(null,T1);let G=Number(J);if(!Number.isSafeInteger(G))throw new Q4(null,T1);if(G!==T1)throw new Q4(G,T1);return}for(let J of Ti)for await(let G of $.scan(J,{limit:1}))throw new Q4(null,T1);await $.put(YH,new TextEncoder().encode(String(T1)))}var Ri,Ti;var pE=F(()=>{ZH();Ri=/^(?:0|[1-9]\d*)$/,Ti=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function dE($,U,J,G){if(J==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let Q=X.getContext(U)??X.getParkedContext(U);if(!Q)return;let _=Q.queryHandlers.get(J);if(_)return _(G);let D=Q.exposedAccessors.get(J);if(!D)return;return D()}function xi($){return Ei.encode(JSON.stringify($))}async function U7($){try{await $()}catch{}}function bi($){let{instanceId:U,heartbeatAt:J,sequence:G}=$;return typeof U==="string"&&U.length>0&&typeof J==="number"&&Number.isFinite(J)&&typeof G==="number"&&Number.isInteger(G)&&G>=0}function vi($){let U;try{U=JSON.parse(Si.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return bi(J)?J:null}function iE($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((p)=>process.emitWarning(p,gi)),_=X*(lE+1),D=0,Y=!1,Z=!1,j=new Map,P=new Set;async function L(){let p=[];for await(let[y,k]of U.scan(z.livenessPrefix())){let w=vi(k);if(w!==null&&w.instanceId!==J)p.push({key:y,heartbeat:w})}return p}async function q(p,y){let k=y-_*hi;for(let w of p)if(w.heartbeat.heartbeatAt<k)await U7(()=>U.delete(w.key))}function W(p){let y=new Set;for(let{key:k,heartbeat:w}of p){if(z.liveness(w.instanceId)!==k)continue;y.add(w.instanceId);let x$=j.get(w.instanceId),i1=x$!==void 0&&w.sequence>x$.sequence?x$.advances+1:0;if(j.set(w.instanceId,{sequence:w.sequence,advances:i1}),i1>=lE&&!P.has(w.instanceId))P.add(w.instanceId),Q(`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 S=!1;async function m(){if(Z||S)return;S=!0;let p=!1;try{let y=G(),k=await L();if(!Y)Y=!0,await q(k,y);if(W(k),Z)return;D+=1;let w={instanceId:J,heartbeatAt:y,sequence:D};p=!0,await U7(()=>U.put(z.liveness(J),xi(w)))}finally{if(S=!1,p&&Z)await U7(()=>U.delete(z.liveness(J)))}}async function s(){Z=!0,await U7(()=>U.delete(z.liveness(J)))}return{tick:m,stop:s}}function nE($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var Ei,Si,gi="WeftSecondInstanceWarning",hi=10,lE=2;var rE=F(()=>{v();Ei=new TextEncoder,Si=new TextDecoder});var oE,aE,sE,eJ;var tE=F(()=>{v();IZ();Z1();_6();m2();jj();z$();G6();fU();EW();sU();SX();tX();fG();OT();ST();NE();uE();eG();bz();L$();O6();fE();mH();k4();i4();Yz();n4();cE();l4();WJ();Uz();Qz();QG();pE();VP();jz();MG();wP();rE();I4();E$();p6();Y4();eU();uX();cG();oP();sU();L$();k4();gX();eG();oE=Symbol("engineParkedWorkflowCountForTesting"),aE=Symbol("engineSignalWaiterCountForTesting"),sE=Symbol("engineSleepResolverCountForTesting");eJ=class eJ extends EventTarget{static async create($){let U=new eJ($);try{await vz(H(U).storage);for(let[J,G]of Rz($.activities)){if(J!==G.name)throw new S1("activity",J,G.name);U.#B(G)}for(let[J,G]of Rz($.workflows)){if(J!==G.name)throw new S1("workflow",J,G.name);U.register(G)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{}),H(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();mA(this),H(this).registrations=new Map,H(this).workflowTypesByHandler=new WeakMap;let U=LE($),J=$?.getNow??Date.now,G=VE(U,$,J),X=BE({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:H(this).registrations.get.bind(H(this).registrations),getComposedWorkflowInterceptor:()=>L6(H(this)),resolveWorkflowType:this.#F.bind(this),registerCancelHandler:(Z,j)=>IJ(H(this),Z,j),recordFinalizerState:(Z,j)=>kE(H(this),Z,j),getWorkflowServices:(Z)=>H(this).workflowServices.get(Z),getLogSink:()=>G.onLog??void 0});H(this).storage=U,H(this).abortController=new AbortController,H(this).disposed=!1,H(this).handleCache=new Map,H(this).resultResolvers=new Map,H(this).signalWaiters=new Map,H(this).signalWaitersByWorkflow=new Map,H(this).conditionWaiters=new Map,H(this).updateWaiters=new Map,H(this).updateWaitersByWorkflow=new Map,H(this).sleepResolvers=new Map,H(this).sleepResolversByWorkflow=new Map,H(this).interceptors=qE($),H(this).composedWorkflowInterceptor=void 0,H(this).composedActivityInterceptor=void 0,H(this).updateCoordinator=new zj(U),H(this).activityRegistry=new A2,H(this).activityRegistriesByWorkflow=new Map,H(this).workflowDefinitionsByName=new Map,H(this).workflowTypeByWorkflowId=new Map,H(this).activityWorkerDispatcher=null,H(this).checkpoints=new Map,H(this).broadcastChannel=null,H(this).pendingNestingDepth=void 0,H(this).pendingParentHeaders=void 0,H(this).pendingExecutionStateOwnerId=void 0,H(this).workflowNestingDepths=new Map,H(this).workflowHeaders=new Map,H(this).workflowStateWriteChains=new Map,H(this).finalizationRegistry=new FinalizationRegistry($M(H(this).handleCache)),H(this).options=G,H(this).scheduler=new C3({storage:U,onTimerFired:(Z)=>pH(H(this),Z,this.#z()),getNow:J,commitTimerCleanup:(Z)=>D$(H(this),Z,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),H(this).strategy=X.strategy,H(this).inlineStrategy=X.inlineStrategy,H(this).queuedInlineWorkflowStarts=[],H(this).queuedInlineWorkflowStartIds=new Set,H(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,H(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),_=X.inlineStrategy!==null?new MessageChannel:null;if(H(this).queuedInlineWorkflowStartChannel=_,_!==null)_.port1.onmessage=gE(Q,_);H(this).heartbeatDetails=new Map,H(this).lastHeartbeatDetailsByStep=new Map,H(this).workflowServices=new Map,H(this).pendingAsyncActivities=new Map,H(this).pendingAsyncActivityResolutions=new Map,H(this).pendingStarts=new Set,H(this).pendingScheduleCreations=new Set,H(this).workflowsNeedingTerminalCleanup=new Set,H(this).reviewCoordinator=new Zj(U,J),H(this).reviewWaiters=new Map,H(this).reviewWaitersByWorkflow=new Map,H(this).reviewEscalationHandlers=new Map,H(this).workflowReviewIds=new Map,H(this).parkedInlineWorkflows=new Set,H(this).terminalizingWorkflows=new Set,H(this).deliveredPendingUpdateIds=new Map,H(this).cancelHandlersByWorkflow=new Map,H(this).reviewTimerIds=new Map,H(this).pendingWebhooks=new Set,H(this).pendingTimelineEntries=new Map,H(this).pendingAtomicWorkflowCommitSideEffects=new Map,H(this).cleanupIntervalDisposalTracker=null;let D={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:RE()},Y=setInterval(IE(Q,D),60000);D.cleanupInterval=Y,H(this).cleanupInterval=Y,H(this).cleanupIntervalDisposalTracker=D,tG.register(this,D,D),H(this).retentionSweepInterval=null,H(this).retentionSweepInFlight=null,H(this).nextRetentionSweepAt=null,H(this).secondInstanceDetectionInterval=null,H(this).secondInstanceDetector=null,H(this).leaseManager=null,H(this).inFlightLeaseAcquire=null,H(this).deposed=!1,H(this).tearDownAfterDeposition=()=>{this.#U()},H(this).eventLogHeads=new Map,H(this).workflowFeedListeners=new Map,H(this).workflowVersionTuples=new Map,H(this).workflowVisibilityWatermark=void 0,H(this).workflowVisibilityWatermarkExpiresAt=void 0,H(this).activityWorkerDispatcher=ME($?.activityExecution),H(this).strategy.onMessage(this.#L.bind(this)),H(this).alertManager=WE(this,$?.alerts,J),this.#Q(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=H(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new K6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=wE({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){jJ($);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.",zH)}});$.leaseManager=U;let J=(async()=>{try{await U.acquire()}catch(G){if($.leaseManager===U)$.leaseManager=null;throw G}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new K6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=H(this);if($.disposed)return;let U=$.leaseManager;$7($),U?.release().catch(()=>{})}#J(){let $=H(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=iE({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let J=$.cleanupIntervalDisposalTracker;if(J===null)return;let G=new WeakRef(this),X=setInterval(nE(yE(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#X(){return dG(H(this))}#G(){lG(H(this))}#Q(){iG(H(this),{hasConfiguredRetention:()=>this.#X(),runRetentionSweep:()=>this.#_(),setNextRetentionSweepAt:()=>this.#G()})}async#_(){return nG(H(this),($,U)=>this.#Y().handleCleanupError($,U),($)=>c6(H(this),$,this.#Y()))}#D(){return S$(this)}#Y(){return $$(this)}#Z(){return CG(this)}#j(){return l6(this)}#H(){return sJ(this)}#P(){return A0(this)}#z(){return uG(this)}#F($){return VG(H(this),$,this.#Z())}get state(){let $=H(this).storage;return{execution:(U,J,G)=>new yU($,z.stateExecution(U,J),G),workflow:(U,J,G)=>new yU($,z.stateWorkflow(U,J),G)}}async#L($){return NT(H(this),$,this.#H())}#V($){return y4(H(this),$,this.#j())}register($){if(bE($))return this.#B($),sG(this);return cA(H(this),$,this.#Z()),sG(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new S1("workflow",U,J.name);this.register(J)}return sG(this)}addInterceptor($){H(this).interceptors.push($),H(this).composedWorkflowInterceptor=void 0,H(this).composedActivityInterceptor=void 0}#B($){H(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return H(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){H(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){H(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=H(this).registrations.get($);return U===void 0?void 0:Tz($,U)}listWorkflowDefinitions(){return[...H(this).registrations.entries()].map(([$,U])=>Tz($,U))}getActivityDefinition($){return H(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return H(this).activityRegistry.listDefinitions()}async start($,U,J){if(zJ(H(this)),J?.idempotencyKey!==void 0)return XP(H(this),$,U,J,this.#D());return P6(H(this),$,U,J,void 0,this.#D())}async startOrSignal($,U,J,G){return zJ(H(this)),GP(H(this),$,U,J,G,this.#M())}#M(){return{...this.#D(),signalExistingWorkflow:($,U,J,G)=>this.signal($,U,J,{signalId:G})}}getHandle($){let U=H(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return eX(H(this),$)}async list($,U){return NK(H(this),$,U)}async aggregate($,U){return TW(H(this),$,U)}getRetentionOverview(){return KT(H(this),($)=>Zz(H(this),$))}async purge($){return wK(H(this),$,(U)=>c6(H(this),U,this.#Y()))}async cancelAll($,U){return cK(H(this),$,U)}async retryFailedAll($,U){return pK(H(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return IH(H(this),$,U,J);return IH(H(this),$,U,J,G)}async deleteAll($,U){return dK(H(this),$,(J)=>c6(H(this),J,this.#Y()),U)}async tagAll($,U,J){return lK(H(this),$,U,J)}async untagAll($,U,J){return iK(H(this),$,U,J)}async schedule($,U,J,G){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,_=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return fP(H(this),Q,X.input,_,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return fP(H(this),$,U,J,G)}async getSchedule($){let U=w4($,"scheduleId"),J=await I1(H(this),U);return J?vC(J):null}async listSchedules($){return xC(H(this),$)}async pauseSchedule($){return gC(H(this),$)}async resumeSchedule($){return hC(H(this),$)}async cancelSchedule($){return IC(H(this),$)}async updateSchedule($,U){return yC(H(this),$,U)}[FJ]($){return rK(H(this),$)}[oE](){return H(this).parkedInlineWorkflows.size}[aE](){return H(this).signalWaiters.size}[sE](){return H(this).sleepResolvers.size}async signal($,U,J,G){return vN(H(this),$,a$(U),J,{loadWorkflowState:(X)=>i(H(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#V(X),getComposedInterceptor:()=>L6(H(this)),resumeParkedInlineWorkflow:(X)=>C6(pG(H(this),X,this.#H()))},G)}async update($,U,J,G){return mN(H(this),$,a$(U),J,G,this.#P())}async query($,U,J){return dE(H(this),$,a$(U),J)}async getStreamChunks($,U,J){return eR(H(this),$,U,J)}async getOffload($,U){return wR(H(this),$,U)}async fork($,U){return zJ(H(this)),FP(H(this),$,U,this.#D())}async resume($){return zJ(H(this)),LG(H(this),$,this.#D())}async recoverAll($){if(await this.#$(),H(this).disposed)throw new K6;return await lW(H(this)),await bC(H(this)),zP(H(this),this.#D(),$)}async completeAsyncActivity($,U){await rW(H(this),$,U,{feedOperationResult:(J,G)=>F6(H(this),J,G),finalizeTimeline:(J,G,X)=>R6(H(this),J,G,X)})}async failAsyncActivity($,U){await aW(H(this),$,U,{feedOperationResult:(J,G,X)=>F6(H(this),J,G,X),finalizeTimeline:(J,G,X)=>R6(H(this),J,G,X)})}async cancel($){await KP(H(this),$,this.#Y())}async suspend($){await bP(H(this),$,this.#Y())}async timeout($){await OP(H(this),$,this.#Y())}async get($){let U=await i(H(this),$);if(U?.status==="running"&&vA(H(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=H(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await H(this).storage.get(z.checkpoint($));if(J===null)return null;return H$(J).step}async getAttributes($){return RK(H(this),$)}async setAttributes($,U){return TK(H(this),$,U)}async addTags($,...U){return EK(H(this),$,...U)}async removeTags($,...U){return SK(H(this),$,...U)}async getEvents($){return AT(H(this),$)}async*replayWorkflowFeed($,U,J){yield*aR(H(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return sR(H(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return tR(H(this),$,U,J)}async listCheckpoints($){return CT(H(this),$)}async getCheckpointAt($,U){return RT(H(this),$,U)}async getTimeline($){return TT(H(this),$)}async replayTo($,U){return ET(H(this),$,U)}async listReviews($){return sA(H(this),$)}async getReview($,U){return tA(H(this),$,U)}async submitReview($,U){return eA(H(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return uN(H(this),$)}async submitCoordinatedUpdate($,U,J,G){return kN(H(this),$,U,J,G,this.#P())}[Symbol.dispose](){let $=H(this).leaseManager;$7(H(this)),$?.release()}async[Symbol.asyncDispose](){if(!H(this).disposed){let $=H(this).leaseManager;try{await hE(this)}finally{$7(H(this)),await H(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return H(this).storage}get scheduler(){return H(this).scheduler}async fireTimer($){await pH(H(this),$,this.#z())}}});var Ii={};i$(Ii,{shouldEmitEngineLeakWarningForTesting:()=>xE,setNextEngineLeakWarningTokenForTesting:()=>CE,setEngineLeakWarningOverrideForTesting:()=>AE,hasEngineLeakWarningTokenForTesting:()=>EE,getEngineLeakCollectionCountForTesting:()=>TE,clearEngineLeakWarningTokenForTesting:()=>SE,assertCompatiblePersistedDataVersion:()=>vz,WorkflowTypeNotRegisteredForRecoveryError:()=>QJ,WorkflowTeardownPendingError:()=>XJ,WorkflowSuspendNotSupportedError:()=>DJ,WorkflowNotRegisteredError:()=>x1,WorkflowNotFoundError:()=>$0,WorkflowHandle:()=>LJ,WorkflowConcurrencyLimitExceededError:()=>_J,WorkflowAlreadyExistsError:()=>t$,StartOrSignalConflictError:()=>ZJ,ScheduleHandle:()=>iJ,PersistedDataIncompatibleError:()=>Q4,IdempotencyKeyPurgedError:()=>u4,HANDLE_RESULT_PROMISE:()=>FJ,EngineLeaseNotHeldError:()=>HJ,EngineLeaseCorruptedError:()=>v1,EngineLeaseAcquisitionTimeoutError:()=>U0,EngineDisposedError:()=>K6,EngineCreateNameMismatchError:()=>S1,Engine:()=>eJ,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>sE,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>aE,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>oE,ENGINE_LEASE_LOST_WARNING_NAME:()=>zH,BulkOperationConfirmationError:()=>GJ,BulkDeleteRequiresTerminalWorkflowsError:()=>E1,AsyncActivityTokenNotFoundError:()=>WX,ActivityResolutionError:()=>YJ,ActivityReconciliationIndeterminateError:()=>q6,ActivityReconciliationConflictError:()=>xG,ActivityReconciliationCapabilityError:()=>SG});var eE=F(()=>{tE()});function fz($){return $}function kZ$($,U){$.register(U)}async function wF($,U){switch($){case"sqlite":{let{BunSQLiteStorage:J}=await Promise.resolve().then(() => (fF(),kF));return new J(U)}case"lmdb":{let{LMDBStorage:J}=await Promise.resolve().then(() => (KF(),NF));return new J(U)}case"memory":return Dx()}}async function Dx(){let{MemoryStorage:$}=await Promise.resolve().then(() => (M7(),_F));return new $}eE();var gz=["workflows:read","workflows:write","workflows:admin","schedules:read","schedules:write","signals:write","updates:write","queries:read","reviews:read","reviews:write","attributes:read","attributes:write","tags:write","streams:read","events:read","budget:read","budget:write","storage:read","storage:write","storage:admin","workers:write","system:read","system:admin"],yi=new Set(gz);function US($){return yi.has($)}function JS($){let U=new Set;$S($.scope,U),$S($.scp,U);let J=$.permissions;if(Array.isArray(J)){for(let G of J)if(typeof G==="string"&&US(G))U.add(G)}return U}function $S($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let J of $.split(/\s+/)){if(J.length===0)continue;if(US(J))U.add(J)}}function LZ$($){let U=JS($),J=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:J,hasScope(G){return U.has(G)}}}function qZ$($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function VZ$($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function BZ$(){return mi}function XS(){let $=new Set(gz);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var mi={method:"unauthenticated"};function J7($){return $.method!=="unauthenticated"}r();var X7="2.0",S0=Object.freeze({PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,UNAUTHORIZED:-32010,FORBIDDEN:-32011,NOT_FOUND:-32020,CONFLICT:-32021,UNPROCESSABLE:-32022,TIMEOUT:-32023,RATE_LIMITED:-32024,NOT_IMPLEMENTED:-32025,UNSUPPORTED_TRANSPORT:-32030,SUBSCRIPTION_OVERFLOW:-32031,ENGINE_FAILURE:-32099});function WZ$($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var GS="0.5.0";r();class m$ extends E{constructor($){super("McpToolExecutionError",$)}}function U6($,U,J){if(!$.authRequired)return;if(!J7($.principal))throw new m$(`${J} requires authentication`);if(!$.principal.hasScope(U))throw new m$(`${J} requires ${U}`)}async function G7($,U){return $.get(U)}async function $8($,U){return $.list(U)}var hz="2025-11-25",QS="tools/list",_S="notifications/tools/list_changed",DS="resources/list",YS="resources/templates/list",TZ$=1048576;function ZS($,U){return{jsonrpc:X7,id:$,result:U}}function U8($,U,J,G){return{jsonrpc:X7,id:$,error:G===void 0?{code:U,message:J}:{code:U,message:J,data:G}}}function Q7($,U,J){return U8($,S0.INVALID_PARAMS,U,J)}function jS($,U){return U8($,S0.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function HS($){return U8($,S0.INTERNAL_ERROR,"Internal error")}function Iz($,U){return U8($,-32002,"Resource not found",{uri:U})}function yz($,U){return U8($,-32011,U,{reason:U})}function PS($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==X7)return!1;return typeof U.method==="string"}function zS($){return $.id===void 0}function c1($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function mz($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function EZ$($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function SZ$($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((J)=>J.split(";")[0]?.trim().toLowerCase()??"").some((J)=>J==="*/*"||J===U)}var ui=["pending","running","completed","failed","cancelled","timed-out","suspended"];function uz($){if(!di($))return{ok:!1,message:"List filter must be a JSON object"};let U=ki($.status),J=fi($.type,"type"),G=wi($.tags,"tags"),X=FS($.limit,"limit"),Q=FS($.offset,"offset"),_=ci([U,J,G,X,Q]);if(_!==void 0)return _;return{ok:!0,filter:pi({status:J8(U),type:J8(J),tags:J8(G),limit:J8(X),offset:J8(Q)})}}function qS($){let U={},J=$.getAll("status");if(J.length===1)U.status=J[0];if(J.length>1)U.status=J;let G=$.get("type");if(G!==null)U.type=G;let X=$.getAll("tag");if(X.length>0)U.tags=X;let Q=$.get("limit");if(Q!==null)U.limit=Number(Q);let _=$.get("offset");if(_!==null)U.offset=Number(_);return uz(U)}function ki($){if($===void 0)return{ok:!0};if(typeof $==="string")return LS($)?{ok:!0,value:$}:{ok:!1,message:`Invalid workflow status: ${$}`};if(!Array.isArray($))return{ok:!1,message:"List filter status must be a workflow status or array"};let U=[];for(let J of $){if(typeof J!=="string"||!LS(J))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(J)}return{ok:!0,value:U}}function fi($,U){if($===void 0)return{ok:!0};if(typeof $!=="string")return{ok:!1,message:`List filter ${U} must be a string`};return{ok:!0,value:$}}function wi($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let J=[];for(let G of $){if(typeof G!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};J.push(G)}return{ok:!0,value:J}}function FS($,U){if($===void 0)return{ok:!0};if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)return{ok:!1,message:`List filter ${U} must be a non-negative integer`};return{ok:!0,value:$}}function ci($){for(let U of $)if(!U.ok)return U;return}function J8($){return $.ok?$.value:void 0}function pi($){let U={};if($.status!==void 0)U.status=$.status;if($.type!==void 0)U.type=$.type;if($.tags!==void 0)U.tags=$.tags;if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function LS($){return ui.some((U)=>U===$)}function di($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function VS(){return[{uriTemplate:"weft://workflows/{workflowId}/state",name:"workflow_state",title:"Workflow state",description:"Read the current state for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/{workflowId}/events",name:"workflow_events",title:"Workflow events",description:"Read the event log for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/{workflowId}/checkpoints",name:"workflow_checkpoints",title:"Workflow checkpoints",description:"Read checkpoint history summaries for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/search{?status,type,tag,limit,offset}",name:"workflow_search",title:"Workflow search",description:"List visible Weft workflows using query filters.",mimeType:"application/json"}]}async function BS($){return U6($,"workflows:read","Listing workflow resources"),(await $8($.engine,{})).items.map((J)=>({uri:X8(J.id,"state"),name:`workflow_${J.id}`,title:`${J.type} workflow ${J.id}`,description:`Current state for workflow ${J.id}.`,mimeType:"application/json"}))}async function kz($,U){U6(U,"workflows:read","Reading workflow resources");let J=NS($);if(J===null)return null;if(J.kind==="search"){let X=await $8(U.engine,J.filter);return _7($,X)}let G=await G7(U.engine,J.workflowId);if(G===null)return null;switch(J.kind){case"state":return _7($,G);case"events":return U6(U,"events:read","Reading workflow events"),_7($,{events:await U.engine.getEvents(J.workflowId)});case"checkpoints":return _7($,{checkpoints:await U.engine.listCheckpoints(J.workflowId)})}}async function MS($,U,J){if(await kz($,J)===null)return!1;return U.subscriptions.add($),!0}function WS($,U){U.subscriptions.delete($)}function _7($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function NS($){let U=li($);if(U===null)return null;if(U.pathname==="/search")return ii(U.searchParams);return ni(U.pathname)}function li($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function ii($){let U=qS($);return U.ok?{kind:"search",filter:U.filter}:null}function KS($){return NS($)?.kind==="search"}function ni($){let U=$.split("/").filter(Boolean).map(ri);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[J,G]=U;if(!J)return null;if(G==="state"||G==="events"||G==="checkpoints")return{kind:G,workflowId:J};return null}function X8($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function ri($){try{return decodeURIComponent($)}catch{return null}}e9();r();var oi=1;class Y7 extends E{entityKind;entityName;direction;constructor($,U,J,G){let X=G instanceof Error?G.message:String(G);super("RegistrySchemaConversionError",`Failed to convert ${J} for ${$} "${U}": ${X}`,{cause:G});this.entityKind=$,this.entityName=U,this.direction=J}}function mZ$($){let U=$.listWorkflowDefinitions(),J=$.listActivityDefinitions(),G=U.toSorted((D,Y)=>{if(D.type<Y.type)return-1;if(D.type>Y.type)return 1;return 0}),X=J.toSorted((D,Y)=>{if(D.name<Y.name)return-1;if(D.name>Y.name)return 1;return 0}),Q=Object.create(null);for(let D of G)Q[D.type]=ai(D);let _=Object.create(null);for(let D of X)_[D.name]=si(D);return{registryVersion:oi,workflows:Q,activities:_}}function ai($){let U={};if($.inputSchema!==void 0)U.inputSchema=D7("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=D7("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function si($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=D7("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=D7("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function D7($,U,J,G){try{return t9(G,J==="inputSchema"?"input":"output")}catch(X){throw new Y7($,U,J,X)}}e9();var OS=new WeakMap,cz=30000,wz=2147483647;function j7($){return CS($).tools.map((U)=>U.definition)}async function AS($,U,J){let G=CS(J.engine).toolsByName.get($);if(G===void 0)return Z7(`Unknown tool: ${$}`);try{let X=await G.call(U??{},J);return Yn(X)}catch(X){if(X instanceof m$)return Z7(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return Z7(X.message);return console.warn("MCP tool execution failed:",X),Z7("Tool execution failed")}}function CS($){let U=ti($),J=OS.get($);if(J!==void 0&&ei(J.signature,U))return J;let G=$n($),X={signature:U,tools:G,toolsByName:new Map(G.map((Q)=>[Q.definition.name,Q]))};return OS.set($,X),X}function ti($){return $.listWorkflowDefinitions().toSorted((U,J)=>U.type<J.type?-1:U.type>J.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function ei($,U){if($.length!==U.length)return!1;for(let J=0;J<$.length;J++){let G=$[J],X=U[J];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2])return!1}return!0}function $n($){let U=[...Dn()],J=new Set(U.map((G)=>G.definition.name));for(let G of $.listWorkflowDefinitions().toSorted((X,Q)=>X.type<Q.type?-1:X.type>Q.type?1:0)){if(G.inputSchema===void 0)continue;let X=jn(Zn(G.type),J);J.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:Un(G.type,G.inputSchema)},call:async(Q,_)=>{U6(_,"workflows:write","Calling workflow tools");let{input:D,timeoutMs:Y}=Xn(Q),Z=crypto.randomUUID();_.session.trackRequest(_.requestId,Z);try{if(_.session.isRequestCancelled(_.requestId))throw new m$("Workflow cancelled");let j=await fz(_.engine).start(G.type,D,{id:Z});if(_.session.isRequestCancelled(_.requestId))await _.engine.cancel(j.id);let P=await Qn(j,{timeoutMs:Y,signal:_.session.requestSignal(_.requestId)});if(P.status==="timed-out")return _n(j.id,Y);return{workflowId:j.id,result:P.result}}finally{_.session.untrackRequest(_.requestId)}}})}return U.toSorted((G,X)=>G.definition.name<X.definition.name?-1:1)}function Un($,U){try{return Jn(t9(U,"input"))}catch(J){throw new Y7("workflow",$,"inputSchema",J)}}function Jn($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:wz,default:cz,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function Xn($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:cz};let U=$,J=Gn(U.timeoutMs);return{input:U.input,timeoutMs:J}}function Gn($){if($===void 0)return cz;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=wz)return $;throw new m$(`Tool argument "timeoutMs" must be an integer from 1 to ${wz}`)}async function Qn($,U){if(U.signal?.aborted)throw new m$("Workflow cancelled");let J,G,X=$.result().then((D)=>({status:"completed",result:D})),Q=new Promise((D)=>{J=setTimeout(()=>D({status:"timed-out"}),U.timeoutMs)}),_=U.signal===void 0?void 0:new Promise((D,Y)=>{let Z=()=>Y(new m$("Workflow cancelled"));U.signal?.addEventListener("abort",Z,{once:!0}),G=()=>U.signal?.removeEventListener("abort",Z)});try{return await Promise.race(_===void 0?[X,Q]:[X,Q,_])}finally{if(J!==void 0)clearTimeout(J);G?.()}}function _n($,U){return{workflowId:$,status:"running",timedOut:!0,timeoutMs:U,message:"Workflow is still running and was not cancelled. Call get_workflow_state with this workflowId to poll for completion.",followUp:{tool:"get_workflow_state",arguments:{workflowId:$}}}}function Dn(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:d1({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{U6(U,"workflows:write","Starting workflows");let J=p1($),G=j4(J.type,"type"),X=J.input??{},Q=typeof J.id==="string"?{id:J.id}:void 0;return{workflowId:(await fz(U.engine).start(G,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{U6(U,"signals:write","Signalling workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),await U.engine.signal(G,j4(J.signalName,"signalName"),J.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{U6(U,"updates:write","Updating workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),{result:await U.engine.update(G,j4(J.updateName,"updateName"),J.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{U6(U,"queries:read","Querying workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),{result:await U.engine.query(G,j4(J.queryName,"queryName"),J.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:d1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{U6(U,"workflows:write","Cancelling workflows");let J=j4(p1($).workflowId,"workflowId");return await G8(U,J),await U.engine.cancel(J),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:d1({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{U6(U,"workflows:read","Listing workflows");let J=uz(p1($));if(!J.ok)throw new m$(J.message);return await $8(U.engine,J.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:d1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{U6(U,"workflows:read","Reading workflow state");let J=j4(p1($).workflowId,"workflowId");return await G8(U,J)}}]}async function G8($,U){let J=await G7($.engine,U);if(J===null)throw new m$(`Workflow "${U}" not found`);return J}function Yn($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function Z7($){return{isError:!0,content:[{type:"text",text:$}]}}function p1($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new m$("Tool arguments must be a JSON object")}function j4($,U){if(typeof $==="string"&&$.length>0)return $;throw new m$(`Tool argument "${U}" must be a non-empty string`)}function d1($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function Zn($){let U=$.toLowerCase().replaceAll(/[^a-z0-9]+/g,"_").replaceAll(/^_+|_+$/g,"");if(/^[a-z][a-z0-9_]*$/.test(U))return U;return`workflow_${U||"unnamed"}`}function jn($,U){if(!U.has($))return $;let J=2;while(U.has(`${$}_${String(J)}`))J+=1;return`${$}_${String(J)}`}async function RS($,U){if(!PS($))return{kind:"response",response:Q7(null,"Invalid MCP JSON-RPC request")};if(zS($)){try{await Hn($,U)}catch(G){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,G)}return{kind:"accepted"}}let J=$.id??null;try{let G=await zn($,U);return{kind:"response",response:ZS(J,G)}}catch(G){if(G instanceof a4||G instanceof l1)return{kind:"response",response:G.toResponse(J)};if(G instanceof m$)return{kind:"response",response:yz(J,G.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",G),{kind:"response",response:HS(J)}}}async function Hn($,U){if($.method==="notifications/initialized"){if(U.session.phase==="initializing")U.session.phase="ready";return}if(U.session.phase!=="ready")return;if($.method==="notifications/cancelled"){let J=H7($.params),G=U.session.cancelRequest(J.requestId);if(G!==void 0)await U.engine.cancel(G)}}var Pn={initialize:async($,U)=>Fn($.params,U.session),ping:async()=>({}),[QS]:async($,U)=>({tools:j7(U.engine)}),"tools/call":qn,[DS]:async($,U)=>({resources:await BS(U)}),"resources/read":Vn,"resources/subscribe":Bn,"resources/unsubscribe":Mn,[YS]:async()=>({resourceTemplates:VS()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new a4(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function zn($,U){if(U.authRequired&&!J7(U.principal)&&$.method!=="initialize")throw new a4(-32011,"MCP request requires authentication");Ln($,U);let J=Pn[$.method];if(J===void 0)throw new l1(jS($.id??null,$.method));return J($,U)}function Fn($,U){let J=H7($),G=typeof J.protocolVersion==="string"?J.protocolVersion:void 0;return U.protocolVersion=G===hz?G:hz,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:GS}}}function Ln($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new a4(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new a4(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new a4(-32000,"MCP session must receive notifications/initialized before requests")}async function qn($,U){let J=H7($.params),G=J.name;if(typeof G!=="string"||G.length===0)throw new l1(Q7($.id??null,"tools/call requires name"));return AS(G,J.arguments??{},{...U,requestId:$.id})}async function Vn($,U){let J=pz($),G=await kz(J,U);if(G===null)throw new l1(Iz($.id??null,J));return G}async function Bn($,U){let J=pz($);if(!await MS(J,U.session,U))throw new l1(Iz($.id??null,J));return{}}function Mn($,U){let J=pz($);return WS(J,U.session),{}}function pz($){let J=H7($.params).uri;if(typeof J!=="string"||J.length===0)throw new l1(Q7($.id??null,`${$.method} requires uri`));return J}function H7($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new a4(S0.INVALID_PARAMS,"MCP params must be an object")}class a4 extends E{jsonRpcCode;data;constructor($,U,J){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=J}toResponse($){if(this.jsonRpcCode===-32011)return yz($,this.message);return{jsonrpc:"2.0",id:$,error:this.data===void 0?{code:this.jsonRpcCode,message:this.message}:{code:this.jsonRpcCode,message:this.message,data:this.data}}}}class l1 extends E{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}J$();r();class dz extends E{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var TS=["workflow:started","workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","workflow:resumed","workflow:suspended","signal:received","signal:delivered","attributes:changed","update:received","update:completed"];class P7{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#J=new Set;constructor($,U,J=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=J,this.lastActivityMilliseconds=J}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let J=c1(x0($));if(J===void 0)return;this.#$.set(J,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=c1(x0($));if(U===void 0)return;let J=this.#$.get(U);if(J===void 0)return;return this.#U.add(U),J.abortController.abort(),J.workflowId}isRequestCancelled($){let U=c1(x0($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=c1(x0($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=c1(x0($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=c1(x0($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#J.add($),()=>{this.#J.delete($)}}notify($,U){let J=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let G of this.#J)G(J)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#J.clear()}}function x0($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class z7{#$;#U=new Map;#J;#X;#G;#Q;#_;#D;constructor($,U={}){this.#$=$,this.#G=U.maximumSessions??1024,this.#Q=U.sessionIdleTimeoutMilliseconds??1800000,this.#_=U.currentTimeMilliseconds??Date.now,this.#D=ES($),this.#J=(J)=>{let G=J.workflowId;if(typeof G!=="string")return;this.#Y(G)},this.#X=()=>{this.#Z()};for(let J of TS)this.#$.addEventListener(J,this.#J);this.#$.addEventListener(O1.type,this.#X)}create($){if(this.#j(),this.#U.size>=this.#G)throw new dz;let U=this.#_(),J=new P7(crypto.randomUUID(),$,U);return this.#U.set(J.id,J),J}add($){if(this.#j(),this.#U.size>=this.#G)throw new dz;return $.touch(this.#_()),this.#U.set($.id,$),$}get($){return this.#j(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#_())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#Y($){let U=[X8($,"state"),X8($,"events"),X8($,"checkpoints")],J=this.#_();for(let G of this.#U.values()){let X=new Set;for(let _ of U){if(!G.subscriptions.has(_))continue;X.add(_)}let Q=[...G.subscriptions].filter(KS);for(let _ of Q)X.add(_);if(X.size===0)continue;G.touch(J);for(let _ of X)G.notify("notifications/resources/updated",{uri:_})}this.#j()}#Z(){let $=ES(this.#$);if(Wn(this.#D,$))return;this.#D=$;let U=this.#_();for(let J of this.#U.values()){if(J.phase!=="ready")continue;J.touch(U),J.notify(_S)}this.#j()}#j(){let $=this.#_();for(let[U,J]of this.#U){if(!J.isIdleExpired($,this.#Q))continue;J.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of TS)this.#$.removeEventListener($,this.#J);this.#$.removeEventListener(O1.type,this.#X),this.closeAll()}}function ES($){return j7($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function Wn($,U){if($.length!==U.length)return!1;for(let J=0;J<$.length;J++){let G=$[J],X=U[J];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2]||G[3]!==X[3])return!1}return!0}function Dj$($,U){return new z7($,U)}var SS=1048576;async function xS($){if($.admission.kind==="require-one")return{exitCode:2,reason:"MCP stdio admission required: pass --startup-token <token> or --allow-unauthenticated-local-admin"};if($.admission.kind==="startup-token"&&$.admission.token.trim().length===0)return{exitCode:2,reason:"MCP stdio startup token must be non-empty"};let U=Nn($),J=new Set;try{let G=await Kn($,U);if(!G.ok)return await lz(U),G.result;return await On($,U,G.remainder,J),await Promise.all(J),await lz(U),{exitCode:0}}catch(G){return await lz(U,!0),{exitCode:1,reason:G instanceof Error?G.message:String(G)}}finally{U.reader.releaseLock()}}function Nn($){let U=$.output.getWriter(),J=bn(U),G=new z7($.engine,$.sessionManagerOptions),X=G.add(new P7("stdio-local",XS()));return X.addTarget((Q)=>{G.touch(X),J(JSON.stringify(Q))}),{writer:U,write:J,manager:G,session:X,reader:$.input.getReader(),decoder:new TextDecoder}}async function Kn($,U){if($.admission.kind!=="startup-token")return{ok:!0,remainder:""};return Cn(U.reader,U.decoder,$.admission.token,U.write,$.maxFrameBytes??SS)}async function On($,U,J,G){let X=J;while(!0){let Q=await U.reader.read();if(Q.done)break;X=await An(X,Q.value,$,U,G)}if(X.trim().length>0)bS(X,$,U,G)}async function An($,U,J,G,X){let Q=$+G.decoder.decode(U,{stream:!0});if(Q.length>(J.maxFrameBytes??SS))return await G.write(JSON.stringify({jsonrpc:"2.0",id:null,error:{code:-32600,message:"frame exceeds maxFrameBytes"}})),"";let _=Q.split(`
57
+ ${J.callerStack}`;let Q=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...G instanceof Error?{errorName:G.name}:{},failureCategory:k2(G,{defaultErrorCategory:"application"})},{value:G})}async function aC($,U,J,G,X){try{let Q=await G();nJ($,U,Q,X)}catch(Q){rJ($,U,J,Q,X)}}async function sC($,U,J,G,X){try{await G()}catch(Q){rJ($,U,J,Q,X)}}var TG=F(()=>{S4()});async function eC($,U,J,G){return G.runOperationWithResult(U,J,()=>dP($,U,J,pP($,U),G))}function pP($,U){let J=bd($,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 bd($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function vd($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function gd($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function hd($,U,J){return $.type===U.workflowType&&HW($.input,U.input)&&$.executionStateOwnerId===J}async function Id($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!hd(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function yd($,U,J,G,X){k3(J.options,"ctx.startChild"),vd($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof t$))throw Q;return Id(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{gd($,G)}}async function dP($,U,J,G,X){let Q=J.options?.id,_=typeof Q==="string"?Q:crypto.randomUUID(),D=$.workflowHeaders.get(U)??new Map,Y=await X.loadWorkflowState(U),Z=md(J),j=Z==="abandon"?null:Y?.executionStateOwnerId??U,P=async()=>{let q={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:j},W=await yd($,_,J,q,X);if(Z==="abandon")return tC(W.id);if(Z==="request-cancel")return g4($,U,{conditions:[],operations:AA($,U,W.id)}),ZP($,U,W.id,X),tC(W.id);return W.result()},L=X.getComposedWorkflowInterceptor();if(!L)return P();return L.childWorkflow({workflowId:U,childWorkflowId:_,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:D},P)}function md($){return $.options?.parentClosePolicy??"await"}function tC($){return{id:$}}var lP=F(()=>{$4();HP();L$();U$()});function UR($){return{[$R]:!0,finalize:$}}function ud($){return typeof $==="object"&&$!==null&&$[$R]===!0}async function K0($){if(ud($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>K0(U)));return $}var $R;var EG=F(()=>{$R=Symbol("weft.deferredConsume")});function JR($,U){return Math.min(Math.max(0,$-U),kd)}function XR($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(JR(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let _,D=()=>{J?.removeEventListener("abort",Y),G.removeEventListener("abort",Y)},Y=()=>{clearTimeout(_),D(),Q(J?.reason??G.reason??Error("aborted"))},Z=()=>{let j=JR(U.scheduledFireAt,$.options.getNow());if(j===0){D(),X();return}_=setTimeout(Z,j)};J?.addEventListener("abort",Y,{once:!0}),G.addEventListener("abort",Y,{once:!0}),Z()})}function GR($,U,J,G){G?.throwIfAborted();let{signalName:X}=J,Q=`${U}:${X}`,_=$.abortController.signal;return new Promise((D,Y)=>{let Z=!1,j=!1,{promise:P,resolve:L}=Promise.withResolvers(),q=()=>{G?.removeEventListener("abort",S),_.removeEventListener("abort",S)},W=async()=>{let p=await JJ($,U,X);return p.found?p.payload:void 0},S=()=>{if(Z)return;if(Z=!0,q(),j)UJ($,U,Q,L);Y(G?.reason??_.reason??Error("aborted"))},m=()=>{if(Z)return;Z=!0,q(),D(UR(W))},s=(p)=>{if(Z)return;if(Z=!0,q(),j)UJ($,U,Q,L);Y(p)};if(G?.addEventListener("abort",S,{once:!0}),_.addEventListener("abort",S,{once:!0}),_.aborted){S();return}(async()=>{let p=await XH($,U,X);if(Z)return;if(p.found){m();return}$.signalWaiters.set(Q,L),h4($.signalWaitersByWorkflow,U,Q),j=!0;let y=await XH($,U,X);if(Z)return;if(y.found){UJ($,U,Q,L),m();return}if(await P,Z)return;m()})().catch(s)})}var kd=2147483647;var QR=F(()=>{EG();I4()});function fd($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function _R($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function iP($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function DR($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(_R($,U,J)!==void 0)return;$.engine.dispatchEvent(new x4(U,`Activity retry (attempt ${G}) 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 YR($,U,J,G,X){return{signal:G,lastHeartbeatDetails:_R($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),fd($,U,J,Q)},completeAsync:X}}var ZR=F(()=>{J$()});async function HR($,U,J){let G=await dd(J);return{idempotencyKeyDigest:G,key:z.activityReconciliation($,U,G)}}function PR($,U){let J=$?.idempotencyKey?.(U.input);if(J!==void 0)return J;let G=U.options?.idempotencyKey;return typeof G==="string"?G:void 0}async function zR($,U){let J=await $.get(U);if(J===null)return null;return pd(R(J))}function bG($,U){return N6($,U,"activity result"),M($)}async function wd($,U,J){if(!$.capabilities().conditionalBatch)throw new SG;return X$($,"conditionalBatch","activity result reconciliation"),G$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(J)}])}function nP($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function FR($,U,J,G,X,Q,_){let D=await zR($.storage,G.key);if(D===null){let j=await id($,U,J,G,_);if(j.didClaim)return j.record;D=j.record}if(D.status==="completed")return{completedResult:D.result};if(!X?.verify)throw new q6(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=cd(await nd(X,U,J,Q,D));if(Y==="not-completed"){let j={...D,attempt:D.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await jR($.storage,G,D,j),j}if(Y==="completed-result-unavailable")throw new q6(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new q6(`Activity "${J.activityName}" reconciliation is indeterminate.`);bG(Y.result,$.options.payloadSizePolicy.maxBytes);let Z=nP(D,Y.result,$.options.getNow());return await jR($.storage,G,D,Z),{completedResult:Y.result}}async function jR($,U,J,G){let X=qR(U,J,G);if(!await G$($,X.conditions,X.operations))throw new xG("Activity reconciliation completion lost compare-and-set ownership.")}function LR($,U,J,G,X){g4($,U,qR(J,G,X))}function qR($,U,J){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(J)}]}}function cd($){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 q6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function rP($,U,J,G,X,Q,_){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:_}}function pd($){if(typeof $!=="object"||$===null)throw new q6("Activity reconciliation record is not an object.");let U=$;if(!rd(U))throw new q6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new q6("Activity reconciliation record has an unsupported status.")}async function dd($){let U=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(J)].map((G)=>G.toString(16).padStart(2,"0")).join("")}function ld($,U,J,G,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:J.idempotencyKeyDigest,attempt:G,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function id($,U,J,G,X){let Q=ld(U,J,G,X,$.options.getNow());if(await wd($.storage,G,Q))return{didClaim:!0,record:Q};let D=await zR($.storage,G.key);if(D===null)throw new q6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:D}}async function nd($,U,J,G,X){try{return await $.verify(void 0,rP("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,G,X.attempt))}catch(Q){let _=Q instanceof Error?Q.message:String(Q);throw new q6(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${_}`)}}function rd($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],J=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((G)=>typeof $[G]==="string")&&J.every((G)=>typeof $[G]==="number")}var SG,xG,q6;var oP=F(()=>{v();I();v4();r();SG=class SG extends E{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};xG=class xG extends E{constructor($){super("ActivityReconciliationConflictError",$)}};q6=class q6 extends E{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function VR($,U,J){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let Q=$.activityRegistriesByWorkflow.get(G);if(Q!==void 0){let D=Q.resolve(J);if(D)return{fn:D,workflowType:G}}let _=$.activityRegistry.resolve(J);if(_)return{fn:_,workflowType:G};return}let X=$.activityRegistry.resolve(J);if(X)return{fn:X,workflowType:"<unknown>"};return}function aP($,U,J){let G=VR($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function BR($,U,J){let G=VR($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new YJ(X,J.activityName)}var MR=F(()=>{L$()});function od($,U,J,G,X){return(async()=>{let Q=await J?.(X,G);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function ad($,U,J,G){let X=aP($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function sd($,U,J,G,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${J}"`);let _=await Q.execute({operationId:U,activityName:J,input:G,attempt:X});if(_.status==="failed"){let D=Error(_.error);if(_.errorName!==void 0)D.name=_.errorName;throw D}return _.value}function td($,U,J,G,X,Q){let _=BR($,U,J);return r2(_,Q,G)}function WR($,U){if(U.size>0)$.headers=[...U.entries()]}function sP($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function NR($,U,J,G,X=sP(J),Q){let _=J.input,D=J.step??0;DR($,U,D,X);let Y=pW(U,D,X),{perAttemptTimeoutMs:Z,attemptAbortController:j,activitySignal:P}=XC($,U,J,Q),L=YR($,U,D,P,()=>{throw new MX(Y)}),q=$.activityWorkerDispatcher?(y,k)=>sd($,J.operationId,y,k,X):(y,k)=>NG(td($,U,J,L,y,k),Z,y,X,j),W=G.getComposedActivityInterceptor(),S=async(y,k,w)=>{if(!W)return q(y,k);let x$={workflowId:U,activityName:y,input:k,attempt:X,headers:w};return await W.execute(x$,async(i1)=>{return q(y,i1.input)})},m=G.getComposedWorkflowInterceptor();if(m){let y={workflowId:U,activityName:J.activityName,input:_,attempt:X,headers:new Map};function*k(){return yield S(J.activityName,y.input,y.headers)}let w=m.activity(y,k),x$=await oW(w);return WR(J,y.headers),x$}let s=new Map,p=await S(J.activityName,_,s);return WR(J,s),p}async function oJ($,U,J,G,X,Q){let _=aP($,U,J),D=PR(_,J),Y=sP(J);if(D!==void 0){let j=await HR(U,J.activityName,D),P=await FR($,U,J,j,_,D,Y);if("completedResult"in P)return bG(P.completedResult,$.options.payloadSizePolicy.maxBytes),P.completedResult;let L=await NR($,U,J,G,P.attempt,X);bG(L,$.options.payloadSizePolicy.maxBytes),await KR($,U,J,L,_,D,P.attempt,Q,!0);let q=nP(P,L,$.options.getNow());if(LR($,U,j,P,q),!Q)iP($,U,J.step??0);return L}let Z=await NR($,U,J,G,Y,X);if(N6(Z,$.options.payloadSizePolicy.maxBytes,"activity result"),await KR($,U,J,Z,_,D,Y,Q),!Q)iP($,U,J.step??0);return Z}async function KR($,U,J,G,X,Q,_,D,Y=!1){let Z=D?ad($,U,J,G):void 0;if(Z)D?.recordCompensation(Z);if(X?.verify){let j=rP("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,_),P=od($,J.activityName,X.verify,j,G);if(D){if(D.recordVerification(P),Y)await P}else await P}}async function OR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await oJ($,U,J,G)}catch(X){if(X instanceof MX)return dW($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:sP(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}var vG=F(()=>{v4();ZR();CP();oP();MR();sU();U$()});function gG($){let U=new Set,J=(G)=>{for(let X of G)if(X.type==="wait-signal"){if(U.has(X.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${X.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(X.signalName)}else if(X.type==="race"||X.type==="parallel")J(X.operations)};J($)}async function AR($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let _=await JJ($,U,J.signalName);if(_.found){G.completeOperation(U,_.payload);return}let{promise:D,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(Q,Y),h4($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),Z6($.signalWaitersByWorkflow,U,Q);return}let Z=await JJ($,U,J.signalName);if(Z.found){if($.signalWaiters.get(Q)===Y)$.signalWaiters.delete(Q),Z6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,Z.payload);return}if(await D,X.aborted)return}}async function CR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{gG(J.operations);let X=RR(J.resumedCacheEntry),Q=J.operations.map((j,P)=>typeof j.operationId==="string"?j.operationId:`parallel:${J.step}:${P}`),{slots:_,hasFirstError:D,firstError:Y}=await sB(Q,X,(j)=>G.executeSubOperation(U,J.operations[j]));if(D)ER($l($,U),_,"ctx.all","worker execution mode");await ed(_);let Z=Qj("all",_);if(TR($,U,J.step,Z),D)throw Y;return tB(_)})}async function ed($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await K0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function RR($){if(!H1($))return;return $.branches}function $l($,U){return $.inlineStrategy?.getContext(U)!==void 0}function TR($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function ER($,U,J,G){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${J} partial-failure preservation is not supported in ${G}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function SR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{gG(J.operations);let X=new AbortController,Q=J.operations.map((D)=>G.executeSubOperation(U,D,X.signal));Promise.allSettled(Q);let _;try{_=await Promise.race(Q)}finally{X.abort()}return K0(_)})}async function xR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=Object.keys(J.branches),Q=X.map((S)=>`run-all:${J.step}:${S}`),_=RR(J.resumedCacheEntry),D=Gl(_,X),Y=Ul(J.branches,X,D),{outcomes:Z,hasFirstError:j,firstError:P}=await XM(Y,(S,m)=>r2(S,m)),L=Jl(X,Q,D,Z),q=Qj("run-all",L,X),W=TR($,U,J.step,q);if(j)throw ER(W,L,"ctx.runAll","worker execution mode"),P;return Xl(X,L)})}function Ul($,U,J){let G={};for(let X of U)if(J?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)G[X]=Q}return G}function Jl($,U,J,G){let X=new Map;for(let Q of G)X.set(Q.name,Q);return $.map((Q,_)=>{let D=U[_],Y=J?.get(Q);if(Y?.status==="fulfilled")return Y;let Z=X.get(Q);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 Xl($,U){let J={};for(let G=0;G<$.length;G++){let X=U[G];if(X?.status==="fulfilled")J[$[G]]=X.value}return J}function Gl($,U){if($===void 0)return;let J=new Map;for(let G=0;G<U.length;G++){let X=U[G],Q=$[G];if(X!==void 0&&Q!==void 0)J.set(X,Q)}return J}function Ql($){return typeof $.execute==="function"}async function bR($,U,J,G,X){return GM(J.branches,(Q,_)=>{if(!X||!Ql(Q))return r2(Q,_);return oJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:_},G.getActivityOperationCallbacks(),void 0,X)})}var hG=F(()=>{M3();m2();EG();vG();_j();I4();U$()});async function vR($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function IG($,U,J,G,X,Q){X?.throwIfAborted();let _=_l[J.type];if(!_)throw Error(`Unsupported sub-operation type: ${J.type}`);return _({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:Q},J)}async function Dl($,U,J,G,X,Q){return oJ($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function Yl($,U,J,G){return dP($,U,J,pP($,U),G.createChildWorkflowOperationCallbacks())}async function Zl($,U){return Y1($.storage,T4(U.scope,U.key),U)}async function jl($,U,J){let G=T4(U.scope,U.key),X=U.mode==="delete"?await v2($.storage,G,U.expectedVersion):await b2($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Hl($,U,J,G,X,Q){X?.throwIfAborted();let _=new AbortController,D=()=>{_.abort(X?.reason)};X?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>IG($,U,Z,G,_.signal,Q));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{X?.removeEventListener("abort",D),_.abort()}}async function Pl($,U,J,G,X,Q){X?.throwIfAborted();let _=new AbortController,D=()=>{_.abort(X?.reason)};X?.addEventListener("abort",D,{once:!0});let Y=J.operations.map((Z)=>IG($,U,Z,G,_.signal,Q));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{X?.removeEventListener("abort",D),_.abort()}}var _l;var tP=F(()=>{Z1();lP();QR();vG();hG();U$();_l={activity:($,U)=>Dl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Yl($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(d3(U.fn)),"state-read":($,U)=>Zl($.internals,U),"state-commit":($,U)=>jl($.internals,U,$.callbacks),parallel:($,U)=>Hl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Pl($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>bR($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>XR($.internals,U,$.signal),"wait-signal":($,U)=>GR($.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 eP($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),start:(U,J,G)=>P6(H($),U,J,G,void 0,S$($)),loadWorkflowState:(U)=>i(H($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>L6(H($))}}function yG($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>R6(H($),U,J,G),feedOperationResult:(U,J,G)=>F6(H($),U,J,G),getComposedActivityInterceptor:()=>BA(H($)),getComposedWorkflowInterceptor:()=>L6(H($))}}function O0($){return{completeOperation:(U,J)=>kG($,U,J),runOperationWithResult:(U,J,G)=>r4($,U,J,G),executeSubOperation:(U,J,G,X)=>$z($,U,J,G,X),getActivityOperationCallbacks:()=>yG($)}}function hR($){return{completeOperation:(U,J)=>kG($,U,J),failOperation:(U,J,G)=>zl($,U,J,G),isWorkflowRunning:async(U)=>{return(await i(H($),U))?.status==="running"},scheduleConditionDeadline:(U,J,G)=>H($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>H($).scheduler.cancel(`cond:${U}:${J}`,U)}}function aJ($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G)}}function mG($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),ensureTerminalCleanupTracked:(U)=>wJ(H($),U)}}function IR($){return{runOperationWithResult:(U,J,G)=>r4($,U,J,G),handleCleanupError:(U,J,G)=>$$($).handleCleanupError(U,J,G)}}function uG($){return{completeOperation:(U,J)=>kG($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>i(H($),U),failWorkflow:(U,J)=>$6(H($),U,J,$$($)),runSerializedWorkflowStateWrite:(U,J)=>j6(H($),U,J),beginWorkflowExecution:(U,J,G,X,Q,_,D)=>YG(H($),U,J,G,X,Q,_,D,S$($)),workflowVersionTupleFromState:(U)=>$G(H($),U,S$($)),setWorkflowStartHeaders:(U,J)=>_4(H($),U,J,S$($)),loadWorkflowStartHeaders:(U)=>u1(H($),U,S$($)),parseStartOptionDuration:(U,J)=>L0(H($),U,J,S$($)),runDeferredTerminalCleanup:(U,J)=>sH(H($),U,J,$$($)),runWorkflowFinalizer:(U,J)=>xP(H($),U,J,$$($)),handleScheduleTimer:(U)=>pC($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>$$($).handleCleanupError(U,J,G)}}function A0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>y4(H($),U,l6($)),completeOperation:(U,J)=>kG($,U,J),guardTerminalWorkflow:(U)=>cP(H($),U,RG($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>iC(H($),U,J,RG($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>gR($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>pN(H($),U,J,G,A0($)),dispatchPendingUpdateReceived:(U,J,G)=>nN(H($),U,J,G,l6($)),createCoordinatedUpdateResponder:(U,J,G)=>cN(H($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,_,D,Y)=>gR($,X,Q,_,D,Y)}),findPendingUpdateByName:(U,J)=>dN(H($),U,J),schedulePendingInlineUpdateDrain:(U)=>kA(H($),U,dJ($))}}async function gR($,U,J,G,X,Q){let _=H($),D=_.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await D$(_,D,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new w6(G,U,J,Q)),y4(_,{type:"update:completed",workflowId:U,updateId:G},l6($))}catch(Y){$$($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function kG($,U,J){return nJ(H($),U,J,lJ($))}function zl($,U,J,G){return rJ(H($),U,J,G,lJ($))}async function r4($,U,J,G){return aC(H($),U,J,G,lJ($))}async function yR($,U,J,G){return sC(H($),U,J,G,lJ($))}async function $z($,U,J,G,X){return IG(H($),U,J,{createActivityOperationCallbacks:()=>yG($),createChildWorkflowOperationCallbacks:()=>eP($),createCoordinationOperationCallbacks:()=>O0($),createStateOperationCallbacks:()=>mG($)},G,X)}async function mR($,U,J){return UC(H($),U,J,cC($))}var fG=F(()=>{J$();SX();W0();dC();O6();nC();n4();l4();TG();qP();MG();E$();p6();tP();Y4();eU()});async function uR($,U,J,G){return G.runOperationWithResult(U,J,async()=>d3(J.fn))}async function kR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=M(X);return await $.storage.put(z.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function fR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let{workflowId:X,key:Q,sizeBytes:_}=J.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof Q!=="string"||Q.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof _!=="number"||!Number.isFinite(_)||_<0)throw Error("ctx.load() requires a valid offload reference size");let D=await $.storage.get(z.offload(X,Q));if(D===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return R(D)})}async function wR($,U,J){let G=await $.storage.get(z.offload(U,J));if(G===null)return null;return R(G)}async function cR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(z.archive(U,J.key),M(J.data));return})}var Uz=F(()=>{v();I();U$()});class Jz{#$;#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 pR($,U,J,G){return G.runOperationWithResult(U,J,()=>Fl($,U,J,G))}async function Fl($,U,J,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let Q=X.getContext(U);if(!Q)throw Error(`No active inline context for workflow "${U}"`);let _=Q.createSpeculativeChild(),D=new Jz,Y=Ll(J,_);try{let Z=await ql(U,Y,D,G);return await D.drainVerifications(),Q.commitSpeculativeChild(_),Z}catch(Z){throw await D.rollback(),Z}}function Ll($,U){return $.execute(U)}async function ql($,U,J,G){let X=async(Q,_)=>{let D=_===void 0?await U.next(Q):await U.throw(_);if(D.done)return D.value;let Y=D.value;try{if(Y.type==="race"||Y.type==="parallel")gG(Y.operations);let Z=await G.executeSubOperation($,Y,void 0,J),j=await K0(Z);return X(j,void 0)}catch(Z){return X(Q,Z instanceof Error?Z:Error(String(Z)))}};return X(void 0,void 0)}var dR=F(()=>{EG();hG()});async function lR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=T4(J.scope,J.key);return Y1($.storage,X,J)})}async function iR($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=T4(J.scope,J.key);if(J.mode==="delete"){let _=await v2($.storage,X,J.expectedVersion);if(_.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return _}let Q=await b2($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var nR=F(()=>{Z1()});function Bl($){if(!Vl.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function C0($,U,J,G){let X=G?.after,Q=z.streamChunkPrefix(U,J),_=[],D=X!==void 0&&X>=0?{gt:z.streamChunk(U,J,X)}:void 0;for await(let[Y,Z]of $.scan(Q,D)){let j=Y.slice(Q.length),P=Bl(j);if(P===void 0)continue;_.push({sequence:P,value:R(Z)})}return _}function rR($){return M({sequence:$})}function Ml($){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 oR($,U,J){let G=await $.get(z.streamTail(U,J));if(G===null)return null;try{return Ml(R(G))}catch{return null}}var Vl;var Xz=F(()=>{v();I();Vl=/^\d+$/});async function*aR($,U,J,G){if(J==="events"){yield*Nl($,U,G);return}yield*Kl($,U,G)}async function sR($,U,J){if(J==="events"){let _=$.eventLogHeads.get(U);if(_)return _.sequence;return(await new e$($.storage,U).loadHead()).sequence}let G=await oR($.storage,U,w1);if(G!==null)return G;let X=await C0($.storage,U,w1);if(X.length===0)return-1;let Q=-1;for(let _ of X)if(_.sequence>Q)Q=_.sequence;return Q}function tR($,U,J,G){let X=nU(U,J),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(G),()=>{let _=$.workflowFeedListeners.get(X);if(!_)return;if(_.delete(G),_.size===0)$.workflowFeedListeners.delete(X)}}async function*Nl($,U,J){let G=new e$($.storage,U),X=J<0?0:J+1,Q=await p4($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Wl,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let _ of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:_.type,sequence:_.sequence,timestamp:_.timestamp,payload:_.payload}}async function*Kl($,U,J){let G=J>=0?await C0($.storage,U,w1,{after:J}):await C0($.storage,U,w1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:Gz,sequence:Q.sequence,timestamp:X,payload:Q.value}}function wG($,U,J,G){let X=$.workflowFeedListeners.get(nU(U,J));if(!X||X.size===0)return;let Q=[...X];for(let _ of Q)try{let D=_(G);if(D&&typeof D.then==="function")D.catch(()=>{})}catch{}}var w1="tokens",Gz="stream:chunk",Wl="workflow:compaction-boundary";var cG=F(()=>{m1();TJ();U$();Xz()});async function eR($,U,J,G){return C0($.storage,U,J,G)}async function $T($,U,J,G){return G.runOperationWithResult(U,J,()=>Ol($,U,J,G))}async function Ol($,U,J,G){let X={heartbeat:(_)=>{$.heartbeatDetails.set(U,_)}},Q=[];try{let _=await Al($,U,J,J.fn(X),Q),D={key:J.key,workflowId:U,chunkCount:_.chunkCount,totalSizeBytes:_.totalSizeBytes};return await $.storage.put(z.streamMetadata(U,J.key),M(D)),D}catch(_){throw await Cl($,U,J.key,Q,G),_}}async function Al($,U,J,G,X){let Q=0,_=0;for await(let D of G){let Y=M(D),Z=Q,j=z.streamChunk(U,J.key,Z);if(J.key===w1)await $.storage.batch([{type:"put",key:j,value:Y},{type:"put",key:z.streamTail(U,J.key),value:rR(Z)}]);else await $.storage.put(j,Y);if(X.push(j),_+=Y.byteLength,Q++,J.key===w1)wG($,U,"tokens",{workflowId:U,selector:"tokens",kind:Gz,sequence:Z,timestamp:Date.now(),payload:D})}return{chunkCount:Q,totalSizeBytes:_}}async function Cl($,U,J,G,X){await JM($.storage,U,J,G,eB(X.handleCleanupError,U))}var Qz=F(()=>{v();I();m2();Xz();cG()});function JT($,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 XT($,U,J,G){let X=$.abortController.signal,{predicate:Q,deadline:_}=J,D=!1,Y=(Z)=>{if(D)return;D=!0,G.completeOperation(U,Z)};if(X.aborted)return;try{let Z=JT($,Q,_);if(Z.done){Y(Z.value);return}if(_!==void 0)await G.scheduleConditionDeadline(U,J.step,_);try{let j=await UT($,U,Q,_,G);while(j.status==="continue")j=await UT($,U,Q,_,G);if(j.status==="complete")Y(j.value)}finally{if(GT($,U),_!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(Z){G.failOperation(U,J,Z)}}async function UT($,U,J,G,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:_,resolve:D}=Promise.withResolvers();$.conditionWaiters.set(U,D);let Y=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...JT($,J,G),aborted:!1};if(Y.done)return GT($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await _,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function GT($,U){$.conditionWaiters.delete(U)}function _z($){return{processActivityOperation:(U,J)=>OR(H($),U,J,yG($)),processSleepOperation:(U,J)=>GO(H($),U,J,uG($)),processWaitSignalOperation:(U,J)=>AR(H($),U,J,O0($)),processWaitUpdateOperation:(U,J)=>fN(H($),U,J,A0($)),processWaitConditionOperation:(U,J)=>XT(H($),U,J,hR($)),processGetVersionOperation:async(U,J)=>{nJ(H($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>R6(H($),G,X,Q),feedOperationResult:(G,X,Q)=>F6(H($),G,X,Q)})},processParallelOperation:(U,J)=>CR(H($),U,J,O0($)),processRaceOperation:(U,J)=>SR(H($),U,J,O0($)),processMemoOperation:(U,J)=>uR(H($),U,J,aJ($)),processChildWorkflowOperation:(U,J)=>eC(H($),U,J,eP($)),processOffloadOperation:(U,J)=>kR(H($),U,J,aJ($)),processLoadOperation:(U,J)=>fR(H($),U,J,aJ($)),processArchiveOperation:(U,J)=>cR(H($),U,J,aJ($)),processStateReadOperation:(U,J)=>lR(H($),U,J,mG($)),processStateCommitOperation:(U,J)=>iR(H($),U,J,mG($)),processRunAllOperation:(U,J)=>xR(H($),U,J,O0($)),processSpeculateOperation:(U,J)=>pR(H($),U,J,{runOperationWithResult:(G,X,Q)=>r4($,G,X,Q),executeSubOperation:(G,X,Q,_)=>$z($,G,X,Q,_)}),processStreamOperation:(U,J)=>$T(H($),U,J,IR($)),processWaitReviewOperation:(U,J)=>vR(H($),U,J,{runOperationWithoutResult:(G,X,Q)=>yR($,G,X,Q),processReviewOperation:(G,X)=>mR($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>R6(H($),U,J,G),feedOperationResult:(U,J,G)=>F6(H($),U,J,G)}}var QT=F(()=>{fG();lP();n4();vG();hG();Uz();TG();dR();nR();Qz();QG();p6();tP();Y4();eU();NC(($)=>_z($))});function _T($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function DT($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function YT($){let U=g($).exposedValues;return U!==void 0&&U.size>0}var Dz=F(()=>{tU()});function ZT($,U,J,G,X,Q){let _=B0($,U),D=$.workflowVersionTuples.get(U);if(_)Q.push(_);let Y={step:G,operationType:J.type,operationLabel:GW(J),inputSummary:QW(J),timestamp:X,status:"running",...D?{versionTuple:D}:{}};return Q.push({type:"put",key:z.timeline(U,G),value:M(Y)}),{startedAt:X,entry:Y}}async function jT($,U,J,G,X){if($.inlineStrategy?.getContext(U))await Rl($,U,J,X);else if(G&&G.byteLength>0)await Tl($,U,J,G,X)}async function Rl($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let _={...X.searchAttributes},D=Q.checkpointPendingAttributeChanges,Y=_T(Q),Z=tZ(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...D!==void 0?{searchAttributes:D}:{}}),j=Aj(Z,zT(J,Q.stepIndex)),P=HT($,U,j.checkpoint,V$(Cj(j.checkpoint,j.replayPayload)),j.replayPayload);if(El(U,P,_,D,Y,G),await PT($,U,J,P,G),Y)G.dispatchEvent(new QX(U,{...D}))}async function Tl($,U,J,G,X){let Q=new Uint8Array(G),_=H$(Q),D=lU(_),Y=Aj(_,zT(J,_.step)),Z=I3(D,Y.replayPayload),j=V$(Cj(Y.checkpoint,Z));await PT($,U,J,HT($,U,Y.checkpoint,j,Z),X)}function HT($,U,J,G,X){let Q=[{type:"put",key:z.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:z.checkpointHistory(U,J.step),value:G});let _=MK($,U);return{checkpoint:J,serialized:G,...X===void 0?{}:{replayPayload:X},..._!==void 0?{expectedSerialized:_}:{},step:J.step,timestamp:J.createdAt,operations:Q}}function El($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:z.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...O$($,J,U.checkpoint.searchAttributes))}async function PT($,U,J,G,X){gl($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:_,timestamp:D}=hl($,U,G),Y=$.options.historyPolicy.retentionWindow,Z=Y===null?null:await oK($.storage,U,_.sequence,Y,G.operations),j=TX($,U);if(j!==void 0)G.operations.push(...j.operations);let P=$.storage.capabilities().conditionalBatch,L=Sl(j,P),q=xl(U,G,P,L);if(await D$($,G.operations,q,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),j!==void 0)EX($,U);if(G.expectedSerialized!==void 0)pX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,_),Z!==null)vl($,U,Z,X);if(wG($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:_.sequence,timestamp:D,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),bl($,_.sequence))await X.enforceHistoryCircuitBreaker(U)}function Sl($,U){if(!U)return[];return $?.conditions??[]}function xl($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:z.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function bl($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function vl($,U,J,G){let X=$.options.archiveAdapter;if(X===null||J.deletedEntries.length===0)return;let{from:Q,to:_}=J.deletedRange,D=`events:${Q}-${_}`,Y=aK(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,D,Y)))}function gl($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new ZX(U,J.serialized.byteLength,J.step))}function hl($,U,J){return new e$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:vM(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??q1,$.workflowVersionTuples.get(U))}function zT($,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 FT($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=z.checkpointHistory(U,X);await $.storage.delete(Q)}function LT($,U,J){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let _=eZ({...Q,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!_.valid){let D=_.divergences.map((Z)=>Z.path),Y=`Checkpoint at step ${X} has ${_.divergences.length} non-serializable field(s)`;J.dispatchEvent(new x4(U,Y,D))}}var qT=F(()=>{v();_6();I();Dz();m1();J$();d$();y1();M1();TJ();O6();U$();Y4();cG()});async function VT($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let Q=$.registrations.get(G.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let _={id:U,type:G.workflowType,status:"running"};for(let D of Q){if(!await Il(D,_))continue;if(yl(J,U,D),D.onViolation==="warn"){ml(U,D);continue}let Z=Error(`Constraint violated: ${D.name} (scope: ${D.scope})`);if(D.onViolation==="fail")await ul(J,U,Z);else kl(J,U,Z);return!0}return!1}async function Il($,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 yl($,U,J){$.dispatchEvent(new FX(U,J.name,J.scope,J.onViolation))}function ml($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function ul($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function kl($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}var BT=F(()=>{J$()});async function MT($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(DT(Q)||YT(Q)))return!1;if(await G.hasBufferedSignal(U,J.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let D=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!D||D.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,J.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function pG($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await mJ($,U,!1,J.createLifecycleCallbacks())}catch(G){let X=await J.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),G;if(X==="corrupt")throw G}}async function WT($,U,J){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let G=await J.loadWorkflowState(U);if(!G||G.status!=="running")return"terminal-or-missing";if(!await J.readCheckpointBytes(U))return"corrupt";return"resumable"}async function NT($,U,J){switch(U.type){case"completed":await AP($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await $6($,U.workflowId,G,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,G,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,G).catch((Q)=>{let _=Q instanceof Error?Q:Error(String(Q));return $6($,U.workflowId,_,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}var Yz=F(()=>{Dz();l4();Y4()});function dG($){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 lG($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function iG($,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 G=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===G)$.retentionSweepInFlight=null});$.retentionSweepInFlight=G},$.options.retentionSweepIntervalMs)}async function nG($,U,J){try{await NJ($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function Zz($,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 KT($,U=(J)=>Zz($,J)){let J=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}var jz=F(()=>{tX()});function sJ($){return{createLifecycleCallbacks:()=>S$($),createTerminationCallbacks:()=>$$($),evaluateConstraints:(U)=>VT(H($),U,WC($)),getParkedWorkflowResumeDisposition:(U)=>WT(H($),U,sJ($)),hasBufferedSignal:(U,J)=>hN(H($),U,J),loadWorkflowState:(U)=>i(H($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>MT(H($),U,J,sJ($)),persistCheckpoint:(U,J,G)=>fl($,U,J,G),processOperation:(U,J)=>oC(H($),U,J,_z($)),readCheckpointBytes:(U)=>H($).storage.get(z.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>pG(H($),U,sJ($)),runSerializedWorkflowStateWrite:(U,J)=>j6(H($),U,J),translateOperationRequest:(U)=>rC(H($),U),validateDevelopmentCheckpoint:(U)=>LT(H($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function fl($,U,J,G){return jT(H($),U,J,G,{appendTimelineBatchOperations:(X,Q,_,D,Y)=>ZT(H($),X,Q,_,D,Y),swallowPromiseRejection:(X)=>{C6(X)},validateAttributeValueSizes:_0,pruneCheckpointHistory:(X,Q)=>FT(H($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>f1(H($),X,"timed-out",$$($),$3)})}function wl($){iG(H($),{hasConfiguredRetention:()=>dG(H($)),runRetentionSweep:()=>nG(H($),(U,J)=>$$($).handleCleanupError(U,J),(U)=>c6(H($),U,$$($))),setNextRetentionSweepAt:()=>lG(H($))})}var OT=F(()=>{v();G6();D0();W0();QT();qT();BT();Yz();n4();TG();jz();I4();E$();p6();Y4();fG();W0();MC(($)=>wl($))});async function AT($,U){let J=[],G=new e$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:mj(X.payload)});return J}async function CT($,U){if($.options.checkpointHistory<=0)return[];let J=`${z.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=H$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function RT($,U,J){let G=await $.storage.get(z.checkpointHistory(U,J));if(!G)return null;let X=await B1($.storage,U,H$(G));return yj({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function TT($,U){let J=[];for await(let[,G]of $.storage.scan(z.timelinePrefix(U))){let X;try{X=R(G)}catch{continue}if(tM(X))J.push({...X,inputSummary:uj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:uj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function ET($,U,J){let G=await $.storage.get(z.checkpointHistory(U,J));if(!G)return null;let Q=await new e$($.storage,U).replay(Math.max(J-1,-1)),_=await B1($.storage,U,H$(G)),D=await p4($.storage,U);return{checkpoint:yj({step:_.step,locals:_.locals,searchAttributes:_.searchAttributes,version:_.version,createdAt:_.createdAt}),accumulatedResults:_.accumulatedResults.map(([Y,Z])=>[Y,L1(Z)]),events:Q.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:mj(Y.payload)})),...D!==null?{compactedBefore:D.sequence}:{}}}var ST=F(()=>{v();_6();I();c2();m1();M1();TJ();U$();_$()});function xT($,U){let J=0,G=$.length;while(J<G){let X=J+G>>>1;if($[X].timestamp<U)J=X+1;else G=X}return J}class Hz{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#J++;this.#X($)}rate($){if(this.#X($),this.#U.length===0)return 0;return this.#J/this.#U.length}#X($){let U=$-this.#$,J=xT(this.#U,U);if(J===0)return;for(let G=0;G<J;G++)if(this.#U[G].failed)this.#J--;this.#U.splice(0,J)}}class Pz{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#X(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#X($){let U=0,J=this.#J.length;while(U<J){let G=U+J>>>1;if(this.#J[G]<$)U=G+1;else J=G}this.#J.splice(U,0,$)}#G($){let U=0,J=this.#J.length;while(U<J){let G=U+J>>>1;if(this.#J[G]<$)U=G+1;else J=G}if(U<this.#J.length&&this.#J[U]===$)this.#J.splice(U,1)}#Q($){let U=$-this.#$,J=xT(this.#U,U);if(J===0)return;for(let G=0;G<J;G++)this.#G(this.#U[G].value);this.#U.splice(0,J)}}var cl=1e4,zz;var bT=F(()=>{J$();z$();zz=class zz{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#D=J,this.#Q=0,this.#_=new Set,this.#G=[],this.#J=[];for(let G of U.rules)this.#J.push({rule:G,status:"idle",currentValue:0});this.#X=new Map;for(let G=0;G<U.rules.length;G++){let X=U.rules[G],Q=X.window?Z$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#X.set(G,new Hz(Q));else if(X.metric==="activity.p99_duration")this.#X.set(G,new Pz(Q))}this.#j(),this.#Y=setInterval(this.#Z.bind(this),cl)}#Z(){for(let $=0;$<this.#U.rules.length;$++)this.#P($)}#j(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let Q=this.#D();for(let _=0;_<this.#U.rules.length;_++){if(this.#U.rules[_].metric!=="workflow.failure_rate")continue;this.#X.get(_).record(Q,X),this.#P(_)}};this.#H("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>G(!0))}if(U)this.#H("activity:completed",(G)=>{if(!(G instanceof XX))return;let X=this.#D();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#X.get(Q).record(X,G.duration),this.#P(Q)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#H("storage:size-reported",(G)=>{if(!(G instanceof HX))return;this.#Q=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#P(X)}})}#H($,U){this.#G.push({type:$,handler:U}),this.#$.addEventListener($,U)}#P($){let U=this.#U.rules[$],J=this.#J[$],G=this.#D(),X=0,Q=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#X.get($).rate(G);else if(U.metric==="activity.p99_duration")X=this.#X.get($).percentile(99,G);else if(U.metric==="storage.size")X=this.#Q;if(J.currentValue=X,X>=Q&&J.status==="idle")J.status="firing",J.lastFiredAt=G,this.#$.dispatchEvent(new PX(U.metric,Q,X,U.window)),this.#z(U,"alert:fired",X);else if(X<Q&&J.status==="firing")J.status="idle",J.lastResolvedAt=G,this.#$.dispatchEvent(new zX(U.metric,Q,X,U.window)),this.#z(U,"alert:resolved",X)}#z($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#F($,U,J)}#F($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#_.add(Q);let _={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#D()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(_),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#_.delete.bind(this.#_,Q))}}get states(){return this.#J}[Symbol.dispose](){if(this.#Y!==null)clearInterval(this.#Y),this.#Y=null;for(let{type:$,handler:U}of this.#G)this.#$.removeEventListener($,U);this.#G=[];for(let $ of this.#_)$.abort();this.#_.clear()}}});var Fz;var vT=F(()=>{Fz=class Fz{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((G)=>{let X=!1,Q=(j)=>{if(X)return;X=!0,Z(),G(j)},_=(j)=>{if(j.data.operationId===$.operationId)Q(j.data)},D=(j)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${j.message??"unknown error"}`})},Y=setTimeout(()=>{Q({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",_),U.removeEventListener("error",D)};U.addEventListener("message",_),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 rG;var gT=F(()=>{rG=class rG{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#X=new Map,this.#G=$.concurrency,this.#Q=$.workerUrl,this.#_=$.smol??!1,this.#D=!1,this.#Y=null}async acquire(){if(this.#D)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#G)return this.#Z();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#D)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,G)=>{let X=this.#X.get($)??[];X.push({resolve:J,reject:G}),this.#X.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#P($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#F(),this.#L()}release($){if(this.#D&&!this.#Y)return;let U=this.#X.get($);if(U&&U.length>0){let G=U.shift();if(U.length===0)this.#X.delete($);G.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.#X.values())$+=U.length;return this.#J.length+$}[Symbol.dispose](){if(this.#D)return;this.#D=!0,this.#j()}async[Symbol.asyncDispose](){if(this.#D)return;if(this.#D=!0,this.#z(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#j();return}return new Promise(($)=>{this.#Y=()=>{this.#j(),$()}})}#Z(){let $={};if(this.#_)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#j(){this.#z(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#X.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#P($,U){let J=this.#X.get($);if(!J)return;this.#X.delete($);for(let G of J)G.reject(U)}#z($){let U=this.#J.splice(0);for(let J of U)J.reject($);for(let J of this.#X.values())for(let G of J)G.reject($);this.#X.clear()}#F(){if(this.#D)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#G){this.#J.shift()?.resolve(this.#Z());continue}return}}#L(){if(this.#Y&&this.#U.length===this.#$.size)this.#Y(),this.#Y=null}}});function hT($,U,J,G){return{workflowId:J.workflowId,workflowType:J.workflowType,startedAt:J.startedAt??$.getNow(),abortController:G,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},...pl($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...dl($)}}function pl($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function dl($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function IT($){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 Lz;var yT=F(()=>{zG();S4();Lz=class Lz{#$;#U;#J;#X;#G;#Q;#_;#D;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#X=new Map,this.#G=new Map,this.#Q=new Map,this.#_=new Map,this.#D=null}onMessage($){this.#D=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#P({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let G=new d4(hT(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(q0(G,X),this.#$.development)G.explain(!0);this.#X.set($.workflowId,G);let Q=U.handler(G,$.input);this.#U.set($.workflowId,Q),this.#Y($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#P({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let J=$.operationResult.status==="completed"?$.operationResult.value:void 0,G=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?S3($.operationResult):void 0;if(X)this.#Z($.workflowId,U,X,G);else this.#Y($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#z($)}parkWorkflow($,U){let J=U?.retainContext?this.#X.get($)??this.#G.get($):void 0;if(this.#z($),J!==void 0)this.#G.set($,J)}getContext($){return this.#X.get($)}getParkedContext($){return this.#G.get($)}clearParkedContext($){this.#G.delete($)}getAbortController($){return this.#J.get($)}waitForWorkflowTurn($){return this.#_.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#Y($,J,U)}throwIntoWorkflow($,U,J){let G=this.#U.get($);if(!G)return;this.#Z($,G,U,J)}adoptWorkflow($,U,J,G){this.#G.delete($),this.#U.set($,U),this.#X.set($,J),this.#J.set($,G)}[Symbol.dispose](){this.#U.clear(),this.#J.clear(),this.#X.clear(),this.#G.clear(),this.#Q.clear(),this.#_.clear(),this.#D=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Y($,U,J){return this.#j($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let X=await U.next(J);if(X.done){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#P({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#P({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(G){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:k2(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#P(X)}})())}#Z($,U,J,G){return this.#j($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let Q=await U.throw(J);if(Q.done){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#P({type:"completed",workflowId:$,result:Q.value});return}let _=Q.value;this.#P({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:_})}catch(X){this.#z($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??k2(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#P(Q)}})())}#j($,U){let J=U.finally(()=>{if(this.#Q.get($)===J)this.#Q.delete($)});return J.catch(()=>{}),this.#Q.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#_.get($)===J)this.#_.delete($)});return J.catch(()=>{}),this.#_.set($,J),J}#P($){let U=this.#D?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#_.delete($.workflowId)}#z($,U){if(this.#U.delete($),this.#J.delete($),this.#X.delete($),this.#G.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#_.delete($)}}});class qz{#$=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 G=(this.#U.get($)??1)-1;if(G>0){this.#U.set($,G);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 f_$($){let U=new Uint8Array($.byteLength);return U.set($),U.buffer}function il($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function oG($){if(typeof $!=="object"||$===null)return!1;let U=$;return ll.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&il(U.attributes)}function mT($){return typeof $==="object"&&$!==null&&$.type==="log"}var ll;var aG=F(()=>{ll=new Set(["debug","info","warn","error"])});function sl($){let U=0;return M(R0($,[],(G)=>{U+=G})).byteLength+U}function tJ($,U){let J=sl($);if(U!==void 0&&J>U)throw new T0(J,U);return J}function lT($){let U=tl($);el(U),$i(U)}function tl($){if(typeof $!=="object"||$===null)throw new A$("Worker outbound message must be an object");return $}function el($){if(typeof $.workflowId!=="string")throw new A$("Worker outbound message must include workflowId");kT($,"protocolVersion"),kT($,"turnId")}function kT($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new A$(`Worker outbound message ${U} must be an integer`)}function $i($){switch($.type){case"checkpoint":Ui($);return;case"completed":return;case"failed":Ji($);return;case"log":Xi($);return;default:throw new A$("Worker outbound message has an unsupported type")}}function Ui($){if(!($.checkpoint instanceof ArrayBuffer))throw new A$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new A$("Worker checkpoint message must include operationRequest")}function Ji($){if(typeof $.error!=="string")throw new A$("Worker failed message must include an error string")}function Xi($){if(!oG($.record))throw new A$("Worker log message must include a valid log record")}function R0($,U,J){let G=Gi($,U,J);if(G.handled)return G.value;if(U.includes($))throw new A$("Worker protocol message cannot include cyclic values");if(!S2($).valid)throw new A$("Worker protocol message contains non-cloneable values");return Di($,U,J)}function Gi($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new A$("Worker protocol message cannot include functions or symbols");let G=Qi($,J);if(G.handled)return G;let X=_i($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>R0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function Qi($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[uT]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[uT]:$.byteLength}};return{handled:!1}}function _i($,U,J){if($ instanceof Date)return{handled:!0,value:{[nl]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[rl]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[ol]:[...$.entries()].map(([G,X])=>[R0(G,U,J),R0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[al]:[...$.values()].map((G)=>R0(G,U,J))}};return{handled:!1}}function Di($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=R0($[X],U,J);return G}finally{U.pop()}}var Z4=1,fT=1000,wT=1048576,Vz=4096,cT=60000,pT=5000,dT=5,uT="__weftBinaryBytes",nl="__weftDate",rl="__weftError",ol="__weftMap",al="__weftSet",A$,T0;var o4=F(()=>{I();aG();A$=class A$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};T0=class T0 extends A${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class Bz{#$;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 G=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,G)){this.#$.pool.release(G);return}this.#$.attachWorkerListeners(G),this.postResumeMessage(G,$,J)}catch(G){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:G instanceof Error?G.message:String(G)})}}async cancelParkedWorkflow($,U){try{let J=await this.#$.pool.acquireSpecificWorker(U),G={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())G.protocolVersion=Z4;J.postMessage(G),this.#$.detachWorkerListenersIfIdle(J),this.#$.pool.release(J)}catch{}}#U($,U,J,G){if(!this.#$.validateHostToWorkerMessage(U,J,$))return;try{this.#$.beginTurn($,U,J.turnId??0,G),$.postMessage(J,[Yi(J.checkpoint)])}catch(X){this.#J($,U,X,G)}}#J($,U,J,G){if(this.#$.clearTurn($),G==="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 Yi($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var iT=F(()=>{o4()});class Mz{#$=new Map;#U=new Map;#J=new Map;#X=new Set;resetWorkflow($){this.#X.delete($)}markCancelled($){this.#X.add($)}consumeCancelled($){return this.#X.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[G,X]of this.#U)if(X===$)U.push(G);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#J.delete(U);this.#$.delete($),this.#U.delete($),this.#X.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#J.clear(),this.#X.clear()}workerIsIdle($){if(this.#J.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function nT($,U){let J={type:"run",protocolVersion:Z4,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 Wz($,U){let J={type:"resume",protocolVersion:Z4,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 rT=F(()=>{o4()});class Nz{#$=new Map;attach($,U){if(this.#$.has($))return;let J={message:(G)=>{U.message(G.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 oT($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function aT($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function sT($,U,J){if(J!==void 0)try{tJ($,J)}catch(X){return X instanceof T0?"dropped-oversize":"dropped-invalid"}if(!oG($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{PG(G)}return"accepted-valid"}var Kz=F(()=>{_P();aG();o4()});class eT{#$;#U;#J;#X;#G=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#J=$.strikeThreshold,this.#X=$.getNow}recordArrival($){let U=this.#X(),J=this.#Q($),G=U-J.windowStartedAt;if(G>=this.#$||G<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.#Q($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#G.delete($)}#Q($){let U=this.#G.get($);if(!U)U={windowStartedAt:this.#X(),arrivalsInWindow:0,lifetimeStrikes:0},this.#G.set($,U);return U}}class $E{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new eT({floodWindowMs:$.floodWindowMs??cT,floodThreshold:$.floodThreshold??pT,strikeThreshold:$.strikeThreshold??dT,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return tT("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=sT(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return tT("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function tT($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function UE($,U){return new $E({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var JE=F(()=>{Kz();o4()});class Oz{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return tJ($,this.#$),null}catch(U){return XE(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(lT(U),tJ(U,this.#$),this.#U)this.#X($,U);return{accepted:!0,message:U}}catch(J){let G=Zi(U);return{accepted:!1,failure:XE(J,{...G===void 0?{}:{targetWorkflowId:G},otherError:G===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${G}`})}}}#X($,U){if(U.protocolVersion!==Z4)throw new A$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new A$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new A$("Worker message did not match the active turn")}}function XE($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof T0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Zi($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var GE=F(()=>{o4()});class Az{#$=new Map;#U;#J;constructor($,U){this.#U=$,this.#J=U}begin($,U,J,G){this.clear($);let X={worker:$,workflowId:U,turnId:J,kind:G,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#J(X)},this.#U);this.#$.set($,X)}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 Cz;var QE=F(()=>{iT();rT();JE();Kz();GE();aG();o4();Cz=class Cz{#$;#U;#J;#X;#G;#Q;#_;#D;#Y;#Z;#j;#H;#P;#z;#F;#L;#V;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:_=!1}=U??{};if(this.#$=$,this.#U=new Mz,this.#J=new Nz,this.#Q=new qz,this.#_=J,this.#D=G,this.#Y=X,this.#Z=Q,this.#j=UE(U,G),this.#H=new Az(this.#_,(D)=>{this.#x(D)}),this.#P=new Oz(this.#D,this.#Y,this.#H),this.#z=new Bz({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#L,requireProtocolVersion:()=>this.#Y,validateHostToWorkerMessage:(D,Y,Z)=>this.#O(D,Y,Z),attachWorkerListeners:(D)=>{this.#E(D)},detachWorkerListenersIfIdle:(D)=>{this.#K(D)},beginTurn:(D,Y,Z,j)=>{this.#H.begin(D,Y,Z,j)},clearTurn:(D)=>{this.#H.clear(D)},discardWorkerAndFailWorkflows:(D,Y)=>{this.#q(D,Y)},emit:(D)=>{this.#W(D)}}),this.#F=null,this.#X=null,this.#G=null,this.#L=!1,this.#V=1,_)try{this.#X=new BroadcastChannel("weft:events"),this.#G=(D)=>{this.#b(D.data)},this.#X.addEventListener("message",this.#G)}catch{}}onMessage($){this.#F=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=nT($,this.#B());if(!this.#O($.workflowId,U))return;this.#z.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let G=Wz($,this.#B());this.#z.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=Wz($,this.#B());this.#z.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#L)this.#W({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#B(){return{turnId:this.#V++,maxProtocolMessageBytes:this.#D,hasLogSink:this.#j.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#Z){this.#q(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#Y)G.protocolVersion=Z4;U.postMessage(G),this.#N($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#Z){this.#q(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#z.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#M(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#M(),await this.#$[Symbol.asyncDispose]()}#M(){if(this.#L=!0,this.#X){if(this.#G)this.#X.removeEventListener("message",this.#G);this.#X.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#N(U);this.#J.detachAll(),this.#U.clear(),this.#Q.clear(),this.#F=null}async#A($,U){if(mT(U)){let Q=(D)=>this.#U.getTargetWorker(D)===$,_=this.#j.handle($,U,Q);if(_)this.#q($,_);return}if(!this.#S($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=oT(this.#F,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.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.#N(U.workflowId),this.#K($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!aT(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#q($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#N($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#K(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#q($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#K($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let G=this.#P.validateHostToWorkerMessage(U);if(!G)return!0;if(J)return this.#q(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#W({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#S($,U){let J=this.#P.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#q($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#x($){this.#q($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#_}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#q($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#j.forget($);return}for(let G of J){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#Q.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#W({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#j.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.#F?.($);if(U instanceof Promise)U.catch(()=>{})}}});function ZE($){let U=ji($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:_E,leaseRenewIntervalMs:DE,leaseWaitTimeoutMs:YE};let J=W6($?.leaseTtl,"options.leaseTtl")??_E,G=W6($?.leaseRenewInterval,"options.leaseRenewInterval")??DE,X=W6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??YE;return Hi(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function ji($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Hi($,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 _E=30000,DE=5000,YE=60000;var jE=F(()=>{_$()});function Rz($){return Object.entries($??{})}function sG($,U){return $}function PE($){return Pi($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function Pi($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function zi($){return $?.development===!0||PE("WEFT_DEV_WARNINGS")==="1"||PE("NODE_ENV")==="development"}function LE($){let J=$?.storage??void 0;if(J===void 0){if(!HE&&zi($))HE=!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 D8}if(!$?.compression)return J;return new A7(J,$.compression)}function qE($){return $?.interceptors?[...$.interceptors]:[]}function Tz($,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 Fi($){return{retention:w3($?.retention,"options.retention"),retentionSweepIntervalMs:W6($?.retentionSweepInterval,"options.retentionSweepInterval")??dF,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):lF}}function E0($,U){return $??U}function Li($){return{development:E0($?.development,!1),broadcastEvents:E0($?.broadcastEvents,!1)}}function qi($){return{checkpointHistory:E0($?.checkpointHistory,10),checkpointSizeWarningThreshold:E0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:E0($?.maxNestingDepth,10)}}function Vi($){return{historyPolicy:eM($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:$W($?.payloadSize,"options.payloadSize")}}function Bi($){let U=E0($?.detectSecondInstance,!1),J=U?W6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??zE:zE;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function VE($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...Li(U),...qi(U),...Fi(U),...Vi(U),...Bi(U),...ZE(U)}}function Mi($){let U=Wi($?.workflowExecutionMode),J=Ni($,U);if(!J)return{mode:"inline",workerExecution:null};return Ki(J)}function Wi($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Ni($,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 Ki($){let U=FE($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??fT,J=FE($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??wT;if(J<Vz)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${Vz}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function FE($,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 BE($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:_,getComposedWorkflowInterceptor:D,resolveWorkflowType:Y,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:P,getLogSink:L}=$,q=Mi(U);if(q.mode==="worker"){let S=new rG({workerUrl:q.workerExecution.workerUrl,concurrency:q.workerExecution.poolSize??4,smol:q.workerExecution.smol??!1}),m=L?.(),s={broadcastEvents:Q,requireProtocolVersion:q.requireProtocolVersion,discardOnCancel:q.discardOnCancel,workflowTurnTimeoutMs:q.workflowTurnTimeoutMs,maxProtocolMessageBytes:q.maxProtocolMessageBytes,getNow:J,...m!==void 0&&{onLog:m}};return{strategy:new Cz(S,s),inlineStrategy:null}}let W=new Lz({getRegistration:_,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:Y,...IT({getComposedWorkflowInterceptor:D,registerCancelHandler:Z,recordFinalizerState:j,getWorkflowServices:P,getLogSink:L})});return{strategy:W,inlineStrategy:W}}function ME($){if(!$)return null;return new Fz(new rG({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function WE($,U,J){return U?new zz($,U,J):null}var HE=!1,zE=15000;var NE=F(()=>{bT();BF();M7();vT();gT();yT();G6();QE();o4();jE();_$()});function OE(){if(Ez!==void 0)return Ez;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function AE($){Ez=$}function CE($){Sz=$}function RE(){let $=Sz;return Sz=void 0,$}function TE(){return KE}function EE($){return xz.has($)}function SE($){xz.delete($)}function xE(){return OE()}var Ez,KE=0,Sz,xz,tG;var eG=F(()=>{xz=new Set,tG=new FinalizationRegistry(($)=>{if(KE++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&OE()){if($.testToken!==void 0)xz.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 bE($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function vE($){let U=S$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>C6(J)}}function gE($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}H(G).queuedInlineWorkflowStartFlushScheduled=!1,C6(uJ(H(G),vE(G)))}}async function hE($){await xA(H($),vE($))}function IE($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=H(G);UM(X.updateCoordinator,(Q,_)=>$$(G).handleCleanupError(Q,_))()}}function yE($){return function(){let J=$.deref();if(J===void 0)return null;let G=H(J);if(G.disposed)return null;return G.secondInstanceDetector}}function mE($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,tG.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var bz=F(()=>{m2();W0();eG();i4();n4();p6()});function $7($){$.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(),bA($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,mE($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,Oi($),Ai($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new K6);$.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 Oi($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function Ai($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var uE=F(()=>{bz();L$();i4()});function kE($,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}N6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),g4($,U,{conditions:[],operations:[{type:"put",key:z.finalizerState(U),value:M(J)}]})}var fE=F(()=>{v();I();v4()});function wE($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:_}=$,D=$.acquirePollIntervalMs??Ci,Y=Q,Z=!1,j=null,P=null,L=null,q=null,W=!1,S=null,m=$.delay??((Y$)=>new Promise((u$)=>setTimeout(u$,Y$)));function s(Y$){if(W)return;W=!0,$.onLeaseLost?.(Y$)}async function p(){let Y$=await U.get(z.leaseHolder()),u$=await U.get(z.leaseEpoch());return{epochRaw:u$,holderRaw:Y$,epoch:u$===null?null:bX(u$),holder:Y$===null?null:vX(Y$)}}async function y(Y$,u$,k$){let E6=G()+X,r1=HH({holderId:J,expiresAt:E6,epoch:k$}),rz=await G$(U,[{key:z.leaseEpoch(),expectedValue:Y$},{key:z.leaseHolder(),expectedValue:u$}],[{type:"put",key:z.leaseEpoch(),value:jH(k$)},{type:"put",key:z.leaseHolder(),value:r1}]);if(rz)j=k$,P=jH(k$),L=r1;return rz}async function k(){let{epochRaw:Y$,holderRaw:u$,epoch:k$,holder:E6}=await p();if(Y$!==null&&k$===null)throw new v1('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(Y$===null&&u$!==null)throw new v1('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(E6!==null&&G()<E6.expiresAt)return!1;let r1=(k$??0)+1;if(r1>=Number.MAX_SAFE_INTEGER)throw new v1(`the next ownership epoch (${r1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return y(Y$,u$,r1)}async function w(){let Y$=G(),u$=Y$+_,k$=null,E6=!0;for(;;){if(Z)return;if(!E6&&G()>=u$)throw new U0(G()-Y$,k$);if(E6=!1,await k())return;let n1=await U.get(z.leaseHolder());if(k$=n1===null?null:vX(n1)?.holderId??null,G()>=u$)throw new U0(G()-Y$,k$);await m(D)}}async function x$(){if(Z||W||j===null||L===null)return;let Y$=G()+X,k$=HH({holderId:J,expiresAt:Y$,epoch:j}),E6;try{E6=await G$(U,[{key:z.leaseHolder(),expectedValue:L}],[{type:"put",key:z.leaseHolder(),value:k$}])}catch{let n1=vX(L)?.expiresAt??0;if(G()>=n1-Y)s("renewal-unconfirmable");return}if(E6){L=k$;return}s("deposed")}function T6(){if(S!==null)return;S=x$().catch(()=>{}).finally(()=>{S=null})}function i1(){if(Z||q!==null)return;q=setInterval(()=>{T6()},Q),q.unref?.()}function gS(){return P===null?null:P.slice()}function nz(){if(q!==null)clearInterval(q),q=null}async function hS(){if(Z=!0,nz(),S!==null)await S;if(L===null)return;try{if(await G$(U,[{key:z.leaseHolder(),expectedValue:L}],[{type:"delete",key:z.leaseHolder()}]))L=null}catch{}}function IS(){Z=!0,nz()}return{acquire:w,startRenewal:i1,renewOnce:x$,currentEpochBytes:gS,release:hS,stop:IS}}var Ci=1000;var cE=F(()=>{v();PH();gX()});async function vz($){let U=await $.get(YH);if(U!==null){let J=new TextDecoder().decode(U);if(!Ri.test(J))throw new Q4(null,T1);let G=Number(J);if(!Number.isSafeInteger(G))throw new Q4(null,T1);if(G!==T1)throw new Q4(G,T1);return}for(let J of Ti)for await(let G of $.scan(J,{limit:1}))throw new Q4(null,T1);await $.put(YH,new TextEncoder().encode(String(T1)))}var Ri,Ti;var pE=F(()=>{ZH();Ri=/^(?:0|[1-9]\d*)$/,Ti=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function dE($,U,J,G){if(J==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let Q=X.getContext(U)??X.getParkedContext(U);if(!Q)return;let _=Q.queryHandlers.get(J);if(_)return _(G);let D=Q.exposedAccessors.get(J);if(!D)return;return D()}function xi($){return Ei.encode(JSON.stringify($))}async function U7($){try{await $()}catch{}}function bi($){let{instanceId:U,heartbeatAt:J,sequence:G}=$;return typeof U==="string"&&U.length>0&&typeof J==="number"&&Number.isFinite(J)&&typeof G==="number"&&Number.isInteger(G)&&G>=0}function vi($){let U;try{U=JSON.parse(Si.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return bi(J)?J:null}function iE($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((p)=>process.emitWarning(p,gi)),_=X*(lE+1),D=0,Y=!1,Z=!1,j=new Map,P=new Set;async function L(){let p=[];for await(let[y,k]of U.scan(z.livenessPrefix())){let w=vi(k);if(w!==null&&w.instanceId!==J)p.push({key:y,heartbeat:w})}return p}async function q(p,y){let k=y-_*hi;for(let w of p)if(w.heartbeat.heartbeatAt<k)await U7(()=>U.delete(w.key))}function W(p){let y=new Set;for(let{key:k,heartbeat:w}of p){if(z.liveness(w.instanceId)!==k)continue;y.add(w.instanceId);let x$=j.get(w.instanceId),i1=x$!==void 0&&w.sequence>x$.sequence?x$.advances+1:0;if(j.set(w.instanceId,{sequence:w.sequence,advances:i1}),i1>=lE&&!P.has(w.instanceId))P.add(w.instanceId),Q(`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 S=!1;async function m(){if(Z||S)return;S=!0;let p=!1;try{let y=G(),k=await L();if(!Y)Y=!0,await q(k,y);if(W(k),Z)return;D+=1;let w={instanceId:J,heartbeatAt:y,sequence:D};p=!0,await U7(()=>U.put(z.liveness(J),xi(w)))}finally{if(S=!1,p&&Z)await U7(()=>U.delete(z.liveness(J)))}}async function s(){Z=!0,await U7(()=>U.delete(z.liveness(J)))}return{tick:m,stop:s}}function nE($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var Ei,Si,gi="WeftSecondInstanceWarning",hi=10,lE=2;var rE=F(()=>{v();Ei=new TextEncoder,Si=new TextDecoder});var oE,aE,sE,eJ;var tE=F(()=>{v();IZ();Z1();_6();m2();jj();z$();G6();fU();EW();sU();SX();tX();fG();OT();ST();NE();uE();eG();bz();L$();O6();fE();mH();k4();i4();Yz();n4();cE();l4();WJ();Uz();Qz();QG();pE();VP();jz();MG();wP();rE();I4();E$();p6();Y4();eU();uX();cG();oP();sU();L$();k4();gX();eG();oE=Symbol("engineParkedWorkflowCountForTesting"),aE=Symbol("engineSignalWaiterCountForTesting"),sE=Symbol("engineSleepResolverCountForTesting");eJ=class eJ extends EventTarget{static async create($){let U=new eJ($);try{await vz(H(U).storage);for(let[G,X]of Rz($.activities)){if(G!==X.name)throw new S1("activity",G,X.name);U.#B(X)}for(let[G,X]of Rz($.workflows)){if(G!==X.name)throw new S1("workflow",G,X.name);U.register(X)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{});if($.startScheduler??$.recover!==!1)H(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();mA(this),H(this).registrations=new Map,H(this).workflowTypesByHandler=new WeakMap;let U=LE($),J=$?.getNow??Date.now,G=VE(U,$,J),X=BE({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:H(this).registrations.get.bind(H(this).registrations),getComposedWorkflowInterceptor:()=>L6(H(this)),resolveWorkflowType:this.#F.bind(this),registerCancelHandler:(Z,j)=>IJ(H(this),Z,j),recordFinalizerState:(Z,j)=>kE(H(this),Z,j),getWorkflowServices:(Z)=>H(this).workflowServices.get(Z),getLogSink:()=>G.onLog??void 0});H(this).storage=U,H(this).abortController=new AbortController,H(this).disposed=!1,H(this).handleCache=new Map,H(this).resultResolvers=new Map,H(this).signalWaiters=new Map,H(this).signalWaitersByWorkflow=new Map,H(this).conditionWaiters=new Map,H(this).updateWaiters=new Map,H(this).updateWaitersByWorkflow=new Map,H(this).sleepResolvers=new Map,H(this).sleepResolversByWorkflow=new Map,H(this).interceptors=qE($),H(this).composedWorkflowInterceptor=void 0,H(this).composedActivityInterceptor=void 0,H(this).updateCoordinator=new zj(U),H(this).activityRegistry=new A2,H(this).activityRegistriesByWorkflow=new Map,H(this).workflowDefinitionsByName=new Map,H(this).workflowTypeByWorkflowId=new Map,H(this).activityWorkerDispatcher=null,H(this).checkpoints=new Map,H(this).broadcastChannel=null,H(this).pendingNestingDepth=void 0,H(this).pendingParentHeaders=void 0,H(this).pendingExecutionStateOwnerId=void 0,H(this).workflowNestingDepths=new Map,H(this).workflowHeaders=new Map,H(this).workflowStateWriteChains=new Map,H(this).finalizationRegistry=new FinalizationRegistry($M(H(this).handleCache)),H(this).options=G,H(this).scheduler=new C3({storage:U,onTimerFired:(Z)=>pH(H(this),Z,this.#z()),getNow:J,commitTimerCleanup:(Z)=>D$(H(this),Z,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),H(this).strategy=X.strategy,H(this).inlineStrategy=X.inlineStrategy,H(this).queuedInlineWorkflowStarts=[],H(this).queuedInlineWorkflowStartIds=new Set,H(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,H(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),_=X.inlineStrategy!==null?new MessageChannel:null;if(H(this).queuedInlineWorkflowStartChannel=_,_!==null)_.port1.onmessage=gE(Q,_);H(this).heartbeatDetails=new Map,H(this).lastHeartbeatDetailsByStep=new Map,H(this).workflowServices=new Map,H(this).pendingAsyncActivities=new Map,H(this).pendingAsyncActivityResolutions=new Map,H(this).pendingStarts=new Set,H(this).pendingScheduleCreations=new Set,H(this).workflowsNeedingTerminalCleanup=new Set,H(this).reviewCoordinator=new Zj(U,J),H(this).reviewWaiters=new Map,H(this).reviewWaitersByWorkflow=new Map,H(this).reviewEscalationHandlers=new Map,H(this).workflowReviewIds=new Map,H(this).parkedInlineWorkflows=new Set,H(this).terminalizingWorkflows=new Set,H(this).deliveredPendingUpdateIds=new Map,H(this).cancelHandlersByWorkflow=new Map,H(this).reviewTimerIds=new Map,H(this).pendingWebhooks=new Set,H(this).pendingTimelineEntries=new Map,H(this).pendingAtomicWorkflowCommitSideEffects=new Map,H(this).cleanupIntervalDisposalTracker=null;let D={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:RE()},Y=setInterval(IE(Q,D),60000);D.cleanupInterval=Y,H(this).cleanupInterval=Y,H(this).cleanupIntervalDisposalTracker=D,tG.register(this,D,D),H(this).retentionSweepInterval=null,H(this).retentionSweepInFlight=null,H(this).nextRetentionSweepAt=null,H(this).secondInstanceDetectionInterval=null,H(this).secondInstanceDetector=null,H(this).leaseManager=null,H(this).inFlightLeaseAcquire=null,H(this).deposed=!1,H(this).tearDownAfterDeposition=()=>{this.#U()},H(this).eventLogHeads=new Map,H(this).workflowFeedListeners=new Map,H(this).workflowVersionTuples=new Map,H(this).workflowVisibilityWatermark=void 0,H(this).workflowVisibilityWatermarkExpiresAt=void 0,H(this).activityWorkerDispatcher=ME($?.activityExecution),H(this).strategy.onMessage(this.#L.bind(this)),H(this).alertManager=WE(this,$?.alerts,J),this.#Q(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=H(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new K6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=wE({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){jJ($);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.",zH)}});$.leaseManager=U;let J=(async()=>{try{await U.acquire()}catch(G){if($.leaseManager===U)$.leaseManager=null;throw G}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new K6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=H(this);if($.disposed)return;let U=$.leaseManager;$7($),U?.release().catch(()=>{})}#J(){let $=H(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=iE({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let J=$.cleanupIntervalDisposalTracker;if(J===null)return;let G=new WeakRef(this),X=setInterval(nE(yE(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#X(){return dG(H(this))}#G(){lG(H(this))}#Q(){iG(H(this),{hasConfiguredRetention:()=>this.#X(),runRetentionSweep:()=>this.#_(),setNextRetentionSweepAt:()=>this.#G()})}async#_(){return nG(H(this),($,U)=>this.#Y().handleCleanupError($,U),($)=>c6(H(this),$,this.#Y()))}#D(){return S$(this)}#Y(){return $$(this)}#Z(){return CG(this)}#j(){return l6(this)}#H(){return sJ(this)}#P(){return A0(this)}#z(){return uG(this)}#F($){return VG(H(this),$,this.#Z())}get state(){let $=H(this).storage;return{execution:(U,J,G)=>new yU($,z.stateExecution(U,J),G),workflow:(U,J,G)=>new yU($,z.stateWorkflow(U,J),G)}}async#L($){return NT(H(this),$,this.#H())}#V($){return y4(H(this),$,this.#j())}register($){if(bE($))return this.#B($),sG(this);return cA(H(this),$,this.#Z()),sG(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new S1("workflow",U,J.name);this.register(J)}return sG(this)}addInterceptor($){H(this).interceptors.push($),H(this).composedWorkflowInterceptor=void 0,H(this).composedActivityInterceptor=void 0}#B($){H(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return H(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){H(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){H(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=H(this).registrations.get($);return U===void 0?void 0:Tz($,U)}listWorkflowDefinitions(){return[...H(this).registrations.entries()].map(([$,U])=>Tz($,U))}getActivityDefinition($){return H(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return H(this).activityRegistry.listDefinitions()}async start($,U,J){if(zJ(H(this)),J?.idempotencyKey!==void 0)return XP(H(this),$,U,J,this.#D());return P6(H(this),$,U,J,void 0,this.#D())}async startOrSignal($,U,J,G){return zJ(H(this)),GP(H(this),$,U,J,G,this.#M())}#M(){return{...this.#D(),signalExistingWorkflow:($,U,J,G)=>this.signal($,U,J,{signalId:G})}}getHandle($){let U=H(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return eX(H(this),$)}async list($,U){return NK(H(this),$,U)}async aggregate($,U){return TW(H(this),$,U)}getRetentionOverview(){return KT(H(this),($)=>Zz(H(this),$))}async purge($){return wK(H(this),$,(U)=>c6(H(this),U,this.#Y()))}async cancelAll($,U){return cK(H(this),$,U)}async retryFailedAll($,U){return pK(H(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return IH(H(this),$,U,J);return IH(H(this),$,U,J,G)}async deleteAll($,U){return dK(H(this),$,(J)=>c6(H(this),J,this.#Y()),U)}async tagAll($,U,J){return lK(H(this),$,U,J)}async untagAll($,U,J){return iK(H(this),$,U,J)}async schedule($,U,J,G){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,_=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return fP(H(this),Q,X.input,_,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return fP(H(this),$,U,J,G)}async getSchedule($){let U=w4($,"scheduleId"),J=await I1(H(this),U);return J?vC(J):null}async listSchedules($){return xC(H(this),$)}async pauseSchedule($){return gC(H(this),$)}async resumeSchedule($){return hC(H(this),$)}async cancelSchedule($){return IC(H(this),$)}async updateSchedule($,U){return yC(H(this),$,U)}[FJ]($){return rK(H(this),$)}[oE](){return H(this).parkedInlineWorkflows.size}[aE](){return H(this).signalWaiters.size}[sE](){return H(this).sleepResolvers.size}async signal($,U,J,G){return vN(H(this),$,a$(U),J,{loadWorkflowState:(X)=>i(H(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#V(X),getComposedInterceptor:()=>L6(H(this)),resumeParkedInlineWorkflow:(X)=>C6(pG(H(this),X,this.#H()))},G)}async update($,U,J,G){return mN(H(this),$,a$(U),J,G,this.#P())}async query($,U,J){return dE(H(this),$,a$(U),J)}async getStreamChunks($,U,J){return eR(H(this),$,U,J)}async getOffload($,U){return wR(H(this),$,U)}async fork($,U){return zJ(H(this)),FP(H(this),$,U,this.#D())}async resume($){return zJ(H(this)),LG(H(this),$,this.#D())}async recoverAll($){if(await this.#$(),H(this).disposed)throw new K6;return await lW(H(this)),await bC(H(this)),zP(H(this),this.#D(),$)}async completeAsyncActivity($,U){await rW(H(this),$,U,{feedOperationResult:(J,G)=>F6(H(this),J,G),finalizeTimeline:(J,G,X)=>R6(H(this),J,G,X)})}async failAsyncActivity($,U){await aW(H(this),$,U,{feedOperationResult:(J,G,X)=>F6(H(this),J,G,X),finalizeTimeline:(J,G,X)=>R6(H(this),J,G,X)})}async cancel($){await KP(H(this),$,this.#Y())}async suspend($){await bP(H(this),$,this.#Y())}async timeout($){await OP(H(this),$,this.#Y())}async get($){let U=await i(H(this),$);if(U?.status==="running"&&vA(H(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=H(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await H(this).storage.get(z.checkpoint($));if(J===null)return null;return H$(J).step}async getAttributes($){return RK(H(this),$)}async setAttributes($,U){return TK(H(this),$,U)}async addTags($,...U){return EK(H(this),$,...U)}async removeTags($,...U){return SK(H(this),$,...U)}async getEvents($){return AT(H(this),$)}async*replayWorkflowFeed($,U,J){yield*aR(H(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return sR(H(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return tR(H(this),$,U,J)}async listCheckpoints($){return CT(H(this),$)}async getCheckpointAt($,U){return RT(H(this),$,U)}async getTimeline($){return TT(H(this),$)}async replayTo($,U){return ET(H(this),$,U)}async listReviews($){return sA(H(this),$)}async getReview($,U){return tA(H(this),$,U)}async submitReview($,U){return eA(H(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return uN(H(this),$)}async submitCoordinatedUpdate($,U,J,G){return kN(H(this),$,U,J,G,this.#P())}[Symbol.dispose](){let $=H(this).leaseManager;$7(H(this)),$?.release()}async[Symbol.asyncDispose](){if(!H(this).disposed){let $=H(this).leaseManager;try{await hE(this)}finally{$7(H(this)),await H(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return H(this).storage}get scheduler(){return H(this).scheduler}async fireTimer($){await pH(H(this),$,this.#z())}}});var Ii={};i$(Ii,{shouldEmitEngineLeakWarningForTesting:()=>xE,setNextEngineLeakWarningTokenForTesting:()=>CE,setEngineLeakWarningOverrideForTesting:()=>AE,hasEngineLeakWarningTokenForTesting:()=>EE,getEngineLeakCollectionCountForTesting:()=>TE,clearEngineLeakWarningTokenForTesting:()=>SE,assertCompatiblePersistedDataVersion:()=>vz,WorkflowTypeNotRegisteredForRecoveryError:()=>QJ,WorkflowTeardownPendingError:()=>XJ,WorkflowSuspendNotSupportedError:()=>DJ,WorkflowNotRegisteredError:()=>x1,WorkflowNotFoundError:()=>$0,WorkflowHandle:()=>LJ,WorkflowConcurrencyLimitExceededError:()=>_J,WorkflowAlreadyExistsError:()=>t$,StartOrSignalConflictError:()=>ZJ,ScheduleHandle:()=>iJ,PersistedDataIncompatibleError:()=>Q4,IdempotencyKeyPurgedError:()=>u4,HANDLE_RESULT_PROMISE:()=>FJ,EngineLeaseNotHeldError:()=>HJ,EngineLeaseCorruptedError:()=>v1,EngineLeaseAcquisitionTimeoutError:()=>U0,EngineDisposedError:()=>K6,EngineCreateNameMismatchError:()=>S1,Engine:()=>eJ,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>sE,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>aE,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>oE,ENGINE_LEASE_LOST_WARNING_NAME:()=>zH,BulkOperationConfirmationError:()=>GJ,BulkDeleteRequiresTerminalWorkflowsError:()=>E1,AsyncActivityTokenNotFoundError:()=>WX,ActivityResolutionError:()=>YJ,ActivityReconciliationIndeterminateError:()=>q6,ActivityReconciliationConflictError:()=>xG,ActivityReconciliationCapabilityError:()=>SG});var eE=F(()=>{tE()});function fz($){return $}function kZ$($,U){$.register(U)}async function wF($,U){switch($){case"sqlite":{let{BunSQLiteStorage:J}=await Promise.resolve().then(() => (fF(),kF));return new J(U)}case"lmdb":{let{LMDBStorage:J}=await Promise.resolve().then(() => (KF(),NF));return new J(U)}case"memory":return Dx()}}async function Dx(){let{MemoryStorage:$}=await Promise.resolve().then(() => (M7(),_F));return new $}eE();var gz=["workflows:read","workflows:write","workflows:admin","schedules:read","schedules:write","signals:write","updates:write","queries:read","reviews:read","reviews:write","attributes:read","attributes:write","tags:write","streams:read","events:read","budget:read","budget:write","storage:read","storage:write","storage:admin","workers:write","system:read","system:admin"],yi=new Set(gz);function US($){return yi.has($)}function JS($){let U=new Set;$S($.scope,U),$S($.scp,U);let J=$.permissions;if(Array.isArray(J)){for(let G of J)if(typeof G==="string"&&US(G))U.add(G)}return U}function $S($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let J of $.split(/\s+/)){if(J.length===0)continue;if(US(J))U.add(J)}}function LZ$($){let U=JS($),J=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:J,hasScope(G){return U.has(G)}}}function qZ$($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function VZ$($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function BZ$(){return mi}function XS(){let $=new Set(gz);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var mi={method:"unauthenticated"};function J7($){return $.method!=="unauthenticated"}r();var X7="2.0",S0=Object.freeze({PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,UNAUTHORIZED:-32010,FORBIDDEN:-32011,NOT_FOUND:-32020,CONFLICT:-32021,UNPROCESSABLE:-32022,TIMEOUT:-32023,RATE_LIMITED:-32024,NOT_IMPLEMENTED:-32025,UNSUPPORTED_TRANSPORT:-32030,SUBSCRIPTION_OVERFLOW:-32031,ENGINE_FAILURE:-32099});function WZ$($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var GS="0.6.0";r();class m$ extends E{constructor($){super("McpToolExecutionError",$)}}function U6($,U,J){if(!$.authRequired)return;if(!J7($.principal))throw new m$(`${J} requires authentication`);if(!$.principal.hasScope(U))throw new m$(`${J} requires ${U}`)}async function G7($,U){return $.get(U)}async function $8($,U){return $.list(U)}var hz="2025-11-25",QS="tools/list",_S="notifications/tools/list_changed",DS="resources/list",YS="resources/templates/list",TZ$=1048576;function ZS($,U){return{jsonrpc:X7,id:$,result:U}}function U8($,U,J,G){return{jsonrpc:X7,id:$,error:G===void 0?{code:U,message:J}:{code:U,message:J,data:G}}}function Q7($,U,J){return U8($,S0.INVALID_PARAMS,U,J)}function jS($,U){return U8($,S0.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function HS($){return U8($,S0.INTERNAL_ERROR,"Internal error")}function Iz($,U){return U8($,-32002,"Resource not found",{uri:U})}function yz($,U){return U8($,-32011,U,{reason:U})}function PS($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==X7)return!1;return typeof U.method==="string"}function zS($){return $.id===void 0}function c1($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function mz($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function EZ$($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function SZ$($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((J)=>J.split(";")[0]?.trim().toLowerCase()??"").some((J)=>J==="*/*"||J===U)}var ui=["pending","running","completed","failed","cancelled","timed-out","suspended"];function uz($){if(!di($))return{ok:!1,message:"List filter must be a JSON object"};let U=ki($.status),J=fi($.type,"type"),G=wi($.tags,"tags"),X=FS($.limit,"limit"),Q=FS($.offset,"offset"),_=ci([U,J,G,X,Q]);if(_!==void 0)return _;return{ok:!0,filter:pi({status:J8(U),type:J8(J),tags:J8(G),limit:J8(X),offset:J8(Q)})}}function qS($){let U={},J=$.getAll("status");if(J.length===1)U.status=J[0];if(J.length>1)U.status=J;let G=$.get("type");if(G!==null)U.type=G;let X=$.getAll("tag");if(X.length>0)U.tags=X;let Q=$.get("limit");if(Q!==null)U.limit=Number(Q);let _=$.get("offset");if(_!==null)U.offset=Number(_);return uz(U)}function ki($){if($===void 0)return{ok:!0};if(typeof $==="string")return LS($)?{ok:!0,value:$}:{ok:!1,message:`Invalid workflow status: ${$}`};if(!Array.isArray($))return{ok:!1,message:"List filter status must be a workflow status or array"};let U=[];for(let J of $){if(typeof J!=="string"||!LS(J))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(J)}return{ok:!0,value:U}}function fi($,U){if($===void 0)return{ok:!0};if(typeof $!=="string")return{ok:!1,message:`List filter ${U} must be a string`};return{ok:!0,value:$}}function wi($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let J=[];for(let G of $){if(typeof G!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};J.push(G)}return{ok:!0,value:J}}function FS($,U){if($===void 0)return{ok:!0};if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)return{ok:!1,message:`List filter ${U} must be a non-negative integer`};return{ok:!0,value:$}}function ci($){for(let U of $)if(!U.ok)return U;return}function J8($){return $.ok?$.value:void 0}function pi($){let U={};if($.status!==void 0)U.status=$.status;if($.type!==void 0)U.type=$.type;if($.tags!==void 0)U.tags=$.tags;if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function LS($){return ui.some((U)=>U===$)}function di($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function VS(){return[{uriTemplate:"weft://workflows/{workflowId}/state",name:"workflow_state",title:"Workflow state",description:"Read the current state for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/{workflowId}/events",name:"workflow_events",title:"Workflow events",description:"Read the event log for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/{workflowId}/checkpoints",name:"workflow_checkpoints",title:"Workflow checkpoints",description:"Read checkpoint history summaries for a Weft workflow.",mimeType:"application/json"},{uriTemplate:"weft://workflows/search{?status,type,tag,limit,offset}",name:"workflow_search",title:"Workflow search",description:"List visible Weft workflows using query filters.",mimeType:"application/json"}]}async function BS($){return U6($,"workflows:read","Listing workflow resources"),(await $8($.engine,{})).items.map((J)=>({uri:X8(J.id,"state"),name:`workflow_${J.id}`,title:`${J.type} workflow ${J.id}`,description:`Current state for workflow ${J.id}.`,mimeType:"application/json"}))}async function kz($,U){U6(U,"workflows:read","Reading workflow resources");let J=NS($);if(J===null)return null;if(J.kind==="search"){let X=await $8(U.engine,J.filter);return _7($,X)}let G=await G7(U.engine,J.workflowId);if(G===null)return null;switch(J.kind){case"state":return _7($,G);case"events":return U6(U,"events:read","Reading workflow events"),_7($,{events:await U.engine.getEvents(J.workflowId)});case"checkpoints":return _7($,{checkpoints:await U.engine.listCheckpoints(J.workflowId)})}}async function MS($,U,J){if(await kz($,J)===null)return!1;return U.subscriptions.add($),!0}function WS($,U){U.subscriptions.delete($)}function _7($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function NS($){let U=li($);if(U===null)return null;if(U.pathname==="/search")return ii(U.searchParams);return ni(U.pathname)}function li($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function ii($){let U=qS($);return U.ok?{kind:"search",filter:U.filter}:null}function KS($){return NS($)?.kind==="search"}function ni($){let U=$.split("/").filter(Boolean).map(ri);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[J,G]=U;if(!J)return null;if(G==="state"||G==="events"||G==="checkpoints")return{kind:G,workflowId:J};return null}function X8($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function ri($){try{return decodeURIComponent($)}catch{return null}}e9();r();var oi=1;class Y7 extends E{entityKind;entityName;direction;constructor($,U,J,G){let X=G instanceof Error?G.message:String(G);super("RegistrySchemaConversionError",`Failed to convert ${J} for ${$} "${U}": ${X}`,{cause:G});this.entityKind=$,this.entityName=U,this.direction=J}}function mZ$($){let U=$.listWorkflowDefinitions(),J=$.listActivityDefinitions(),G=U.toSorted((D,Y)=>{if(D.type<Y.type)return-1;if(D.type>Y.type)return 1;return 0}),X=J.toSorted((D,Y)=>{if(D.name<Y.name)return-1;if(D.name>Y.name)return 1;return 0}),Q=Object.create(null);for(let D of G)Q[D.type]=ai(D);let _=Object.create(null);for(let D of X)_[D.name]=si(D);return{registryVersion:oi,workflows:Q,activities:_}}function ai($){let U={};if($.inputSchema!==void 0)U.inputSchema=D7("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=D7("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function si($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=D7("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=D7("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function D7($,U,J,G){try{return t9(G,J==="inputSchema"?"input":"output")}catch(X){throw new Y7($,U,J,X)}}e9();var OS=new WeakMap,cz=30000,wz=2147483647;function j7($){return CS($).tools.map((U)=>U.definition)}async function AS($,U,J){let G=CS(J.engine).toolsByName.get($);if(G===void 0)return Z7(`Unknown tool: ${$}`);try{let X=await G.call(U??{},J);return Yn(X)}catch(X){if(X instanceof m$)return Z7(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return Z7(X.message);return console.warn("MCP tool execution failed:",X),Z7("Tool execution failed")}}function CS($){let U=ti($),J=OS.get($);if(J!==void 0&&ei(J.signature,U))return J;let G=$n($),X={signature:U,tools:G,toolsByName:new Map(G.map((Q)=>[Q.definition.name,Q]))};return OS.set($,X),X}function ti($){return $.listWorkflowDefinitions().toSorted((U,J)=>U.type<J.type?-1:U.type>J.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function ei($,U){if($.length!==U.length)return!1;for(let J=0;J<$.length;J++){let G=$[J],X=U[J];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2])return!1}return!0}function $n($){let U=[...Dn()],J=new Set(U.map((G)=>G.definition.name));for(let G of $.listWorkflowDefinitions().toSorted((X,Q)=>X.type<Q.type?-1:X.type>Q.type?1:0)){if(G.inputSchema===void 0)continue;let X=jn(Zn(G.type),J);J.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:Un(G.type,G.inputSchema)},call:async(Q,_)=>{U6(_,"workflows:write","Calling workflow tools");let{input:D,timeoutMs:Y}=Xn(Q),Z=crypto.randomUUID();_.session.trackRequest(_.requestId,Z);try{if(_.session.isRequestCancelled(_.requestId))throw new m$("Workflow cancelled");let j=await fz(_.engine).start(G.type,D,{id:Z});if(_.session.isRequestCancelled(_.requestId))await _.engine.cancel(j.id);let P=await Qn(j,{timeoutMs:Y,signal:_.session.requestSignal(_.requestId)});if(P.status==="timed-out")return _n(j.id,Y);return{workflowId:j.id,result:P.result}}finally{_.session.untrackRequest(_.requestId)}}})}return U.toSorted((G,X)=>G.definition.name<X.definition.name?-1:1)}function Un($,U){try{return Jn(t9(U,"input"))}catch(J){throw new Y7("workflow",$,"inputSchema",J)}}function Jn($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:wz,default:cz,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function Xn($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:cz};let U=$,J=Gn(U.timeoutMs);return{input:U.input,timeoutMs:J}}function Gn($){if($===void 0)return cz;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=wz)return $;throw new m$(`Tool argument "timeoutMs" must be an integer from 1 to ${wz}`)}async function Qn($,U){if(U.signal?.aborted)throw new m$("Workflow cancelled");let J,G,X=$.result().then((D)=>({status:"completed",result:D})),Q=new Promise((D)=>{J=setTimeout(()=>D({status:"timed-out"}),U.timeoutMs)}),_=U.signal===void 0?void 0:new Promise((D,Y)=>{let Z=()=>Y(new m$("Workflow cancelled"));U.signal?.addEventListener("abort",Z,{once:!0}),G=()=>U.signal?.removeEventListener("abort",Z)});try{return await Promise.race(_===void 0?[X,Q]:[X,Q,_])}finally{if(J!==void 0)clearTimeout(J);G?.()}}function _n($,U){return{workflowId:$,status:"running",timedOut:!0,timeoutMs:U,message:"Workflow is still running and was not cancelled. Call get_workflow_state with this workflowId to poll for completion.",followUp:{tool:"get_workflow_state",arguments:{workflowId:$}}}}function Dn(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:d1({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{U6(U,"workflows:write","Starting workflows");let J=p1($),G=j4(J.type,"type"),X=J.input??{},Q=typeof J.id==="string"?{id:J.id}:void 0;return{workflowId:(await fz(U.engine).start(G,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{U6(U,"signals:write","Signalling workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),await U.engine.signal(G,j4(J.signalName,"signalName"),J.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{U6(U,"updates:write","Updating workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),{result:await U.engine.update(G,j4(J.updateName,"updateName"),J.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:d1({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{U6(U,"queries:read","Querying workflows");let J=p1($),G=j4(J.workflowId,"workflowId");return await G8(U,G),{result:await U.engine.query(G,j4(J.queryName,"queryName"),J.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:d1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{U6(U,"workflows:write","Cancelling workflows");let J=j4(p1($).workflowId,"workflowId");return await G8(U,J),await U.engine.cancel(J),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:d1({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{U6(U,"workflows:read","Listing workflows");let J=uz(p1($));if(!J.ok)throw new m$(J.message);return await $8(U.engine,J.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:d1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{U6(U,"workflows:read","Reading workflow state");let J=j4(p1($).workflowId,"workflowId");return await G8(U,J)}}]}async function G8($,U){let J=await G7($.engine,U);if(J===null)throw new m$(`Workflow "${U}" not found`);return J}function Yn($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function Z7($){return{isError:!0,content:[{type:"text",text:$}]}}function p1($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new m$("Tool arguments must be a JSON object")}function j4($,U){if(typeof $==="string"&&$.length>0)return $;throw new m$(`Tool argument "${U}" must be a non-empty string`)}function d1($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function Zn($){let U=$.toLowerCase().replaceAll(/[^a-z0-9]+/g,"_").replaceAll(/^_+|_+$/g,"");if(/^[a-z][a-z0-9_]*$/.test(U))return U;return`workflow_${U||"unnamed"}`}function jn($,U){if(!U.has($))return $;let J=2;while(U.has(`${$}_${String(J)}`))J+=1;return`${$}_${String(J)}`}async function RS($,U){if(!PS($))return{kind:"response",response:Q7(null,"Invalid MCP JSON-RPC request")};if(zS($)){try{await Hn($,U)}catch(G){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,G)}return{kind:"accepted"}}let J=$.id??null;try{let G=await zn($,U);return{kind:"response",response:ZS(J,G)}}catch(G){if(G instanceof a4||G instanceof l1)return{kind:"response",response:G.toResponse(J)};if(G instanceof m$)return{kind:"response",response:yz(J,G.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",G),{kind:"response",response:HS(J)}}}async function Hn($,U){if($.method==="notifications/initialized"){if(U.session.phase==="initializing")U.session.phase="ready";return}if(U.session.phase!=="ready")return;if($.method==="notifications/cancelled"){let J=H7($.params),G=U.session.cancelRequest(J.requestId);if(G!==void 0)await U.engine.cancel(G)}}var Pn={initialize:async($,U)=>Fn($.params,U.session),ping:async()=>({}),[QS]:async($,U)=>({tools:j7(U.engine)}),"tools/call":qn,[DS]:async($,U)=>({resources:await BS(U)}),"resources/read":Vn,"resources/subscribe":Bn,"resources/unsubscribe":Mn,[YS]:async()=>({resourceTemplates:VS()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new a4(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function zn($,U){if(U.authRequired&&!J7(U.principal)&&$.method!=="initialize")throw new a4(-32011,"MCP request requires authentication");Ln($,U);let J=Pn[$.method];if(J===void 0)throw new l1(jS($.id??null,$.method));return J($,U)}function Fn($,U){let J=H7($),G=typeof J.protocolVersion==="string"?J.protocolVersion:void 0;return U.protocolVersion=G===hz?G:hz,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:GS}}}function Ln($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new a4(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new a4(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new a4(-32000,"MCP session must receive notifications/initialized before requests")}async function qn($,U){let J=H7($.params),G=J.name;if(typeof G!=="string"||G.length===0)throw new l1(Q7($.id??null,"tools/call requires name"));return AS(G,J.arguments??{},{...U,requestId:$.id})}async function Vn($,U){let J=pz($),G=await kz(J,U);if(G===null)throw new l1(Iz($.id??null,J));return G}async function Bn($,U){let J=pz($);if(!await MS(J,U.session,U))throw new l1(Iz($.id??null,J));return{}}function Mn($,U){let J=pz($);return WS(J,U.session),{}}function pz($){let J=H7($.params).uri;if(typeof J!=="string"||J.length===0)throw new l1(Q7($.id??null,`${$.method} requires uri`));return J}function H7($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new a4(S0.INVALID_PARAMS,"MCP params must be an object")}class a4 extends E{jsonRpcCode;data;constructor($,U,J){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=J}toResponse($){if(this.jsonRpcCode===-32011)return yz($,this.message);return{jsonrpc:"2.0",id:$,error:this.data===void 0?{code:this.jsonRpcCode,message:this.message}:{code:this.jsonRpcCode,message:this.message,data:this.data}}}}class l1 extends E{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}J$();r();class dz extends E{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var TS=["workflow:started","workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","workflow:resumed","workflow:suspended","signal:received","signal:delivered","attributes:changed","update:received","update:completed"];class P7{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#J=new Set;constructor($,U,J=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=J,this.lastActivityMilliseconds=J}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let J=c1(x0($));if(J===void 0)return;this.#$.set(J,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=c1(x0($));if(U===void 0)return;let J=this.#$.get(U);if(J===void 0)return;return this.#U.add(U),J.abortController.abort(),J.workflowId}isRequestCancelled($){let U=c1(x0($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=c1(x0($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=c1(x0($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=c1(x0($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#J.add($),()=>{this.#J.delete($)}}notify($,U){let J=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let G of this.#J)G(J)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#J.clear()}}function x0($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class z7{#$;#U=new Map;#J;#X;#G;#Q;#_;#D;constructor($,U={}){this.#$=$,this.#G=U.maximumSessions??1024,this.#Q=U.sessionIdleTimeoutMilliseconds??1800000,this.#_=U.currentTimeMilliseconds??Date.now,this.#D=ES($),this.#J=(J)=>{let G=J.workflowId;if(typeof G!=="string")return;this.#Y(G)},this.#X=()=>{this.#Z()};for(let J of TS)this.#$.addEventListener(J,this.#J);this.#$.addEventListener(O1.type,this.#X)}create($){if(this.#j(),this.#U.size>=this.#G)throw new dz;let U=this.#_(),J=new P7(crypto.randomUUID(),$,U);return this.#U.set(J.id,J),J}add($){if(this.#j(),this.#U.size>=this.#G)throw new dz;return $.touch(this.#_()),this.#U.set($.id,$),$}get($){return this.#j(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#_())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#Y($){let U=[X8($,"state"),X8($,"events"),X8($,"checkpoints")],J=this.#_();for(let G of this.#U.values()){let X=new Set;for(let _ of U){if(!G.subscriptions.has(_))continue;X.add(_)}let Q=[...G.subscriptions].filter(KS);for(let _ of Q)X.add(_);if(X.size===0)continue;G.touch(J);for(let _ of X)G.notify("notifications/resources/updated",{uri:_})}this.#j()}#Z(){let $=ES(this.#$);if(Wn(this.#D,$))return;this.#D=$;let U=this.#_();for(let J of this.#U.values()){if(J.phase!=="ready")continue;J.touch(U),J.notify(_S)}this.#j()}#j(){let $=this.#_();for(let[U,J]of this.#U){if(!J.isIdleExpired($,this.#Q))continue;J.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of TS)this.#$.removeEventListener($,this.#J);this.#$.removeEventListener(O1.type,this.#X),this.closeAll()}}function ES($){return j7($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function Wn($,U){if($.length!==U.length)return!1;for(let J=0;J<$.length;J++){let G=$[J],X=U[J];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2]||G[3]!==X[3])return!1}return!0}function Dj$($,U){return new z7($,U)}var SS=1048576;async function xS($){if($.admission.kind==="require-one")return{exitCode:2,reason:"MCP stdio admission required: pass --startup-token <token> or --allow-unauthenticated-local-admin"};if($.admission.kind==="startup-token"&&$.admission.token.trim().length===0)return{exitCode:2,reason:"MCP stdio startup token must be non-empty"};let U=Nn($),J=new Set;try{let G=await Kn($,U);if(!G.ok)return await lz(U),G.result;return await On($,U,G.remainder,J),await Promise.all(J),await lz(U),{exitCode:0}}catch(G){return await lz(U,!0),{exitCode:1,reason:G instanceof Error?G.message:String(G)}}finally{U.reader.releaseLock()}}function Nn($){let U=$.output.getWriter(),J=bn(U),G=new z7($.engine,$.sessionManagerOptions),X=G.add(new P7("stdio-local",XS()));return X.addTarget((Q)=>{G.touch(X),J(JSON.stringify(Q))}),{writer:U,write:J,manager:G,session:X,reader:$.input.getReader(),decoder:new TextDecoder}}async function Kn($,U){if($.admission.kind!=="startup-token")return{ok:!0,remainder:""};return Cn(U.reader,U.decoder,$.admission.token,U.write,$.maxFrameBytes??SS)}async function On($,U,J,G){let X=J;while(!0){let Q=await U.reader.read();if(Q.done)break;X=await An(X,Q.value,$,U,G)}if(X.trim().length>0)bS(X,$,U,G)}async function An($,U,J,G,X){let Q=$+G.decoder.decode(U,{stream:!0});if(Q.length>(J.maxFrameBytes??SS))return await G.write(JSON.stringify({jsonrpc:"2.0",id:null,error:{code:-32600,message:"frame exceeds maxFrameBytes"}})),"";let _=Q.split(`
58
58
  `);for(let D of _.slice(0,-1))bS(D,J,G,X);return _.at(-1)??""}function bS($,U,J,G){if($.trim().length===0)return;J.manager.touch(J.session);let X=xn($,U.engine,J.session,J.write).finally(()=>{G.delete(X)});G.add(X)}async function lz($,U=!1){if(await $.manager[Symbol.asyncDispose](),await $.write.drain(),U){await $.writer.close().catch(()=>{return});return}await $.writer.close()}async function Cn($,U,J,G,X){let Q=await Rn($,U,G,X);if(!Q.ok)return Q;let _=await Tn(Q.line,J,G);if(!_.ok)return _;return{ok:!0,remainder:Q.remainder}}async function Rn($,U,J,G){let X="";while(!X.includes(`
59
59
  `)){let _=await $.read();if(_.done)return{ok:!1,result:{exitCode:2,reason:"stdio session closed before authenticate frame"}};if(X+=U.decode(_.value,{stream:!0}),X.length>G)return await J(JSON.stringify(iz(null,"authenticate frame exceeds maxFrameBytes"))),{ok:!1,result:{exitCode:2,reason:"authenticate frame exceeds maxFrameBytes"}}}let Q=X.indexOf(`
60
60
  `);return{ok:!0,line:X.slice(0,Q),remainder:X.slice(Q+1)}}async function Tn($,U,J){let G=En($);if(!G.ok)return await J(JSON.stringify(iz(null,"first frame was not valid JSON"))),{ok:!1,result:{exitCode:2,reason:"first frame was not valid JSON"}};let X=Sn(G.record.params);if(G.record.method!=="weft.authenticate"||X!==U)return await J(JSON.stringify(iz(G.id,"startup token mismatch"))),{ok:!1,result:{exitCode:2,reason:"startup token mismatch"}};return await J(JSON.stringify({jsonrpc:"2.0",id:G.id,result:{}})),{ok:!0}}function En($){let U=mz($);if(!U.ok||U.value===null||typeof U.value!=="object")return{ok:!1};let J=U.value;return{ok:!0,record:J,id:J.id??null}}function Sn($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $.token;return}function iz($,U){return{jsonrpc:"2.0",id:typeof $==="string"||typeof $==="number"||$===null?$:null,error:{code:-32010,message:U}}}async function xn($,U,J,G){let X=mz($);if(!X.ok){await G(JSON.stringify({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}}));return}let Q=await RS(X.value,{engine:U,session:J,principal:J.principal,authRequired:!1});if(Q.kind==="response")await G(JSON.stringify(Q.response))}function bn($){let U=new TextEncoder,J=Promise.resolve(),G=(X)=>{let Q=J.then(()=>$.write(U.encode(`${X}